New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
no playback on network streamer initiated from streamer app's (control point) #4256
Comments
UMS itself is the What I understood is that BubbleUPnP was registered as a It could not work like this. For security purpose (access rights), transcoding engines, etc, the server will check that the asked url was from the |
The setup is slightly different. If you buy audio devices streamer like LINN, LUMIN, Naim, they are being controlled by their own control point APPs running on Android or iOS. After starting the manufacturer's app, UMS show's up and can be selected as a media server device. The manufacturer network streamer (renderer) and their app (control point) do not share the same UUID (by design). The APP sends the URL from the Edit: I think UMS selects the BubbleUPnP profile, because there is no LINN-APP profile available yet. They look compatible so far, since I don't have any playback/transcoding issues with this profile in v13. |
I believe, this will not do it and I'm not sure, if we talk about the same thing. There is no "proxy CDS" on the network. It's more the standard UPnP setup described in UPnP-av-AVArchitecture, section 3 playback. The actual setup is according to the official UPnP tutorial page 37 a The mentioned apps (Control Points) follow the workflow described in UPnP-av-AVArchitecture section 3.3:
The reason why UMS has a control point is because UMS integrates all UPnP services (Media Server, Media Renderer and Control Point) in one piece of software, which usually reside on different devices, making UMS to a "1-box interactions" model. This is a very "special" setup. If I quote the UMS webpage:
I agree with this claim. From my point of view the MediaServer CDS service is the core UMS service. If the MediaServer CDS services become UPnP non compliant, we probably lose a lot of people on the way. At least all people using control points in the
I think there is a simple quick fix solution: If authorization is disabled, the "authorization check" should not be done. Then all control point start working again. Another solution would be to implement authorization UPnP compliant via
|
The fix doesn't work ? It should allow Media Renderer to play the URL provided by the proxy control point (aka not running in the same device / in between Server and Renderer).
Fill free to implement it (on the next version, as we are running out of time on this one). Just remember CONTENT_PROTECTION is only on aspect of the "renderer" UMS point of view. |
Hmm, I'll check back if the fix works. Maybe I'd had a build issue jumping between branches. I'll close this if it works.
Actually, I have no personal ambitions on this feature, but more on getting "audio features" done. Just wanted to point out a UPnP like solution. |
@SurfaceS Playback on my renderer device still doesn't work yet. I'll check if I can do some debugging. One side note: From a design point of view, identifying control points as renderer makes only in a "2 box interaction" sense, where the control point and the render lay on the same device (usually a TV). One common "3 box interaction" use case is that a control point user can decide on which device a resource should be played. In example, I have 2 renderer devices at home. One is a Yamaha AV receiver, one is a LINN audio network player. I use the LINN app (Control Point) installed on my iPad for playing songs (on both renderer devices). The app is configured to use UMS as a media server (CDS service). While I do the browsing/searching, it's unknown to UMS on which renderer I'll finally play a resource (song). The LINN renderer has more native playback capabilities as the Yamaha. Therefore, it's undecidable in the browse/search phase (also for UMS) if a resource (song) has to be transcoded. When the LINN app (control point) tells my renderer (Yamaha) to play a song, the resource URL provided by the previous browse/search is requested from UMS. The transcoding (yes / no) decision should be done here, since the renderer (LINN or Yamaha) can be identified (i.e. I'm not sure how it's done yet, but would recommend to use the renderer discovered in the "resource request" phase as the right one in case the "renderer" does not match the "browsed renderer", since this is the real device. |
You're right.
One note on this is that the control point is responsible of giving a working URL (falling to a transcode URL if needed). For this, the CDS need to advise multiple with correct info on it, what is not the case for now. On this PR, I had separated CDS from MediaServer (was mixed). |
Yeah agree, to bad though in most cases Media Renderer are also dump devices, not even able to provide correct
Step 2 could be optimized in the future to do the transcoding only on the Media Server part on the fly (by renderer config file), if possible. This would probably be a 3 box interactions support.
@SurfaceS I tell you. I was so pleased to see finally someone moving the software to a cleaner design, and stable objectIDs. I personally think: that is great work, done with probably a huge amount of personal effort. 👍 ❤️ |
I've discovered a playback issue: If you browse UMS with a streamer app (usually UPnP control point) and want to play a selected resource on a network streamer (renderer) this fails.
Here's a small trace log. Looks like the resource the control point get's cannot played back by the renderer ...
I've tested with LUMIN app and LINN app having same results. None of them play anything.
Edit : LUMIN is the network streamer (renderer), LINN is the iOS app (control point).
The text was updated successfully, but these errors were encountered: