diff options
author | jstebbins <[email protected]> | 2011-04-02 19:58:34 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2011-04-02 19:58:34 +0000 |
commit | c5493132981f650d13c03181d53da5e3fd205bcd (patch) | |
tree | 85845fd91828ab1f7b87814567f447564ada5872 /libhb/stream.c | |
parent | 889409ab149f8d7b20be0dfb720359c80fb7471e (diff) |
Fix garbled previews from BD h.264 sources
Forome reason, frames that are tagged as recovery points in many BD h.264
streams do not result in complete frames when decoded. Pushing 2 extra
frames through the decoder seems to always fix this. This patch extends
something I was already doing when generating previews from a BD structure.
This just applies the same logic to ffmpeg streams that have h.264 video.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3895 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/stream.c')
-rw-r--r-- | libhb/stream.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libhb/stream.c b/libhb/stream.c index 64fa6cba4..5b4d248d0 100644 --- a/libhb/stream.c +++ b/libhb/stream.c @@ -3271,7 +3271,7 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream ) // 'Barebones Title' hb_title_t *title = hb_title_init( stream->path, 0 ); - title->type = HB_STREAM_TYPE; + title->type = HB_FF_STREAM_TYPE; title->index = 1; // Copy part of the stream path to the title name @@ -3309,6 +3309,9 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream ) title->video_id = i; stream->ffmpeg_video_id = i; + if ( context->codec_id == CODEC_ID_H264 ) + title->flags |= HBTF_NO_IDR; + // We have to use the 'internal' avcodec decoder because // it needs to share the codec context from this video // stream. The parser internal to av_read_frame |