Luma -> Alpha with v1.18

amindfv at mailbox.org amindfv at mailbox.org
Wed Jan 12 04:21:33 UTC 2022


On Tue, Jan 11, 2022 at 01:51:47PM -0500, Nicolas Dufresne via gstreamer-devel wrote:
> Indeed, all the GST_ELEMENT_REGISTER* macros are unreleased. Remove all calls to
> GST_ELEMENT_REGISTER*, and use
> 
>   gst_element_register (plugin, "alphacombine", GST_RANK_NONE, GST_TYPE_ALPHA_COMBINE);
> 
> Inside the plugin_init function.

Thanks, the plugins are buiding cleanly now (finally!). I'm still running into an issue with registration, though:
 
    $ rm *.so && make
    [... builds cleanly! ...]
    $ GST_PLUGIN_PATH=$GST_PLUGIN_PATH:. gst-launch-1.0 videotestsrc ! alphacombine ! autovideosink
    (gst-plugin-scanner:226263): GStreamer-WARNING **: 20:15:13.099: Failed to load plugin './libgstplugin.so': ./libgstplugin.so: undefined symbol: gst_alpha_combine_get_type
    WARNING: erroneous pipeline: no element "alphacombine"
    $ nm -D --defined-only libgstplugin.so 
    0000000000001150 T gst_plugin_codecalpha_get_desc
    0000000000001160 T gst_plugin_codecalpha_register
    $ nm -D --defined-only libgstalphacombine.so
    0000000000006220 D format_map
    0000000000002830 T gst_alpha_combine_get_type

Tom

Here's the Makefile:

    all: libgstplugin.so libgstalphacombine.so
    %.o: %.c
            gcc -I. -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wall -g -O2 -Wall -c $^ -fPIC -DPIC -o $@
    lib%.so: %.o
            gcc -shared  -fPIC -DPIC $^ -lgstcontroller-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0  -pthread -g -O2  -pthread -Wl,-soname -Wl,$@ -o $@


And here's the current diff against current git HEAD:

diff --git a/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.c b/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.c
index aeefeb94f8..089b31ad93 100644
--- a/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.c
+++ b/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.c
@@ -46,10 +46,9 @@
 
 #include "gstalphacombine.h"
 
-
-#define SUPPORTED_SINK_FORMATS "{ I420, NV12 }"
-#define SUPPORTED_ALPHA_FORMATS "{ GRAY8, I420, NV12 }"
-#define SUPPORTED_SRC_FORMATS "{ A420, AV12 }"
+#define SUPPORTED_SINK_FORMATS "{ I420 }"
+#define SUPPORTED_ALPHA_FORMATS "{ GRAY8, I420 }"
+#define SUPPORTED_SRC_FORMATS "{ A420 }"
 
 /* *INDENT-OFF* */
 struct {
@@ -69,18 +68,6 @@ struct {
     .sink = GST_VIDEO_FORMAT_I420,
     .alpha = GST_VIDEO_FORMAT_NV12,
     .src = GST_VIDEO_FORMAT_A420
-  }, {
-    .sink = GST_VIDEO_FORMAT_NV12,
-    .alpha = GST_VIDEO_FORMAT_NV12,
-    .src = GST_VIDEO_FORMAT_AV12,
-  }, {
-    .sink = GST_VIDEO_FORMAT_NV12,
-    .alpha = GST_VIDEO_FORMAT_GRAY8,
-    .src = GST_VIDEO_FORMAT_AV12
- },{
-    .sink = GST_VIDEO_FORMAT_NV12,
-    .alpha = GST_VIDEO_FORMAT_I420,
-    .src = GST_VIDEO_FORMAT_AV12
   },
 };
 /* *INDENT-ON* */
@@ -117,8 +104,7 @@ G_DEFINE_TYPE_WITH_CODE (GstAlphaCombine, gst_alpha_combine,
     GST_DEBUG_CATEGORY_INIT (alphacombine_debug, "alphacombine", 0,
         "Alpha Combiner"));
 
-GST_ELEMENT_REGISTER_DEFINE (alpha_combine, "alphacombine",
-    GST_RANK_NONE, GST_TYPE_ALPHA_COMBINE);
+// GST_ELEMENT_REGISTER_DEFINE (alpha_combine);
 
 static GstStaticPadTemplate gst_alpha_combine_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
diff --git a/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.h b/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.h
index 423717861f..e101c41184 100644
--- a/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.h
+++ b/subprojects/gst-plugins-bad/gst/codecalpha/gstalphacombine.h
@@ -29,7 +29,7 @@ G_BEGIN_DECLS
 G_DECLARE_FINAL_TYPE (GstAlphaCombine,
     gst_alpha_combine, GST, ALPHA_COMBINE, GstElement);
 
-GST_ELEMENT_REGISTER_DECLARE (alpha_combine);
+// GST_ELEMENT_REGISTER_DECLARE (alpha_combine);
 
 G_END_DECLS
 #endif
diff --git a/subprojects/gst-plugins-bad/gst/codecalpha/gstplugin.c b/subprojects/gst-plugins-bad/gst/codecalpha/gstplugin.c
index ff061c58f9..deece876cc 100644
--- a/subprojects/gst-plugins-bad/gst/codecalpha/gstplugin.c
+++ b/subprojects/gst-plugins-bad/gst/codecalpha/gstplugin.c
@@ -43,10 +43,7 @@
 
 #include <gst/gst.h>
 
-#include "gstcodecalphademux.h"
 #include "gstalphacombine.h"
-#include "gstvp8alphadecodebin.h"
-#include "gstvp9alphadecodebin.h"
 
 /* When wrapping, use the original rank plus this offset. The ad-hoc rules is
  * that hardware implementation will use PRIMARY+1 or +2 to override the
@@ -59,18 +56,19 @@
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  gboolean ret = FALSE;
+  return gst_element_register (plugin, "alphacombine", GST_RANK_NONE, GST_TYPE_ALPHA_COMBINE);
+}
 
-  ret |= GST_ELEMENT_REGISTER (codec_alpha_demux, plugin);
-  ret |= GST_ELEMENT_REGISTER (alpha_combine, plugin);
-  ret |= GST_ELEMENT_REGISTER (vp8_alpha_decode_bin, plugin);
-  ret |= GST_ELEMENT_REGISTER (vp9_alpha_decode_bin, plugin);
+#ifndef PACKAGE
+#define PACKAGE "codecalpha"
+#endif
 
-  return ret;
-}
+#ifndef GST_PACKAGE_NAME
+#define GST_PACKAGE_NAME "codecalpha"
+#endif
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
     codecalpha,
     "CODEC Alpha Utilities",
-    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+    plugin_init, "1.0.0", "LGPL", GST_PACKAGE_NAME, "http://gstreamer.net/")
\ No newline at end of file



More information about the gstreamer-devel mailing list