mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
amrwbdec: avoid stalling on invalid frame
Skip 1 byte indicating invalid frame type index rather than stalling on it indefinitely until EOS. Fixes #639715.
This commit is contained in:
parent
7551d102f8
commit
dbdf976105
1 changed files with 8 additions and 2 deletions
|
@ -63,7 +63,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_amrwbdec_debug);
|
|||
|
||||
static const unsigned char block_size[16] =
|
||||
{ 18, 24, 33, 37, 41, 47, 51, 59, 61,
|
||||
6, 6, 0, 0, 0, 1, 1
|
||||
6, 0, 0, 0, 0, 1, 1
|
||||
};
|
||||
|
||||
static gboolean gst_amrwbdec_event (GstPad * pad, GstEvent * event);
|
||||
|
@ -285,7 +285,13 @@ gst_amrwbdec_chain (GstPad * pad, GstBuffer * buffer)
|
|||
|
||||
GST_DEBUG_OBJECT (amrwbdec, "mode %d, block %d", mode, block);
|
||||
|
||||
if (!block || gst_adapter_available (amrwbdec->adapter) < block)
|
||||
if (!block) {
|
||||
GST_LOG_OBJECT (amrwbdec, "skipping byte");
|
||||
gst_adapter_flush (amrwbdec->adapter, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (gst_adapter_available (amrwbdec->adapter) < block)
|
||||
break;
|
||||
|
||||
/* the library seems to write into the source data, hence the copy. */
|
||||
|
|
Loading…
Reference in a new issue