emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GStreamer xwidget


From: Po Lu
Subject: Re: GStreamer xwidget
Date: Mon, 29 Nov 2021 11:12:50 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux)

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > +  return (gst_registry_find_feature (registry, "xvimagesink",
>   > +                              GST_TYPE_ELEMENT_FACTORY)
>   > +   && gst_registry_find_feature (registry, "queue",
>   > +                                 GST_TYPE_ELEMENT_FACTORY)
>   > +   && gst_registry_find_feature (registry, "videotestsrc",
>   > +                                 GST_TYPE_ELEMENT_FACTORY)
>   > +   && gst_registry_find_feature (registry, "fakesink",
>   > +                                 GST_TYPE_ELEMENT_FACTORY)
>   > +   && gst_registry_find_feature (registry, "tee",
>   > +                                 GST_TYPE_ELEMENT_FACTORY));
>
> This takes me one step forward.  But you haven't explained what
> this code does, and I can't recognize the meaning of anything.

> What does gst_type_element_factory do?  It looks up something
> in a registry, right?  What does a registry mean?

Essentially, it searches for a plugin (an element factory) by a name in
the plugin registry, which is the data structure that tells GStreamer
how to look for plugins.

> What is the meaning of the "xvimagesink" feature?
> What is the meaning of the "queue" feature?

See below.

> And so on?
>
> Can you tell me an example that explains what this is doing and why?

> Are you saying that "xvimagesink", "queue", "videotestsrc", "fakesink"
> and "tee" are the names of plug-ins?
>
> If so, can you describe what each one does?

videotestsrc provides a test pattern.  xvimagesink displays the media to
an X window (solely an implementation detail, the window created is
internal to Emacs), fakesink is a plugin used to keep the data flow up
even if no Emacs window is currently displaying the xwidget, "tee"
allows a single video stream to display in multiple windows, and "queue"
provides an in-memory buffer that works in cooperation with a tee to
allow that kind of display.

> For instance, if the user specifies the URL of an mp4 file, which
> of those plug-ins will Emacs tell GStreamer to load? 

That feature is not implemented yet, and it will probably not be, as the
H.265 decoder is either ugly or bad (precisely which I don't remember).

> Are you saying that those five plug-ins are the only five plug-ins
> that Emacs will ever tell GStreamer to load?

Yes, in the future I will add other free plugins once I implement the
feature that allows it to load common free formats.

Thanks.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]