From 4ab7d99460d0bcefba85b7285d3742cae2905314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20Ni=C3=9Fl?= Date: Wed, 16 Feb 2011 23:26:54 +0100 Subject: Make ff_video_decoder work together with input_vdr.c for MPEG2. input_vdr.c cannot send buffers with preview flag set after a decoder reset. Therefore, the decoder didn't get initialized anymore. So we need to call ff_handle_preview_buffer() even with real data as long as we are in decoder_init_mode to get a decoder initialized. --- src/combined/ffmpeg/ff_video_decoder.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c index e6c44f7b5..b0f8a2d39 100644 --- a/src/combined/ffmpeg/ff_video_decoder.c +++ b/src/combined/ffmpeg/ff_video_decoder.c @@ -843,7 +843,6 @@ static void ff_handle_preview_buffer (ff_video_decoder_t *this, buf_element_t *b if ( this->mpeg_parser == NULL ) { this->mpeg_parser = calloc(1, sizeof(mpeg_parser_t)); mpeg_parser_init(this->mpeg_parser); - this->decoder_init_mode = 0; } } @@ -1517,6 +1516,8 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { } } else { + if (this->decoder_init_mode && !this->is_mpeg12) + ff_handle_preview_buffer(this, buf); /* decode */ if (buf->pts) -- cgit v1.2.3