-
-
Notifications
You must be signed in to change notification settings - Fork 32
Call recorder: improve output quality #38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 14
Are you sure you want to change the base?
Conversation
Change-Id: Ia006682f0ebfe18d828c3c2c91789c6af7527e52
Change-Id: I1bbb7a3ab46605e3507947cb60ea20e1dc4b6dd0
* The anti-falsing implementation from HumanInteractionClassifier
regularly prevents easy swipe to answer, requiring multiple
attempts until accepted.
Change-Id: Iebad27f9da7bb8fea6fc663dc99ac6c17d94ed5f
(cherry picked from commit 583e42df0f6f02f1a6c05dbdc5559f42e99c8727)
Change-Id: I920a9c259af5597dfd9a88a72e4ac54cb6e73f7a
Change-Id: I5b840ba257adda69882e1fe19a55510802c45106 Signed-off-by: Jesse Chan <jc@lineageos.org>
This prevents the white launch screen from appearing when the system theme is dark Change-Id: I1ee8ff493910578b5e5c9de67ea1f7390178051a
Change-Id: I9d2ee0bbc7d765e605d6f60c7866565c83dff295
The dark theme colors exist in java/com/android/dialer/theme/hidden/res/values/colors_dialer_light.xml that would be used with AOSPThemeModule. As the app uses framework dark theme instead of the module, copy the dark theme colors to values-night. Change-Id: I02a36b01ba581e62556ce6e0151ff0a35209467a
Ripple on dark should be lighter than background. Change-Id: I01993eac93f29609353ef1e1e9b5dc9a211a640c
* Keep styles that use actionBar as is because it uses normal actionbar * Set light statusbar attribute for some styles Change-Id: I8748aa4d12f8e0c68d14d514ea5a2bd4100ee3ca
* Make background color lighter * Update border radius * Update ripple to follow border radius * Remove the background color, use same as activity * Update the back-icon color to white/black for consistency Change-Id: I648a2bd0da47fec99d8a8457c70451e77ed9f8be
Change-Id: I53b6ee1c70925c50e91270e0b084d777dd8c06f6 Signed-off-by: Joey <joey@lineageos.org>
Change-Id: I0994bd1fd9922f18a08364a0d88426d88cb04b6a
Since incallui doesn't have BLUETOOTH permission, SecurityException occurs when using BluetoothDevice#getAliasName() API. To resolve this issue, add the BLUETOOTH permission. Test: manual - Checked that no crash occurred when switching to audio route with BT connected. Bug: 127236848 Change-Id: I65fa3d6275569e967d9608ac4b1c8ee175b2664d
Add missing permission declaration. Change-Id: Icc71b79831c3045b36ff43cc0884275c1c7cbbc8
Signed-off-by: r3g_5z <june@girlboss.ceo>
09-03 13:08:51.712 4496 4496 E MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.android.dialer.app.settings.DisplayOptionsSettingsFragment: calling Fragment constructor caused an exception 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: at android.app.Fragment.instantiate(Fragment.java:565) 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: at android.preference.PreferenceActivity.switchToHeaderInner(PreferenceActivity.java:1245) 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: at android.preference.PreferenceActivity.switchToHeader(PreferenceActivity.java:1296) 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: at android.preference.PreferenceActivity.onHeaderClick(PreferenceActivity.java:1093) 09-03 13:08:51.713 4496 4496 E MessageQueue-JNI: at com.android.dialer.app.settings.DialerSettingsActivity.onHeaderClick(DialerSettingsActivity.java:45) Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com> Change-Id: Idef793065ea422e7506f943bc76cd20e60e0a271
Co-authored-by: Danny Baumann <dannybaumann@web.de> Signed-off-by: r3g_5z <june@girlboss.ceo>
MediaRecorder dups the file descriptor that is passed to it. Leaked file descriptors were cleared out eventually by ParcelFileDescriptor finalizer.
reset() can throw an exception, despite docs not mentioning it.
This is achieved by making the whole button grid scrollable.
|
@PatrykMis How did you determine these values? It's not clear to me what the defaults are or the relation between the two values. Elsewhere, I see a lot of people using this for AAC, but maybe it doesn't make sense for speech: |
|
@thestinger The maximum audio frequency for HD Voice/VoLTE is approximately 8000 Hz (8 kHz), which corresponds to the Nyquist frequency for a 16 kHz sampling rate. The FDK AAC codec, which is used by Google, supports and recommends a maximum bitrate for 16 kHz mono input as I've committed. This is stated in the AAC Encoder manual. A 16 kHz sampling rate was chosen to avoid unnecessarily large files and to prevent oversampling. Higher sampling rates, such as 44.1 kHz, are generally used for high-fidelity music recordings but are not necessary for speech. Using a higher sampling rate for speech would result in larger file sizes without a corresponding increase in perceptible audio quality. |
|
What's the default sampling rate and bit rate both of these codecs? |
|
Defaults for AAC:
Defaults for AMR-WB:
The default sample rates for these two formats are also specified in the Note that if choosing AMR-WB, the sound is not being directly recorded from I have debugged and extensively tested this on non-GrapheneOS devices using BCR, which is a very well-written and maintained application. |
Noticeable difference especially for (but not limited to) VoLTE / HD Voice / WiFi Calling.
If call recording implementation has to be as minimal as possible, instead of implementing wav/flac for lossless recording (MediaRecorder doesn't support PCM recording natively) the highest possible quality for each format had been set.
Supersedes #34.