From 87f46ff35a96d3405217bdf7c0cf443603722d75 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Tue, 29 Apr 2003 13:47:48 +0000 Subject: sometimes old frames are displayed after a seek (reset) mark them as bad so that doesn't happen obs: i'm aware this is a delicate code, please report if this change causes any problems (like with dvd menus). i hope it won't. CVS patchset: 4706 CVS date: 2003/04/29 13:47:48 --- src/libmpeg2/decode.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index d44940e3a..88d520e12 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -601,9 +601,18 @@ void mpeg2_reset (mpeg2dec_t * mpeg2dec) { mpeg2_discontinuity(mpeg2dec); - if( !picture->mpeg1 ) + if( !picture->mpeg1 ) { mpeg2dec->is_wait_for_ip_frames = 2; - else { + + /* mark current frames as bad so they won't make to screen */ + if ( picture->current_frame ) + picture->current_frame->bad_frame=1; + if (picture->forward_reference_frame ) + picture->forward_reference_frame->bad_frame=1; + if (picture->backward_reference_frame) + picture->backward_reference_frame->bad_frame=1; + + } else { /* to free reference frames one also needs to fix slice.c to * abort when they are NULL. unfortunately it seems to break * DVD menus. -- cgit v1.2.3