[FFmpeg-devel] [PATCH] lavd/lavfi.c: Set time_base for 608 cc to container time_base.

Anton Khirnov anton at khirnov.net
Tue Jul 13 21:23:22 EEST 2021


Quoting Thilo Borgmann (2021-06-28 15:12:11)
> Hi,
> 
> > when transcoding 608 cc, the cc stream frame pts is set to the same value as its container frame's pts. However, the time_base is always set to 1/90000 (default) in the initialization stage. Which causes timing issues when the container time_base is actually not 1/90000.
> 
> identical v2 attached that also includes updates to the FATE references affected by the patch (and failed with patchwork of course).
> 
> -Thilo
> 
> From 41b619e5d5083ca59a41cca9cb515190939d6573 Mon Sep 17 00:00:00 2001
> From: Yun Zhang <yunz at devvm259.frc1.facebook.com>
> Date: Mon, 28 Jun 2021 15:09:42 +0200
> Subject: [PATCH] lavd/lavfi.c: Set time_base for 608 cc to container
>  time_base.
> 
> Suggested-By: ffmpeg at fb.com
> ---
>  libavdevice/lavfi.c            |  3 +++
>  tests/ref/fate/sub-cc          |  4 ++--
>  tests/ref/fate/sub-cc-realtime | 38 +++++++---------------------------
>  3 files changed, 13 insertions(+), 32 deletions(-)
> 
> diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
> index 57d977e7ce..e07f20c872 100644
> --- a/libavdevice/lavfi.c
> +++ b/libavdevice/lavfi.c
> @@ -100,6 +100,7 @@ static int create_subcc_streams(AVFormatContext *avctx)
>      LavfiContext *lavfi = avctx->priv_data;
>      AVStream *st;
>      int stream_idx, sink_idx;
> +    AVRational *time_base;
>  
>      for (stream_idx = 0; stream_idx < lavfi->nb_sinks; stream_idx++) {
>          sink_idx = lavfi->stream_sink_map[stream_idx];
> @@ -109,6 +110,8 @@ static int create_subcc_streams(AVFormatContext *avctx)
>                  return AVERROR(ENOMEM);
>              st->codecpar->codec_id = AV_CODEC_ID_EIA_608;
>              st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE;
> +            time_base = &avctx->streams[stream_idx]->time_base;
> +            avpriv_set_pts_info(st, 64, time_base->num, time_base->den);

This look like an unnecessariily complicated way to write
st->time_base.{num,den}

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list