Playing a video in a GTK window example

Nicolas Dufresne nicolas at ndufresne.ca
Wed Jun 12 15:25:42 UTC 2019


Le mercredi 12 juin 2019 à 10:52 -0400, pisymbol . a écrit :
> On Wed, Jun 12, 2019 at 10:22 AM Nicolas Dufresne <nicolas at ndufresne.ca> wrote:
> > Le mercredi 12 juin 2019 à 09:42 -0400, pisymbol . a écrit :
> > 
> > > 
> > 
> > > 
> > 
> > > On Wed, Jun 12, 2019 at 9:20 AM pisymbol . <pisymbol at gmail.com> wrote:
> > 
> > > > 
> > 
> > > > On Tue, Jun 11, 2019 at 11:19 PM Guillaume Desmottes <guillaume.desmottes at collabora.com> wrote:
> > 
> > > > > Hi there,
> > 
> > > > > The gtksink and gtkglsink in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/tree/master/tests/examples/gtk
> > 
> > > > > should be helpful to you.
> > 
> > > > > 
> > 
> > > > 
> > 
> > > > Great! I know them. Now an example that uses them? :-)
> > 
> > > > 
> > 
> > > > 
> > 
> > > 
> > 
> > > Full disclosure: I have now gotten it to work from a tip by Mattias. My point though is that in order to link videoconvert to gtksink you need to expose videoconverts src as a ghost pad which is no where to be found in the documentation. 
> > 
> > > 
> > 
> > > What worked for me (the missing link - literally):
> > 
> > > 
> > 
> > > ghostpad = Gst.Ghostpad.new("sink", videoconveter_element.get_static_pad('src'))
> > 
> > > bin.add_pad(ghotspad)
> > 
> > > 
> > 
> > > And then I was able to link in gtksink and pack it using gtksink.props.widget. This stuff needs to be documented since the overwhelming majorities that turn up on Google simply do not work with the current API.
> > 
> > 
> > 
> > Ghosting is not specific to using gtksink. If you use custom bins with
> > 
> > pads, you have to learn how to ghost the pads.
> > 
> > 
> 
> Totally agreed. But how would you use videoconvert to gtksink in PyGst? 
> 
> Here's the thing:
> 
> gst-launch-1.0 filesrc location="blah" ! videoconvert ! gtksink
> 
> Just works. But if you use the parse_bin_from_description() API you then have to ghost pad out videoconvert to gtksink to make it actually display something. I understand why now but there are like ZERO examples of this idiom anywhere I could find by simply Googling. Mattias was kind of enough to suggest this and ti worked.

Ah, now I'm starting to see what you are doing, in absence of code, it's hard to understand fully. See Micheal next reply. Something similar to this is easier, I've used v4l2src as you seem to very dislike videotestsrc ;-P
   p = Gst.parse_launch("v4l2src ! videoconvert ! gtksink name=sink")                                                s = p.get_by_name("sink")   box.pack_start(s.props.widget, ...)

> The bottom line is most of the examples out there are just flat out wrong. Shouldn't the official gstreamer doc be a bit more comprehensive in this regard? At leaat on the Python side? I'm just asking. I'm not excusing any one of being lazy. Though maybe I didn't read the doc thoroughly enough and I do apologize in advance if that is the case.
> 
> -aps
> 
> 
> _______________________________________________gstreamer-devel mailing listgstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190612/5abe5681/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190612/5abe5681/attachment.sig>


More information about the gstreamer-devel mailing list