diff options
Diffstat (limited to 'src/decoder/plugins')
-rw-r--r-- | src/decoder/plugins/OpusTags.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/decoder/plugins/OpusTags.cxx b/src/decoder/plugins/OpusTags.cxx index 8baeccd2f..41c499aec 100644 --- a/src/decoder/plugins/OpusTags.cxx +++ b/src/decoder/plugins/OpusTags.cxx @@ -53,6 +53,14 @@ ScanOneOpusTag(const char *name, const char *value, long l = strtol(value, &endptr, 10); if (endptr > value && *endptr == 0) rgi->track.gain = double(l) / 256.; + } else if (rgi != nullptr && strcmp(name, "R128_ALBUM_GAIN") == 0) { + /* R128_ALBUM_GAIN is a Q7.8 fixed point number in + dB */ + + char *endptr; + long l = strtol(value, &endptr, 10); + if (endptr > value && *endptr == 0) + rgi->album.gain = double(l) / 256.; } tag_handler_invoke_pair(handler, ctx, name, value); |