From b0d0113b8e4cf76363f8f94c5ae5352425a861b9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 17 Feb 2006 15:37:38 +0000 Subject: gst/rtp/gstrtpamrdepay.c: Patch from Sebastien Cote, fixes #319884 Original commit message from CVS: * gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_chain): Patch from Sebastien Cote, fixes #319884 --- ChangeLog | 5 +++++ gst/rtp/gstrtpamrdepay.c | 12 +++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10ce60d2..3524d192 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-02-17 Wim Taymans + + * gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_chain): + Patch from Sebastien Cote, fixes #319884 + 2006-02-17 Tim-Philipp Müller * ext/cdio/gstcdio.c: (plugin_init): diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index 28ec3e39..aa410aa7 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -366,13 +366,6 @@ gst_rtp_amr_depay_chain (GstPad * pad, GstBuffer * buf) break; } - /* this is impossible */ - if (num_packets == payload_len) { - GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE, - (NULL), ("AMR RTP num_packets == payload_len")); - goto bad_packet; - } - if (rtpamrdepay->crc) { /* data len + CRC len + header bytes should be smaller than payload_len */ if (num_packets + num_nonempty_packets + amr_len > payload_len) { @@ -407,10 +400,11 @@ gst_rtp_amr_depay_chain (GstPad * pad, GstBuffer * buf) for (i = 0; i < num_packets; i++) { gint fr_size; + /* copy FT, clear F bit */ + *p++ = payload[i] & 0x7f; + fr_size = frame_size[(payload[i] & 0x78) >> 3]; if (fr_size > 0) { - /* copy FT, clear F bit */ - *p++ = payload[i] & 0x7f; /* copy data packet, FIXME, calc CRC here. */ memcpy (p, dp, fr_size); -- cgit