[FFmpeg-devel] [PATCH] avfilter/avf_concat: fix EOF timestamp

Nicolas George george at nsup.org
Tue Jul 27 00:15:28 EEST 2021


Paul B Mahol (12021-07-26):
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
>  libavfilter/avf_concat.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c
> index cb46f52a04..f7d3889dfa 100644
> --- a/libavfilter/avf_concat.c
> +++ b/libavfilter/avf_concat.c
> @@ -397,12 +397,16 @@ static int activate(AVFilterContext *ctx)
>      /* Forward status change */
>      if (cat->cur_idx < ctx->nb_inputs) {
>          for (i = 0; i < ctx->nb_outputs; i++) {
> -            ret = ff_inlink_acknowledge_status(ctx->inputs[cat->cur_idx + i], &status, &pts);

> +            AVFilterLink *inlink = ctx->inputs[cat->cur_idx + i];
> +
> +            ret = ff_inlink_acknowledge_status(inlink, &status, &pts);

Thanks for the change.

>              /* TODO use pts */
>              if (ret > 0) {
>                  close_input(ctx, cat->cur_idx + i);
>                  if (cat->cur_idx + ctx->nb_outputs >= ctx->nb_inputs) {
> -                    ff_outlink_set_status(ctx->outputs[i], status, pts);
> +                    ff_outlink_set_status(ctx->outputs[i], status,
> +                                          cat->delta_ts + av_rescale_q(pts, inlink->time_base,
> +                                                                       ctx->outputs[i]->time_base));

My first review also said:

"and re-affect pts
in the line before rather than inlining the computation."

This multiply-indented formula is hard to read and would be very
annoying to maintain.

                       pts = av_rescale_q(pts, inlink->time_base, ctx->outputs[i]->time_base);
		       pts += cat->delta_ts;

would be much nicer.

>                  }
>                  if (!cat->nb_in_active) {
>                      ret = flush_segment(ctx);

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20210726/edff9dbf/attachment.sig>


More information about the ffmpeg-devel mailing list