summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinhard Nißl <rnissl@gmx.de>2011-02-16 23:26:54 +0100
committerReinhard Nißl <rnissl@gmx.de>2011-02-16 23:26:54 +0100
commit4ab7d99460d0bcefba85b7285d3742cae2905314 (patch)
tree6d2b0c5d4568a6d153256d3a2aabad237decd5fd
parent498ee00acbfe74a6cdcf52edca245541f42be996 (diff)
downloadxine-lib-4ab7d99460d0bcefba85b7285d3742cae2905314.tar.gz
xine-lib-4ab7d99460d0bcefba85b7285d3742cae2905314.tar.bz2
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.
-rw-r--r--src/combined/ffmpeg/ff_video_decoder.c3
1 files changed, 2 insertions, 1 deletions
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)