{"id":3266,"url":"https://patchwork.libcamera.org/api/covers/3266/?format=json","web_url":"https://patchwork.libcamera.org/cover/3266/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200323173559.21109-1-laurent.pinchart@ideasonboard.com>","date":"2020-03-23T17:35:38","name":"[libcamera-devel,v2,00/21] qcam: Bypass format conversion when not required","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/3266/mbox/","series":[{"id":762,"url":"https://patchwork.libcamera.org/api/series/762/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=762","date":"2020-03-23T17:35:38","name":"qcam: Bypass format conversion when not required","version":2,"mbox":"https://patchwork.libcamera.org/series/762/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/3266/comments/","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9349D60417\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Mar 2020 18:36:16 +0100 (CET)","from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 15793308\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Mar 2020 18:36:16 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1584984976;\n\tbh=VIPqAhVXoNyQDftX18gdNBV7kPi0pZkwtJaK+lIObOw=;\n\th=From:To:Subject:Date:From;\n\tb=ut7mred5JifjnToUXZLMG8FkQgj1Ht+Qrl/pxkc3wIwjVX1v4T+5BVN52gMxzteiS\n\tQJ/ZLMjSC6NrPV3QiLxl1SNTWfbDGAol1QdVw7bDq+ogSiK7QXmTQdYiGYRbmh12AA\n\tVt74XfBE3QiwxZwIzSi13I2EtABYljIkUUlnzyGg=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 23 Mar 2020 19:35:38 +0200","Message-Id":"<20200323173559.21109-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.24.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 00/21] qcam: Bypass format conversion\n\twhen not required","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>","X-List-Received-Date":"Mon, 23 Mar 2020 17:36:16 -0000"},"content":"Hello,\n\nThis small patch series improves performances in qcam when the captured\nformat matches one of the formats natively supported by the viewfinder.\nIt allows skipping conversion and using zero-copy in that case.\n\nThe series includes a few miscellaneous drive-by fixes and improvements\nthat are documented in individual patches from 01/21 to 12/21. From\n13/21 onwards the viewfinder code is refactored, and patch 19/21 adds\nzero-copy support. Patch 20/21 fixes an isse where the last buffer isn't\nreleased when stopping capture (it could be squashed with 19/21, but I\ndecided to submit it separately for now to ease review).\n\nPatch 21/21 finally adds support for more native RGB formats in the\nviewfinder, and in particular for DRM_FORMAT_BGR888 that the VIMC\npipeline handler defaults to. BGR888 however requires Qt 5.14, which\nisn't widely shipped by distros, so it's disabled if the Qt version is\ntoo old.\n\nChanges compared to v1 are minor, I've taken into account all the review\nreceived so far, and fixed compilation with Qt 5.12.\n\nLaurent Pinchart (21):\n  qcam: Remove custom event dispatcher\n  qcam: Ensure headers are self-contained\n  qcam: Use QSize through the code base\n  qcam: main_window: Move request queuing to a separate function\n  qcam: main_window: Move capture event processing to main thread\n  qcam: main_window: Replace start and stop actions with a toggle action\n  qcam: main_window: Use icons from system icon theme\n  qcam: main_window: Add shortcuts for toolbar actions\n  qcam: main_window: Don't print message when saving a picture\n  qcam: main_window: Document functions and reorganize member data\n  qcam: main_window: Remove unneeded debug message\n  qcam: Use Qt qInfo() and qWarning() logging facilities\n  qcam: viewfinder: Add MappedBuffer to store memory mapping information\n  qcam: viewfinder: Move multi-planar check into viewfinder\n  qcam: viewfinder: Make the viewfinder hold a reference to a buffer\n  qcam: viewfinder: Embed QImage in ViewFinder\n  qcam: viewfinder: Use PixelFormat default constructor\n  qcam: viewfinder: Reorder methods to match header file\n  qcam: viewfinder: Avoid memory copy when conversion isn't needed\n  qcam: viewfinder: Display icon when stopping capture\n  qcam: viewfinder: Add support for more native formats\n\n src/qcam/assets/feathericons/feathericons.qrc |   1 +\n src/qcam/format_converter.cpp                 |  10 +-\n src/qcam/format_converter.h                   |   5 +-\n src/qcam/main.cpp                             |  11 +-\n src/qcam/main_window.cpp                      | 279 +++++++++++++-----\n src/qcam/main_window.h                        |  42 ++-\n src/qcam/meson.build                          |   2 +-\n src/qcam/qt_event_dispatcher.cpp              | 152 ----------\n src/qcam/qt_event_dispatcher.h                |  62 ----\n src/qcam/viewfinder.cpp                       | 144 +++++++--\n src/qcam/viewfinder.h                         |  36 ++-\n 11 files changed, 391 insertions(+), 353 deletions(-)\n delete mode 100644 src/qcam/qt_event_dispatcher.cpp\n delete mode 100644 src/qcam/qt_event_dispatcher.h"}