#6533: Invalid EXT-X-TARGETDURATION in HLS -------------------------------------+------------------------------------ Reporter: tonn81 | Owner: Type: defect | Status: reopened Priority: normal | Component: avformat Version: unspecified | Resolution: Keywords: hls | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------
Comment (by tonn81): OK, let me be more specific. Specification says this rule must be followed: `all {round(chunk_duration) <= EXT_X_TARGETDURATION}` In current implementation, we have: `EXT_X_TARGETDURATION = ceil(max{chunk_duration})` It gives result that matches the specification (part about `less`) but not precise. I suggest to have: `EXT_X_TARGETDURATION = round(max{chunk_duration})` It gives result that matches the specification (part about `equal`) and precise. Also, that aligns with the value that user provided as input to ffmpeg (`-hls_time`) and allows to ignore small difference that HLS segmenter generates (e.g. `4.02` instead of `4.0`). Current implementation: {{{ for (en = hls->segments; en; en = en->next) { if (target_duration <= en->duration) # that would actually ceil target_duration = get_int_from_double(en->duration); } }}} Suggested implementation (pseudo-code): {{{ for (en = hls->segments; en; en = en->next) { if (target_duration < en->duration) # if chunk duration is bigger than target duration -- round it and use it, # it could be also the same value as target_duration if rounded to lower value target_duration = round(en->duration); } }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/6533#comment:12> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac