Patch Detail
Show a patch.
GET /api/1.1/patches/17650/?format=api
{ "id": 17650, "url": "https://patchwork.libcamera.org/api/1.1/patches/17650/?format=api", "web_url": "https://patchwork.libcamera.org/patch/17650/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/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": "<20221019231537.26880-7-laurent.pinchart@ideasonboard.com>", "date": "2022-10-19T23:15:37", "name": "[libcamera-devel,v1,6/6] apps: Shared common source between applications", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "392cc4399d64641b6b06a5c059f7f72a6a990bfd", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/17650/mbox/", "series": [ { "id": 3571, "url": "https://patchwork.libcamera.org/api/1.1/series/3571/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3571", "date": "2022-10-19T23:15:31", "name": "apps: Avoid duplicate compilation of common code", "version": 1, "mbox": "https://patchwork.libcamera.org/series/3571/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/17650/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/17650/checks/", "tags": {}, "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 290EAC327C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Oct 2022 23:16:17 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D460D62E8C;\n\tThu, 20 Oct 2022 01:16:16 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6E62A62E85\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Oct 2022 01:16:14 +0200 (CEST)", "from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id ECDE88BF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Oct 2022 01:16:13 +0200 (CEST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666221376;\n\tbh=pCr3sJUk3p4so3UXHmEcJQE/it87CV9I2iElBI3Gf2I=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=nIEdFNw1bW6I8uUlR/LYYgXNbY9FkcV4+zmRC7Jpz3jZC1DhSqfGlNshzEmYxHgx+\n\tC2m1uIbEnqMwwkwlvn0yn1vI+rtqzBLC8yZsavl3+ObjGpoxUOW1ZXZJ6w6jgBYSoM\n\tnHD0W9sDZurRANVLsBtVrHKdPoIzhWSaQKxpQkLVb5dSOLHLY/quUPmEIibWoMIjMU\n\tMxE9HIN1KWmedtwRJ37bM6MWUsd+C9ELTtWa+lW8k5g/U6pBiIr4PdW5pT1pmyNOE/\n\tH8FDME8po4hsn6iFXDP3eXZJ1KIfxoNUqR7z32DFUryts5gu+7rsaPnyQHr4+HBr8H\n\tyNesYx1AflOTQ==", "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1666221374;\n\tbh=pCr3sJUk3p4so3UXHmEcJQE/it87CV9I2iElBI3Gf2I=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=vrax0qJEpPbBLYGYLpLwgAmaq9+aaUOyY6GTxiPEDLl1UGLqECekyxeXRalKXew21\n\th5iUqRPhESCWgRriHjrocZZc4rnMAiQojs2B9rksOeVn80cD1ubZlE5J0pxvgboQTz\n\t1hNezO0kGPiKmStGT7jcc/e2A09brNTJxRL5cmT8=" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"vrax0qJE\"; dkim-atps=neutral", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 20 Oct 2022 02:15:37 +0300", "Message-Id": "<20221019231537.26880-7-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.37.3", "In-Reply-To": "<20221019231537.26880-1-laurent.pinchart@ideasonboard.com>", "References": "<20221019231537.26880-1-laurent.pinchart@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v1 6/6] apps: Shared common source between\n\tapplications", "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>", "From": "Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>", "Reply-To": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Multiple source files in the src/apps/cam/ directory are used by cam,\nqcam and lc-compliance. They are compiled separately for each\napplication. Move them to the src/apps/ directory and compile them in a\nstatic library to decrease the number of compilation operations.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/apps/cam/camera_session.cpp | 5 +++--\n src/apps/cam/camera_session.h | 2 +-\n src/apps/cam/drm.cpp | 2 +-\n src/apps/cam/file_sink.cpp | 5 +++--\n src/apps/cam/main.cpp | 7 ++++---\n src/apps/cam/meson.build | 14 ++------------\n src/apps/cam/sdl_sink.cpp | 5 +++--\n src/apps/cam/sdl_texture.h | 2 +-\n src/apps/{cam => }/dng_writer.cpp | 0\n src/apps/{cam => }/dng_writer.h | 0\n src/apps/{cam => }/event_loop.cpp | 0\n src/apps/{cam => }/event_loop.h | 0\n src/apps/{cam => }/image.cpp | 0\n src/apps/{cam => }/image.h | 0\n src/apps/lc-compliance/main.cpp | 2 +-\n src/apps/lc-compliance/meson.build | 3 +--\n src/apps/lc-compliance/simple_capture.h | 2 +-\n src/apps/meson.build | 25 +++++++++++++++++++++++++\n src/apps/{cam => }/options.cpp | 0\n src/apps/{cam => }/options.h | 0\n src/apps/qcam/format_converter.cpp | 2 +-\n src/apps/qcam/main.cpp | 4 ++--\n src/apps/qcam/main_window.cpp | 4 ++--\n src/apps/qcam/main_window.h | 2 +-\n src/apps/qcam/meson.build | 13 ++-----------\n src/apps/qcam/viewfinder_gl.cpp | 2 +-\n src/apps/qcam/viewfinder_qt.cpp | 2 +-\n src/apps/{cam => }/stream_options.cpp | 0\n src/apps/{cam => }/stream_options.h | 0\n 29 files changed, 56 insertions(+), 47 deletions(-)\n rename src/apps/{cam => }/dng_writer.cpp (100%)\n rename src/apps/{cam => }/dng_writer.h (100%)\n rename src/apps/{cam => }/event_loop.cpp (100%)\n rename src/apps/{cam => }/event_loop.h (100%)\n rename src/apps/{cam => }/image.cpp (100%)\n rename src/apps/{cam => }/image.h (100%)\n rename src/apps/{cam => }/options.cpp (100%)\n rename src/apps/{cam => }/options.h (100%)\n rename src/apps/{cam => }/stream_options.cpp (100%)\n rename src/apps/{cam => }/stream_options.h (100%)", "diff": "diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\nindex 6b409c983b86..c581410e4dec 100644\n--- a/src/apps/cam/camera_session.cpp\n+++ b/src/apps/cam/camera_session.cpp\n@@ -13,9 +13,11 @@\n #include <libcamera/control_ids.h>\n #include <libcamera/property_ids.h>\n \n+#include \"../event_loop.h\"\n+#include \"../stream_options.h\"\n+\n #include \"camera_session.h\"\n #include \"capture_script.h\"\n-#include \"event_loop.h\"\n #include \"file_sink.h\"\n #ifdef HAVE_KMS\n #include \"kms_sink.h\"\n@@ -24,7 +26,6 @@\n #ifdef HAVE_SDL\n #include \"sdl_sink.h\"\n #endif\n-#include \"stream_options.h\"\n \n using namespace libcamera;\n \ndiff --git a/src/apps/cam/camera_session.h b/src/apps/cam/camera_session.h\nindex d562caae0794..46748d5c98ac 100644\n--- a/src/apps/cam/camera_session.h\n+++ b/src/apps/cam/camera_session.h\n@@ -21,7 +21,7 @@\n #include <libcamera/request.h>\n #include <libcamera/stream.h>\n \n-#include \"options.h\"\n+#include \"../options.h\"\n \n class CaptureScript;\n class FrameSink;\ndiff --git a/src/apps/cam/drm.cpp b/src/apps/cam/drm.cpp\nindex 2e4d7985245d..3ad33175fdd3 100644\n--- a/src/apps/cam/drm.cpp\n+++ b/src/apps/cam/drm.cpp\n@@ -24,7 +24,7 @@\n \n #include <libdrm/drm_mode.h>\n \n-#include \"event_loop.h\"\n+#include \"../event_loop.h\"\n \n namespace DRM {\n \ndiff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp\nindex 9d60c04e1cf4..dc109af729fe 100644\n--- a/src/apps/cam/file_sink.cpp\n+++ b/src/apps/cam/file_sink.cpp\n@@ -15,9 +15,10 @@\n \n #include <libcamera/camera.h>\n \n-#include \"dng_writer.h\"\n+#include \"../dng_writer.h\"\n+#include \"../image.h\"\n+\n #include \"file_sink.h\"\n-#include \"image.h\"\n \n using namespace libcamera;\n \ndiff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\nindex d70130e2ab81..85a678f86819 100644\n--- a/src/apps/cam/main.cpp\n+++ b/src/apps/cam/main.cpp\n@@ -14,11 +14,12 @@\n #include <libcamera/libcamera.h>\n #include <libcamera/property_ids.h>\n \n+#include \"../event_loop.h\"\n+#include \"../options.h\"\n+#include \"../stream_options.h\"\n+\n #include \"camera_session.h\"\n-#include \"event_loop.h\"\n #include \"main.h\"\n-#include \"options.h\"\n-#include \"stream_options.h\"\n \n using namespace libcamera;\n \ndiff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build\nindex 297de64fbdd9..48c834ace71b 100644\n--- a/src/apps/cam/meson.build\n+++ b/src/apps/cam/meson.build\n@@ -10,16 +10,12 @@ cam_enabled = true\n cam_sources = files([\n 'camera_session.cpp',\n 'capture_script.cpp',\n- 'event_loop.cpp',\n 'file_sink.cpp',\n 'frame_sink.cpp',\n- 'image.cpp',\n 'main.cpp',\n- 'options.cpp',\n- 'stream_options.cpp',\n ])\n \n-cam_cpp_args = []\n+cam_cpp_args = [apps_cpp_args]\n \n libdrm = dependency('libdrm', required : false)\n libjpeg = dependency('libjpeg', required : false)\n@@ -49,14 +45,8 @@ if libsdl2.found()\n endif\n endif\n \n-if libtiff.found()\n- cam_cpp_args += ['-DHAVE_TIFF']\n- cam_sources += files([\n- 'dng_writer.cpp',\n- ])\n-endif\n-\n cam = executable('cam', cam_sources,\n+ link_with : apps_lib,\n dependencies : [\n libatomic,\n libcamera_public,\ndiff --git a/src/apps/cam/sdl_sink.cpp b/src/apps/cam/sdl_sink.cpp\nindex ee177227dbca..ec9dd1868332 100644\n--- a/src/apps/cam/sdl_sink.cpp\n+++ b/src/apps/cam/sdl_sink.cpp\n@@ -19,8 +19,9 @@\n #include <libcamera/camera.h>\n #include <libcamera/formats.h>\n \n-#include \"event_loop.h\"\n-#include \"image.h\"\n+#include \"../event_loop.h\"\n+#include \"../image.h\"\n+\n #ifdef HAVE_LIBJPEG\n #include \"sdl_texture_mjpg.h\"\n #endif\ndiff --git a/src/apps/cam/sdl_texture.h b/src/apps/cam/sdl_texture.h\nindex 6ccd85eab390..6890f239ddd6 100644\n--- a/src/apps/cam/sdl_texture.h\n+++ b/src/apps/cam/sdl_texture.h\n@@ -11,7 +11,7 @@\n \n #include <SDL2/SDL.h>\n \n-#include \"image.h\"\n+#include \"../image.h\"\n \n class SDLTexture\n {\ndiff --git a/src/apps/cam/dng_writer.cpp b/src/apps/dng_writer.cpp\nsimilarity index 100%\nrename from src/apps/cam/dng_writer.cpp\nrename to src/apps/dng_writer.cpp\ndiff --git a/src/apps/cam/dng_writer.h b/src/apps/dng_writer.h\nsimilarity index 100%\nrename from src/apps/cam/dng_writer.h\nrename to src/apps/dng_writer.h\ndiff --git a/src/apps/cam/event_loop.cpp b/src/apps/event_loop.cpp\nsimilarity index 100%\nrename from src/apps/cam/event_loop.cpp\nrename to src/apps/event_loop.cpp\ndiff --git a/src/apps/cam/event_loop.h b/src/apps/event_loop.h\nsimilarity index 100%\nrename from src/apps/cam/event_loop.h\nrename to src/apps/event_loop.h\ndiff --git a/src/apps/cam/image.cpp b/src/apps/image.cpp\nsimilarity index 100%\nrename from src/apps/cam/image.cpp\nrename to src/apps/image.cpp\ndiff --git a/src/apps/cam/image.h b/src/apps/image.h\nsimilarity index 100%\nrename from src/apps/cam/image.h\nrename to src/apps/image.h\ndiff --git a/src/apps/lc-compliance/main.cpp b/src/apps/lc-compliance/main.cpp\nindex 7eb52ae4c094..2cc6b77fc78e 100644\n--- a/src/apps/lc-compliance/main.cpp\n+++ b/src/apps/lc-compliance/main.cpp\n@@ -15,7 +15,7 @@\n #include <libcamera/libcamera.h>\n \n #include \"environment.h\"\n-#include \"../cam/options.h\"\n+#include \"../options.h\"\n \n using namespace libcamera;\n \ndiff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build\nindex 05d622be0a40..51d9075ac30b 100644\n--- a/src/apps/lc-compliance/meson.build\n+++ b/src/apps/lc-compliance/meson.build\n@@ -11,8 +11,6 @@ endif\n lc_compliance_enabled = true\n \n lc_compliance_sources = files([\n- '../cam/event_loop.cpp',\n- '../cam/options.cpp',\n 'environment.cpp',\n 'main.cpp',\n 'simple_capture.cpp',\n@@ -21,6 +19,7 @@ lc_compliance_sources = files([\n \n lc_compliance = executable('lc-compliance', lc_compliance_sources,\n cpp_args : [ '-fexceptions' ],\n+ link_with : apps_lib,\n dependencies : [\n libatomic,\n libcamera_public,\ndiff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/simple_capture.h\nindex 9d31f7cb2e53..5a64395d986c 100644\n--- a/src/apps/lc-compliance/simple_capture.h\n+++ b/src/apps/lc-compliance/simple_capture.h\n@@ -11,7 +11,7 @@\n \n #include <libcamera/libcamera.h>\n \n-#include \"../cam/event_loop.h\"\n+#include \"../event_loop.h\"\n \n class SimpleCapture\n {\ndiff --git a/src/apps/meson.build b/src/apps/meson.build\nindex 95f1f5190c7a..e1879806c99e 100644\n--- a/src/apps/meson.build\n+++ b/src/apps/meson.build\n@@ -10,6 +10,31 @@ endif\n \n libtiff = dependency('libtiff-4', required : false)\n \n+apps_sources = files([\n+ 'image.cpp',\n+ 'options.cpp',\n+ 'stream_options.cpp',\n+])\n+\n+apps_cpp_args = []\n+\n+if libevent.found()\n+ apps_sources += files([\n+ 'event_loop.cpp',\n+ ])\n+endif\n+\n+if libtiff.found()\n+ apps_cpp_args += ['-DHAVE_TIFF']\n+ apps_sources += files([\n+ 'dng_writer.cpp',\n+ ])\n+endif\n+\n+apps_lib = static_library('apps', apps_sources,\n+ cpp_args : apps_cpp_args,\n+ dependencies : [libcamera_public])\n+\n subdir('lc-compliance')\n \n subdir('cam')\ndiff --git a/src/apps/cam/options.cpp b/src/apps/options.cpp\nsimilarity index 100%\nrename from src/apps/cam/options.cpp\nrename to src/apps/options.cpp\ndiff --git a/src/apps/cam/options.h b/src/apps/options.h\nsimilarity index 100%\nrename from src/apps/cam/options.h\nrename to src/apps/options.h\ndiff --git a/src/apps/qcam/format_converter.cpp b/src/apps/qcam/format_converter.cpp\nindex 9331da0ce7a3..0390e0184454 100644\n--- a/src/apps/qcam/format_converter.cpp\n+++ b/src/apps/qcam/format_converter.cpp\n@@ -14,7 +14,7 @@\n \n #include <libcamera/formats.h>\n \n-#include \"../cam/image.h\"\n+#include \"../image.h\"\n \n #define RGBSHIFT\t\t8\n #ifndef MAX\ndiff --git a/src/apps/qcam/main.cpp b/src/apps/qcam/main.cpp\nindex d3f01a85f1fb..0373c78d53c8 100644\n--- a/src/apps/qcam/main.cpp\n+++ b/src/apps/qcam/main.cpp\n@@ -13,8 +13,8 @@\n \n #include <libcamera/camera_manager.h>\n \n-#include \"../cam/options.h\"\n-#include \"../cam/stream_options.h\"\n+#include \"../options.h\"\n+#include \"../stream_options.h\"\n #include \"main_window.h\"\n #include \"message_handler.h\"\n \ndiff --git a/src/apps/qcam/main_window.cpp b/src/apps/qcam/main_window.cpp\nindex f553ccb01805..a90e95d545e1 100644\n--- a/src/apps/qcam/main_window.cpp\n+++ b/src/apps/qcam/main_window.cpp\n@@ -26,8 +26,8 @@\n #include <QToolButton>\n #include <QtDebug>\n \n-#include \"../cam/dng_writer.h\"\n-#include \"../cam/image.h\"\n+#include \"../dng_writer.h\"\n+#include \"../image.h\"\n \n #include \"cam_select_dialog.h\"\n #ifndef QT_NO_OPENGL\ndiff --git a/src/apps/qcam/main_window.h b/src/apps/qcam/main_window.h\nindex 95b64124336f..8d378a1ff768 100644\n--- a/src/apps/qcam/main_window.h\n+++ b/src/apps/qcam/main_window.h\n@@ -27,7 +27,7 @@\n #include <QQueue>\n #include <QTimer>\n \n-#include \"../cam/stream_options.h\"\n+#include \"../stream_options.h\"\n \n #include \"viewfinder.h\"\n \ndiff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build\nindex e298101e2c43..eb0712d91351 100644\n--- a/src/apps/qcam/meson.build\n+++ b/src/apps/qcam/meson.build\n@@ -15,9 +15,6 @@ endif\n qcam_enabled = true\n \n qcam_sources = files([\n- '../cam/image.cpp',\n- '../cam/options.cpp',\n- '../cam/stream_options.cpp',\n 'cam_select_dialog.cpp',\n 'format_converter.cpp',\n 'main.cpp',\n@@ -36,14 +33,7 @@ qcam_resources = files([\n 'assets/feathericons/feathericons.qrc',\n ])\n \n-qt5_cpp_args = ['-DQT_NO_KEYWORDS']\n-\n-if libtiff.found()\n- qt5_cpp_args += ['-DHAVE_TIFF']\n- qcam_sources += files([\n- '../cam/dng_writer.cpp',\n- ])\n-endif\n+qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS']\n \n if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget',\n dependencies : qt5_dep, args : '-fPIC')\n@@ -73,6 +63,7 @@ resources = qt5.preprocess(moc_headers: qcam_moc_headers,\n \n qcam = executable('qcam', qcam_sources, resources,\n install : true,\n+ link_with : apps_lib,\n dependencies : [\n libatomic,\n libcamera_public,\ndiff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp\nindex 38ddad58e09e..7b791765734e 100644\n--- a/src/apps/qcam/viewfinder_gl.cpp\n+++ b/src/apps/qcam/viewfinder_gl.cpp\n@@ -16,7 +16,7 @@\n \n #include <libcamera/formats.h>\n \n-#include \"../cam/image.h\"\n+#include \"../image.h\"\n \n static const QList<libcamera::PixelFormat> supportedFormats{\n \t/* YUV - packed (single plane) */\ndiff --git a/src/apps/qcam/viewfinder_qt.cpp b/src/apps/qcam/viewfinder_qt.cpp\nindex c20fd6bc8fc2..e4efc587c759 100644\n--- a/src/apps/qcam/viewfinder_qt.cpp\n+++ b/src/apps/qcam/viewfinder_qt.cpp\n@@ -20,7 +20,7 @@\n #include <QPainter>\n #include <QtDebug>\n \n-#include \"../cam/image.h\"\n+#include \"../image.h\"\n \n #include \"format_converter.h\"\n \ndiff --git a/src/apps/cam/stream_options.cpp b/src/apps/stream_options.cpp\nsimilarity index 100%\nrename from src/apps/cam/stream_options.cpp\nrename to src/apps/stream_options.cpp\ndiff --git a/src/apps/cam/stream_options.h b/src/apps/stream_options.h\nsimilarity index 100%\nrename from src/apps/cam/stream_options.h\nrename to src/apps/stream_options.h\n", "prefixes": [ "libcamera-devel", "v1", "6/6" ] }