2016-08-12 15:42:30 +00:00
|
|
|
v4l2_sources = [
|
|
|
|
'gstv4l2.c',
|
2021-02-16 14:29:06 +00:00
|
|
|
'gstv4l2element.c',
|
2016-08-12 15:42:30 +00:00
|
|
|
'gstv4l2allocator.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2codec.c',
|
2016-08-12 15:42:30 +00:00
|
|
|
'gstv4l2colorbalance.c',
|
|
|
|
'gstv4l2deviceprovider.c',
|
|
|
|
'gstv4l2object.c',
|
|
|
|
'gstv4l2bufferpool.c',
|
|
|
|
'gstv4l2sink.c',
|
|
|
|
'gstv4l2src.c',
|
|
|
|
'gstv4l2radio.c',
|
|
|
|
'gstv4l2tuner.c',
|
|
|
|
'gstv4l2transform.c',
|
|
|
|
'gstv4l2videodec.c',
|
2017-05-23 18:40:56 +00:00
|
|
|
'gstv4l2videoenc.c',
|
2018-09-10 19:20:52 +00:00
|
|
|
'gstv4l2fwhtenc.c',
|
2017-07-31 20:09:30 +00:00
|
|
|
'gstv4l2h263enc.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2h264codec.c',
|
2017-05-23 18:40:56 +00:00
|
|
|
'gstv4l2h264enc.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2h265codec.c',
|
2018-10-18 06:59:00 +00:00
|
|
|
'gstv4l2h265enc.c',
|
2018-09-10 16:18:30 +00:00
|
|
|
'gstv4l2jpegenc.c',
|
2019-09-27 06:46:22 +00:00
|
|
|
'gstv4l2mpeg2codec.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2mpeg4codec.c',
|
2017-07-26 19:18:01 +00:00
|
|
|
'gstv4l2mpeg4enc.c',
|
2016-08-12 15:42:30 +00:00
|
|
|
'gstv4l2vidorient.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2vp8codec.c',
|
2017-08-01 20:01:11 +00:00
|
|
|
'gstv4l2vp8enc.c',
|
2019-03-04 11:05:29 +00:00
|
|
|
'gstv4l2vp9codec.c',
|
2017-08-01 20:01:11 +00:00
|
|
|
'gstv4l2vp9enc.c',
|
2016-08-12 15:42:30 +00:00
|
|
|
'v4l2_calls.c',
|
|
|
|
'v4l2-utils.c',
|
|
|
|
'tuner.c',
|
|
|
|
'tunerchannel.c',
|
|
|
|
'tunernorm.c'
|
|
|
|
]
|
|
|
|
|
2018-07-25 02:05:28 +00:00
|
|
|
v4l2 = get_option('v4l2')
|
|
|
|
if v4l2.disabled()
|
2018-07-31 19:40:49 +00:00
|
|
|
have_v4l2 = false
|
2018-07-25 02:05:28 +00:00
|
|
|
message('V4L2 plugin is disabled')
|
|
|
|
else
|
|
|
|
have_v4l2 = cc.has_header('linux/videodev2.h') or cc.has_header('sys/videodev2.h') or cc.has_header('sys/videoio.h')
|
|
|
|
if v4l2.enabled() and not have_v4l2
|
|
|
|
error('V4L2 is requested but headers were not found')
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2016-08-12 15:42:30 +00:00
|
|
|
cdata.set('GST_V4L2_ENABLE_PROBE', get_option('v4l2-probe'))
|
|
|
|
|
2018-07-25 02:05:28 +00:00
|
|
|
if have_v4l2
|
2016-08-12 15:42:30 +00:00
|
|
|
message('building v4l2 plugin')
|
|
|
|
cdata.set('HAVE_GST_V4L2', true)
|
2018-07-25 02:05:28 +00:00
|
|
|
gudev_dep = dependency('gudev-1.0', version : '>=147', required : get_option('v4l2-gudev'))
|
2016-08-12 15:42:30 +00:00
|
|
|
cdata.set('HAVE_GUDEV', gudev_dep.found())
|
|
|
|
|
|
|
|
# libv4l2 is only needed for converting some obscure formats
|
|
|
|
# FIXME: Add a full list of the formats here
|
2018-07-25 02:05:28 +00:00
|
|
|
libv4l2_dep = dependency('libv4l2', required : get_option('v4l2-libv4l2'))
|
|
|
|
cdata.set('HAVE_LIBV4L2', libv4l2_dep.found())
|
2016-08-12 15:42:30 +00:00
|
|
|
|
2017-03-18 00:58:28 +00:00
|
|
|
gstv4l2 = library('gstvideo4linux2',
|
2016-08-12 15:42:30 +00:00
|
|
|
v4l2_sources,
|
|
|
|
c_args : gst_plugins_good_args,
|
|
|
|
include_directories : [configinc, libsinc],
|
2018-07-25 02:05:28 +00:00
|
|
|
dependencies : [gstbase_dep, gstvideo_dep, gstallocators_dep, gudev_dep, libv4l2_dep],
|
2016-08-12 15:42:30 +00:00
|
|
|
install : true,
|
|
|
|
install_dir : plugins_install_dir,
|
|
|
|
)
|
2018-04-24 18:06:10 +00:00
|
|
|
pkgconfig.generate(gstv4l2, install_dir : plugins_pkgconfig_install_dir)
|
2018-10-22 09:39:55 +00:00
|
|
|
plugins += [gstv4l2]
|
2016-08-12 15:42:30 +00:00
|
|
|
endif
|