[FFmpeg-devel] [PATCH] lavf/dashenc: Fix segment duration overflow on fine time bases.

Carl Eugen Hoyos ceffmpeg at gmail.com
Thu Nov 22 15:05:47 EET 2018


2018-11-22 7:43 GMT+01:00, Jeyapal, Karthick <kjeyapal at akamai.com>:
>
> 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.

Please commit the patch if it is ok.

Carl Eugen


More information about the ffmpeg-devel mailing list