Did they really implement (limited) hi-res output lately? AFAIK, the Android version of foobar2000 only supports decoding of such content.
I thought the Hiby player also played the hi-res files without downsampling. At least it did with the old X7 according to the thread. Anyhow I use it a lot and like the way it sounds.
I've been using adb to analyze the audio output when different apps are playing. Specifically, "adb shell dumpsys media.audio_flinger". There are 2 audio output channel options: Mixer and direct. I imagine that just funneling audio into Android by default uses mixer, while apps set for direct output or that have their own audio engines use direct.
Let's look at some audio output data when playing 192 KHz, 24-bit FLAC.
For example, when playing in Neutron..
Code:
Output thread AudioOut_4 Direct 0x41489300:
Normal frame count: 8192
Last write occurred (msecs): 16
Total writes: 43138
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0x415aa000
Mixer buffer: 0x4157d000
Effect buffer: 0x4158d000
Fast track availMask=0xfe
I/O handle: 4
TID: 450
Standby: no
Sample rate: 192000
HAL frame count: 4096
HAL buffer size: 32768 bytes
Channel Count: 2
Channel Mask: 0x00000003 (front-left, front-right)
Format: 0x3 (pcm32)
Frame size: 8
Pending config events: none
Stream volumes in dB: 0:0, 1:-24, 2:-6, 3:0, 4:-6, 5:-6, 6:0, 7:-24, 8:-18, 9:0, 10:0, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0
1 Tracks of which 1 are active
Name Active Client Type Fmt Chn mask Session fCount S F SRate L dB R dB Server Main buf Aux Buf Flags UndFrmCnt
none yes 23704 3 00000003 00000003 26 65536 A 3 192000 0 0 002E8000 0x415e7000 0x0 0x000 0
0 Effect Chains
We get information about the audio output, including the status of the channel (Standby: no, indicating audio is being output), the sample rate (Sample rate: 192000), and the output type (Format: 0x3 (pcm32)). Interestingly, Neutron seems to always output at a 32-bit bit depth on the FiiO X7II (for PCM, I don't use DSD).
If we look at the same files on Foobar2000 Mobile, we see that it gets output as 96KHz, 16-bit.
Code:
Output thread AudioOut_4 Direct 0x41489300:
Normal frame count: 8192
Last write occurred (msecs): 15
Total writes: 71660
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0x4156d000
Mixer buffer: 0x4157d000
Effect buffer: 0x4158d000
Fast track availMask=0xfe
I/O handle: 4
TID: 450
Standby: no
Sample rate: 96000
HAL frame count: 4096
HAL buffer size: 16384 bytes
Channel Count: 2
Channel Mask: 0x00000003 (front-left, front-right)
Format: 0x1 (pcm16)
Frame size: 4
Pending config events: none
Stream volumes in dB: 0:0, 1:-24, 2:-6, 3:0, 4:-6, 5:-6, 6:0, 7:-24, 8:-18, 9:0, 10:0, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0
1 Tracks of which 1 are active
Name Active Client Type Fmt Chn mask Session fCount S F SRate L dB R dB Server Main buf Aux Buf Flags UndFrmCnt
none yes 27335 3 00000001 00000003 46 96000 A 3 96000 0 0 0024F000 0x415bd000 0x0 0x000 0
0 Effect Chains
FiiO Music, of course, outputs natively.
For HibyMusic, it gets output as 48KHz, 16-bit. I think it might be able to output natively through a USB DAC, but I don't think it outputs natively on the X7II's DAC. The settings when going to "Fixed output sampling rate" seem to confirm this, given it only lists 44.1KHz and 48KHz as supported options.
GoneMad outputs as 48KHz, 16-bit.