On Sun, Feb 4, 2018 at 3:32 PM, Paul B Mahol <one...@gmail.com> wrote: > On 2/4/18, Muhammad Faiz <mfc...@gmail.com> wrote: >> On Sat, Feb 3, 2018 at 9:22 PM, Niklas Haas <ffm...@haasn.xyz> wrote: >>> From: Niklas Haas <g...@haasn.xyz> >>> >>> Right now, the PTS always starts out as 0, which causes problems on a >>> seek or when inserting this filter mid-stream. >>> >>> Initialize it instead to AV_NOPTS_VALUE and copy the PTS from the first >>> frame instead if this is the case. >>> --- >>> libavfilter/af_loudnorm.c | 5 ++++- >>> 1 file changed, 4 insertions(+), 1 deletion(-) >>> >>> diff --git a/libavfilter/af_loudnorm.c b/libavfilter/af_loudnorm.c >>> index a7f11cbe6e..314b25fa39 100644 >>> --- a/libavfilter/af_loudnorm.c >>> +++ b/libavfilter/af_loudnorm.c >>> @@ -431,6 +431,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame >>> *in) >>> av_frame_copy_props(out, in); >>> } >>> >>> + if (s->pts == AV_NOPTS_VALUE) >>> + s->pts = in->pts; >>> + >>> out->pts = s->pts; >>> src = (const double *)in->data[0]; >>> dst = (double *)out->data[0]; >>> @@ -763,7 +766,7 @@ static int config_input(AVFilterLink *inlink) >>> inlink->partial_buf_size = frame_size(inlink->sample_rate, 3000); >>> } >>> >>> - s->pts = >>> + s->pts = AV_NOPTS_VALUE; >>> s->buf_index = >>> s->prev_buf_index = >>> s->limiter_buf_index = 0; >>> -- >>> 2.16.1 >> >> Output pts ideally should be based on input pts in all cases >> (not only in the first pts case), because input pts may be non-monotonic. > > That have nothing to do with this patch.
Of course, if ideal fix isn't trivial, this fix is enough. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel