diff options
-rw-r--r-- | ext/jpeg/gstjpegdec.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c index edf616e3d..0ccfca9b5 100644 --- a/ext/jpeg/gstjpegdec.c +++ b/ext/jpeg/gstjpegdec.c @@ -183,17 +183,9 @@ gst_jpeg_dec_class_init (GstJpegDecClass * klass) static boolean gst_jpeg_dec_fill_input_buffer (j_decompress_ptr cinfo) { - GstJpegDec *dec; - - dec = CINFO_GET_JPEGDEC (cinfo); - g_return_val_if_fail (dec != NULL, FALSE); - g_return_val_if_fail (dec->current_frame != NULL, FALSE); - g_return_val_if_fail (dec->current_frame_map.data != NULL, FALSE); - - cinfo->src->next_input_byte = dec->current_frame_map.data; - cinfo->src->bytes_in_buffer = dec->current_frame_map.size; - - return TRUE; + /* We pass in full frame initially, if this get called, the frame is most likely + * corrupted */ + return FALSE; } static void @@ -1002,7 +994,9 @@ gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame) dec->current_frame = frame; gst_buffer_map (frame->input_buffer, &dec->current_frame_map, GST_MAP_READ); - gst_jpeg_dec_fill_input_buffer (&dec->cinfo); + + dec->cinfo.src->next_input_byte = dec->current_frame_map.data; + dec->cinfo.src->bytes_in_buffer = dec->current_frame_map.size; if (setjmp (dec->jerr.setjmp_buffer)) { code = dec->jerr.pub.msg_code; |