Message ID | 1478212274-21980-1-git-send-email-isasi@google.com |
---|---|
State | Superseded |
Headers | show |
On Thu, Nov 3, 2016 at 11:31 PM, Sasi Inguva <isasi-at-google.com@ffmpeg.org> wrote: > Signed-off-by: Sasi Inguva <isasi@google.com> > --- > libavcodec/utils.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index 87de15f..a33afaa 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -2391,7 +2391,9 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, > > if ((frame->flags & AV_FRAME_FLAG_DISCARD) && *got_frame_ptr && > !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { > - avctx->internal->skip_samples -= frame->nb_samples; > + if (avctx->internal->skip_samples >= frame->nb_samples) { > + avctx->internal->skip_samples -= frame->nb_samples; > + } > *got_frame_ptr = 0; > } > Shouldnt skip samples be zeroed then? Maybe something like: avctx->internal->skip_samples -= FFMAX(frame->nb_samples, avctx->internal->skip_samples); - Hendrik
yeah. that is better. On Thu, Nov 3, 2016 at 3:41 PM, Hendrik Leppkes <h.leppkes@gmail.com> wrote: > On Thu, Nov 3, 2016 at 11:31 PM, Sasi Inguva > <isasi-at-google.com@ffmpeg.org> wrote: > > Signed-off-by: Sasi Inguva <isasi@google.com> > > --- > > libavcodec/utils.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > > index 87de15f..a33afaa 100644 > > --- a/libavcodec/utils.c > > +++ b/libavcodec/utils.c > > @@ -2391,7 +2391,9 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext > *avctx, > > > > if ((frame->flags & AV_FRAME_FLAG_DISCARD) && *got_frame_ptr && > > !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { > > - avctx->internal->skip_samples -= frame->nb_samples; > > + if (avctx->internal->skip_samples >= frame->nb_samples) { > > + avctx->internal->skip_samples -= frame->nb_samples; > > + } > > *got_frame_ptr = 0; > > } > > > > Shouldnt skip samples be zeroed then? > > Maybe something like: > avctx->internal->skip_samples -= FFMAX(frame->nb_samples, > avctx->internal->skip_samples); > > - Hendrik > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 87de15f..a33afaa 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -2391,7 +2391,9 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, if ((frame->flags & AV_FRAME_FLAG_DISCARD) && *got_frame_ptr && !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { - avctx->internal->skip_samples -= frame->nb_samples; + if (avctx->internal->skip_samples >= frame->nb_samples) { + avctx->internal->skip_samples -= frame->nb_samples; + } *got_frame_ptr = 0; }
Signed-off-by: Sasi Inguva <isasi@google.com> --- libavcodec/utils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)