Cover Letter Detail
Show a cover letter.
GET /api/covers/17644/?format=api
{ "id": 17644, "url": "https://patchwork.libcamera.org/api/covers/17644/?format=api", "web_url": "https://patchwork.libcamera.org/cover/17644/", "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": "<20221019231537.26880-1-laurent.pinchart@ideasonboard.com>", "date": "2022-10-19T23:15:31", "name": "[libcamera-devel,v1,0/6] apps: Avoid duplicate compilation of common code", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/17644/mbox/", "series": [ { "id": 3571, "url": "https://patchwork.libcamera.org/api/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/covers/17644/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 1B011C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Oct 2022 23:16:06 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E60A662E78;\n\tThu, 20 Oct 2022 01:16:04 +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 C029D604DA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Oct 2022 01:16:02 +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 054C5570\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Oct 2022 01:16:01 +0200 (CEST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666221365;\n\tbh=crR8FEEQrtrCWAIaR6QMuuY6FOslkNbpcUDesay4JZo=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=3KCL4s030cfZ0RxhxlKw8lFa6iooT761JxgqlUM9KRrbNE8u/VkAq9oSBtbm0+Y8H\n\tcKQ0dc1/B6X3AWZ1aVt+RVrEcUCjjsijBlEMZp+AIiSyGAt2xa8Hjk+vEV1ffD75hv\n\teiKC50NPxieBQiKohYXxFLCroyzNwLKxlAe7RfkNHuNtPEITOq5LprOlfmrXhWhuY4\n\tqBZnlKdIXe9wgtN47FRruvvKwYfXHxBY1okpsyyuR4ak/rdUwQNJ2vqowA7YH86o3J\n\tTo5fgN8m7q1fZvrXmvrWVaKV+FcAYFni7LWK+aSRK5PxtE3DfDq8Q5oqtiYkGhFxNd\n\tta05y7+ALJ1eg==", "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1666221362;\n\tbh=crR8FEEQrtrCWAIaR6QMuuY6FOslkNbpcUDesay4JZo=;\n\th=From:To:Subject:Date:From;\n\tb=e4sPlrb4cBxwuRLjN6Hh0Cnn78HWxy7viy2CIJyI4vB7F9NimFdfOUtBCnUd7Qdz8\n\thMGpMZAJ0WImcgphqVxvbHB2/z2giF7SbgU7aRqL2G37gTsoN7/rvBBUmOXKZk27gh\n\tjkeA4Xz9MIdLRrl6wdgm/7aj6DzbbXbV6Qzx5lNc=" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"e4sPlrb4\"; dkim-atps=neutral", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 20 Oct 2022 02:15:31 +0300", "Message-Id": "<20221019231537.26880-1-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.37.3", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v1 0/6] apps: Avoid duplicate compilation\n\tof common code", "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": "Hello,\n\nThis small series creates a new internal static library named libapps to\nstore code shared by the cam, qcam and lc-compliance applications. The\ngoal is to shorten the build time by avoiding duplicate compilation\nsteps.\n\nPatches 1/6 and 2/6 are drive-by fixes, and should I believe be\nconsidered even if the rest of the series is rejected.\n\nPatch 3/6 moves the cam, qcam and lc-compliance applications to a\nsrc/apps/ directory. This isn't strictly necessary, as I could have\ncreated a src/libapps/ directory instead to store the shared code, but I\nbelieve the result is cleaner with src/apps/.\n\nPatches 4/6 and 5/6 then moves the libevent and libtiff dependencies\nshared by multiple applications to src/apps/meson.build. Finally, patch\n6/6 creates the static libapps, moving the shared code from the\nsrc/apps/cam/ directory to src/apps/. I could create src/apps/libapps/\nif desired, but I thought it was a bit overkill and didn't make things\nmuch cleaner in my opinion (feel free to disagree with this).\n\nThe end result is a decrease of 5 compilation steps for a build that has\nall three applications enabled.\n\nLaurent Pinchart (6):\n cam: Don't print DNG option text if libtiff isn't found\n qcam: Simplify dependency handling for libtiff\n Move test applications to src/apps/\n apps: Move libevent dependency to src/apps/meson.build\n apps: Move libtiff dependency to src/apps/meson.build\n apps: Shared common source between applications\n\n src/{ => apps}/cam/camera_session.cpp | 5 ++-\n src/{ => apps}/cam/camera_session.h | 2 +-\n src/{ => apps}/cam/capture-script.yaml | 0\n src/{ => apps}/cam/capture_script.cpp | 0\n src/{ => apps}/cam/capture_script.h | 0\n src/{ => apps}/cam/drm.cpp | 2 +-\n src/{ => apps}/cam/drm.h | 0\n src/{ => apps}/cam/file_sink.cpp | 5 ++-\n src/{ => apps}/cam/file_sink.h | 0\n src/{ => apps}/cam/frame_sink.cpp | 0\n src/{ => apps}/cam/frame_sink.h | 0\n src/{ => apps}/cam/kms_sink.cpp | 0\n src/{ => apps}/cam/kms_sink.h | 0\n src/{ => apps}/cam/main.cpp | 9 ++--\n src/{ => apps}/cam/main.h | 0\n src/{ => apps}/cam/meson.build | 19 ++-------\n src/{ => apps}/cam/sdl_sink.cpp | 5 ++-\n src/{ => apps}/cam/sdl_sink.h | 0\n src/{ => apps}/cam/sdl_texture.cpp | 0\n src/{ => apps}/cam/sdl_texture.h | 2 +-\n src/{ => apps}/cam/sdl_texture_mjpg.cpp | 0\n src/{ => apps}/cam/sdl_texture_mjpg.h | 0\n src/{ => apps}/cam/sdl_texture_yuv.cpp | 0\n src/{ => apps}/cam/sdl_texture_yuv.h | 0\n src/{cam => apps}/dng_writer.cpp | 0\n src/{cam => apps}/dng_writer.h | 0\n src/{cam => apps}/event_loop.cpp | 0\n src/{cam => apps}/event_loop.h | 0\n src/{cam => apps}/image.cpp | 0\n src/{cam => apps}/image.h | 0\n src/{ => apps}/lc-compliance/capture_test.cpp | 0\n src/{ => apps}/lc-compliance/environment.cpp | 0\n src/{ => apps}/lc-compliance/environment.h | 0\n src/{ => apps}/lc-compliance/main.cpp | 2 +-\n src/{ => apps}/lc-compliance/meson.build | 6 +--\n .../lc-compliance/simple_capture.cpp | 0\n src/{ => apps}/lc-compliance/simple_capture.h | 2 +-\n src/apps/meson.build | 41 +++++++++++++++++++\n src/{cam => apps}/options.cpp | 0\n src/{cam => apps}/options.h | 0\n .../qcam/assets/feathericons/activity.svg | 0\n .../qcam/assets/feathericons/airplay.svg | 0\n .../qcam/assets/feathericons/alert-circle.svg | 0\n .../assets/feathericons/alert-octagon.svg | 0\n .../assets/feathericons/alert-triangle.svg | 0\n .../qcam/assets/feathericons/align-center.svg | 0\n .../assets/feathericons/align-justify.svg | 0\n .../qcam/assets/feathericons/align-left.svg | 0\n .../qcam/assets/feathericons/align-right.svg | 0\n .../qcam/assets/feathericons/anchor.svg | 0\n .../qcam/assets/feathericons/aperture.svg | 0\n .../qcam/assets/feathericons/archive.svg | 0\n .../assets/feathericons/arrow-down-circle.svg | 0\n .../assets/feathericons/arrow-down-left.svg | 0\n .../assets/feathericons/arrow-down-right.svg | 0\n .../qcam/assets/feathericons/arrow-down.svg | 0\n .../assets/feathericons/arrow-left-circle.svg | 0\n .../qcam/assets/feathericons/arrow-left.svg | 0\n .../feathericons/arrow-right-circle.svg | 0\n .../qcam/assets/feathericons/arrow-right.svg | 0\n .../assets/feathericons/arrow-up-circle.svg | 0\n .../assets/feathericons/arrow-up-left.svg | 0\n .../assets/feathericons/arrow-up-right.svg | 0\n .../qcam/assets/feathericons/arrow-up.svg | 0\n .../qcam/assets/feathericons/at-sign.svg | 0\n .../qcam/assets/feathericons/award.svg | 0\n .../qcam/assets/feathericons/bar-chart-2.svg | 0\n .../qcam/assets/feathericons/bar-chart.svg | 0\n .../assets/feathericons/battery-charging.svg | 0\n .../qcam/assets/feathericons/battery.svg | 0\n .../qcam/assets/feathericons/bell-off.svg | 0\n .../qcam/assets/feathericons/bell.svg | 0\n .../qcam/assets/feathericons/bluetooth.svg | 0\n .../qcam/assets/feathericons/bold.svg | 0\n .../qcam/assets/feathericons/book-open.svg | 0\n .../qcam/assets/feathericons/book.svg | 0\n .../qcam/assets/feathericons/bookmark.svg | 0\n .../qcam/assets/feathericons/box.svg | 0\n .../qcam/assets/feathericons/briefcase.svg | 0\n .../qcam/assets/feathericons/calendar.svg | 0\n .../qcam/assets/feathericons/camera-off.svg | 0\n .../qcam/assets/feathericons/camera.svg | 0\n .../qcam/assets/feathericons/cast.svg | 0\n .../qcam/assets/feathericons/check-circle.svg | 0\n .../qcam/assets/feathericons/check-square.svg | 0\n .../qcam/assets/feathericons/check.svg | 0\n .../qcam/assets/feathericons/chevron-down.svg | 0\n .../qcam/assets/feathericons/chevron-left.svg | 0\n .../assets/feathericons/chevron-right.svg | 0\n .../qcam/assets/feathericons/chevron-up.svg | 0\n .../assets/feathericons/chevrons-down.svg | 0\n .../assets/feathericons/chevrons-left.svg | 0\n .../assets/feathericons/chevrons-right.svg | 0\n .../qcam/assets/feathericons/chevrons-up.svg | 0\n .../qcam/assets/feathericons/chrome.svg | 0\n .../qcam/assets/feathericons/circle.svg | 0\n .../qcam/assets/feathericons/clipboard.svg | 0\n .../qcam/assets/feathericons/clock.svg | 0\n .../assets/feathericons/cloud-drizzle.svg | 0\n .../assets/feathericons/cloud-lightning.svg | 0\n .../qcam/assets/feathericons/cloud-off.svg | 0\n .../qcam/assets/feathericons/cloud-rain.svg | 0\n .../qcam/assets/feathericons/cloud-snow.svg | 0\n .../qcam/assets/feathericons/cloud.svg | 0\n .../qcam/assets/feathericons/code.svg | 0\n .../qcam/assets/feathericons/codepen.svg | 0\n .../qcam/assets/feathericons/codesandbox.svg | 0\n .../qcam/assets/feathericons/coffee.svg | 0\n .../qcam/assets/feathericons/columns.svg | 0\n .../qcam/assets/feathericons/command.svg | 0\n .../qcam/assets/feathericons/compass.svg | 0\n .../qcam/assets/feathericons/copy.svg | 0\n .../assets/feathericons/corner-down-left.svg | 0\n .../assets/feathericons/corner-down-right.svg | 0\n .../assets/feathericons/corner-left-down.svg | 0\n .../assets/feathericons/corner-left-up.svg | 0\n .../assets/feathericons/corner-right-down.svg | 0\n .../assets/feathericons/corner-right-up.svg | 0\n .../assets/feathericons/corner-up-left.svg | 0\n .../assets/feathericons/corner-up-right.svg | 0\n .../qcam/assets/feathericons/cpu.svg | 0\n .../qcam/assets/feathericons/credit-card.svg | 0\n .../qcam/assets/feathericons/crop.svg | 0\n .../qcam/assets/feathericons/crosshair.svg | 0\n .../qcam/assets/feathericons/database.svg | 0\n .../qcam/assets/feathericons/delete.svg | 0\n .../qcam/assets/feathericons/disc.svg | 0\n .../qcam/assets/feathericons/dollar-sign.svg | 0\n .../assets/feathericons/download-cloud.svg | 0\n .../qcam/assets/feathericons/download.svg | 0\n .../qcam/assets/feathericons/droplet.svg | 0\n .../qcam/assets/feathericons/edit-2.svg | 0\n .../qcam/assets/feathericons/edit-3.svg | 0\n .../qcam/assets/feathericons/edit.svg | 0\n .../assets/feathericons/external-link.svg | 0\n .../qcam/assets/feathericons/eye-off.svg | 0\n .../qcam/assets/feathericons/eye.svg | 0\n .../qcam/assets/feathericons/facebook.svg | 0\n .../qcam/assets/feathericons/fast-forward.svg | 0\n .../qcam/assets/feathericons/feather.svg | 0\n .../qcam/assets/feathericons/feathericons.qrc | 0\n .../qcam/assets/feathericons/figma.svg | 0\n .../qcam/assets/feathericons/file-minus.svg | 0\n .../qcam/assets/feathericons/file-plus.svg | 0\n .../qcam/assets/feathericons/file-text.svg | 0\n .../qcam/assets/feathericons/file.svg | 0\n .../qcam/assets/feathericons/film.svg | 0\n .../qcam/assets/feathericons/filter.svg | 0\n .../qcam/assets/feathericons/flag.svg | 0\n .../qcam/assets/feathericons/folder-minus.svg | 0\n .../qcam/assets/feathericons/folder-plus.svg | 0\n .../qcam/assets/feathericons/folder.svg | 0\n .../qcam/assets/feathericons/framer.svg | 0\n .../qcam/assets/feathericons/frown.svg | 0\n .../qcam/assets/feathericons/gift.svg | 0\n .../qcam/assets/feathericons/git-branch.svg | 0\n .../qcam/assets/feathericons/git-commit.svg | 0\n .../qcam/assets/feathericons/git-merge.svg | 0\n .../assets/feathericons/git-pull-request.svg | 0\n .../qcam/assets/feathericons/github.svg | 0\n .../qcam/assets/feathericons/gitlab.svg | 0\n .../qcam/assets/feathericons/globe.svg | 0\n .../qcam/assets/feathericons/grid.svg | 0\n .../qcam/assets/feathericons/hard-drive.svg | 0\n .../qcam/assets/feathericons/hash.svg | 0\n .../qcam/assets/feathericons/headphones.svg | 0\n .../qcam/assets/feathericons/heart.svg | 0\n .../qcam/assets/feathericons/help-circle.svg | 0\n .../qcam/assets/feathericons/hexagon.svg | 0\n .../qcam/assets/feathericons/home.svg | 0\n .../qcam/assets/feathericons/image.svg | 0\n .../qcam/assets/feathericons/inbox.svg | 0\n .../qcam/assets/feathericons/info.svg | 0\n .../qcam/assets/feathericons/instagram.svg | 0\n .../qcam/assets/feathericons/italic.svg | 0\n .../qcam/assets/feathericons/key.svg | 0\n .../qcam/assets/feathericons/layers.svg | 0\n .../qcam/assets/feathericons/layout.svg | 0\n .../qcam/assets/feathericons/life-buoy.svg | 0\n .../qcam/assets/feathericons/link-2.svg | 0\n .../qcam/assets/feathericons/link.svg | 0\n .../qcam/assets/feathericons/linkedin.svg | 0\n .../qcam/assets/feathericons/list.svg | 0\n .../qcam/assets/feathericons/loader.svg | 0\n .../qcam/assets/feathericons/lock.svg | 0\n .../qcam/assets/feathericons/log-in.svg | 0\n .../qcam/assets/feathericons/log-out.svg | 0\n .../qcam/assets/feathericons/mail.svg | 0\n .../qcam/assets/feathericons/map-pin.svg | 0\n .../qcam/assets/feathericons/map.svg | 0\n .../qcam/assets/feathericons/maximize-2.svg | 0\n .../qcam/assets/feathericons/maximize.svg | 0\n .../qcam/assets/feathericons/meh.svg | 0\n .../qcam/assets/feathericons/menu.svg | 0\n .../assets/feathericons/message-circle.svg | 0\n .../assets/feathericons/message-square.svg | 0\n .../qcam/assets/feathericons/mic-off.svg | 0\n .../qcam/assets/feathericons/mic.svg | 0\n .../qcam/assets/feathericons/minimize-2.svg | 0\n .../qcam/assets/feathericons/minimize.svg | 0\n .../qcam/assets/feathericons/minus-circle.svg | 0\n .../qcam/assets/feathericons/minus-square.svg | 0\n .../qcam/assets/feathericons/minus.svg | 0\n .../qcam/assets/feathericons/monitor.svg | 0\n .../qcam/assets/feathericons/moon.svg | 0\n .../assets/feathericons/more-horizontal.svg | 0\n .../assets/feathericons/more-vertical.svg | 0\n .../assets/feathericons/mouse-pointer.svg | 0\n .../qcam/assets/feathericons/move.svg | 0\n .../qcam/assets/feathericons/music.svg | 0\n .../qcam/assets/feathericons/navigation-2.svg | 0\n .../qcam/assets/feathericons/navigation.svg | 0\n .../qcam/assets/feathericons/octagon.svg | 0\n .../qcam/assets/feathericons/package.svg | 0\n .../qcam/assets/feathericons/paperclip.svg | 0\n .../qcam/assets/feathericons/pause-circle.svg | 0\n .../qcam/assets/feathericons/pause.svg | 0\n .../qcam/assets/feathericons/pen-tool.svg | 0\n .../qcam/assets/feathericons/percent.svg | 0\n .../qcam/assets/feathericons/phone-call.svg | 0\n .../assets/feathericons/phone-forwarded.svg | 0\n .../assets/feathericons/phone-incoming.svg | 0\n .../qcam/assets/feathericons/phone-missed.svg | 0\n .../qcam/assets/feathericons/phone-off.svg | 0\n .../assets/feathericons/phone-outgoing.svg | 0\n .../qcam/assets/feathericons/phone.svg | 0\n .../qcam/assets/feathericons/pie-chart.svg | 0\n .../qcam/assets/feathericons/play-circle.svg | 0\n .../qcam/assets/feathericons/play.svg | 0\n .../qcam/assets/feathericons/plus-circle.svg | 0\n .../qcam/assets/feathericons/plus-square.svg | 0\n .../qcam/assets/feathericons/plus.svg | 0\n .../qcam/assets/feathericons/pocket.svg | 0\n .../qcam/assets/feathericons/power.svg | 0\n .../qcam/assets/feathericons/printer.svg | 0\n .../qcam/assets/feathericons/radio.svg | 0\n .../qcam/assets/feathericons/refresh-ccw.svg | 0\n .../qcam/assets/feathericons/refresh-cw.svg | 0\n .../qcam/assets/feathericons/repeat.svg | 0\n .../qcam/assets/feathericons/rewind.svg | 0\n .../qcam/assets/feathericons/rotate-ccw.svg | 0\n .../qcam/assets/feathericons/rotate-cw.svg | 0\n .../qcam/assets/feathericons/rss.svg | 0\n .../qcam/assets/feathericons/save.svg | 0\n .../qcam/assets/feathericons/scissors.svg | 0\n .../qcam/assets/feathericons/search.svg | 0\n .../qcam/assets/feathericons/send.svg | 0\n .../qcam/assets/feathericons/server.svg | 0\n .../qcam/assets/feathericons/settings.svg | 0\n .../qcam/assets/feathericons/share-2.svg | 0\n .../qcam/assets/feathericons/share.svg | 0\n .../qcam/assets/feathericons/shield-off.svg | 0\n .../qcam/assets/feathericons/shield.svg | 0\n .../qcam/assets/feathericons/shopping-bag.svg | 0\n .../assets/feathericons/shopping-cart.svg | 0\n .../qcam/assets/feathericons/shuffle.svg | 0\n .../qcam/assets/feathericons/sidebar.svg | 0\n .../qcam/assets/feathericons/skip-back.svg | 0\n .../qcam/assets/feathericons/skip-forward.svg | 0\n .../qcam/assets/feathericons/slack.svg | 0\n .../qcam/assets/feathericons/slash.svg | 0\n .../qcam/assets/feathericons/sliders.svg | 0\n .../qcam/assets/feathericons/smartphone.svg | 0\n .../qcam/assets/feathericons/smile.svg | 0\n .../qcam/assets/feathericons/speaker.svg | 0\n .../qcam/assets/feathericons/square.svg | 0\n .../qcam/assets/feathericons/star.svg | 0\n .../qcam/assets/feathericons/stop-circle.svg | 0\n .../qcam/assets/feathericons/sun.svg | 0\n .../qcam/assets/feathericons/sunrise.svg | 0\n .../qcam/assets/feathericons/sunset.svg | 0\n .../qcam/assets/feathericons/tablet.svg | 0\n .../qcam/assets/feathericons/tag.svg | 0\n .../qcam/assets/feathericons/target.svg | 0\n .../qcam/assets/feathericons/terminal.svg | 0\n .../qcam/assets/feathericons/thermometer.svg | 0\n .../qcam/assets/feathericons/thumbs-down.svg | 0\n .../qcam/assets/feathericons/thumbs-up.svg | 0\n .../qcam/assets/feathericons/toggle-left.svg | 0\n .../qcam/assets/feathericons/toggle-right.svg | 0\n .../qcam/assets/feathericons/tool.svg | 0\n .../qcam/assets/feathericons/trash-2.svg | 0\n .../qcam/assets/feathericons/trash.svg | 0\n .../qcam/assets/feathericons/trello.svg | 0\n .../assets/feathericons/trending-down.svg | 0\n .../qcam/assets/feathericons/trending-up.svg | 0\n .../qcam/assets/feathericons/triangle.svg | 0\n .../qcam/assets/feathericons/truck.svg | 0\n .../qcam/assets/feathericons/tv.svg | 0\n .../qcam/assets/feathericons/twitch.svg | 0\n .../qcam/assets/feathericons/twitter.svg | 0\n .../qcam/assets/feathericons/type.svg | 0\n .../qcam/assets/feathericons/umbrella.svg | 0\n .../qcam/assets/feathericons/underline.svg | 0\n .../qcam/assets/feathericons/unlock.svg | 0\n .../qcam/assets/feathericons/upload-cloud.svg | 0\n .../qcam/assets/feathericons/upload.svg | 0\n .../qcam/assets/feathericons/user-check.svg | 0\n .../qcam/assets/feathericons/user-minus.svg | 0\n .../qcam/assets/feathericons/user-plus.svg | 0\n .../qcam/assets/feathericons/user-x.svg | 0\n .../qcam/assets/feathericons/user.svg | 0\n .../qcam/assets/feathericons/users.svg | 0\n .../qcam/assets/feathericons/video-off.svg | 0\n .../qcam/assets/feathericons/video.svg | 0\n .../qcam/assets/feathericons/voicemail.svg | 0\n .../qcam/assets/feathericons/volume-1.svg | 0\n .../qcam/assets/feathericons/volume-2.svg | 0\n .../qcam/assets/feathericons/volume-x.svg | 0\n .../qcam/assets/feathericons/volume.svg | 0\n .../qcam/assets/feathericons/watch.svg | 0\n .../qcam/assets/feathericons/wifi-off.svg | 0\n .../qcam/assets/feathericons/wifi.svg | 0\n .../qcam/assets/feathericons/wind.svg | 0\n .../qcam/assets/feathericons/x-circle.svg | 0\n .../qcam/assets/feathericons/x-octagon.svg | 0\n .../qcam/assets/feathericons/x-square.svg | 0\n src/{ => apps}/qcam/assets/feathericons/x.svg | 0\n .../qcam/assets/feathericons/youtube.svg | 0\n .../qcam/assets/feathericons/zap-off.svg | 0\n .../qcam/assets/feathericons/zap.svg | 0\n .../qcam/assets/feathericons/zoom-in.svg | 0\n .../qcam/assets/feathericons/zoom-out.svg | 0\n src/{ => apps}/qcam/assets/shader/RGB.frag | 0\n .../qcam/assets/shader/YUV_2_planes.frag | 0\n .../qcam/assets/shader/YUV_3_planes.frag | 0\n .../qcam/assets/shader/YUV_packed.frag | 0\n .../qcam/assets/shader/bayer_1x_packed.frag | 0\n .../qcam/assets/shader/bayer_8.frag | 0\n .../qcam/assets/shader/bayer_8.vert | 0\n .../qcam/assets/shader/identity.vert | 0\n src/{ => apps}/qcam/assets/shader/shaders.qrc | 0\n src/{ => apps}/qcam/cam_select_dialog.cpp | 0\n src/{ => apps}/qcam/cam_select_dialog.h | 0\n src/{ => apps}/qcam/format_converter.cpp | 2 +-\n src/{ => apps}/qcam/format_converter.h | 0\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 | 28 ++++---------\n src/{ => apps}/qcam/message_handler.cpp | 0\n src/{ => apps}/qcam/message_handler.h | 0\n src/{ => apps}/qcam/viewfinder.h | 0\n src/{ => apps}/qcam/viewfinder_gl.cpp | 2 +-\n src/{ => apps}/qcam/viewfinder_gl.h | 0\n src/{ => apps}/qcam/viewfinder_qt.cpp | 2 +-\n src/{ => apps}/qcam/viewfinder_qt.h | 0\n src/{cam => apps}/stream_options.cpp | 0\n src/{cam => apps}/stream_options.h | 0\n src/meson.build | 5 +--\n 350 files changed, 83 insertions(+), 66 deletions(-)\n rename src/{ => apps}/cam/camera_session.cpp (99%)\n rename src/{ => apps}/cam/camera_session.h (98%)\n rename src/{ => apps}/cam/capture-script.yaml (100%)\n rename src/{ => apps}/cam/capture_script.cpp (100%)\n rename src/{ => apps}/cam/capture_script.h (100%)\n rename src/{ => apps}/cam/drm.cpp (99%)\n rename src/{ => apps}/cam/drm.h (100%)\n rename src/{ => apps}/cam/file_sink.cpp (98%)\n rename src/{ => apps}/cam/file_sink.h (100%)\n rename src/{ => apps}/cam/frame_sink.cpp (100%)\n rename src/{ => apps}/cam/frame_sink.h (100%)\n rename src/{ => apps}/cam/kms_sink.cpp (100%)\n rename src/{ => apps}/cam/kms_sink.h (100%)\n rename src/{ => apps}/cam/main.cpp (98%)\n rename src/{ => apps}/cam/main.h (100%)\n rename src/{ => apps}/cam/meson.build (77%)\n rename src/{ => apps}/cam/sdl_sink.cpp (98%)\n rename src/{ => apps}/cam/sdl_sink.h (100%)\n rename src/{ => apps}/cam/sdl_texture.cpp (100%)\n rename src/{ => apps}/cam/sdl_texture.h (96%)\n rename src/{ => apps}/cam/sdl_texture_mjpg.cpp (100%)\n rename src/{ => apps}/cam/sdl_texture_mjpg.h (100%)\n rename src/{ => apps}/cam/sdl_texture_yuv.cpp (100%)\n rename src/{ => apps}/cam/sdl_texture_yuv.h (100%)\n rename src/{cam => apps}/dng_writer.cpp (100%)\n rename src/{cam => apps}/dng_writer.h (100%)\n rename src/{cam => apps}/event_loop.cpp (100%)\n rename src/{cam => apps}/event_loop.h (100%)\n rename src/{cam => apps}/image.cpp (100%)\n rename src/{cam => apps}/image.h (100%)\n rename src/{ => apps}/lc-compliance/capture_test.cpp (100%)\n rename src/{ => apps}/lc-compliance/environment.cpp (100%)\n rename src/{ => apps}/lc-compliance/environment.h (100%)\n rename src/{ => apps}/lc-compliance/main.cpp (99%)\n rename src/{ => apps}/lc-compliance/meson.build (81%)\n rename src/{ => apps}/lc-compliance/simple_capture.cpp (100%)\n rename src/{ => apps}/lc-compliance/simple_capture.h (97%)\n create mode 100644 src/apps/meson.build\n rename src/{cam => apps}/options.cpp (100%)\n rename src/{cam => apps}/options.h (100%)\n rename src/{ => apps}/qcam/assets/feathericons/activity.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/airplay.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/alert-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/alert-octagon.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/alert-triangle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/align-center.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/align-justify.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/align-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/align-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/anchor.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/aperture.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/archive.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-down-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-down-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-down-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-left-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-right-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-up-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-up-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-up-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/arrow-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/at-sign.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/award.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bar-chart-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bar-chart.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/battery-charging.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/battery.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bell-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bell.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bluetooth.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bold.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/book-open.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/book.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/bookmark.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/box.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/briefcase.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/calendar.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/camera-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/camera.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cast.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/check-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/check-square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/check.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevron-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevron-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevron-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevron-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevrons-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevrons-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevrons-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chevrons-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/chrome.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/clipboard.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/clock.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud-drizzle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud-lightning.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud-rain.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud-snow.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cloud.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/code.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/codepen.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/codesandbox.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/coffee.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/columns.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/command.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/compass.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/copy.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-down-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-down-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-left-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-left-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-right-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-right-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-up-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/corner-up-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/cpu.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/credit-card.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/crop.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/crosshair.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/database.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/delete.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/disc.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/dollar-sign.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/download-cloud.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/download.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/droplet.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/edit-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/edit-3.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/edit.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/external-link.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/eye-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/eye.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/facebook.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/fast-forward.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/feather.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/feathericons.qrc (100%)\n rename src/{ => apps}/qcam/assets/feathericons/figma.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/file-minus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/file-plus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/file-text.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/file.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/film.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/filter.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/flag.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/folder-minus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/folder-plus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/folder.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/framer.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/frown.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/gift.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/git-branch.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/git-commit.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/git-merge.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/git-pull-request.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/github.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/gitlab.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/globe.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/grid.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/hard-drive.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/hash.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/headphones.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/heart.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/help-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/hexagon.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/home.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/image.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/inbox.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/info.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/instagram.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/italic.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/key.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/layers.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/layout.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/life-buoy.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/link-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/link.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/linkedin.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/list.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/loader.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/lock.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/log-in.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/log-out.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/mail.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/map-pin.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/map.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/maximize-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/maximize.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/meh.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/menu.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/message-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/message-square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/mic-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/mic.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/minimize-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/minimize.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/minus-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/minus-square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/minus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/monitor.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/moon.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/more-horizontal.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/more-vertical.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/mouse-pointer.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/move.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/music.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/navigation-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/navigation.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/octagon.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/package.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/paperclip.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/pause-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/pause.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/pen-tool.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/percent.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-call.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-forwarded.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-incoming.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-missed.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone-outgoing.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/phone.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/pie-chart.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/play-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/play.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/plus-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/plus-square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/plus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/pocket.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/power.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/printer.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/radio.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/refresh-ccw.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/refresh-cw.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/repeat.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/rewind.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/rotate-ccw.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/rotate-cw.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/rss.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/save.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/scissors.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/search.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/send.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/server.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/settings.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/share-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/share.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/shield-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/shield.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/shopping-bag.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/shopping-cart.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/shuffle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/sidebar.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/skip-back.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/skip-forward.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/slack.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/slash.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/sliders.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/smartphone.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/smile.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/speaker.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/star.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/stop-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/sun.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/sunrise.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/sunset.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/tablet.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/tag.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/target.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/terminal.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/thermometer.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/thumbs-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/thumbs-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/toggle-left.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/toggle-right.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/tool.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/trash-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/trash.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/trello.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/trending-down.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/trending-up.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/triangle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/truck.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/tv.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/twitch.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/twitter.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/type.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/umbrella.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/underline.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/unlock.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/upload-cloud.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/upload.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/user-check.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/user-minus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/user-plus.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/user-x.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/user.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/users.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/video-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/video.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/voicemail.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/volume-1.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/volume-2.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/volume-x.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/volume.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/watch.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/wifi-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/wifi.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/wind.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/x-circle.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/x-octagon.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/x-square.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/x.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/youtube.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/zap-off.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/zap.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/zoom-in.svg (100%)\n rename src/{ => apps}/qcam/assets/feathericons/zoom-out.svg (100%)\n rename src/{ => apps}/qcam/assets/shader/RGB.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/YUV_2_planes.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/YUV_3_planes.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/YUV_packed.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/bayer_1x_packed.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/bayer_8.frag (100%)\n rename src/{ => apps}/qcam/assets/shader/bayer_8.vert (100%)\n rename src/{ => apps}/qcam/assets/shader/identity.vert (100%)\n rename src/{ => apps}/qcam/assets/shader/shaders.qrc (100%)\n rename src/{ => apps}/qcam/cam_select_dialog.cpp (100%)\n rename src/{ => apps}/qcam/cam_select_dialog.h (100%)\n rename src/{ => apps}/qcam/format_converter.cpp (99%)\n rename src/{ => apps}/qcam/format_converter.h (100%)\n rename src/{ => apps}/qcam/main.cpp (96%)\n rename src/{ => apps}/qcam/main_window.cpp (99%)\n rename src/{ => apps}/qcam/main_window.h (98%)\n rename src/{ => apps}/qcam/meson.build (80%)\n rename src/{ => apps}/qcam/message_handler.cpp (100%)\n rename src/{ => apps}/qcam/message_handler.h (100%)\n rename src/{ => apps}/qcam/viewfinder.h (100%)\n rename src/{ => apps}/qcam/viewfinder_gl.cpp (99%)\n rename src/{ => apps}/qcam/viewfinder_gl.h (100%)\n rename src/{ => apps}/qcam/viewfinder_qt.cpp (99%)\n rename src/{ => apps}/qcam/viewfinder_qt.h (100%)\n rename src/{cam => apps}/stream_options.cpp (100%)\n rename src/{cam => apps}/stream_options.h (100%)\n\n\nbase-commit: 376adeb7b7e0b75f2fa90b890fe0203d1e268cdf" }