libcamera: fix implicit dependency to libdrm

libcamera is depending on libdrm in libcamera_wrapper.cpp but it was
implicitely including the header drm_fourcc.h with libcamera
file pixel_format.h

With this patch, the libcamera plugin should explicitely depends on
libdrm as it needs DRM fourcc and should not depend on multiple
inclusion from libcamera.

Add a FourCC for Motion-JPEG compressed format. This is a temporary
addition until the format gets merged in the upstream kernel.
This commit is contained in:
Stéphane Cerveau 2020-06-09 18:50:06 +02:00 committed by Wim Taymans
parent 2c8292bef0
commit e7cc0f69e3
2 changed files with 15 additions and 1 deletions

View file

@ -39,6 +39,8 @@
#include <sys/mman.h>
#include <unistd.h>
#include <drm_fourcc.h>
#include <spa/support/log.h>
#include <spa/param/props.h>
#include <spa/param/video/raw.h>
@ -63,6 +65,14 @@ using namespace controls;
#define DEFAULT_HEIGHT 480
#define DEFAULT_PIXEL_FMT DRM_FORMAT_YUYV
/* Compressed formats
*
* TODO: Should be removed when the format gets merged in the
* libdrm.*/
#ifndef DRM_FORMAT_MJPEG
# define DRM_FORMAT_MJPEG fourcc_code('M', 'J', 'P', 'G') /* Motion-JPEG */
#endif
extern "C" {
static struct {

View file

@ -4,9 +4,13 @@ libcamera_sources = ['libcamera.c',
'libcamera-source.c',
'libcamera_wrapper.cpp']
libdrm_dep = dependency('libdrm', version : '>= 2.4.98',
required : get_option('libcamera'))
if libdrm_dep.found()
libcameralib = shared_library('spa-libcamera',
libcamera_sources,
include_directories : [ spa_inc ],
dependencies : [ libudev_dep, libcamera_dep, pthread_lib ],
dependencies : [ libudev_dep, libcamera_dep, pthread_lib, libdrm_dep ],
install : true,
install_dir : join_paths(spa_plugindir, 'libcamera'))
endif