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: Sun, 28 Nov 2021 12:42:53 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux)

Richard Stallman <rms@gnu.org> writes:

> That sounds safe.  Would you please show the code which
> chooses the plug-in name to use in each case?
>
> It starts to appear that this is ok, but I'd like to see those parts
> and be sure.

+static bool
+check_gstreamer_dependencies (void)
+{
+  GstRegistry *registry = gst_registry_get ();
+
+  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));
+}

Here is where Emacs checks for the presence of the plugins it wants.
All of these plugins are in gst-plugins-base and gst-plugins-good.

+      xw->gst_source = gst_element_factory_make ("videotestsrc", NULL);
+      xw->gst_tee = gst_element_factory_make ("tee", NULL);

+      GstElement *fakesink = gst_element_factory_make ("fakesink", NULL);
+      GstElement *queue = gst_element_factory_make ("queue", NULL);

+             xv->video_sink = gst_element_factory_make ("xvimagesink", NULL);
+             xv->video_queue = gst_element_factory_make ("queue", NULL);

And here is where the plugins are created.  Thanks.


reply via email to

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