I have a mysterious problem using streaming profiles...
there are 4 streaming profiles related:
Default (field user-Agent is empty): renderer capability ranges from 44100 to 196000, 24 bits, no transcoding, decoding to PCM: never to wav
foobar2000-Profile (field user-Agend is foobar2000): same as default
PlugPlayer-Profile (field user-Agent is PlugPlayer): renderer capability ranges from 11250 to 48000, 16 bits, always transcoding except mp3,flac, decoding to PCM: never to wav
iMediaControl-Profile: same as PlugPlayer-Profile
well, running iPad2 and latest Foobar+foo_upnp i run the following 8-step scenario first with App iMediaControl, then shut down Foobar, then save the upnp-logfile (level INFO, s.b.), restart Foobar, running the same 8-step scenario with App PlugPlayer (4.1.1), shut down Foobar and save again the logfile...
The Scenario i do in the Apps:
1. Navigate to AC/DC Back in black album (on the server in 24/96 HiRes as Flac)
2. Choose Renderer "MyiPad" in the App so the iPad plays the music
3. Play Track "Back in Black.flac" for some seconds
4. Stop Playback
5. Choose Renderer "Foobar2000Renderer..." so my hifi-system connected to the Foobar-media-server/Renderer plays the music
6. Play Track "You shook me all night long.flac"
7. Stop Playback
8. Close the App
Well, my goal is: When the iPad renders the stream then the hires-file should be downsampled to the defined renderer capabilities (as defined in the profile described above). When the foobar-system/renderer renders the music then the original hires should pass through to the DAC because it is able to convert hires-audio.
Now, the following occurs:
iMediaControl:
all seems working fine, but it seems that never a downsampling takes place (see the log-file-entry below) but nevertheless the music plays well over the iPad (maybe there is a wonder or the iMediaControl-App can do the downsampling but AFAIK an iPad can only play up to 48000hz)
Logfile entry for iMediaControl for steps 2 and 3 (s.a.):
User-Agent: imediacontrol4ipad/1.0 CFNetwork/548.0.4 Darwin/11.0.0
Connection: close
41.41119: upnp_server_conf::get_profile(830)/7800: INFO: using profile 'iMediaControl-Profile', matching header (User-Agent:imediacontrol4ipad/1.0 CFNetwork/548.0.4 Darwin/11.0.0)
opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\06. Back In Black.flac' for streaming, profile: Default, WAV / 96000 Hz / 24 bits / 2 channels, replaygain: on, DSP chain: off
54.54498: PLT_HttpServerSocketTask::Write(410)/7800: WARNING: NPT_CHECK failed, result=-20401 (NPT_ERROR_CONNECTION_ABORTED) [(NPT_StreamToStreamCopy( *body_stream.AsPointer(), *output_stream.AsPointer(), 0, entity->GetContentLength(), 0, abort))]
60.60146: FbMediaServer::CheckAuthentication(362)/8080: INFO: received LAN request: http://192.168.178.38:56923/albumart/388d5e03239f61ea4c5e64a8f3560a01 (User-Agent: imediacontrol4ipad/1.0 CFNetwork/548.0.4 Darwin/11.0.0)
60.60156: PLT_HttpHelper::ToLog(481)/8080: INFO: FbMediaServer::ProcessFileRequest
GET /albumart/388d5e03239f61ea4c5e64a8f3560a01 HTTP/1.1
Host: 192.168.178.38:56923
User-Agent: imediacontrol4ipad/1.0 CFNetwork/548.0.4 Darwin/11.0.0
Accept: */*
Accept-Language: de-de
Accept-Encoding: gzip, deflate
Connection: keep-alive
60.60327: FbMediaRenderer::OnAction(144)/7696: INFO: >>>>>>>>>>>> Action: Stop <<<<<<<<<<<<<
60.60347: FbMediaRenderer::OnAction(144)/7696: INFO: >>>>>>>>>>>> Action: SetAVTransportURI <<<<<<<<<<<<<
60.60347: PLT_Didl::FromDidl(366)/7696: SEVERE: NPT_CHECK failed, result=-20011 (NPT_ERROR_INVALID_SYNTAX) [(parser.Parse(xml, node))]
60.60347: build_handle(21)/7696: INFO: Couldn't parse metadata: <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="0/1/1/3/3/6I" parentID="0" childCount="0" restricted="1" searchable="0"><dc:title>07. You Shook Me All Night Long</dc:title> <dc:date>1980-01-01</dc:date><upnp:artist>AC/DC</upnp:artist><upnp:album>Back In Black</upnp:album><upnp:albumArtURI xmlns:dlna="urn:schemas-dlna-org:metadata-1-0" dlna:profileID="JPEG_TN">http://192.168.178.38:56923/albumart/388d5e03239f61ea4c5e64a8f3560a01</upnp:albumArtURI><res size="120960044" duration="0:03:30.000" bitrate="576000" protocolInfo="http-get:*:audio/wav:*">http://192.168.178.38:56923/content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=0&convert=wav</res><upnp:class>object.item.audioItem.musicTrack</upnp:class></item></DIDL-Lite>
60.60547: FbMediaRenderer::OnAction(144)/7696: INFO: >>>>>>>>>>>> Action: Play <<<<<<<<<<<<<
60.60677: FbMediaServer::CheckAuthentication(362)/6668: INFO: received LAN request: http://192.168.178.38:56923/content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=0&convert=wav (User-Agent: foobar2000/1.1.13)
60.60677: PLT_HttpHelper::ToLog(481)/6668: INFO: FbMediaServer::ProcessFileRequest
GET /content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=0&convert=wav HTTP/1.1
What i do not understand is:
in one line there is "...using profile 'iMediaControl-Profile', matching header (User-Agent:imediacontrol4i.."
but in the following line there is: "opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\06. Back In Black.flac' for streaming, profile: Default WAV / 96000 Hz / 24 bits / 2 channels"
and for the steps 5 and 6 (s.a.):
User-Agent: foobar2000/1.1.13
Accept: */*
Icy-MetaData: 1
60.60677: upnp_server_conf::get_profile(830)/6668: INFO: using profile 'foobar2000-Profile', matching header (User-Agent:foobar2000/1.1.13)
opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\07. You Shook Me All Night Long.flac' for streaming, profile: Default, WAV / 96000 Hz / 24 bits / 2 channels, replaygain: on, DSP chain: off
60.60697: PLT_HttpServerSocketTask::Write(410)/6668: WARNING: NPT_CHECK failed, result=-20401 (NPT_ERROR_CONNECTION_ABORTED) [(NPT_StreamToStreamCopy( *body_stream.AsPointer(), *output_stream.AsPointer(), 0, entity->GetContentLength(), 0, abort))]
60.60697: FbMediaServer::CheckAuthentication(362)/6184: INFO: received LAN request: http://192.168.178.38:56923/content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=0&convert=wav (User-Agent: foobar2000/1.1.13)
60.60697: PLT_HttpHelper::ToLog(481)/6184: INFO: FbMediaServer::ProcessFileRequest
GET /content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=0&convert=wav HTTP/1.1
here I also don't understand:
"...using profile 'foobar2000-Profile', matching header (User-Agent:foobar2000/1.1.13.." followed by the line
"opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\07. You Shook Me All Night Long.flac' for streaming, profile: Default WAV / 96000 Hz / 24 bits / 2 channels"
summary for using iMediaControl: it seems that never a downsampling occurs and alway the Default-Profile is used regardless which user-Agent but in the log there is first "using profile imediaControl-profile" and then "using profile foobar2000-profile"...but both seems to lead to the Default-profile - WHY?
PlugPlayer:
Logfile entry for PlugPlayer for steps 2 and 3 (s.a.):
User-Agent: RecivaRadio/1.0.0
Icy-MetaData: 1
Connection: close
54.54078: upnp_server_conf::get_profile(836)/4788: INFO: using default profile (User-Agent:RecivaRadio/1.0.0)
opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\06. Back In Black.flac' for streaming, profile: PlugPlayer-Profile, WAV / 48000 Hz / 16 bits / 2 channels, replaygain: on, DSP chain: off
65.65584: PLT_HttpServerSocketTask::Write(410)/4788: WARNING: NPT_CHECK failed, result=-20401 (NPT_ERROR_CONNECTION_ABORTED) [(NPT_StreamToStreamCopy( *body_stream.AsPointer(), *output_stream.AsPointer(), 0, entity->GetContentLength(), 0, abort))]
65.65714: FbMediaServer::CheckAuthentication(362)/2992: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
65.65835: FbMediaServer::CheckAuthentication(362)/4360: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
66.66526: FbMediaServer::CheckAuthentication(362)/5752: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
69.69059: FbMediaServer::CheckAuthentication(362)/6504: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
69.69089: FbMediaServer::CheckAuthentication(362)/7516: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
69.69139: FbMediaServer::CheckAuthentication(362)/7656: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
69.69700: FbMediaServer::CheckAuthentication(362)/7052: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
70.70441: FbMediaServer::CheckAuthentication(362)/7216: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
70.70631: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetVolume <<<<<<<<<<<<<
70.70672: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetTransportInfo <<<<<<<<<<<<<
70.70692: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
71.71072: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
71.71763: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
71.71953: FbMediaServer::CheckAuthentication(362)/4484: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
72.72494: FbMediaServer::CheckAuthentication(362)/8172: INFO: received LAN request: http://192.168.178.38:56923/DeviceDescription.xml (User-Agent: iPad/5.0.1, UPnP/1.0, PlugPlayer/4.1.1)
72.72775: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
73.73836: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
74.74968: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
75.75949: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: GetPositionInfo <<<<<<<<<<<<<
76.76229: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: Stop <<<<<<<<<<<<<
76.76460: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: Stop <<<<<<<<<<<<<
76.76690: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: SetAVTransportURI <<<<<<<<<<<<<
76.76720: FbMediaRenderer::OnAction(144)/4312: INFO: >>>>>>>>>>>> Action: Play <<<<<<<<<<<<<
76.76810: FbMediaServer::CheckAuthentication(362)/7636: INFO: received LAN request: http://192.168.178.38:56923/content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=2&convert=wav&samplerate=48000 (User-Agent: foobar2000/1.1.13)
76.76820: PLT_HttpHelper::ToLog(481)/7636: INFO: FbMediaServer::ProcessFileRequest
GET /content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=2&convert=wav&samplerate=48000 HTTP/1.1
What i do not understand is:
in one line there is "...using default profile (User-Agent:RecivaRadio/1.0.0)..."
but in the following line there is: "opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\06. Back In Black.flac' for streaming, profile: PlugPlayer-Profile, WAV / 48000 Hz / 16 bits / 2 channels"
Which of the information about using a profile means what??
and for the steps 5 and 6 (s.a.):
User-Agent: foobar2000/1.1.13
Accept: */*
Icy-MetaData: 1
76.76820: upnp_server_conf::get_profile(830)/7636: INFO: using profile 'foobar2000-Profile', matching header (User-Agent:foobar2000/1.1.13)
opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\07. You Shook Me All Night Long.flac' for streaming, profile: PlugPlayer-Profile, WAV / 48000 Hz / 16 bits / 2 channels, replaygain: on, DSP chain: off
76.76890: PLT_HttpServerSocketTask::Write(410)/7636: WARNING: NPT_CHECK failed, result=-20401 (NPT_ERROR_CONNECTION_ABORTED) [(NPT_StreamToStreamCopy( *body_stream.AsPointer(), *output_stream.AsPointer(), 0, entity->GetContentLength(), 0, abort))]
76.76931: FbMediaServer::CheckAuthentication(362)/7968: INFO: received LAN request: http://192.168.178.38:56923/content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=2&convert=wav&samplerate=48000 (User-Agent: foobar2000/1.1.13)
76.76931: PLT_HttpHelper::ToLog(481)/7968: INFO: FbMediaServer::ProcessFileRequest
GET /content/388d5e03239f61ea4c5e64a8f3560a01.wav?profile_id=2&convert=wav&samplerate=48000
Here i also don't understand:
"...using profile 'foobar2000-Profile', matching header (User-Agent:foobar2000/1.1.13.." followed by the line
"opened 'file://W:\Klaus\Musik\archiv\1-H\ACDC\Back In Black\Original 1st press US (Vinyl Rip)\1980\24-96\07. You Shook Me All Night Long.flac' for streaming, profile: PlugPlayer-Profile, WAV / 48000 Hz / 16 bits / 2 channels"
so now again ther PlugPlayer-Profile with downsampling is used even the log-file says one line above that the foobar2000-profile is used...??!!
And in fact the plugPlayer-Profile is used when using the foobar2000-Renderer because only 16/48 comes to the DAC...
So summary for PlugPlayer: regardless which renderer i choose always the downsampling of the PlugPlayer-Profile takes plays, even if using the foobar2000-profile is reported.
Overall summary: I do not understand why with PlugPlayer-App always the PlugPlayer-Profile (with its downsampling) is used even when using profile foobar2000-Profile (without downsampling, s. on top profile description) is reported (s.a.). And i also do not understand why with iMediaControl it seems that never a downsampling occurs even if using profile iMediaControl-profile (with its downsamling) is reported...
Can anybody please explain what is running weird or what i'm doing wrong? Many thanks in advance!!