diff options
author | jstebbins <[email protected]> | 2011-03-28 17:47:21 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2011-03-28 17:47:21 +0000 |
commit | 269d067f6662f2937105d44ba93f2cb49ebc3540 (patch) | |
tree | 786444985e0dd8dc5f722939808182e334bb0be5 | |
parent | e5689e626605675ab30e8a90989ea353d0543377 (diff) |
Fix problem with qt7 playback of mpeg4 video
The reference frames were not being tagged correctly during muxing
which really screwes up qt7 but appears to have little effect on qtx
or other players.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3887 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | libhb/encavcodec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libhb/encavcodec.c b/libhb/encavcodec.c index a9d567016..0a7d7f62b 100644 --- a/libhb/encavcodec.c +++ b/libhb/encavcodec.c @@ -486,6 +486,7 @@ int encavcodecWork( hb_work_object_t * w, hb_buffer_t ** buf_in, int64_t frameno = pv->context->coded_frame->pts; buf->start = get_frame_start( pv, frameno ); buf->stop = get_frame_stop( pv, frameno ); + buf->flags &= ~HB_FRAME_REF; switch ( pv->context->coded_frame->pict_type ) { case FF_P_TYPE: @@ -512,6 +513,7 @@ int encavcodecWork( hb_work_object_t * w, hb_buffer_t ** buf_in, case FF_SI_TYPE: case FF_I_TYPE: { + buf->flags |= HB_FRAME_REF; if ( pv->context->coded_frame->key_frame ) { buf->frametype = HB_FRAME_IDR; @@ -525,9 +527,14 @@ int encavcodecWork( hb_work_object_t * w, hb_buffer_t ** buf_in, default: { if ( pv->context->coded_frame->key_frame ) + { + buf->flags |= HB_FRAME_REF; buf->frametype = HB_FRAME_KEY; + } else + { buf->frametype = HB_FRAME_REF; + } } break; } buf = process_delay_list( pv, buf ); |