Files
external_libcamera/src/android/meson.build
Jacopo Mondi 015fa7f718 android: Remove CameraWorker
The CameraWorker class purpose was to handle acquire fences for incoming
capture requests directed to libcamera.

Now that fences are handled by the core library, it is not required to
handle them in the HAL and the CameraWorker and CaptureRequest classes
can be dropped.

Update the core in CameraDevice class accordingly to queue Requests
directly to the libcamera::Camera and set the release_fence to the
value of the FrameBuffer::fence() for streams of type ::Direct.

While at it make CameraRequest::StreamBuffer::fence a UniqueFD to ease
the management of the fences file descriptor values.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2021-12-11 17:53:40 +01:00

79 lines
2.4 KiB
Meson

# SPDX-License-Identifier: CC0-1.0
android_deps = [
dependency('libexif', required : get_option('android')),
dependency('libjpeg', required : get_option('android')),
dependency('yaml-0.1', required : get_option('android')),
libcamera_private,
]
android_enabled = true
foreach dep : android_deps
if not dep.found()
android_enabled = false
subdir_done()
endif
endforeach
libyuv_dep = dependency('libyuv', required : false)
# Fallback to a subproject if libyuv isn't found, as it's typically not
# provided by distributions.
if not libyuv_dep.found()
cmake = import('cmake')
libyuv_vars = cmake.subproject_options()
libyuv_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})
libyuv_vars.set_override_option('cpp_std', 'c++17')
libyuv_vars.append_compile_args('cpp',
'-Wno-sign-compare',
'-Wno-unused-variable',
'-Wno-unused-parameter')
libyuv_vars.append_link_args('-ljpeg')
libyuv = cmake.subproject('libyuv', options : libyuv_vars)
libyuv_dep = libyuv.dependency('yuv')
endif
android_deps += [libyuv_dep]
android_hal_sources = files([
'camera3_hal.cpp',
'camera_capabilities.cpp',
'camera_device.cpp',
'camera_hal_config.cpp',
'camera_hal_manager.cpp',
'camera_metadata.cpp',
'camera_ops.cpp',
'camera_request.cpp',
'camera_stream.cpp',
'jpeg/encoder_libjpeg.cpp',
'jpeg/exif.cpp',
'jpeg/post_processor_jpeg.cpp',
'jpeg/thumbnailer.cpp',
'yuv/post_processor_yuv.cpp'
])
android_cpp_args = []
subdir('cros')
subdir('mm')
android_camera_metadata_sources = files([
'metadata/camera_metadata.c',
])
android_camera_metadata = static_library('camera_metadata',
android_camera_metadata_sources,
c_args : '-Wno-shadow',
include_directories : android_includes)
libcamera_hal = shared_library('libcamera-hal',
android_hal_sources,
name_prefix : '',
link_with : android_camera_metadata,
install : true,
cpp_args : android_cpp_args,
include_directories : android_includes,
dependencies : android_deps)