diff options
author | Stéphane Cerveau <scerveau@collabora.com> | 2021-02-16 15:05:43 +0100 |
---|---|---|
committer | Stéphane Cerveau <scerveau@collabora.com> | 2021-03-29 12:45:23 +0200 |
commit | 7cd54ccfc1a5b8b45d3f8342c24ea3291735173d (patch) | |
tree | 5f0d5910f72b6a4ec0a585874c493fa6ed9cc787 | |
parent | 8f1384c977b88932feffe80db97175edd084d92f (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.c | 1 | ||||
-rw-r--r-- | gst/videofilter/gstgamma.h | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideobalance.c | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideobalance.h | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideoflip.c | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideoflip.h | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideomedian.c | 2 | ||||
-rw-r--r-- | gst/videofilter/gstvideomedian.h | 2 | ||||
-rw-r--r-- | gst/videofilter/plugin.c | 15 |
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, |