From: Michael Niedermayer Date: Wed, 10 May 2006 10:57:27 +0000 (+0000) Subject: decoders should (IMHO) not duplicate frames, the application can do this if it wants X-Git-Tag: v0.5~12777 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=11b681687d01855c04758643171b7be527b420dc;p=platform%2Fupstream%2Flibav.git decoders should (IMHO) not duplicate frames, the application can do this if it wants Originally committed as revision 5355 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 52a04dccb..9b747b6d0 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -6900,7 +6900,7 @@ static int decode_slice(H264Context *h){ eos = get_cabac_terminate( &h->cabac ); if( ret < 0 || h->cabac.bytestream > h->cabac.bytestream_end + 1) { - av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d\n", s->mb_x, s->mb_y); + av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%d)\n", s->mb_x, s->mb_y, h->cabac.bytestream_end - h->cabac.bytestream); ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask); return -1; } @@ -7786,7 +7786,6 @@ static int decode_frame(AVCodecContext *avctx, int pics = 0; int out_of_order; int cross_idr = 0; - int dropped_frame = 0; int i; if(h->sps.bitstream_restriction_flag @@ -7829,12 +7828,11 @@ static int decode_frame(AVCodecContext *avctx, out = prev; if(out_of_order || pics > s->avctx->has_b_frames){ - dropped_frame = (out != h->delayed_pic[out_idx]); for(i=out_idx; h->delayed_pic[i]; i++) h->delayed_pic[i] = h->delayed_pic[i+1]; } - if(prev == out && !dropped_frame) + if(prev == out) *data_size = 0; else *data_size = sizeof(AVFrame);