summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStéphane Cerveau <scerveau@collabora.com>2021-02-16 15:05:43 +0100
committerStéphane Cerveau <scerveau@collabora.com>2021-03-29 12:45:23 +0200
commit7cd54ccfc1a5b8b45d3f8342c24ea3291735173d (patch)
tree5f0d5910f72b6a4ec0a585874c493fa6ed9cc787
parent8f1384c977b88932feffe80db97175edd084d92f (diff)
videofilter: allow per feature registration
Split plugin into features including dynamic types which can be indiviually registered during a static build. More details here: https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
-rw-r--r--gst/videofilter/gstgamma.c1
-rw-r--r--gst/videofilter/gstgamma.h2
-rw-r--r--gst/videofilter/gstvideobalance.c2
-rw-r--r--gst/videofilter/gstvideobalance.h2
-rw-r--r--gst/videofilter/gstvideoflip.c2
-rw-r--r--gst/videofilter/gstvideoflip.h2
-rw-r--r--gst/videofilter/gstvideomedian.c2
-rw-r--r--gst/videofilter/gstvideomedian.h2
-rw-r--r--gst/videofilter/plugin.c15
9 files changed, 23 insertions, 7 deletions
diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c
index 769e6f060..1d80a67f4 100644
--- a/gst/videofilter/gstgamma.c
+++ b/gst/videofilter/gstgamma.c
@@ -102,6 +102,7 @@ static void gst_gamma_before_transform (GstBaseTransform * transform,
static void gst_gamma_calculate_tables (GstGamma * gamma);
G_DEFINE_TYPE (GstGamma, gst_gamma, GST_TYPE_VIDEO_FILTER);
+GST_ELEMENT_REGISTER_DEFINE (gamma, "gamma", GST_RANK_NONE, GST_TYPE_GAMMA);
static void
gst_gamma_class_init (GstGammaClass * g_class)
diff --git a/gst/videofilter/gstgamma.h b/gst/videofilter/gstgamma.h
index 13f967b73..4d9201094 100644
--- a/gst/videofilter/gstgamma.h
+++ b/gst/videofilter/gstgamma.h
@@ -70,6 +70,8 @@ struct _GstGammaClass
GType gst_gamma_get_type(void);
+GST_ELEMENT_REGISTER_DECLARE (gamma);
+
G_END_DECLS
#endif /* __GST_VIDEO_GAMMA_H__ */
diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c
index c82787f21..55656abff 100644
--- a/gst/videofilter/gstvideobalance.c
+++ b/gst/videofilter/gstvideobalance.c
@@ -101,6 +101,8 @@ G_DEFINE_TYPE_WITH_CODE (GstVideoBalance, gst_video_balance,
GST_TYPE_VIDEO_FILTER,
G_IMPLEMENT_INTERFACE (GST_TYPE_COLOR_BALANCE,
gst_video_balance_colorbalance_init));
+GST_ELEMENT_REGISTER_DEFINE (videobalance, "videobalance",
+ GST_RANK_NONE, GST_TYPE_VIDEO_BALANCE);
/*
* look-up tables (LUT).
diff --git a/gst/videofilter/gstvideobalance.h b/gst/videofilter/gstvideobalance.h
index 8b9f921f4..020f5337d 100644
--- a/gst/videofilter/gstvideobalance.h
+++ b/gst/videofilter/gstvideobalance.h
@@ -74,6 +74,8 @@ struct _GstVideoBalanceClass {
GType gst_video_balance_get_type(void);
+GST_ELEMENT_REGISTER_DECLARE (videobalance);
+
G_END_DECLS
#endif /* __GST_VIDEO_BALANCE_H__ */
diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c
index f20e4edaf..371f29171 100644
--- a/gst/videofilter/gstvideoflip.c
+++ b/gst/videofilter/gstvideoflip.c
@@ -124,6 +124,8 @@ gst_video_flip_video_direction_interface_init (GstVideoDirectionInterface *
G_DEFINE_TYPE_WITH_CODE (GstVideoFlip, gst_video_flip, GST_TYPE_VIDEO_FILTER,
G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_DIRECTION,
gst_video_flip_video_direction_interface_init));
+GST_ELEMENT_REGISTER_DEFINE (videoflip, "videoflip", GST_RANK_NONE,
+ GST_TYPE_VIDEO_FLIP);
static GstCaps *
gst_video_flip_transform_caps (GstBaseTransform * trans,
diff --git a/gst/videofilter/gstvideoflip.h b/gst/videofilter/gstvideoflip.h
index a82bbc479..332015318 100644
--- a/gst/videofilter/gstvideoflip.h
+++ b/gst/videofilter/gstvideoflip.h
@@ -92,6 +92,8 @@ struct _GstVideoFlipClass {
GType gst_video_flip_get_type (void);
+GST_ELEMENT_REGISTER_DECLARE (videoflip);
+
G_END_DECLS
#endif /* __GST_VIDEO_FLIP_H__ */
diff --git a/gst/videofilter/gstvideomedian.c b/gst/videofilter/gstvideomedian.c
index 663872682..9b78b0350 100644
--- a/gst/videofilter/gstvideomedian.c
+++ b/gst/videofilter/gstvideomedian.c
@@ -76,6 +76,8 @@ gst_video_median_size_get_type (void)
#define gst_video_median_parent_class parent_class
G_DEFINE_TYPE (GstVideoMedian, gst_video_median, GST_TYPE_VIDEO_FILTER);
+GST_ELEMENT_REGISTER_DEFINE (videomedian, "videomedian",
+ GST_RANK_NONE, GST_TYPE_VIDEO_MEDIAN);
static GstFlowReturn gst_video_median_transform_frame (GstVideoFilter * filter,
GstVideoFrame * in_frame, GstVideoFrame * out_frame);
diff --git a/gst/videofilter/gstvideomedian.h b/gst/videofilter/gstvideomedian.h
index 087767200..b8a1f051f 100644
--- a/gst/videofilter/gstvideomedian.h
+++ b/gst/videofilter/gstvideomedian.h
@@ -61,6 +61,8 @@ struct _GstVideoMedianClass {
GType gst_video_median_get_type (void);
+GST_ELEMENT_REGISTER_DECLARE (videomedian);
+
G_END_DECLS
#endif /* __GST_VIDEO_MEDIAN_H__ */
diff --git a/gst/videofilter/plugin.c b/gst/videofilter/plugin.c
index da736dc85..6c66bf8c8 100644
--- a/gst/videofilter/plugin.c
+++ b/gst/videofilter/plugin.c
@@ -31,13 +31,14 @@
static gboolean
plugin_init (GstPlugin * plugin)
{
- return (gst_element_register (plugin, "gamma", GST_RANK_NONE, GST_TYPE_GAMMA)
- && gst_element_register (plugin, "videobalance", GST_RANK_NONE,
- GST_TYPE_VIDEO_BALANCE)
- && gst_element_register (plugin, "videoflip", GST_RANK_NONE,
- GST_TYPE_VIDEO_FLIP)
- && gst_element_register (plugin, "videomedian", GST_RANK_NONE,
- GST_TYPE_VIDEO_MEDIAN));
+ gboolean ret = FALSE;
+
+ ret |= GST_ELEMENT_REGISTER (gamma, plugin);
+ ret |= GST_ELEMENT_REGISTER (videobalance, plugin);
+ ret |= GST_ELEMENT_REGISTER (videoflip, plugin);
+ ret |= GST_ELEMENT_REGISTER (videomedian, plugin);
+
+ return ret;
}
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,