chenxiaolong / BCR

A Basic Call Recorder for rooted Android devices
GNU General Public License v3.0
1.5k stars 98 forks source link

Automatically detect supported sample rates for each codec #508

Closed chenxiaolong closed 3 months ago

chenxiaolong commented 3 months ago

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