• Ganesh Ajjanagadde's avatar
    ffmpeg: avoid possible undefined behavior · 2f4374fa
    Ganesh Ajjanagadde authored
    On lines 1633,1634 FFABS(pts) is performed. However, if av_stream_get_end_pts
    returns AV_NOPTS_VALUE always, pts remains stuck at INT64_MIN, leading
    to undefined behavior on FFABS.
    
    One could conceive of a solution using FFNABS. However, such a solution
    has to deal with the implementation defined rounding of integer division
    with at least one negative operand in ANSI C89. C99 forces truncation to
    zero, but I am not sure that all of our platforms compile with full C99
    support, and in particular whether we can safely assume a fixed
    rounding behavior across all platforms.
    
    This solution is simple, and I doubt changing INT64_MIN to INT64_MIN + 1
    has any practical loss - if it is stuck at its initial value, the stream
    is messed up anyway.
    Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
    Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    2f4374fa
ffmpeg.c 149 KB