* [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