hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
839 stars 204 forks source link

compatible problem with 8player on ipad #18

Closed tatonka77 closed 11 years ago

tatonka77 commented 11 years ago

thank you for your good project!!! i've test gmrender on my computer in ubuntu OS and play from bubbleUPnP, it works great! but i got some issues when i try to play from ipad, i tried several players, as far as i experienced, 8player is the only one app that can continuously play music via dlna when the screen is off, but it cannot play to gmrender(works well with other dlna media renderer), when i try to play, it shows error msg "open command faild"

thanks again!

hzeller commented 11 years ago

Thanks for the report.

I don't have an iPad to test, so I need your help creating a log-file on the gmrender-side to see I there is anything that can hint us what needs to be fixed.

In the INSTALL.md, there is a description how to create a log: https://github.com/hzeller/gmrender-resurrect/blob/master/INSTALL.md#misc-options Can you start gmrender like this and invoke 8player until you come across the error ?

Then post the log-file here (or upload it to pastebin or similar), so that I can have a look; maybe it shows something interesting.

Also, if 8player offers any way to create a debug log, please attach that as well; maybe it shows which command it wanted to invoke.

hzeller commented 11 years ago

Interesting. So it looks like the controller successfully gives the URL to the player (we see that AVTransportURI and MetaData is changed to the data to play), but then the PLAY command is not issued.

So I suspect that the controller has trouble interpreting the result of the command that sets the URI. To dig a bit deeper, we need to enable the action logging. You need to uncomment a line and re-compile.

In the file src/upnp_device.c, there is something like this relatively at the top: // Enable logging of action requests. //#define ENABLE_ACTION_LOGGING

You need to uncomment the #define, so that it looks like this:

define ENABLE_ACTION_LOGGING

then make again and see what the output says

(Somehow, all the XML output has been garbled in this bug-report: it only shows new-lines. Do you know if this happened while copy-pasting the logfile ? Maybe it is just a general quoting bug in github. If this is a problem in github, maybe pastebin or similar would be better for this).

Also, I did a bit of changes today, that probably don't affect this particular behavior, but it might make sense to do a 'git pull' and fresh re-compile so that we can look at the behavior of the latest version.

tatonka77 commented 11 years ago

here is the link of full log output: https://github.com/tatonka77/aaaaapastebin

hzeller commented 11 years ago

Alright, this gives a much better view of the XML :)

Now what happens if you uncomment the ENABLE_ACTION_LOGGING ? We then should see what is sent back/forth which could help understand why things fail.

tatonka77 commented 11 years ago

just uploaded new log file after recompile after uncomment the ENABLE_ACTION_LOGGING, please check it out!

hzeller commented 11 years ago

Mmh, this looks pretty much as expected and as it should. Can you try the latest version from 'git pull' ? I have some subtle changes there that might affect the XML a bit (adding some <?xml> header to LastChange events), maybe this is the problem.

Once that is tried, we might probably need to go down onto the network level and see what is going on there (tcpdump between these two machines).

tatonka77 commented 11 years ago

git pull done then uncommented ENABLE_ACTION_LOGGING and recompiled log output: https://github.com/tatonka77/aaaaapastebin/blob/master/logfile(git-pulled%2C%20log-enabled)

tatonka77 commented 11 years ago

just updated the 8player to the latest version, then it works like charm with gmediarenderer....thanks!

hzeller commented 11 years ago

I like problems that are solved automatically :)