Hi,

you're right, I broke that while implementing the error handling of
non-existing playbin plugin.

Please submit the updated examples as you suggested.

Thank you very much for your contribution :)

> I've at least verified that my renderer shows up on the network.  If
> you would like, I can resubmit my patch and included corrected example
> for RygelRendererGst.
> 
> On Wed, Feb 25, 2015 at 11:59 AM, Kevron Rees <[email protected]>
> wrote:
>         The same might be true for the renderer and server python
>         examples...  
>         
>         On Feb 25, 2015 11:58 AM, "Kevron Rees"
>         <[email protected]> wrote:
>                 I might have found out the problem.  You need to
>                 call .new() to construct it.  I got rid of the
>                 critical and all constructors are being called.  I
>                 just need to verify the actual renderer is working.
>                 
>                 On Feb 25, 2015 11:29 AM, "Jens Georg"
>                 <[email protected]> wrote:
>                         Hi,
>                         
>                         I'm watching the GNOME github repositories so
>                         I've noticed your pr, thanks.
>                         
>                         Usually we use GNOME Bugzilla for patch
>                         submission, but, I guess PR is fine as well.
>                         
>                         About your issue: It might be that this
>                         library is not using GObject-Syle construction
>                         properly. I would have to check but I'm
>                         currently moving house so time is limited.
>                         
>                                 I submitted a pull request on
>                                 github[1].  I'm not sure that's the
>                                 appropriate place, but it's there.
>                                 This is an attempt to provide
>                                 introspection data about the
>                                 rygel-renderer-gst interfaces so that
>                                 python and other languages that use GI
>                                 will be able to build
>                                 renderers.  It doesn't quite work just
>                                 yet, I'm running into some
>                                 issues testing it.
>                                 
>                                 Consider the following example python
>                                 code:
>                                 
>                                 #!/usr/bin/env python
>                                 
>                                 import gi
>                                 
>                                 from gi.repository import Gst,
>                                 GObject, RygelRendererGst, GLib
>                                 
>                                 GObject.threads_init()
>                                 
>                                 Gst.init(None)
>                                 
>                                 renderer =
>                                 RygelRendererGst.PlaybinRenderer(title
>                                 = "my awesome
>                                 title")
>                                 
>                                 GLib.MainLoop().run()
>                                 
>                                 When run it produces two CRITICAL
>                                 errors:
>                                 
>                                 (python:28864): RygelRenderer-CRITICAL
>                                 **: plugin_construct: assertion
>                                 'player != NULL' failed
>                                 (python:28864): RygelCore-CRITICAL **:
>                                 rygel_plugin_set_title:
>                                 assertion 'self != NULL' failed
>                                 
>                                 I am not very familiar with vala, but
>                                 it seems like the constructor[2]
>                                 for RygelRenderer is not being called.
>                                 Instead, the "constructed()"
>                                 override is being called first, and
>                                 tries to construct the plugin,
>                                 which fails because player is still
>                                 null.  I can test this by
>                                 inserting a "debug(...)" and
>                                 "assert_not_reached ()" in both
>                                 MediaRenderer(...) and constructed()
>                                 and see which one gets called
>                                 first.  The output of the above
>                                 example becomes (run with
>                                 "G_MESSAGES_DEBUG=all")
>                                 
>                                 (python:2136): RygelCore-DEBUG:
>                                 rygel-media-device.vala:65: No
>                                 listening port specified, using random
>                                 TCP port
>                                 (python:2136): RygelRenderer-CRITICAL
>                                 **: plugin_construct: assertion
>                                 'player != NULL' failed
>                                 (python:2136): RygelCore-CRITICAL **:
>                                 rygel_plugin_set_title:
>                                 assertion 'self != NULL' failed
>                                 (python:2136): RygelRenderer-DEBUG:
>                                 rygel-media-renderer.vala:68:
>                                 constructed() called
>                                 
>                                 **
>                                 
>                                 
> RygelRenderer:ERROR:rygel-media-renderer.c:346:rygel_media_renderer_real_constructed:
>                                 code should not be reached
>                                 
>                                 Aborted (core dumped)
>                                 
>                                 Any guidance on how to debug this
>                                 further would be appreciated.
>                                 
>                                 -Kevron
>                                 
>                                 [1] -
>                                 https://github.com/GNOME/rygel/pull/1
>                                 [1]
>                                 [2] -
>                                 
> https://github.com/tripzero/rygel/blob/master/src/librygel-renderer/rygel-media-renderer.vala#L51
>                                 [2]
>                                 [3] -
>                                 
> https://github.com/tripzero/rygel/blob/master/src/librygel-renderer/rygel-media-renderer.vala#L60
>                                 [3]
>                                 
>                                 Links:
>                                 ------
>                                 [1]
>                                 https://github.com/GNOME/rygel/pull/1
>                                 [2]
>                                 
> https://github.com/tripzero/rygel/blob/master/src/librygel-renderer/rygel-media-renderer.vala#L51
>                                 [3]
>                                 
> https://github.com/tripzero/rygel/blob/master/src/librygel-renderer/rygel-media-renderer.vala#L60
>                                 
>                                 
> _______________________________________________
>                                 rygel-list mailing list
>                                 [email protected]
>                                 
> https://mail.gnome.org/mailman/listinfo/rygel-list
>                         
> 
> 


_______________________________________________
rygel-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/rygel-list

Reply via email to