mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit '25b6837f7cacd691b19cbc12b9dad1ce84a318a1'
* commit '25b6837f7cacd691b19cbc12b9dad1ce84a318a1': replaygain: fix gain sign decoding Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
6520613139
@ -40,6 +40,7 @@ static int32_t parse_gain(const char *gain)
|
||||
char *fraction;
|
||||
int scale = 10000;
|
||||
int32_t mb = 0;
|
||||
int sign = 1;
|
||||
int db;
|
||||
|
||||
if (!gain)
|
||||
@ -47,6 +48,9 @@ static int32_t parse_gain(const char *gain)
|
||||
|
||||
gain += strspn(gain, " \t");
|
||||
|
||||
if (*gain == '-')
|
||||
sign = -1;
|
||||
|
||||
db = strtol(gain, &fraction, 0);
|
||||
if (*fraction++ == '.') {
|
||||
while (av_isdigit(*fraction) && scale) {
|
||||
@ -59,7 +63,7 @@ static int32_t parse_gain(const char *gain)
|
||||
if (abs(db) > (INT32_MAX - mb) / 100000)
|
||||
return INT32_MIN;
|
||||
|
||||
return db * 100000 + FFSIGN(db) * mb;
|
||||
return db * 100000 + sign * mb;
|
||||
}
|
||||
|
||||
static uint32_t parse_peak(const uint8_t *peak)
|
||||
|
Loading…
Reference in New Issue
Block a user