From: Stéphane Cerveau Date: Tue, 16 Feb 2021 14:05:43 +0000 (+0100) Subject: videofilter: allow per feature registration X-Git-Tag: 1.19.3~509^2~198 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7cd54ccfc1a5b8b45d3f8342c24ea3291735173d;p=platform%2Fupstream%2Fgstreamer.git 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: --- diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c index 769e6f0..1d80a67 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 13f967b..4d92010 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 c82787f..55656ab 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 8b9f921..020f533 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 f20e4ed..371f291 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 a82bbc4..3320153 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 6638726..9b78b03 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 0877672..b8a1f05 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 da736dc..6c66bf8 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,