From 269d067f6662f2937105d44ba93f2cb49ebc3540 Mon Sep 17 00:00:00 2001 From: jstebbins Date: Mon, 28 Mar 2011 17:47:21 +0000 Subject: 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 --- libhb/encavcodec.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libhb') 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 ); -- cgit v1.2.3