On 11/20/18 11:03 PM, Andrey Semashev wrote: > When stream time bases are very fine grained (e.g. nanoseconds), 32-bit > segment duration may overflow for even for rather small segment duration > (about 4 seconds long). Therefore we use 64-bit values for segment duration. > --- > libavformat/dashenc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c > index d151921175..8d0bc4baa2 100644 > --- a/libavformat/dashenc.c > +++ b/libavformat/dashenc.c > @@ -59,7 +59,7 @@ typedef struct Segment { > int64_t start_pos; > int range_length, index_length; > int64_t time; > - int duration; > + int64_t duration; > int n; > } Segment; > > @@ -428,7 +428,7 @@ static void output_segment_list(OutputStream *os, > AVIOContext *out, AVFormatCont > cur_time = seg->time; > avio_printf(out, "t=\"%"PRId64"\" ", seg->time); > } > - avio_printf(out, "d=\"%d\" ", seg->duration); > + avio_printf(out, "d=\"%"PRId64"\" ", seg->duration); > while (i + repeat + 1 < os->nb_segments && > os->segments[i + repeat + 1]->duration == > seg->duration && > os->segments[i + repeat + 1]->time == os->segments[i > + repeat]->time + os->segments[i + repeat]->duration) > @@ -1149,7 +1149,7 @@ static int dash_write_header(AVFormatContext *s) > } > > static int add_segment(OutputStream *os, const char *file, > - int64_t time, int duration, > + int64_t time, int64_t duration, > int64_t start_pos, int64_t range_length, > int64_t index_length, int next_exp_index) > {
LGTM. Thanks and regards, Karthick _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel