Jump to content

A question about Hi-Res output and it's nuances


dark_skeleton

Recommended Posts

Not really a bug report (yet?) as I'm trying to gather info first... Figured I'd post in General for now. Please move if appropriate

I've recently had a high quality headset arrive and I'm trying to get my head around how to actually push the sound to it without quality loss, for no other reason than because I want to try it out. Disclaimer: I'm not expecting to hear 24bit or 96kHz because I know that's not how this works. I just can't seem to push the audio to the headset in the same quality as the original file is.

  • Headphones: Drop x THX Panda
  • File: 24bit/96kHz FLAC
  • Phone: Pixel 4 XL / Android 11
  • Poweramp: b883-arm64 [883004-67f9b39d]

I've confirmed codec being used is max quality LDAC. I've enabled Hi-Res output. At first it was resampling to 48kHz right after decoding but I worked around it by adjusting sample rate of the output in this menu manually to 96kHz.

Even after all that it's still doing the 96>48>96 for no good reason, although in a different step now (Output). On the bright side it sticks with at least 24 bits at every step

In the sample rate selection I can see the 'Actual sample rate is defined by the device' but it's not clear if that means the phone or headphones? Even when Selected is 96kHz, Using is still 48kHz, regardless if I use BT, direct USB-C cable to headphones or a USB-C to 3.5mm adapter

Any ideas on how to get this sorted appreciated. Thanks!

 

EDIT: Figured it out, see my post below

Link to comment
Share on other sites

Thanks for replying. Any way to verify whether or not this is the case? I'd assume a Google phone with stock OS would not have any groupings specifically locked?

This would be even weirder considering stock Android has had native 32bit 96kHz LDAC support since Android 10, with Android 11 actually differentiating between supported and unsupported ones in developer menus

Looking at detected flags in Poweramp's advanced audio settings looks like everything is A-OK

EDIT: Same result with my spare Pixel 2 XL

EDIT2: https://source.android.com/devices/audio/highres-effects?hl=en

 

21:57:42.909 v3-build-883-arm64-play
Device: google Google Pixel 4 XL coral coral "coral" coral RP1A.200720.009 [arm64-v8a, armeabi-v7a, armeabi]

msmnile is_snapdragon
FAILED to read=/vendor/etc/audio_output_policy.conf
reading=/vendor/etc/audio_io_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
USB can handle Hi-Res - sdk=30
OK flags=0x874616600000000
FLAG_VARIANT_DIRECT_HD
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
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

 

Link to comment
Share on other sites

Figured it out. A2DP BT Audio is Hardware accelerated on Google Pixels and that's what forces `Direct HD` to work in a max of 24bit/48kHz. After going into developer settings and enabling `Disable Bluetooth A2DP hardware offload` I can now natively achieve 32bit/96kHz over Bluetooth LDAC. USB-C is still limited to 24/48 but I can live with that (this is the same as on PC, might be a headset thing idk)

89154474_2020-9-28_3-7-502.thumb.PNG.4fbd50eee2e6e934b09c645471f14db8.PNG

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...