diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index b5b3734944..7ce82f8011 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -1092,8 +1092,9 @@ static int ff_filter_frame_needs_framing(AVFilterLink *link, AVFrame *frame) return 0; } av_frame_copy_props(pbuf, frame); - pbuf->pts = frame->pts + - av_rescale_q(inpos, samples_tb, link->time_base); + pbuf->pts = frame->pts; + if (pbuf->pts != AV_NOPTS_VALUE) + pbuf->pts += av_rescale_q(inpos, samples_tb, link->time_base); pbuf->nb_samples = 0; } nb_samples = FFMIN(insamples,