summaryrefslogtreecommitdiff
path: root/libavformat/dashenc.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2014-12-29 15:39:23 +0200
committerMartin Storsjö <martin@martin.st>2014-12-29 23:26:25 +0200
commitb91a5757fcbf723da99b05b298a6f820271dbc2b (patch)
treeef728426c6e57240dc4a4efaf00c0d25ba5908b3 /libavformat/dashenc.c
parent50036c30df83b609bc5a95276f1287f8b9b8bdd6 (diff)
dashenc: Fix writing of timelines that don't start at t=0
When writing an explicit time, reset the cur_time variable to this value as well. This avoids writing excessive time attributes for each segment in the timeline, as long as the segments are continuous. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/dashenc.c')
-rw-r--r--libavformat/dashenc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index b4fd1949e7..7dd08ec646 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -214,8 +214,10 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, DASHContext
Segment *seg = os->segments[i];
int repeat = 0;
avio_printf(out, "\t\t\t\t\t\t<S ");
- if (i == start_index || seg->time != cur_time)
+ if (i == start_index || seg->time != cur_time) {
+ cur_time = seg->time;
avio_printf(out, "t=\"%"PRId64"\" ", seg->time);
+ }
avio_printf(out, "d=\"%d\" ", seg->duration);
while (i + repeat + 1 < os->nb_segments &&
os->segments[i + repeat + 1]->duration == seg->duration &&