From 7c33ad19fd55fea2d39d040c7ebdcde0e1e9d864 Mon Sep 17 00:00:00 2001 From: Loren Merritt Date: Tue, 3 May 2005 06:53:59 +0000 Subject: [PATCH] clear the DPB after seeking. Originally committed as revision 4174 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 7fdae20b7c..e315818f19 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3457,6 +3457,16 @@ static void idr(H264Context *h){ h->short_ref_count=0; } +/* forget old pics after a seek */ +static void flush_dpb(AVCodecContext *avctx){ + H264Context *h= avctx->priv_data; + int i; + for(i=0; i<16; i++) + h->delayed_pic[i]= NULL; + h->delayed_output_pic= NULL; + idr(h); +} + /** * * @return the removed picture or NULL if an error occures @@ -7208,6 +7218,7 @@ AVCodec h264_decoder = { decode_end, decode_frame, /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, + .flush= flush_dpb, }; AVCodecParser h264_parser = {