[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