{"id":1468,"url":"https://patchwork.libcamera.org/api/1.1/covers/1468/?format=json","web_url":"https://patchwork.libcamera.org/cover/1468/","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":"<20190619110548.20742-1-jacopo@jmondi.org>","date":"2019-06-19T11:05:44","name":"[libcamera-devel,v5,0/4] libcamera: Introduce V4L2Device base class","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/1.1/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/cover/1468/mbox/","series":[{"id":363,"url":"https://patchwork.libcamera.org/api/1.1/series/363/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=363","date":"2019-06-19T11:05:44","name":"libcamera: Introduce V4L2Device base class","version":5,"mbox":"https://patchwork.libcamera.org/series/363/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/1468/comments/","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2A9B46194F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Jun 2019 13:04:43 +0200 (CEST)","from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay9-d.mail.gandi.net (Postfix) with ESMTPSA id A9AB9FF809;\n\tWed, 19 Jun 2019 11:04:42 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 19 Jun 2019 13:05:44 +0200","Message-Id":"<20190619110548.20742-1-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.21.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v5 0/4] libcamera: Introduce V4L2Device\n\tbase class","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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":"Wed, 19 Jun 2019 11:04:43 -0000"},"content":"Hello,\n   compared to v4 I have address Laurent's comments and added two small\ncleanup patches.\n\nRelevant changes:\n- Rebased on top of latest master which includes Niklas' format enum\n- Make V4L2Device inherit Loggable and provide a logPrefix\n- Create V4L2Device with a deviceNode path to be open and a logPrefix\n- Fix V4L2VideoDevice::close() call to base class close\n- Remove call to close() in the base class destructor to avoid calling it twice\n- Add paramter direction to documentation of V4L2Device\n\nOn top of this, I have rebase the v4l2 control support series which I'll resend\nright after this.\n\nQuestion: does it make sense to have V4L2DeviceFormat and V4L2SubdeviceFormat.\nI would be happy to unify those in a V4L2Format defined in the base class\nheader.\n\nThanks\n   j\n\nJacopo Mondi (4):\n  libcamera: Rename V4L2Device to V4L2VideoDevice\n  libcamera: Introduce V4L2Device base class\n  libcamera: v4l2_videodevice: Update documentation\n  libcamera: v4l2: Standardize return value checks\n\n include/libcamera/buffer.h                    |    2 +-\n src/libcamera/include/v4l2_device.h           |  166 +--\n src/libcamera/include/v4l2_subdevice.h        |    9 +-\n src/libcamera/include/v4l2_videodevice.h      |  183 +++\n src/libcamera/meson.build                     |    2 +\n src/libcamera/pipeline/ipu3/ipu3.cpp          |   24 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |    6 +-\n src/libcamera/pipeline/uvcvideo.cpp           |    6 +-\n src/libcamera/pipeline/vimc.cpp               |    6 +-\n src/libcamera/v4l2_device.cpp                 | 1102 +----------------\n src/libcamera/v4l2_subdevice.cpp              |   88 +-\n src/libcamera/v4l2_videodevice.cpp            | 1080 ++++++++++++++++\n test/meson.build                              |    2 +-\n .../buffer_sharing.cpp                        |   18 +-\n .../capture_async.cpp                         |    6 +-\n .../double_open.cpp                           |    8 +-\n .../formats.cpp                               |    8 +-\n .../meson.build                               |    8 +-\n .../request_buffers.cpp                       |    6 +-\n .../stream_on_off.cpp                         |    6 +-\n .../v4l2_videodevice_test.cpp}                |    8 +-\n .../v4l2_videodevice_test.h}                  |    8 +-\n 22 files changed, 1418 insertions(+), 1334 deletions(-)\n create mode 100644 src/libcamera/include/v4l2_videodevice.h\n create mode 100644 src/libcamera/v4l2_videodevice.cpp\n rename test/{v4l2_device => v4l2_videodevice}/buffer_sharing.cpp (90%)\n rename test/{v4l2_device => v4l2_videodevice}/capture_async.cpp (91%)\n rename test/{v4l2_device => v4l2_videodevice}/double_open.cpp (75%)\n rename test/{v4l2_device => v4l2_videodevice}/formats.cpp (85%)\n rename test/{v4l2_device => v4l2_videodevice}/meson.build (74%)\n rename test/{v4l2_device => v4l2_videodevice}/request_buffers.cpp (77%)\n rename test/{v4l2_device => v4l2_videodevice}/stream_on_off.cpp (78%)\n rename test/{v4l2_device/v4l2_device_test.cpp => v4l2_videodevice/v4l2_videodevice_test.cpp} (90%)\n rename test/{v4l2_device/v4l2_device_test.h => v4l2_videodevice/v4l2_videodevice_test.h} (81%)\n\n--\n2.21.0"}