diff options
author | Edward Hervey <bilboed@bilboed.com> | 2007-11-26 12:01:11 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2007-11-26 12:01:11 +0000 |
commit | 9f75afd5fde595319679d116edbc4fea6a215d0b (patch) | |
tree | b70781db48e08810fc3252584dbb4643baaea8db /gst/rtp/gstrtph263depay.c | |
parent | 48a4bc909ab4c488d1de553004a0a6a5f84dd8c0 (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.c | 5 |
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 { |