Some devices unfortunately disable common sample rates that are normally supported in AOSP's software encoders. This commit reworks all of BCR's MediaCodec-based formats to query for the list of supported sample rates instead of relying on a hardcoded list. If BCR's default sample rate for a format is not supported, the closest supported sample rate will be used. The same applies for Android upgrades that remove support for the sample rate previously chosen by the user.
These queries are fast enough to be unnoticeable on Pixel devices. Hopefully other OEMs don't make modifications that slow this down, like they do for so many other things.
Some devices unfortunately disable common sample rates that are normally supported in AOSP's software encoders. This commit reworks all of BCR's MediaCodec-based formats to query for the list of supported sample rates instead of relying on a hardcoded list. If BCR's default sample rate for a format is not supported, the closest supported sample rate will be used. The same applies for Android upgrades that remove support for the sample rate previously chosen by the user.
These queries are fast enough to be unnoticeable on Pixel devices. Hopefully other OEMs don't make modifications that slow this down, like they do for so many other things.
Fixes: #507