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]

Reply via email to