diff options
author | Martin Storsjö <martin@martin.st> | 2014-12-29 15:39:23 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2014-12-29 23:26:25 +0200 |
commit | b91a5757fcbf723da99b05b298a6f820271dbc2b (patch) | |
tree | ef728426c6e57240dc4a4efaf00c0d25ba5908b3 /libavformat/dashenc.c | |
parent | 50036c30df83b609bc5a95276f1287f8b9b8bdd6 (diff) | |
download | ffmpeg-b91a5757fcbf723da99b05b298a6f820271dbc2b.tar.gz |
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.c | 4 |
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 && |