summaryrefslogtreecommitdiff
path: root/src/gstreamer/meson.build
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2019-11-23 17:00:53 -0500
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-07 01:57:42 +0200
commit17cccc68a88ffaaeb06fb2383ad27b5ccb627c24 (patch)
tree1589dc8790990b55abe3b268956b658234e2eb65 /src/gstreamer/meson.build
parent2cc90af8c7b6ac90b62ed9794d6176562b788292 (diff)
Add GStreamer plugin and element skeleton
This implements the GStreamer plugin interface and adds libcamerasrc element feature to it. This is just enough to allow plugin introspection. gst-inspect-1.0 build/src/gstreamer/libgstlibcamera.so Plugin Details: Name libcamera Description libcamera capture plugin Filename build/src/gstreamer/libgstlibcamera.so Version 0.0.0+1042-6c9f16d3-dirty License LGPL Source module libcamera Binary package libcamera Origin URL https://libcamera.org libcamerasrc: libcamera Source 1 features: GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer gst-inspect-1.0 libcamerasrc Factory Details: Rank primary (256) Long-name libcamera Source Klass Source/Video Description Linux Camera source using libcamera Author Nicolas Dufresne <nicolas.dufresne@collabora.com Plugin Details: Name libcamera Description libcamera capture plugin Filename /home/nicolas/Sources/libcamera/build/src/gstreamer/libgstlibcamera.so Version 0.0.0+1042-6c9f16d3-dirty License LGPL Source module libcamera Binary package libcamera Origin URL https://libcamera.org GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstLibcameraSrc Pad Templates: none Element has no clocking capabilities. Element has no URI handling capabilities. Pads: none Element Properties: name : The name of the object flags: accès en lecture, accès en écriture, 0x2000 String. Default: "libcamerasrc0" parent : The parent of the object flags: accès en lecture, accès en écriture, 0x2000 Object of type "GstObject" Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [Silence -Wunused-function warning for older GLib versions] Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/gstreamer/meson.build')
-rw-r--r--src/gstreamer/meson.build32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
new file mode 100644
index 00000000..490e030e
--- /dev/null
+++ b/src/gstreamer/meson.build
@@ -0,0 +1,32 @@
+libcamera_gst_sources = [
+ 'gstlibcamera.c',
+ 'gstlibcamerasrc.cpp',
+]
+
+libcamera_gst_c_args = [
+ '-DVERSION="@0@"'.format(libcamera_git_version),
+ '-DPACKAGE="@0@"'.format(meson.project_name()),
+]
+
+glib_dep = dependency('glib', required : get_option('gstreamer'))
+
+gst_dep = dependency('gstreamer-video-1.0', version : '>=1.14.0',
+ required : get_option('gstreamer'))
+
+if glib_dep.found() and gst_dep.found()
+ # The G_DECLARE_FINAL_TYPE macro creates static inline functions that were
+ # not marked as possibly unused prior to GLib v2.63.0. This causes clang to
+ # complain about the ones we are not using. Silence the -Wunused-function
+ # warning in that case.
+ if cc.get_id() == 'clang' and glib_dep.version().version_compare('<2.63.0')
+ libcamera_gst_c_args += [ '-Wno-unused-function' ]
+ endif
+
+ libcamera_gst = shared_library('gstlibcamera',
+ libcamera_gst_sources,
+ c_args : libcamera_gst_c_args,
+ dependencies : [libcamera_dep, gst_dep],
+ install: true,
+ install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),
+ )
+endif