Repository navigation
feat: dynamic range compressor for dialogue boost / action limiting - #3117
Conversation
This class implements a real-time dynamic range compressor as an AudioProcessor, allowing for audio signal compression based on specified parameters. It includes methods for configuring audio format, processing input, and managing internal state.
Added support for dynamic range compression in audio sink.
Added a DynamicRangeCompressor instance to the audio sink for live parameter updates.
|
TESTING IS REMAINING = DRAFT FOR NOW |
|
It's almost done (Yeah it's W.I.P) |
Added constants for compressor settings in FullScreenPlayer.
Fix missing newline at the end of CS3IPlayer.kt
Added a new SwitchPreference for compressor settings.
Added new strings for compressor settings and updated existing ones.
Updated layout properties for compressor dialog and adjusted button configurations.
|
It's working now but needs little work |
Suppress deprecation warning for flush() method.
|
done! |
|
I will try to review tomorrow 👍 |
|
Whoops note for firelight I tired to make it competible with the new ui and the features option is gone I'm outside right now I cannot fix it can u do it for me while porting to new version |
|
Compatibile* |
Removed the 'compressor_enabled_key' string from resources.
Added newline characters for better formatting in legal notice text.
|
Trying to fix it i cannot figure out it |
Add newline at the end of SettingsPlayerScreen.kt
|
**I tested it and its finnally done! |
|
Apologies for the late review, I have been busy. I will try to review soon 👍 |
@fgmitesh Great feature overall! It would be super helpful if you could share a workaround tutorial for it. |
|
ik well fix |
|
@xx-ZORO-xx can u make a issue report |
|
pls |
Adds a real-time dynamic range compressor accessible via a new
"Compressor" button next to Tracks in the player controls.
Ported from VLC's compressor.c (LGPL, Steve Harris / Ronald Wright).
Implemented as a Media3 AudioProcessor injected into DefaultAudioSink
— sits directly in the audio pipeline, zero overhead when disabled.
Controls: threshold, ratio, attack, release, makeup gain.
All adjustable live via sliders with no player reload needed.
Settings are persisted across sessions.
Defaults: threshold -14dB, ratio 4:1, attack 10ms, release 50ms,
makeup +6dB.
Works with both nextlib and default decoder paths.
Full TV remote navigation. Correctly included in isDialogOpen().
This PR was developed with AI assistance (Claude by Anthropic) for implementation and bug hunting. All code has been tested on a real Android TV device and a phone.