mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 14:36:24 +00:00
jpegdec: Only parse for SOI when we didn't see it before
This commit is contained in:
parent
c6c4906770
commit
d811797186
1 changed files with 15 additions and 11 deletions
|
@ -430,7 +430,7 @@ gst_jpeg_dec_parse (GstVideoDecoder * bdec, GstVideoCodecFrame * frame,
|
|||
GstAdapter * adapter, gboolean at_eos)
|
||||
{
|
||||
guint size;
|
||||
gint ret, toadd = 0;
|
||||
gint toadd = 0;
|
||||
gboolean resync;
|
||||
gint offset = 0, noffset;
|
||||
GstJpegDec *dec = (GstJpegDec *) bdec;
|
||||
|
@ -453,17 +453,21 @@ gst_jpeg_dec_parse (GstVideoDecoder * bdec, GstVideoCodecFrame * frame,
|
|||
if (size < 8)
|
||||
goto need_more_data;
|
||||
|
||||
/* we expect at least 4 bytes, first of which start marker */
|
||||
ret =
|
||||
gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0xffd80000, 0,
|
||||
size - 4);
|
||||
GST_DEBUG ("ret:%d", ret);
|
||||
if (ret < 0)
|
||||
goto need_more_data;
|
||||
if (!dec->saw_header) {
|
||||
gint ret;
|
||||
/* we expect at least 4 bytes, first of which start marker */
|
||||
ret =
|
||||
gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0xffd80000, 0,
|
||||
size - 4);
|
||||
|
||||
if (ret) {
|
||||
gst_adapter_flush (adapter, ret);
|
||||
size -= ret;
|
||||
GST_DEBUG ("ret:%d", ret);
|
||||
if (ret < 0)
|
||||
goto need_more_data;
|
||||
|
||||
if (ret) {
|
||||
gst_adapter_flush (adapter, ret);
|
||||
size -= ret;
|
||||
}
|
||||
dec->saw_header = TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue