[FFmpeg-trac] #6533(avformat:reopened): Invalid EXT-X-TARGETDURATION in HLS
FFmpeg
trac at avcodec.org
Thu Aug 10 13:01:12 EEST 2017
#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):
Replying to [comment:13 stevenliu]:
> That is not ceil:
> {{{
> static int get_int_from_double(double val)
> {
> return (int)((val - (int)val) >= 0.001) ? (int)(val + 1) : (int)val;
> }
> }}}
If you check the code, it is ceiling float part of value is bigger than
0.001.
If you run it:
{{{
get_int_from_double(4.000) # 4
get_int_from_double(4.001) # 4
get_int_from_double(4.002) # 5
get_int_from_double(4.003) # 5
get_int_from_double(4.02) # 5
}}}
For anything bigger that X.001 it is ceiling:
{{{
4.0 => 4
4.1 => 5
4.2 => 5
4.3 => 5
4.4 => 5
4.5 => 5
4.6 => 5
4.7 => 5
4.8 => 5
4.9 => 5
5.0 => 5
2.1 => 3
}}}
> or can you reproduce the bug of the EXT_X_TARGETDURATION *LESS* than
en->duration ?
Since `get_int_from_double` is making ceiling the most of the time,
EXT_X_TARGETDURATION would be always bigger than en->duration
I propose one-line change that gives better result (more precise and the
one expected by user).
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6533#comment:14>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list