Commit b91a5757 authored by Martin Storsjö's avatar Martin Storsjö

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: 's avatarMartin Storsjö <martin@martin.st>
parent 50036c30
...@@ -214,8 +214,10 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, DASHContext ...@@ -214,8 +214,10 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, DASHContext
Segment *seg = os->segments[i]; Segment *seg = os->segments[i];
int repeat = 0; int repeat = 0;
avio_printf(out, "\t\t\t\t\t\t<S "); 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, "t=\"%"PRId64"\" ", seg->time);
}
avio_printf(out, "d=\"%d\" ", seg->duration); avio_printf(out, "d=\"%d\" ", seg->duration);
while (i + repeat + 1 < os->nb_segments && while (i + repeat + 1 < os->nb_segments &&
os->segments[i + repeat + 1]->duration == seg->duration && os->segments[i + repeat + 1]->duration == seg->duration &&
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment