summaryrefslogtreecommitdiff
path: root/ext/mpeg2dec/gstmpeg2dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mpeg2dec/gstmpeg2dec.c')
-rw-r--r--ext/mpeg2dec/gstmpeg2dec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/mpeg2dec/gstmpeg2dec.c b/ext/mpeg2dec/gstmpeg2dec.c
index 03c8b4e3..811e0525 100644
--- a/ext/mpeg2dec/gstmpeg2dec.c
+++ b/ext/mpeg2dec/gstmpeg2dec.c
@@ -406,6 +406,13 @@ gst_mpeg2dec_alloc_sized_buf (GstMpeg2dec * mpeg2dec, guint size,
state = gst_video_decoder_get_output_state (GST_VIDEO_DECODER (mpeg2dec));
if (!mpeg2dec->need_cropping || mpeg2dec->has_cropping) {
+ /* need parsed input, but that might be slightly bogus,
+ * so avoid giving up altogether and mark it as error */
+ if (frame->output_buffer) {
+ gst_buffer_replace (&frame->output_buffer, NULL);
+ GST_VIDEO_DECODER_ERROR (mpeg2dec, 1, STREAM, DECODE,
+ ("decoding error"), ("Input not correctly parsed"), ret);
+ }
ret =
gst_video_decoder_allocate_output_frame (GST_VIDEO_DECODER (mpeg2dec),
frame);