{"id":3131,"url":"https://patchwork.libcamera.org/api/1.1/covers/3131/?format=json","web_url":"https://patchwork.libcamera.org/cover/3131/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20200317035239.2697679-1-niklas.soderlund@ragnatech.se>","date":"2020-03-17T03:52:31","name":"[libcamera-devel,v2,0/8] libcamera: PixelFormat: Turn into a class","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/1.1/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/3131/mbox/","series":[{"id":726,"url":"https://patchwork.libcamera.org/api/1.1/series/726/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=726","date":"2020-03-17T03:52:31","name":"libcamera: PixelFormat: Turn into a class","version":2,"mbox":"https://patchwork.libcamera.org/series/726/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/3131/comments/","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from bin-mail-out-06.binero.net (bin-mail-out-06.binero.net\n\t[195.74.38.229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7A8EE60416\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Mar 2020 04:53:36 +0100 (CET)","from bismarck.berto.se (p4fca2392.dip0.t-ipconnect.de\n\t[79.202.35.146]) by bin-vsp-out-02.atm.binero.net (Halon) with ESMTPA\n\tid cd8797c1-6802-11ea-aa6d-005056917f90;\n\tTue, 17 Mar 2020 04:53:23 +0100 (CET)"],"X-Halon-ID":"cd8797c1-6802-11ea-aa6d-005056917f90","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 17 Mar 2020 04:52:31 +0100","Message-Id":"<20200317035239.2697679-1-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.25.1","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 0/8] libcamera: PixelFormat: Turn into\n\ta class","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":"Tue, 17 Mar 2020 03:53:36 -0000"},"content":"Hello,\n\nThis series replaces the PixelFormat definition of a unisgned int with a\nclass implementation that can hold both a FourCC and a set of modifiers.\nThis is important to allow users of libcamera to look at modifiers.\n\nThis series do not make use of the modifiers, a follow up series that\nadds RAW capture to the IPU3 will make use of them to describe the IPU3\nBayer format memory layout.\n\nI have looked at Laurent's series for V4L2PixelFormat [1] and I agree we \nshould align the interface between the two. I have however not taken all \nconcepts from it (yet). The two outstanding questions for me are\n\n1. operator uint32_t()\n\n   I agree this looks real nice for V4l2PixelFormat, would it be as nice \n   for PixelFormot which can have modifiers? I have no strong feelings.  \n   I feel that if we go for it V4L2PixelFormat::value() and \n   PixelFormat::fourcc() should then be dropped.\n\n   Two ways to do the same thing can't be good ;-)\n\n2. isValid()\n\n   Is this good or bad, I can't make up my mind. Yet again the modifiers \n   plays in. How would PixelFormat::isValid() deal with \n   DRM_FORMAT_SRGGB10 without any modifiers to describe the memory \n   layout?\n\n1. [PATCH 0/2] Add a V4L2PixelFormat class\n\nLaurent Pinchart (1):\n  libcamera: PixelFormat: Make constructor explicit\n\nNiklas Söderlund (7):\n  libcamera: Use PixelFormat instead of unsigned int where appropriate\n  test: v4l2_videodevice: buffer_cache: Use DRM pixel format\n  libcamera: pipeline: vimc: Remove internal usage of ImageFormats\n  libcamera: pipeline: uvcvideo: Translate from V4L2 to DRM pixel\n    formats\n  libcamera: v4l2_videodevice: Remove usage of ImageFormats\n  libcamera: PixelFormat: Turn into a class\n  libcamera: PixelFormat: Mark all function arguments of type\n    PixelFormat as const reference\n\n include/libcamera/pixelformats.h         | 21 ++++++-\n include/libcamera/stream.h               |  4 +-\n src/cam/main.cpp                         |  8 +--\n src/gstreamer/gstlibcamera-utils.cpp     | 18 +++---\n src/libcamera/include/v4l2_videodevice.h |  7 ++-\n src/libcamera/pipeline/ipu3/ipu3.cpp     |  8 +--\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 22 +++----\n src/libcamera/pipeline/uvcvideo.cpp      | 19 ++++--\n src/libcamera/pipeline/vimc.cpp          | 20 +++---\n src/libcamera/pixelformats.cpp           | 77 ++++++++++++++++++++++--\n src/libcamera/stream.cpp                 |  8 +--\n src/libcamera/v4l2_videodevice.cpp       | 47 +++++++--------\n src/qcam/format_converter.cpp            |  6 +-\n src/qcam/format_converter.h              |  6 +-\n src/qcam/viewfinder.cpp                  |  4 +-\n src/qcam/viewfinder.h                    |  6 +-\n src/v4l2/v4l2_camera.cpp                 |  2 +-\n src/v4l2/v4l2_camera.h                   |  2 +-\n src/v4l2/v4l2_camera_proxy.cpp           | 34 +++++------\n src/v4l2/v4l2_camera_proxy.h             |  2 +-\n test/stream/stream_formats.cpp           | 24 ++++----\n test/v4l2_videodevice/buffer_cache.cpp   |  4 +-\n 22 files changed, 221 insertions(+), 128 deletions(-)"}