On Mon, Jul 03, 2017 at 09:21:50AM -0700, Aman Gupta wrote: > From: Aman Gupta <a...@tmm1.net> > > Replicates the logic used in the wrap_hw_buffer path to wrap_sw_buffer > as well. > > This fixes decoding issues observed on AMLogic devices with > OMX.amlogic.mpeg2.decoder.awesome, where the decoder would spit out a > constant stream of "mPtsRecoveryCount" errors and decoded frames were > returned in the incorrect order. > --- > libavcodec/mediacodecdec_common.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/mediacodecdec_common.c > b/libavcodec/mediacodecdec_common.c > index 1263188d34..316cdba9c1 100644 > --- a/libavcodec/mediacodecdec_common.c > +++ b/libavcodec/mediacodecdec_common.c > @@ -282,10 +282,16 @@ static int mediacodec_wrap_sw_buffer(AVCodecContext > *avctx, > * on the last avpacket received which is not in sync with the frame: > * * N avpackets can be pushed before 1 frame is actually returned > * * 0-sized avpackets are pushed to flush remaining frames at EOS */ > - frame->pts = info->presentationTimeUs; > + if (avctx->pkt_timebase.num && avctx->pkt_timebase.den) { > + frame->pts = av_rescale_q(info->presentationTimeUs, > + av_make_q(1, 1000000), > + avctx->pkt_timebase); > + } else { > + frame->pts = info->presentationTimeUs; > + } > #if FF_API_PKT_PTS > FF_DISABLE_DEPRECATION_WARNINGS > - frame->pkt_pts = info->presentationTimeUs; > + frame->pkt_pts = frame->pts; > FF_ENABLE_DEPRECATION_WARNINGS > #endif > frame->pkt_dts = AV_NOPTS_VALUE; > @@ -613,7 +619,7 @@ int ff_mediacodec_dec_decode(AVCodecContext *avctx, > MediaCodecDecContext *s, > memcpy(data, pkt->data + offset, size); > offset += size; > > - if (s->surface && avctx->pkt_timebase.num && > avctx->pkt_timebase.den) { > + if (avctx->pkt_timebase.num && avctx->pkt_timebase.den) { > pts = av_rescale_q(pts, avctx->pkt_timebase, av_make_q(1, > 1000000)); > } > > -- > 2.11.0 (Apple Git-81)
Applied. Thanks. [...] -- Matthieu B. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel