gstreamer/subprojects/gst-plugins-base/tests/check
Roman Lebedev 8b1500d7ff volume: support arbitrarily-large positive gains
The current limit is `x10`, which allows just `+20 dB` of gain.

While it may seem sufficient, this came up as a problem
in a real-world, non-specially-engineered situation,
in strawberry's EBU R 128 loudness normalization.
(https://github.com/strawberrymusicplayer/strawberry/pull/1216)

There is an audio track (that was not intentionally engineered that way),
that has integrated loudness of `-38 LUFS`,
and if we want to normalize it's loudness to e.g. `-16 LUFS`,
which is a very reasonable thing to do,
we need to apply gain of `+22 dB`,
which is larger than `+20 dB`, and we fail...

I think it should allow at least `+96 dB` of gain,
and therefore should be at `10^(96/20) ~= 63096`.

But, i don't see why we need to put any specific restriction
on that parameter in the first place, other than the fact
that the fixed-point multiplication scheme does not support volume
larger than 15x-ish.

So let's just implement a floating-point fall-back path
that does not involve fixed-point multiplication
and lift the restriction altogether?

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063>
2023-08-07 13:17:45 +00:00
..
elements volume: support arbitrarily-large positive gains 2023-08-07 13:17:45 +00:00
generic Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
gst typefindfunctions: Fix WebVTT format detection 2022-02-11 13:48:45 +00:00
libs gl/colorconvert: use swizzle indices instead of chars 2023-07-28 03:29:08 +00:00
pipelines gl/tests: fix unused-but-set warning if built with gles2-only 2023-05-31 04:26:12 +00:00
gst-plugins-base.supp base: Fix a suppression that has a slightly different trace 2021-09-24 16:21:18 -03:00
meson.build meson: Always use forward slashes in defines with paths 2023-07-12 21:17:25 +00:00