diff -r 4b0c6ed43234 -r 8e837d1bf446 gst_plugins_base/gst-libs/gst/rtp/gstrtcpbuffer.h --- a/gst_plugins_base/gst-libs/gst/rtp/gstrtcpbuffer.h Wed Mar 24 17:58:42 2010 -0500 +++ b/gst_plugins_base/gst-libs/gst/rtp/gstrtcpbuffer.h Wed Mar 24 18:04:17 2010 -0500 @@ -42,6 +42,8 @@ * @GST_RTCP_TYPE_SDES: Source description * @GST_RTCP_TYPE_BYE: Goodbye * @GST_RTCP_TYPE_APP: Application defined + * @GST_RTCP_TYPE_RTPFB: Transport layer feedback. Since: 0.10.23 + * @GST_RTCP_TYPE_PSFB: Payload-specific feedback. Since: 0.10.23 * * Different RTCP packet types. */ @@ -52,9 +54,37 @@ GST_RTCP_TYPE_RR = 201, GST_RTCP_TYPE_SDES = 202, GST_RTCP_TYPE_BYE = 203, - GST_RTCP_TYPE_APP = 204 + GST_RTCP_TYPE_APP = 204, + GST_RTCP_TYPE_RTPFB = 205, + GST_RTCP_TYPE_PSFB = 206 } GstRTCPType; +/** + * GstRTCPFBType: + * @GST_RTCP_FB_TYPE_INVALID: Invalid type + * @GST_RTCP_RTPFB_TYPE_NACK: Generic NACK + * @GST_RTCP_PSFB_TYPE_PLI: Picture Loss Indication + * @GST_RTCP_PSFB_TYPE_SLI: Slice Loss Indication + * @GST_RTCP_PSFB_TYPE_RPSI: Reference Picture Selection Indication + * @GST_RTCP_PSFB_TYPE_AFB: Application layer Feedback + * + * Different types of feedback messages. + * + * Since: 0.10.23 + */ +typedef enum +{ + /* generic */ + GST_RTCP_FB_TYPE_INVALID = 0, + /* RTPFB types */ + GST_RTCP_RTPFB_TYPE_NACK = 1, + /* PSFB types */ + GST_RTCP_PSFB_TYPE_PLI = 1, + GST_RTCP_PSFB_TYPE_SLI = 2, + GST_RTCP_PSFB_TYPE_RPSI = 3, + GST_RTCP_PSFB_TYPE_AFB = 15 +} GstRTCPFBType; + /** * GstRTCPSDESType: * @GST_RTCP_SDES_INVALID: Invalid SDES entry @@ -213,7 +243,7 @@ IMPORT_C #endif -void gst_rtcp_packet_remove (GstRTCPPacket *packet); +gboolean gst_rtcp_packet_remove (GstRTCPPacket *packet); /* working with packets */ #ifdef __SYMBIAN32__ @@ -392,6 +422,38 @@ gboolean gst_rtcp_packet_bye_set_reason (GstRTCPPacket *packet, const gchar *reason); +/* feedback packets */ +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +guint32 gst_rtcp_packet_fb_get_sender_ssrc (GstRTCPPacket *packet); +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +void gst_rtcp_packet_fb_set_sender_ssrc (GstRTCPPacket *packet, guint32 ssrc); +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +guint32 gst_rtcp_packet_fb_get_media_ssrc (GstRTCPPacket *packet); +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +void gst_rtcp_packet_fb_set_media_ssrc (GstRTCPPacket *packet, guint32 ssrc); +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +GstRTCPFBType gst_rtcp_packet_fb_get_type (GstRTCPPacket *packet); +#ifdef __SYMBIAN32__ +IMPORT_C +#endif + +void gst_rtcp_packet_fb_set_type (GstRTCPPacket *packet, GstRTCPFBType type); + /* helper functions */ #ifdef __SYMBIAN32__ IMPORT_C