[Android Apps and Games] LastSilmaril:
Thanks for detailed explanation here.

Yeah, I think I interpreted 'local renderer' to mean 'local...to the location', not 'the Local Renderer on this phone'. Now that you mention it of course the other way makes sense. Is there anything that prevents you from having this setting apply to external renderers at remote locations as well, rather than only for the local renderer?

Yeah I was looking into setting that up for convenience's sake. Thanks for pointing out that it can automatically force transcoding. (To be clear, would the transcoding is being done on by the Tether Client or by the Server in this scenario?)

But, I do not use ReplayGain, and completely disabling transcoding under 'Individual UPnP/DLNA renderer settings' did not prevent a decode/dither down to 16/48 WAV/PCM from happening. So I guess we have some kind of mystery on our hands, if the expected behavior is for it to play the original FLACs, the same way as under scenario 2...?

Is it at all possible that it isn't playing an mp3, but the BubbleUPnP UI just reports that it is? I̶t̶ ̶s̶u̶r̶e̶ ̶s̶e̶e̶m̶s̶ ̶l̶i̶k̶e̶ ̶a̶n̶ ̶m̶p̶3̶ ̶i̶s̶ ̶p̶l̶a̶y̶e̶d̶ ̶t̶h̶o̶u̶g̶h̶,̶ ̶b̶e̶c̶a̶u̶s̶e̶ ̶w̶h̶e̶n̶ ̶s̶w̶i̶t̶c̶h̶i̶n̶g̶ ̶t̶o̶ ̶C̶h̶r̶o̶m̶e̶c̶a̶s̶t̶ ̶f̶r̶o̶m̶ ̶L̶o̶c̶a̶l̶ ̶R̶e̶n̶d̶e̶r̶e̶r̶ ̶m̶i̶d̶-̶s̶o̶n̶g̶,̶ ̶i̶t̶ ̶c̶o̶n̶t̶i̶n̶u̶e̶s̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶p̶o̶i̶n̶t̶ ̶i̶n̶ ̶t̶h̶e̶ ̶s̶o̶n̶g̶ ̶w̶h̶e̶r̶e̶ ̶i̶t̶ ̶l̶e̶f̶t̶ ̶o̶f̶f̶,̶ ̶i̶n̶s̶t̶e̶a̶d̶ ̶o̶f̶ ̶p̶a̶u̶s̶i̶n̶g̶ ̶f̶o̶r̶ ̶a̶ ̶l̶o̶n̶g̶ ̶t̶i̶m̶e̶ ̶w̶h̶i̶l̶e̶ ̶t̶h̶e̶ ̶r̶i̶g̶h̶t̶ ̶s̶t̶r̶e̶a̶m̶ ̶g̶e̶t̶s̶ ̶p̶i̶c̶k̶e̶d̶,̶ ̶a̶n̶d̶ ̶t̶h̶e̶n̶ ̶p̶l̶a̶y̶i̶n̶g̶ ̶i̶t̶ ̶b̶a̶c̶k̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶b̶e̶g̶i̶n̶n̶i̶n̶g̶.̶ In fact, switching back and forth is kind of spotty, and when I try it now, playback must be manually restarted from the beginning of the song, FWIW, so this proves nothing, and I guess it's still possible that the app is reporting the wrong data for it. Sure would be an odd bug though :/

I suppose eh. Would it have to be a server-side setting though, rather than an app setting that the server respects?

Gotcha. Admittedly there is no reason to do this other than paranoia/security or compatibility with given domains when using a Chromecast in a remote location. (Actually, it is possible to force-serve everything via HTTPS using a proxy - just tried it - but while this works properly with a Chromecast or a browser, the local renderer won't play it, and I suspect that most other clients would have trouble with it too.)

Noted, thanks again!

...one more thing though. I just tried changing Max Bitrate to Original. This results in a 16/48 WAV being played, on the Local Renderer as well as on the Chromecast, even though there is nothing in the settings that could have caused this: double-checked foo_upnp settings and none of them could force a transcode; Local Renderer settings that could affect this are all liberal (FFmpeg audio decoding set to 'Non natively supported audio formats (WMA, ALAC, AIFF, DSD, Opus, WavPack and more)', ReplayGain off, 'Resample to native samplerate' unchecked, 'Downmix multi-channel to stereo' unchecked, 'Convert 24-bit to 16-bit' unchecked); BubbleUPnP Server settings also liberal ('Enable Chromecast transcoding' unchecked, 'Max audio bitrate' under 'foobar2000 remote Internet access configuration with foo_upnp' set to 'None', 'Transcode high-res audio to 44.1/16 or 48/16 FLAC' unchecked). From what I can tell, since 'Resample to native samplerate' is an option, hardware limitations of the phone wouldn't automatically cause this decode/resampling/dithering down to 16/48 to happen...right? So...I dunno. Any ideas?