#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 stevenliu): Replying to [comment:12 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); > } > }}} That is not ceil: static int get_int_from_double(double val) { return (int)((val - (int)val) >= 0.001) ? (int)(val + 1) : (int)val; } or can you reproduce the bug of the EXT_X_TARGETDURATION *LESS* than 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 = (int)round(en->duration); > } > }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/6533#comment:13> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac