PR #21481 opened by zotan URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21481 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21481.patch
The DASH specification stipulates that "All Representations shall have equal timescale values in all @timescale attributes and 'tkhd' timescale fields in Initialization Segments". This commit makes sure ffmpeg implements this behavior. This fixes https://trac.ffmpeg.org/ticket/10134 >From bddd0b670aa4383ce868257775b053e2bea8751d Mon Sep 17 00:00:00 2001 From: Laura Hausmann <[email protected]> Date: Thu, 15 Jan 2026 23:37:12 +0100 Subject: [PATCH] avformat/dashenc: fix SegmentTemplate timescale with use_timeline 0 The DASH specification stipulates that "All Representations shall have equal timescale values in all @timescale attributes and 'tkhd' timescale fields in Initialization Segments". This commit makes sure ffmpeg implements this behavior. --- libavformat/dashenc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index da7725fc3f..425d489460 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -518,10 +518,10 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, AVFormatCont get_start_index_number(os, c, &start_index, &start_number); if (c->use_template) { - int timescale = c->use_timeline ? os->ctx->streams[0]->time_base.den : AV_TIME_BASE; + int timescale = os->ctx->streams[0]->time_base.den; avio_printf(out, "\t\t\t\t<SegmentTemplate timescale=\"%d\" ", timescale); if (!c->use_timeline) { - avio_printf(out, "duration=\"%"PRId64"\" ", os->seg_duration); + avio_printf(out, "duration=\"%"PRId64"\" ", os->seg_duration / AV_TIME_BASE * timescale); if (c->streaming && os->availability_time_offset) avio_printf(out, "availabilityTimeOffset=\"%.3f\" ", os->availability_time_offset); -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
