Cover Letter Detail
Show a cover letter.
GET /api/covers/12701/?format=api
{ "id": 12701, "url": "https://patchwork.libcamera.org/api/covers/12701/?format=api", "web_url": "https://patchwork.libcamera.org/cover/12701/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210625013539.625803-1-kieran.bingham@ideasonboard.com>", "date": "2021-06-25T01:35:23", "name": "[libcamera-devel,00/16] libcamera-base: A new split on libcamera", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/12701/mbox/", "series": [ { "id": 2173, "url": "https://patchwork.libcamera.org/api/series/2173/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2173", "date": "2021-06-25T01:35:23", "name": "libcamera-base: A new split on libcamera", "version": 1, "mbox": "https://patchwork.libcamera.org/series/2173/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/12701/comments/", "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 06961C321D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 01:35:47 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E5F02684D4;\n\tFri, 25 Jun 2021 03:35:45 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EEA7F60508\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 03:35:43 +0200 (CEST)", "from Monstersaurus.local\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8155A501;\n\tFri, 25 Jun 2021 03:35:43 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"wgbehmcC\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624584943;\n\tbh=hCUo1YZttBPyMTbvpQKGgeN5F3+Lpnr5I/cvaA+EOms=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=wgbehmcC4r+OE0bh4D3vEHKhojOlkVpqHdQxuUlN9T33elmr0cCHyQ/1JGFh2z8uO\n\tCn1qmVrflNNwGzlINiM0zLAMjZT++9sJn9xqdeNZULbK4I0MXEhiLllFBwdtZjq1FJ\n\t/GPpv5yT2kQKolWMh/nucDEHPQV4zgYl8HQ/c9UQ=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "To": "libcamera devel <libcamera-devel@lists.libcamera.org>", "Date": "Fri, 25 Jun 2021 02:35:23 +0100", "Message-Id": "<20210625013539.625803-1-kieran.bingham@ideasonboard.com>", "X-Mailer": "git-send-email 2.30.2", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH 00/16] libcamera-base: A new split on\n\tlibcamera", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Hi all,\n\nAnother lengthy revision of my libcamera refactoring series which is ...\nqiute intensive.\n\nFor hopefully obvious reasons, I would /really/ like anything\nnon-critical in this series to be fixed up on top. The churn here is\nhorrible, and fixing up through the series is incredibly painful.\n\nPlease note, there are changes to the split of the Android library since\nthe previous reviewers, and of course you'll see quite a lot of change\non the main refactoring too - though the concepts are the same.\n\nNow incorporates a 'private.h' to protect headers.\n\nOne really big thing to watch out for (particularly David/RPi) is that\n\"libcamera: Rename libcamera pkg-config generation\" changes how you find\nlibcamera as a dependency to externally built applications.\n\nSo ... I'm going to post this and run ... good luck to whomever casts\ntheir eyes over it.\n\n\nKieran Bingham (16):\n android: Split HAL to its own shared library\n android: cros: Simplify integration\n libcamera: Move libcamera.so pkg-config file generation\n libcamera: Rename libcamera pkg-config generation\n libcamera: Separate source and build path helpers\n libcamera/base: Introduce new base library\n libcamera/base: Move utils to the base library\n libcamera/base: Move class helpers to the base library\n libcamera/base: Move extended base functionality\n libcamera/base: Move File to base library\n libcamera/base: Move event_notifier to base\n libcamera/base: Validate internal headers as private\n libcamera/base: Move span to base library\n libcamera: Move generated headers to private dep\n libcamera: rename public libcamera dependency\n test: Ensure LIBCAMERA_BASE_PRIVATE isn't public\n\n Documentation/Doxyfile.in | 2 +-\n Documentation/guides/pipeline-handler.rst | 3 +-\n Documentation/meson.build | 2 +\n include/libcamera/{ => base}/bound_method.h | 6 +-\n include/libcamera/{ => base}/class.h | 0\n .../{internal => base}/event_dispatcher.h | 8 +-\n .../event_dispatcher_poll.h | 10 +-\n .../{internal => base}/event_notifier.h | 5 +-\n include/libcamera/{internal => base}/file.h | 11 +-\n include/libcamera/{internal => base}/log.h | 12 +-\n include/libcamera/base/meson.build | 25 ++++\n .../libcamera/{internal => base}/message.h | 8 +-\n include/libcamera/{ => base}/object.h | 8 +-\n include/libcamera/base/private.h | 22 +++\n .../libcamera/{internal => base}/semaphore.h | 9 +-\n include/libcamera/{ => base}/signal.h | 10 +-\n include/libcamera/{ => base}/span.h | 0\n include/libcamera/{internal => base}/thread.h | 14 +-\n include/libcamera/{internal => base}/timer.h | 11 +-\n include/libcamera/{internal => base}/utils.h | 10 +-\n include/libcamera/buffer.h | 3 +-\n include/libcamera/camera.h | 7 +-\n include/libcamera/camera_manager.h | 6 +-\n include/libcamera/controls.h | 5 +-\n include/libcamera/framebuffer_allocator.h | 2 +-\n include/libcamera/internal/buffer.h | 5 +-\n .../libcamera/internal/byte_stream_buffer.h | 4 +-\n include/libcamera/internal/camera_sensor.h | 5 +-\n .../libcamera/internal/device_enumerator.h | 2 +-\n .../libcamera/internal/ipa_data_serializer.h | 3 +-\n include/libcamera/internal/ipa_manager.h | 3 +-\n include/libcamera/internal/ipa_module.h | 3 +-\n include/libcamera/internal/ipc_pipe.h | 4 +-\n include/libcamera/internal/ipc_unixsocket.h | 2 +-\n include/libcamera/internal/media_device.h | 4 +-\n include/libcamera/internal/media_object.h | 2 +-\n include/libcamera/internal/meson.build | 11 +-\n include/libcamera/internal/pipeline_handler.h | 5 +-\n include/libcamera/internal/process.h | 2 +-\n include/libcamera/internal/pub_key.h | 2 +-\n include/libcamera/internal/source-paths.h | 19 +++\n include/libcamera/internal/v4l2_device.h | 8 +-\n include/libcamera/internal/v4l2_subdevice.h | 5 +-\n include/libcamera/internal/v4l2_videodevice.h | 7 +-\n include/libcamera/ipa/ipa_interface.h | 3 +-\n include/libcamera/meson.build | 6 +-\n include/libcamera/request.h | 5 +-\n meson.build | 8 --\n src/android/camera3_hal.cpp | 2 +-\n src/android/camera_buffer.h | 4 +-\n src/android/camera_capabilities.cpp | 3 +-\n src/android/camera_capabilities.h | 3 +-\n src/android/camera_device.cpp | 8 +-\n src/android/camera_device.h | 7 +-\n src/android/camera_hal_config.cpp | 2 +-\n src/android/camera_hal_config.h | 2 +-\n src/android/camera_hal_manager.cpp | 4 +-\n src/android/camera_metadata.cpp | 2 +-\n src/android/camera_worker.h | 6 +-\n src/android/cros/meson.build | 11 +-\n src/android/jpeg/encoder.h | 3 +-\n src/android/jpeg/encoder_libjpeg.cpp | 3 +-\n src/android/jpeg/exif.cpp | 4 +-\n src/android/jpeg/exif.h | 3 +-\n src/android/jpeg/post_processor_jpeg.cpp | 4 +-\n src/android/jpeg/thumbnailer.cpp | 4 +-\n src/android/meson.build | 19 ++-\n src/android/mm/cros_camera_buffer.cpp | 2 +-\n src/android/mm/generic_camera_buffer.cpp | 3 +-\n src/android/yuv/post_processor_yuv.cpp | 3 +-\n src/cam/meson.build | 2 +-\n src/gstreamer/meson.build | 2 +-\n src/ipa/ipu3/ipu3.cpp | 3 +-\n src/ipa/ipu3/ipu3_agc.cpp | 4 +-\n src/ipa/ipu3/ipu3_agc.h | 4 +-\n src/ipa/ipu3/ipu3_awb.cpp | 2 +-\n src/ipa/ipu3/meson.build | 2 +-\n src/ipa/libipa/histogram.cpp | 2 +-\n src/ipa/libipa/histogram.h | 2 +-\n src/ipa/libipa/meson.build | 2 +-\n src/ipa/raspberrypi/cam_helper.hpp | 4 +-\n .../raspberrypi/controller/agc_algorithm.hpp | 3 +-\n src/ipa/raspberrypi/controller/agc_status.h | 2 +-\n src/ipa/raspberrypi/controller/camera_mode.h | 2 +-\n src/ipa/raspberrypi/controller/controller.cpp | 2 +-\n .../raspberrypi/controller/device_status.h | 2 +-\n src/ipa/raspberrypi/controller/rpi/agc.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/agc.hpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/alsc.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/awb.cpp | 2 +-\n .../controller/rpi/black_level.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/ccm.cpp | 2 +-\n .../raspberrypi/controller/rpi/contrast.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/dpc.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/focus.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/geq.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/lux.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/lux.hpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/noise.cpp | 2 +-\n src/ipa/raspberrypi/controller/rpi/sdn.cpp | 2 +-\n .../raspberrypi/controller/rpi/sharpen.cpp | 2 +-\n src/ipa/raspberrypi/md_parser.hpp | 2 +-\n src/ipa/raspberrypi/meson.build | 2 +-\n src/ipa/raspberrypi/raspberrypi.cpp | 9 +-\n src/ipa/rkisp1/meson.build | 2 +-\n src/ipa/rkisp1/rkisp1.cpp | 4 +-\n src/ipa/vimc/meson.build | 2 +-\n src/ipa/vimc/vimc.cpp | 10 +-\n src/lc-compliance/meson.build | 2 +-\n src/libcamera/{ => base}/bound_method.cpp | 11 +-\n src/libcamera/{ => base}/class.cpp | 2 +-\n src/libcamera/{ => base}/event_dispatcher.cpp | 7 +-\n .../{ => base}/event_dispatcher_poll.cpp | 14 +-\n src/libcamera/{ => base}/event_notifier.cpp | 10 +-\n src/libcamera/{ => base}/file.cpp | 6 +-\n src/libcamera/{ => base}/log.cpp | 8 +-\n src/libcamera/base/meson.build | 49 +++++++\n src/libcamera/{ => base}/message.cpp | 9 +-\n src/libcamera/{ => base}/object.cpp | 17 ++-\n src/libcamera/{ => base}/semaphore.cpp | 6 +-\n src/libcamera/{ => base}/signal.cpp | 6 +-\n src/libcamera/{ => base}/thread.cpp | 12 +-\n src/libcamera/{ => base}/timer.cpp | 16 +--\n src/libcamera/{ => base}/utils.cpp | 110 +--------------\n src/libcamera/buffer.cpp | 2 +-\n src/libcamera/byte_stream_buffer.cpp | 2 +-\n src/libcamera/camera.cpp | 5 +-\n src/libcamera/camera_manager.cpp | 8 +-\n src/libcamera/camera_sensor.cpp | 3 +-\n src/libcamera/camera_sensor_properties.cpp | 4 +-\n src/libcamera/control_serializer.cpp | 5 +-\n src/libcamera/controls.cpp | 5 +-\n src/libcamera/delayed_controls.cpp | 3 +-\n src/libcamera/device_enumerator.cpp | 3 +-\n src/libcamera/device_enumerator_sysfs.cpp | 3 +-\n src/libcamera/device_enumerator_udev.cpp | 5 +-\n src/libcamera/file_descriptor.cpp | 2 +-\n src/libcamera/formats.cpp | 2 +-\n src/libcamera/framebuffer_allocator.cpp | 3 +-\n src/libcamera/geometry.cpp | 2 +-\n src/libcamera/ipa_data_serializer.cpp | 2 +-\n src/libcamera/ipa_manager.cpp | 7 +-\n src/libcamera/ipa_module.cpp | 8 +-\n src/libcamera/ipa_proxy.cpp | 5 +-\n src/libcamera/ipc_pipe.cpp | 2 +-\n src/libcamera/ipc_pipe_unixsocket.cpp | 9 +-\n src/libcamera/ipc_unixsocket.cpp | 4 +-\n src/libcamera/media_device.cpp | 2 +-\n src/libcamera/media_object.cpp | 3 +-\n src/libcamera/meson.build | 70 ++++------\n src/libcamera/pipeline/ipu3/cio2.h | 2 +-\n src/libcamera/pipeline/ipu3/frames.h | 2 +-\n src/libcamera/pipeline/ipu3/imgu.cpp | 5 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp | 5 +-\n .../pipeline/raspberrypi/dma_heaps.cpp | 2 +-\n .../pipeline/raspberrypi/raspberrypi.cpp | 3 +-\n .../pipeline/raspberrypi/rpi_stream.cpp | 4 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 5 +-\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 5 +-\n src/libcamera/pipeline/simple/converter.cpp | 7 +-\n src/libcamera/pipeline/simple/converter.h | 4 +-\n src/libcamera/pipeline/simple/simple.cpp | 3 +-\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 5 +-\n src/libcamera/pipeline/vimc/vimc.cpp | 7 +-\n src/libcamera/pipeline_handler.cpp | 5 +-\n src/libcamera/process.cpp | 6 +-\n src/libcamera/proxy/worker/meson.build | 2 +-\n src/libcamera/request.cpp | 3 +-\n src/libcamera/source-paths.cpp | 129 ++++++++++++++++++\n src/libcamera/stream.cpp | 5 +-\n src/libcamera/sysfs.cpp | 4 +-\n src/libcamera/v4l2_device.cpp | 7 +-\n src/libcamera/v4l2_pixelformat.cpp | 3 +-\n src/libcamera/v4l2_subdevice.cpp | 5 +-\n src/libcamera/v4l2_videodevice.cpp | 5 +-\n src/meson.build | 8 +-\n src/qcam/meson.build | 2 +-\n src/v4l2/meson.build | 2 +-\n src/v4l2/v4l2_camera.cpp | 2 +-\n src/v4l2/v4l2_camera.h | 4 +-\n src/v4l2/v4l2_camera_proxy.cpp | 7 +-\n src/v4l2/v4l2_compat_manager.cpp | 6 +-\n test/camera-sensor.cpp | 3 +-\n test/camera/buffer_import.cpp | 7 +-\n test/camera/capture.cpp | 6 +-\n test/camera/meson.build | 2 +-\n test/controls/meson.build | 2 +-\n test/event-dispatcher.cpp | 6 +-\n test/event-thread.cpp | 6 +-\n test/event.cpp | 8 +-\n test/file-descriptor.cpp | 2 +-\n test/file.cpp | 2 +-\n test/hotplug-cameras.cpp | 8 +-\n test/ipa/ipa_interface_test.cpp | 9 +-\n test/ipa/meson.build | 2 +-\n test/ipc/meson.build | 2 +-\n test/ipc/unixsocket.cpp | 7 +-\n test/ipc/unixsocket_ipc.cpp | 10 +-\n test/libtest/meson.build | 2 +-\n test/log/log_api.cpp | 4 +-\n test/log/log_process.cpp | 11 +-\n test/log/meson.build | 2 +-\n test/media_device/meson.build | 4 +-\n test/meson.build | 5 +-\n test/message.cpp | 4 +-\n test/object-delete.cpp | 5 +-\n test/object-invoke.cpp | 7 +-\n test/object.cpp | 7 +-\n test/pipeline/ipu3/meson.build | 2 +-\n test/pipeline/rkisp1/meson.build | 2 +-\n test/pixel-format.cpp | 2 +-\n test/process/meson.build | 2 +-\n test/process/process_test.cpp | 10 +-\n test/public-api.cpp | 25 ++++\n .../generated_serializer/meson.build | 2 +-\n .../ipa_data_serializer_test.cpp | 5 +-\n test/serialization/meson.build | 2 +-\n test/signal-threads.cpp | 6 +-\n test/signal.cpp | 4 +-\n test/span.cpp | 2 +-\n test/stream/meson.build | 2 +-\n test/threads.cpp | 2 +-\n test/timer-thread.cpp | 6 +-\n test/timer.cpp | 6 +-\n test/utils.cpp | 6 +-\n test/v4l2_subdevice/list_formats.cpp | 3 +-\n test/v4l2_subdevice/meson.build | 2 +-\n test/v4l2_videodevice/buffer_sharing.cpp | 6 +-\n test/v4l2_videodevice/capture_async.cpp | 6 +-\n test/v4l2_videodevice/formats.cpp | 3 +-\n test/v4l2_videodevice/meson.build | 2 +-\n test/v4l2_videodevice/v4l2_m2mdevice.cpp | 7 +-\n .../module_ipa_proxy.cpp.tmpl | 5 +-\n .../module_ipa_proxy.h.tmpl | 3 +-\n .../module_ipa_proxy_worker.cpp.tmpl | 7 +-\n 235 files changed, 854 insertions(+), 647 deletions(-)\n rename include/libcamera/{ => base}/bound_method.h (97%)\n rename include/libcamera/{ => base}/class.h (100%)\n rename include/libcamera/{internal => base}/event_dispatcher.h (77%)\n rename include/libcamera/{internal => base}/event_dispatcher_poll.h (81%)\n rename include/libcamera/{internal => base}/event_notifier.h (88%)\n rename include/libcamera/{internal => base}/file.h (85%)\n rename include/libcamera/{internal => base}/log.h (93%)\n create mode 100644 include/libcamera/base/meson.build\n rename include/libcamera/{internal => base}/message.h (87%)\n rename include/libcamera/{ => base}/object.h (89%)\n create mode 100644 include/libcamera/base/private.h\n rename include/libcamera/{internal => base}/semaphore.h (72%)\n rename include/libcamera/{ => base}/signal.h (93%)\n rename include/libcamera/{ => base}/span.h (100%)\n rename include/libcamera/{internal => base}/thread.h (82%)\n rename include/libcamera/{internal => base}/timer.h (79%)\n rename include/libcamera/{internal => base}/utils.h (97%)\n create mode 100644 include/libcamera/internal/source-paths.h\n rename src/libcamera/{ => base}/bound_method.cpp (94%)\n rename src/libcamera/{ => base}/class.cpp (99%)\n rename src/libcamera/{ => base}/event_dispatcher.cpp (97%)\n rename src/libcamera/{ => base}/event_dispatcher_poll.cpp (95%)\n rename src/libcamera/{ => base}/event_notifier.cpp (95%)\n rename src/libcamera/{ => base}/file.cpp (99%)\n rename src/libcamera/{ => base}/log.cpp (99%)\n create mode 100644 src/libcamera/base/meson.build\n rename src/libcamera/{ => base}/message.cpp (96%)\n rename src/libcamera/{ => base}/object.cpp (96%)\n rename src/libcamera/{ => base}/semaphore.cpp (96%)\n rename src/libcamera/{ => base}/signal.cpp (98%)\n rename src/libcamera/{ => base}/thread.cpp (98%)\n rename src/libcamera/{ => base}/timer.cpp (93%)\n rename src/libcamera/{ => base}/utils.cpp (81%)\n create mode 100644 src/libcamera/source-paths.cpp\n create mode 100644 test/public-api.cpp" }