mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avutil/mathematics: Do not treat INT64_MIN as positive in av_rescale_rnd
The code expects actual positive numbers and gives completely wrong results if INT64_MIN is treated as positive Instead clip it into the valid range that is add 1 and treat it as negative Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3a9cb18855
commit
25e37f5ea9
@ -71,8 +71,8 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd)
|
||||
rnd -= AV_ROUND_PASS_MINMAX;
|
||||
}
|
||||
|
||||
if (a < 0 && a != INT64_MIN)
|
||||
return -av_rescale_rnd(-a, b, c, rnd ^ ((rnd >> 1) & 1));
|
||||
if (a < 0)
|
||||
return -av_rescale_rnd(-FFMAX(a, -INT64_MAX), b, c, rnd ^ ((rnd >> 1) & 1));
|
||||
|
||||
if (rnd == AV_ROUND_NEAR_INF)
|
||||
r = c / 2;
|
||||
|
Loading…
x
Reference in New Issue
Block a user