Search the Community
Showing results for tags 'deep_buffer'.
Poweramp build number: 15:33:10.023 build-911-arm64-play Device: Xiaomi Xiaomi MI 8 dipper sdm845 "qcom" dipper RQ3A.210905.001 [arm64-v8a, armeabi-v7a, armeabi] Android 11, PixelExperience custom rom Steps to reproduce: When I set up Hi-Res output active for Wired-Headphones, selecting 44.1 KHz sampling frequency, No DVD, No Gain, No Eq, No Attenuation, and I play a 44.1 mp3 file, Audio Info shows Without Resample, DSP shows Float64/32 bit, 44.1 khz, but Output shows Hi-Res Output Direct HD 10 24 bit 48 khz. On Wired-Headphones settings, Hi-Res On, Sampling Freq, Selected: 44.1 Using: 48 khz. "The sampling frequency is being defined by the device" Bit Depth: 24 bit. This is consistent with a dumpsys media.audio_flinger which indicates MIXER OUT and DEEP_BUFFER at 48 Khz instead of DIRECT or DIRECT_PCM at 44.1 Khz. Output > Advanced > Detected Audio Output Log shows: sdm845 is_snapdragon reading=/vendor/etc/audio_output_policy.conf has direct_pcm_24, sampling_rates=44100|48000|88200|96000|176400|192000|352800|384000 AUDIO_OUTPUT_FLAG_DIRECT direct_pcm_24 has direct_pcm_24 formats=AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT FLAG_VARIANT_DIRECT_HD via direct_pcm_24 forcing FLAG_DLFCN FLAG_NEEDS_DEEP_BUFFER FLAG_NEEDS_EXTRA_SLEEPS => FLAG_VARIANT_DIRECT_HD_10_STREAM USB can handle Hi-Res - sdk=30 OK flags=0xe74616600008000 FLAG_VARIANT_DIRECT_HD_10_STREAM FLAG_SUPPORTS_PCM_8_24 FLAG_SUPPORTS_PCM_24 FLAG_SUPPORTS_PCM_32 FLAG_SUPPORTS_UNITY_GAIN_STREAM FLAG_SUPPORTS_USB FLAG_NEEDS_EXTRA_SLEEPS FLAG_SUPPORTS_LDAC FLAG_DLFCN FLAG_NEEDS_DEEP_BUFFER FLAG_ALLOW_DVC_EFFECT FLAG_BT_DVC_EFFECT PA_OUTPUT_CAP_NEEDS_VOL_UI INTERNAL_OUTPUT_FLAG_SR_384K INTERNAL_OUTPUT_FLAG_SR_352K INTERNAL_OUTPUT_FLAG_SR_192K INTERNAL_OUTPUT_FLAG_SR_176K INTERNAL_OUTPUT_FLAG_SR_96K INTERNAL_OUTPUT_FLAG_SR_88K INTERNAL_OUTPUT_FLAG_SR_48K INTERNAL_OUTPUT_FLAG_SR_44K I have several questions: 1) Why is it required reading=/vendor/etc/audio_output_policy.conf when .conf files are deprecated since Android 7 and not /vendor/etc/audio_policy_configuration.xml instead? If I delete /vendor/etc/audio_output_policy.conf the log complains about this file and Settings loses Hi-Res output option. 2) Why is it enforcing deep_buffer: forcing FLAG_DLFCN FLAG_NEEDS_DEEP_BUFFER ? Even if I set: audio.deep_buffer.media=false media.stagefright.audio.deep=false vendor.audio.feature.deepbuffer_as_primary.enable=false in my build.prop, audioflinger dumpsys reports MIXER out and DEEP_BUFFER resample at 48 KHz, as configured in both audio_output_policy.conf and audio_policy_configuration.xml. However, it should choose DIRECT_PCM flag by Hi-Res output device. (Or even COMPRESSED_OFFLOAD that supports 44.1 unsampled out by the DSP). Is there any way to set or force DIRECT_PCM flag? If I delete DEEP_BUFFER in audio_output_policy.conf or in audio_policy_configuration.xml it will chose PRIMARY flag and output to Android MIXER anyway, resampling at 48 Khz. P.D. I must say that on previous MIUI stock rom on Android 10 direct_pcm worked right since my phone has a Qualcomm Aqstic double 44.1/48 DSP chip.