Great that you got it working. I'm wondering if there is a more universal solution.
Possibly yes.
The UPNP specification is as follows..
1) In the Content Directory Browse process, when a Digital Media Server publishes information about a track in its library, it must advise meta data for ALL the different mime types that it is capable of delivering (e.g. audio/wav, audio/mp3, audio/flac, or whatever) together with a corresponding url for getting each mime type of that track.
2) Then the Digital Media Render will fetch its desired mime type of that track by doing a GET for the respective url in the meta data provided by the DMS, and also specifying an Accept: audio/xyz header in the GET request.
The above describes a Pull process. But when doing a Push, things are a bit different, since step 1) is omitted, and instead the DMS sends a SetAVTransportURI command telling the DMR what it should play. However I think the SetAVT command essentially contains the same meta data as a Browse response, so step 2) can be followed also in this case.
In order to streamline the above process, the UPNP specification also has a mechanism GetProtocolInfo whereby a DMS can publish a list of all mime-types that it can deliver (source protocol info) and a DMR can publish all those that it can play (sink protocol info). If the DMS has done a proper matching of sink and source protocol info, then in Browse or SetAVT it can restrict the list of offered mime types to those that a) it can deliver, and b) that it knows the DMR can play.
So I think there are several improvements that MC can make.
a) Implement GetProtocolInfo properly, and use its findings in Browse and SetAVT
b) Offer all mime type flavours audio/dsd, audio/dsf, audio/dff and their x-variants in Browse and SetAVT
c) If there is an explicit Accept mime type in the GET, then use the same mime type in the responding Content-Type