diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gst/rtp/gstrtph263depay.c | 5 |
2 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2007-11-26 Edward Hervey <bilboed@bilboed.com> + + * 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 + 2007-11-26 Stefan Kost <ensonic@users.sf.net> * gst/level/gstlevel.c: 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 { |