intel / dleyna-renderer

dleyna-renderer is a library for implementing services that allow clients to discover and manipulate Digital Media Renderers. An implementation of such a service for linux is also included
https://01.org/dleyna/
GNU Lesser General Public License v2.1
16 stars 19 forks source link

Dleyna Renderer doesnt notify when the DMR properties changes #145

Closed KobaltRo closed 10 years ago

KobaltRo commented 10 years ago

dleyna doesnt notify about changed properties, for sure 1) Position 2) Metadata

are not notified.

If the upper middleware query manually a GetPropertyPosition and a GetPropertyMetadata dleyna renderer gives correct and current metadata AND THEN it sends the expected event ChangedPosition and ChangedMetadata... but if there is not polling, the events are not sent

jku commented 10 years ago

The metadata case seems a bit more complex, still looking at that. But Position (or BytePosition) is not evented in UPnP, is it? You could argue that dleyna should query it periodically... but whatever period we choose, it's going to be wrong for someone.

KobaltRo commented 10 years ago

Hi Jussi, from what I've dug, Position or BytePosition is not evented by UPnP. Implementing an polling thread will raise a couple of questions: 1) How often do we interrogate for Position 2) Would querying for Position at an interval lower than 1 sec, cause a dbus stack overrun and increase resource usage?

L.E: I think that whoever wants the position should query dleyna for it.

jku commented 10 years ago

I agree about Position: dleyna should not do more about it -- the documentation could be clearer though.

I'm having trouble reproducing the problem with "MediaPlayer2.Player.Metadata": As far as I can see the property is in the property change signals dictionary when it should be -- e.g. when the renderer sets a new uri.

I also can't see anything wrong with the code yet (although it's not as simple as it could be): To me it looks like prv_last_change_cb() will emit property changes for "Metadata" like it should (possibly even sometimes when it doesn't need to).

Do you have a specific way to reproduce this problem: maybe I'm not testing the right way?

jku commented 10 years ago

For debugging purposes I've modified rygel to emit a LastChange with "CurrentTrackMetaData" in it every second. dleyna-renderer sees those LastChanges and does send a property change notification for "Metadata".

As far as I can see it's working as intended. If you are still seeing missing property change notifications, I'm going to need more specific reproduction steps.

KobaltRo commented 10 years ago

Closing issue as invalid.