Michael, what do you think of this patch?
I tried to reflect what the xvid decoder does for those N_VOP frame and in case it is not packed. On Tue, Oct 24, 2017 at 6:42 PM, Thierry Foucu <tfo...@gmail.com> wrote: > Changed the return value when no VOD were encoded in Mpeg4 bistream. > And if we do have already a decoded frames and we are not in xvid_packed > mode, output the existing decoded frame instead of nothing. > --- > libavcodec/h263dec.c | 9 ++++++++- > libavcodec/mpeg4videodec.c | 2 +- > libavcodec/mpegutils.h | 1 + > 3 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c > index c7cf4bc0c2..394a366f9c 100644 > --- a/libavcodec/h263dec.c > +++ b/libavcodec/h263dec.c > @@ -506,8 +506,15 @@ retry: > s->height= avctx->coded_height; > } > } > - if (ret == FRAME_SKIPPED) > + if (ret == FRAME_SKIPPED || ret == FRAME_NOT_CODED) { > + if (s->next_picture_ptr && ret == FRAME_NOT_CODED && > !s->divx_packed) { > + if ((ret = av_frame_ref(pict, s->next_picture_ptr->f)) < 0) { > + return ret; > + } > + *got_frame = 1; > + } > return get_consumed_bytes(s, buf_size); > + } > > /* skip if the header was thrashed */ > if (ret < 0) { > diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c > index 82c4f8fc8c..3a9ed12971 100644 > --- a/libavcodec/mpeg4videodec.c > +++ b/libavcodec/mpeg4videodec.c > @@ -2394,7 +2394,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, > GetBitContext *gb) > if (get_bits1(gb) != 1) { > if (s->avctx->debug & FF_DEBUG_PICT_INFO) > av_log(s->avctx, AV_LOG_ERROR, "vop not coded\n"); > - return FRAME_SKIPPED; > + return FRAME_NOT_CODED; > } > if (ctx->new_pred) > decode_new_pred(ctx, gb); > diff --git a/libavcodec/mpegutils.h b/libavcodec/mpegutils.h > index 1bf73fea02..97786135c6 100644 > --- a/libavcodec/mpegutils.h > +++ b/libavcodec/mpegutils.h > @@ -32,6 +32,7 @@ > * Return value for header parsers if frame is not coded. > * */ > #define FRAME_SKIPPED 100 > +#define FRAME_NOT_CODED 101 > > /* picture type */ > #define PICT_TOP_FIELD 1 > -- > 2.15.0.rc0.271.g36b669edcc-goog > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel