Support controlling external xbmc/upnp instance over UPnP #1597

Merged
merged 14 commits into from Feb 3, 2013

7 participants

@elupus
Team Kodi member

For the most part it works reasonably well. You do need upnp server enabled to kick of any file to a server. If the file is remote, it should work anyway since we will provide the remote url as well (thumbnails will potentially not work on the remote device).

It currently lack a way to transfer playback from current playing device to another device. Should just be adding a method to pop up a context menu with potential other players for a file.

It also doesn't match protocol info of the remote device to allow or disallow remote player to show up as a target. So it can be a hit and miss when you start playback remotely.

@elupus
Team Kodi member

@alcoheca feel free to take over this pull at any time. It should probably be squash together a bit.

@koying
Team Kodi member

Oh yeah, baby :-D
Say goodbye to any need for a remote (on android, at least)

@koying
Team Kodi member

I've applied the patch and here is my 2 cents:

1) Works great from windows :)
2) On android (nexus 7), renderer detection is hit-and-miss, while perfect on windows.
I have permanently 2 renderers, my TV and xbmc on rpi. Mostly none are detected, sometimes one or the other, both are never detected at the same time.
Furthermore, situation doesn't seem to change over time, i.e. no more renderers are detected further on.
3) IMO, there should be some kind of fullscreen display, with the fanart or something, when playing remotely (à la music)
4) There should be a way to save the renderers to playercorefactory.xml or equivalent. Otherwise (unless mistaken), there is no way to manage a "remote" playlist, like adding all the episodes of a serie

@elupus
Team Kodi member

2) strange, could be anything really. but it's probably not getting the multicast's from the renderers properly
3) agree. think it's mostly a skin issue. there are a few things that rely on IsPlayerAudio() and IsPlayingVideo(). If they got changed to IsPlaying() it would work better i think.
4) that is luckily not too hard to add. we could just provide the server with a playlist containing all things to play, then it will continue playing everything.

@koying
Team Kodi member
@koying
Team Kodi member

Re 4), I'm working on a patch to allow player selection in the "Now playing" screens and to force the same player for the duration of the playlist.
Is that the way to go?

@elupus
Team Kodi member
@koying
Team Kodi member
@elupus
Team Kodi member
@elupus
Team Kodi member
@elupus
Team Kodi member

@cptspiff what are your opinion on getting the 3 first commits in this series in for frodo? they are prep for this pull, but the affect skin usage + it's something the pvr guys are interested in to get meta data even during channel changes.

There is a chance of some regressions, but should be fully solvable during the beta series.

@ghost

if it is properly tested with slideshows it seems reasonable.

@koying
Team Kodi member

Looks to me as the udf/iso stuff is pretty much unrelated...

@elupus
Team Kodi member
@koying
Team Kodi member
@elupus
Team Kodi member
@Forage

Sorry to barge in, but I'd love to see this feature happening...with one request :-D
Will it be possible to set one remote target as the default player? I.e. start any movie at any time as is being done "normally", without having to specify the remote target on the spot every time when starting a movie. This should happen if, and only if, a file is requested to be played through the XBMC UI, not when XBMC is instructed through UPnP to play a file.

@elupus
Team Kodi member
elupus added some commits Oct 27, 2012
@elupus elupus merged commit 3cbd8e7 into xbmc:master Feb 3, 2013
@elupus elupus deleted the elupus:upnp-player branch Feb 3, 2013
@ronie
Team Kodi member

looks like your changes to GUIInfoManager.cpp break
MusicPlayer.offset(xx).Title

@elupus
Team Kodi member
@Forage

Did I completely misunderstand this change, or should it now be possible to let XBMC function as a UPnP control point, allowing me to use the XBMC UI to "tell" my TV to start playing a movie with this commit? If I didn't misunderstand and this is what's possible now, how do I actually use it? I couldn't find out how to do it.

@MartijnKaijser
Team Kodi member

This is not the support section. Use the forum

@FernetMenta

@Montellese it's no trivial task to get this right. Seems the various components have a different understanding of what this means. GraphicsContext or GuiVideoControl assume internal rendering whereas PlayListPlayer or external API assume just something is playing.

Team Kodi member

Yeah that's what I thought. Maybe we'll need an additional method like IsRemote() that can tell us whether playback is happening inside Kodi or on another device.

Thanks for taking the time to look into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment