I have started to look at the logs during playback. And found out that Bubbleupnp does not work when using local renderer (I have only used it for streaming previously).
BUT, Bubbleupnp does work when forced to use its own FLAC decoder.
I have attached logcat logs without filters; which means that it unfortunately contains a lot of other events as well.I need to sort this out, but if anyone else has time and feels like it:
With system FLAC decoder:
Code:
D/AudioSink( 470): setVolume(1.000000, 1.000000)
D/NuPlayerDriver( 470): start(0xf3031400)
D/AudioPolicyManager( 470): startOutput() output 2, stream 3, session 208
D/AudioFlinger( 470): ThreadBase::setParameters() routing=2
D/audio_hw_primary( 470): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2
D/audio_hw_extn( 470): audio_extn_set_anc_parameters: anc_enabled:0
D/AudioPolicyManager( 470): startOutput()--
D/audio_hw_primary( 470): start_output_stream: enter: stream(0xf5cb1d80)usecase(0: deep-buffer-playback) devices(0x2)
D/audio_hw_primary( 470): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
W/msm8974_platform( 470): Codec backend bitwidth 16, samplerate 48000
D/hardware_info( 470): hw_info_append_hw_type : device_name = speaker
I/soundtrigger( 470): audio_extn_sound_trigger_update_device_status: device 0x2 of type 0 for Event 1, with Raise=0
I/audio_hw_primary( 470): select_devices Selected apptype: 69936
E/audio_hw_dolby( 470): audio_extn_dolby_ds2_set_endpoint: Dolby set endpint :0x2
D/soundtrigger( 470): audio_extn_sound_trigger_update_stream_status: uc_id 0 of type 0 for Event 3, with Raise=0
D/ACDB-LOADER( 470): ACDB -> send_audio_cal, acdb_id = 15, path = 0
D/ACDB-LOADER( 470): ACDB -> send_adm_topology
D/ ( 470): Failed to fetch the lookup information of the device 0000000F
D/ACDB-LOADER( 470): ACDB -> send_hw_delay : acdb_id = 15 path = 0
D/ACDB-LOADER( 470): ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
I/audio_hw_utils( 470): audio_extn_utils_send_app_type_cfg app_type 69936, acdb_dev_id 15, sample_rate 48000
D/audio_hw_primary( 470): enable_audio_route: apply mixer and update path: deep-buffer-playback speaker
I/Gobi ( 512): vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:1952: GetTransState() EBADF
I/Gobi ( 512): vendor/qcom/proprietary/RIDL/RIDLClient/MainCore.cpp:1455: Failed to get TransState, rc
I/Gobi ( 512): vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:1952: GetTransState() EBADF
D/audio_hw_primary( 470): select_devices: done
D/msm8974_platform( 470): platform_set_channel_map mixer_ctl_name:Playback Channel Map0
D/msm8974_platform( 470): platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2
I/MediaFocusControl( 1103): AudioFocus requestAudioFocus() from android.media.AudioManager@5db1d1bcom.bubblesoft.android.utils.k@1bb25f3b req=1flags=0x0
I/MSM-irqbalance( 657): Decided to move IRQ128 from CPU2 to CPU3
D/com.facebook.a.a( 4828): Got unexpected exception: java.io.WriteAbortedException: Read an exception; java.io.NotSerializableException: org.json.JSONObject
W/BroadcastQueue( 1103): Permission Denial: broadcasting Intent { act=com.android.music.metachanged flg=0x10 (has extras) } from com.bubblesoft.android.bubbleupnp (pid=26440, uid=10117) is not exported from uid 10062 due to receiver com.google.android.music/.wear.WearBroadcastReceiver
D/AudioPolicyManager( 470): stopOutput() output 2, stream 3, session 208
D/AudioPolicyManager( 470): stopOutput()--
With internal BubbleUPnP FLAC decoder:
Code:
W/BroadcastQueue( 1103): Permission Denial: broadcasting Intent { act=com.android.music.metachanged flg=0x10 (has extras) } from com.bubblesoft.android.bubbleupnp (pid=26440, uid=10117) is not exported from uid 10062 due to receiver com.google.android.music/.wear.WearBroadcastReceiver
D/AudioPolicyManager( 470): startOutput() output 2, stream 3, session 208
D/AudioFlinger( 470): ThreadBase::setParameters() routing=2
D/audio_hw_primary( 470): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2
D/audio_hw_extn( 470): audio_extn_set_anc_parameters: anc_enabled:0
I/MediaFocusControl( 1103): AudioFocus requestAudioFocus() from android.media.AudioManager@5db1d1bcom.bubblesoft.android.utils.k@1bb25f3b req=1flags=0x0
D/AudioPolicyManager( 470): startOutput()--
D/audio_hw_primary( 470): start_output_stream: enter: stream(0xf5cb1d80)usecase(0: deep-buffer-playback) devices(0x2)
D/audio_hw_primary( 470): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
W/msm8974_platform( 470): Codec backend bitwidth 16, samplerate 48000
D/hardware_info( 470): hw_info_append_hw_type : device_name = speaker
I/soundtrigger( 470): audio_extn_sound_trigger_update_device_status: device 0x2 of type 0 for Event 1, with Raise=0
I/audio_hw_primary( 470): select_devices Selected apptype: 69936
E/audio_hw_dolby( 470): audio_extn_dolby_ds2_set_endpoint: Dolby set endpint :0x2
D/soundtrigger( 470): audio_extn_sound_trigger_update_stream_status: uc_id 0 of type 0 for Event 3, with Raise=0
D/ACDB-LOADER( 470): ACDB -> send_audio_cal, acdb_id = 15, path = 0
D/ACDB-LOADER( 470): ACDB -> send_adm_topology
D/ ( 470): Failed to fetch the lookup information of the device 0000000F
D/ACDB-LOADER( 470): ACDB -> send_hw_delay : acdb_id = 15 path = 0
D/ACDB-LOADER( 470): ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
I/audio_hw_utils( 470): audio_extn_utils_send_app_type_cfg app_type 69936, acdb_dev_id 15, sample_rate 48000
D/audio_hw_primary( 470): enable_audio_route: apply mixer and update path: deep-buffer-playback speaker
D/audio_hw_primary( 470): select_devices: done
D/msm8974_platform( 470): platform_set_channel_map mixer_ctl_name:Playback Channel Map0
D/msm8974_platform( 470): platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2
W/BroadcastQueue( 1103): Permission Denial: broadcasting Intent { act=com.android.music.metachanged flg=0x10 (has extras) } from com.bubblesoft.android.bubbleupnp (pid=26440, uid=10117) is not exported from uid 10062 due to receiver com.google.android.music/.wear.WearBroadcastReceiver
V/AlarmManager( 1103): Triggering alarm #0: Alarm{12fbaf2a type 2 when 34338681 com.google.android.gms}
V/AlarmManager( 1103): ALARM_WAKEUP_LOCATOR
V/AlarmManager( 1103): Triggering alarm #1: Alarm{2904911b type 1 when 1452884460000 ch.bitspin.timely}
V/AlarmManager( 1103): ch.bitspin.timely.widget.UPDATE_ACTION
D/WifiService( 1103): acquireWifiLockLocked: WifiLock{NlpWifiLock type=2 binder=android.os.BinderProxy@310a32b8}
E/WifiStateMachine( 1103): WifiStateMachine CMD_START_SCAN source 10012 txSuccessRate=76.43 rxSuccessRate=73.60 targetRoamBSSID=any RSSI=-54
D/AudioPolicyManager( 470): stopOutput() output 2, stream 3, session 208
D/AudioPolicyManager( 470): stopOutput()--
One major difference is of course that with Bubbleupnp's internal flac decoder NuPlayer is not used. And even when selecting Awesomeplayer in the developer options; Nuplayer is still used (after a reboot as well). So using Bubbleupnp to play a .flac file with the system decoder playback fails with white noise a result. Using the internal flac decoder; or using Vlc or Google music (neither one use Nuplayer) it works just fine.