[FFmpeg-devel] [PATCH] lavd/lavfi.c: Set time_base for 608 cc to container time_base.
Thilo Borgmann
thilo.borgmann at mail.de
Mon Aug 2 15:17:44 EEST 2021
Am 25.07.21 um 09:47 schrieb Thilo Borgmann:
> Am 16.07.21 um 09:45 schrieb Thilo Borgmann:
>> 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}
>>
>> Changed patch attached.
>
> Will push soon (tm) if there are no further comments.
Pushed, thanks!
-Thilo
More information about the ffmpeg-devel
mailing list