Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PR] avformat/dashenc: fix SegmentTemplate timescale with use_timeline 0 (PR #21481)
@ 2026-01-15 22:55 zotan via ffmpeg-devel
  0 siblings, 0 replies; only message in thread
From: zotan via ffmpeg-devel @ 2026-01-15 22:55 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: zotan

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 <laura@hausmann.dev>
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 -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-01-15 22:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-15 22:55 [FFmpeg-devel] [PR] avformat/dashenc: fix SegmentTemplate timescale with use_timeline 0 (PR #21481) zotan via ffmpeg-devel

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git