summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2010-09-07 16:49:16 +0200
committerWim Taymans <wim.taymans@collabora.co.uk>2010-09-07 16:49:16 +0200
commit2b81f913a423afcea700f78c8ec0f8dbc77ca3f4 (patch)
tree9037b3a87e9bd4b7198c5eb8f08ec40179a2c44d
parent2ed53fd77fb2c7860f8919822b70abc703909f4a (diff)
jpegdec: avoid invalid adapter flush on QoS
First store the available data in the adapter in the rem_img_len instance field before trying to flush the adapter with that value on QoS.
-rw-r--r--ext/jpeg/gstjpegdec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 5f85ac8d7..207fe8b7c 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -1203,19 +1203,20 @@ gst_jpeg_dec_chain (GstPad * pad, GstBuffer * buf)
goto need_more_data;
}
+ dec->rem_img_len = img_len;
+
+ GST_LOG_OBJECT (dec, "image size = %u", img_len);
+
/* QoS: if we're too late anyway, skip decoding */
if (dec->packetized && !gst_jpeg_dec_do_qos (dec, timestamp))
goto skip_decoding;
- GST_LOG_OBJECT (dec, "image size = %u", img_len);
-
#ifndef GST_DISABLE_GST_DEBUG
data = (guint8 *) gst_adapter_peek (dec->adapter, 4);
GST_LOG_OBJECT (dec, "reading header %02x %02x %02x %02x", data[0], data[1],
data[2], data[3]);
#endif
- dec->rem_img_len = img_len;
gst_jpeg_dec_fill_input_buffer (&dec->cinfo);
if (setjmp (dec->jerr.setjmp_buffer)) {