[FFmpeg-devel] [PATCH] avformat/dashenc: Fix the EXT-X-TARGETDURATION as per the hls specification

Steven Liu lingjiujianke at gmail.com
Fri Dec 22 01:40:52 EET 2017


2017-12-22 7:37 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
> 2017-12-21 18:09 GMT+08:00 Karthick J <kjeyapal at akamai.com>:
>> From: Karthick Jeyapal <kjeyapal at akamai.com>
>>
>> The HLS specification states the following about EXT-X-TARGETDURATION
>>
>> 4.3.3.1.  EXT-X-TARGETDURATION
>>
>>    The EXT-X-TARGETDURATION tag specifies the maximum Media Segment
>>    duration.  The EXTINF duration of each Media Segment in the Playlist
>>    file, when rounded to the nearest integer, MUST be less than or equal
>>    to the target duration; longer segments can trigger playback stalls
>>    or other errors.  It applies to the entire Playlist file.  Its format
>>    is:
>>
>>    #EXT-X-TARGETDURATION:<s>
>>
>>    where s is a decimal-integer indicating the target duration in
>>    seconds.  The EXT-X-TARGETDURATION tag is REQUIRED.
>>
>> Currently the dashenc rounds the duration to the next integer,
>> rather than rounding the duration to the nearest integer.
>> ---
>>  libavformat/dashenc.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>> index 5687530..5368a23 100644
>> --- a/libavformat/dashenc.c
>> +++ b/libavformat/dashenc.c
>> @@ -358,7 +358,7 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, DASHContext
>>              Segment *seg = os->segments[i];
>>              double duration = (double) seg->duration / timescale;
>>              if (target_duration <= duration)
>> -                target_duration = hls_get_int_from_double(duration);
>> +                target_duration = lrint(duration);
>>          }
>>
>>          ff_hls_write_playlist_header(out_hls, 6, -1, target_duration,
>> --
>> 1.9.1
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
> LGTM, I have checked from HLS Team, Set the EXT-X-TARGETDURATION by
> print(EXTINF).

And will apply the old version modify hlsenc patch,


Thanks
>
>
> Thanks


More information about the ffmpeg-devel mailing list