From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: GStreamer xwidget Date: Sun, 28 Nov 2021 12:42:53 +0800 Message-ID: <87a6ho99gy.fsf@yahoo.com> References: <87ee7cq2mu.fsf.ref@yahoo.com> <87ee7cq2mu.fsf@yahoo.com> <87zgpzp80c.fsf@yahoo.com> <87czmvtf68.fsf@gnus.org> <87czmunkmo.fsf@yahoo.com> <8735noajkl.fsf@yahoo.com> <87sfvn5p0j.fsf@yahoo.com> <87v90i4cmc.fsf@yahoo.com> <87pmqozm99.fsf@yahoo.com> <87ee72cix7.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40115"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux) Cc: larsi@gnus.org, emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Nov 28 05:44:08 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mrC2p-000AIq-Kc for ged-emacs-devel@m.gmane-mx.org; Sun, 28 Nov 2021 05:44:07 +0100 Original-Received: from localhost ([::1]:40670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mrC2n-0005H0-Rx for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Nov 2021 23:44:05 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:38214) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mrC1r-0004MY-B1 for emacs-devel@gnu.org; Sat, 27 Nov 2021 23:43:07 -0500 Original-Received: from sonic311-25.consmr.mail.ne1.yahoo.com ([66.163.188.206]:44225) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mrC1o-0001yd-9M for emacs-devel@gnu.org; Sat, 27 Nov 2021 23:43:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1638074582; bh=J0TCrYKebb/t6j/Rq81KAJ1U/umzWzAhdSIaOhz5PaU=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=DpS8hxPNTxN72L4Q1BPKrh8KS6LaXmgmOD0nILYz1wmwX2aQDx2d/q4wL98srdsLt0rXFx24kbTEI8mC5kD7+piHuWv7sGNS7Wb5FiPu7lIwJhbAkMFjN1kbiTMMGN0dmRdYIdEIDal9nb5voZqnSlDtfvUuHvgPAUT2sdAwyA9VdqE9c3RASXG4QKW02Gx40aKW9CnUMCK81I35Cy8zC8zL3FeW/yT0YmRql33smzKBE7Lns2fZ89a0dPaBaPhtDfv/pwmS3qGb3KJSXG2H+XRjiu2wHzTntPWD/pj727GrbaBk6n3EGvIRBoNHx6E9VtU5O6vUaRjhuwuaqKHJuQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1638074582; bh=JxChTi6VC21uPJCjSFQu5H4K5/4SOXAjtDMl3AwjkCt=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=B9OsOwvg1DDioTp4lZainJYFxR5UH337LGquv4KhiaaGcGgaAaTcS6GZfraq44lQXoPufrki/zyWJzdF3nXGhvht7qgw30wfIIl4Fr6ZArQOB5kuC2COemzzrmdvSmNwuHQVWN54Xube0pUsopyTb+Udr/2zQTqqX/xZloPWgNSKcAXjZE/Ihy+QVZ6TUkvIRmjuNuWf+BVzZzt7VFQHqFf++llOZ6Uqywu1KVyYmjqA+EbN1CE6cYAPUTQkZH7K+PYjMOeQDbXxjhYyO2ZCTdl9/y/1m0CZChpj+0abiQ2Mo9JNZBdSNs6vnE8NmGE6Lfzcw/Y3uWeLI6T47aXwYg== X-YMail-OSG: UJsPaeEVM1lKQ4nROsxec1Q6nJqLZzaRVKbnacPZlOUGGP6aiRqwwYZ8AnABPKb zgbl8d6KLigygwhiFMZphdo13MdwzY6qwJ8FM8Sm6IemryH6MREnZwzyv8Bb7_6gnj0BTfB2bbrZ tHpiGmzIMO9axzyhomCscBzzqiLSJVp0WGntCxHXI_vnoDu3api7BPgPkzbGrrcdGAHq_VWCKPM9 dMylkhksUEJjHeoCzgHx68YDL3k3cQ5e_eEAk9ZfK4.u4e3_1mjifLwMyYHRxeSdPgEs8r5hZD9X 9Xg44x4BnNa2x95h0iuD3_wOXCYsBL4aGqwPxl7g63M_MwRWFGi7a_eaeFKe47dniedi4qzyfRWj Gj753.hM8daQT2CZi2Rk42ifM9xNXia1eZe5w1LirVbjvLfwJkeePvuTc6M71vkm4vLCBU6HnlnI Pk9pyAhH7vpYpf.5dK5lACEMyyiZhWN6vkGNpTrA.Dl1FF4q5kOJPVoPgtrLlxmsr.5q7AzHNxCJ md56GHjnD004uOQWIf73CmuZeWQJwMRwm8iay9a_PQAyd0rfe35tNs1Ogqwy0Wq319BtjlfMs0ep T2RuLOLJZ6xknp.yhyYipYbHClye23PoZhXMP2fabpgqvn9wTSzjGPLdntPqu8BY0M8_BAJt94Qu ss0mFfWVJYBlHxK4iE7siiM3KueU33ascAGmlgadv1bR0dBNI6wNkgiNEMnaUqbVhzOdYexhYjmz P4h52Fj_VMmij26TT7PXKIGe6vQ0QWrskBejc8xYIDS77BvhiJjcAo5bv_SFcWRLD0.4pV5Y0Lc2 D2jqbSWV4fQ7C2Wi63oaOdBtMQpU5qQAdb33G1m9XC X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ne1.yahoo.com with HTTP; Sun, 28 Nov 2021 04:43:02 +0000 Original-Received: by kubenode510.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID c599be3ef510c3d9cff11903717aa630; Sun, 28 Nov 2021 04:42:58 +0000 (UTC) In-Reply-To: (Richard Stallman's message of "Sat, 27 Nov 2021 23:24:55 -0500") X-Mailer: WebService/1.1.19306 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.188.206; envelope-from=luangruo@yahoo.com; helo=sonic311-25.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:280369 Archived-At: Richard Stallman 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.