summaryrefslogtreecommitdiffstats
path: root/gst/rtp/gstrtph263depay.c
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2007-11-26 12:01:11 +0000
committerEdward Hervey <bilboed@bilboed.com>2007-11-26 12:01:11 +0000
commit9f75afd5fde595319679d116edbc4fea6a215d0b (patch)
treeb70781db48e08810fc3252584dbb4643baaea8db /gst/rtp/gstrtph263depay.c
parent48a4bc909ab4c488d1de553004a0a6a5f84dd8c0 (diff)
gst/rtp/gstrtph263depay.c: Read the I flag for Mode A h263 rtp stream and set the
Original commit message from CVS: * gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_process): Read the I flag for Mode A h263 rtp stream and set the GST_BUFFER_FLAG_DELTA_UNIT accordingly. Fixes #499383
Diffstat (limited to 'gst/rtp/gstrtph263depay.c')
-rw-r--r--gst/rtp/gstrtph263depay.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c
index 58ee0e20..4e320a13 100644
--- a/gst/rtp/gstrtph263depay.c
+++ b/gst/rtp/gstrtph263depay.c
@@ -188,6 +188,7 @@ gst_rtp_h263_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
guint header_len;
gboolean F, P, M;
+ gboolean I = FALSE;
payload_len = gst_rtp_buffer_get_payload_len (buf);
payload = gst_rtp_buffer_get_payload (buf);
@@ -209,6 +210,7 @@ gst_rtp_h263_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
* |F|P|SBIT |EBIT | SRC |I|U|S|A|R |DBQ| TRB | TR |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/
+ I = (payload[1] & 0x10) == 0x10;
} else if (P == 0) {
/* F == 1 and P == 0
* mode B */
@@ -268,6 +270,9 @@ gst_rtp_h263_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
}
memcpy (GST_BUFFER_DATA (outbuf) + avail, payload, payload_len);
+ if (I)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
return outbuf;
} else {