From 5caae571ccadaaf00a90d4ec321c5ab4b4cc4191 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Tue, 12 Nov 2002 18:40:50 +0000 Subject: merge metronom's improvements (inform decoders about discontinuities) http://sourceforge.net/mailarchive/forum.php?thread_id=1297475&forum_id=7131 CVS patchset: 3250 CVS date: 2002/11/12 18:40:50 --- src/libmpeg2/decode.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/libmpeg2/decode.c') diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index 6fc38d98a..f0674512f 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -557,6 +557,21 @@ int mpeg2_decode_data (mpeg2dec_t * mpeg2dec, uint8_t * current, uint8_t * end, return ret; } +void mpeg2_discontinuity (mpeg2dec_t * mpeg2dec) { + picture_t *picture = mpeg2dec->picture; + + if( !picture ) + return; + + mpeg2dec->pts = 0; + if ( picture->current_frame ) + picture->current_frame->pts = 0; + if ( picture->forward_reference_frame ) + picture->forward_reference_frame->pts = 0; + if ( picture->backward_reference_frame ) + picture->backward_reference_frame->pts = 0; +} + void mpeg2_reset (mpeg2dec_t * mpeg2dec) { picture_t *picture = mpeg2dec->picture; @@ -564,7 +579,7 @@ void mpeg2_reset (mpeg2dec_t * mpeg2dec) { if( !picture ) return; - mpeg2dec->pts = 0; + mpeg2_discontinuity(mpeg2dec); if( !picture->mpeg1 ) mpeg2dec->is_sequence_needed = 1; -- cgit v1.2.3