From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5BE3C4321D for ; Wed, 22 Aug 2018 13:07:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5E3F2206B8 for ; Wed, 22 Aug 2018 13:07:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E3F2206B8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728939AbeHVQcE (ORCPT ); Wed, 22 Aug 2018 12:32:04 -0400 Received: from mail.bootlin.com ([62.4.15.54]:40494 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728151AbeHVQcE (ORCPT ); Wed, 22 Aug 2018 12:32:04 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 8050F20730; Wed, 22 Aug 2018 15:07:10 +0200 (CEST) Received: from aptenodytes (AAubervilliers-681-1-85-9.w90-88.abo.wanadoo.fr [90.88.27.9]) by mail.bootlin.com (Postfix) with ESMTPSA id 1C8F2203EC; Wed, 22 Aug 2018 15:07:00 +0200 (CEST) Message-ID: <53987ca7a536a21b2eb49626d777a9bf894d6910.camel@bootlin.com> Subject: Re: [PATCH 1/9] CHROMIUM: v4l: Add H264 low-level decoder API compound controls. From: Paul Kocialkowski To: Nicolas Dufresne , Ezequiel Garcia , Maxime Ripard , tfiga@chromium.org, posciak@chromium.org, hans.verkuil@cisco.com, acourbot@chromium.org, sakari.ailus@linux.intel.com, Laurent Pinchart Cc: Chen-Yu Tsai , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, jenskuske@gmail.com, linux-sunxi@googlegroups.com, Thomas Petazzoni , Guenter Roeck Date: Wed, 22 Aug 2018 15:07:00 +0200 In-Reply-To: References: <20180613140714.1686-1-maxime.ripard@bootlin.com> <20180613140714.1686-2-maxime.ripard@bootlin.com> <80e1d9cb49c6df06843e49332685f2b401023292.camel@collabora.com> Organization: Bootlin Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-A2FPvdq+CdJ6c1wLZbuM" X-Mailer: Evolution 3.28.4 Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-A2FPvdq+CdJ6c1wLZbuM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Tue, 2018-08-21 at 13:07 -0400, Nicolas Dufresne wrote: > Le mardi 21 ao=C3=BBt 2018 =C3=A0 13:58 -0300, Ezequiel Garcia a =C3=A9cr= it : > > On Wed, 2018-06-13 at 16:07 +0200, Maxime Ripard wrote: > > > From: Pawel Osciak > > >=20 > > > Signed-off-by: Pawel Osciak > > > Reviewed-by: Wu-cheng Li > > > Tested-by: Tomasz Figa > > > [rebase44(groeck): include linux/types.h in v4l2-controls.h] > > > Signed-off-by: Guenter Roeck > > > Signed-off-by: Maxime Ripard > > > --- > > >=20 > >=20 > > [..] > > > diff --git a/include/uapi/linux/videodev2.h > > > b/include/uapi/linux/videodev2.h > > > index 242a6bfa1440..4b4a1b25a0db 100644 > > > --- a/include/uapi/linux/videodev2.h > > > +++ b/include/uapi/linux/videodev2.h > > > @@ -626,6 +626,7 @@ struct v4l2_pix_format { > > > #define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* > > > H264 with start codes */ > > > #define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* > > > H264 without start codes */ > > > #define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* > > > H264 MVC */ > > > +#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* > > > H264 parsed slices */ > >=20 > > As pointed out by Tomasz, the Rockchip VPU driver expects start codes > > [1], so the userspace > > should be aware of it. Perhaps we could document this pixel format > > better as: > >=20 > > #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* > > H264 parsed slices with start codes */ > >=20 > > And introduce another pixel format: > >=20 > > #define V4L2_PIX_FMT_H264_SLICE_NO_SC v4l2_fourcc(TODO) /* H264 > > parsed slices without start codes */ > >=20 > > For cedrus to use, as it seems it doesn't need start codes. >=20 > I must admit that this RK requirement is a bit weird for slice data. > Though, userspace wise, always adding start-code would be compatible, > as the driver can just offset to remove it. This would mean that the stateless API no longer takes parsed bitstream data but effectively the full bitstream, which defeats the purpose of the _SLICE pixel formats. > Another option, because I'm not fan of adding dedicated formats for > this, the RK driver could use data_offset (in mplane v4l2 buffers), > just write a start code there. I like this solution because I would not > be surprise if some drivers requires in fact an HW specific header, > that the driver can generate as needed. I like this idea, because it implies that the driver should deal with the specificities of the hardware, instead of making the blurrying the lines of stateless API for covering these cases. > >=20 > > How does it sound?=20 > >=20 > > [1]=20 > > https://cs.chromium.org/chromium/src/media/gpu/v4l2/v4l2_slice_video_de= code_accelerator.cc?rcl=3D63129434aeacf0f54bbae96814f10cf64e3e6c35&l=3D2438 --=20 Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com --=-A2FPvdq+CdJ6c1wLZbuM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEJZpWjZeIetVBefti3cLmz3+fv9EFAlt9X/QACgkQ3cLmz3+f v9HWTQf/VosR/T7wRR3U38EiPUbE69LToSesw1I3LNpuJQunMVr1kYONx8+lmjP9 O8Z91A8OIBlQ8MCFXJq/WnagK6e00sqzcSbbFnHQxRCXdBzGxB0iYI9hShJYXQCu uVKWMKkSFG/CN7NQ4rG6WT5+w56DlthVB/yuD2TO1veRCAvObXz3WeFp30UxIMT0 KZzzn08tHv4eH8Ib+vgog+QCANppc0QdTlVaDt2Tg8gNUM2bo4FH8GbvUdwaYIDW doRawf/Xa6PZhlBMDL6S0Z9Sci+3EHlN7oCjiAm/yy5Bq9Sdz2jTsdMEtAU2b71i E6NJ3g34PGG3uxgHehX4+8pRS/sLow== =VmnC -----END PGP SIGNATURE----- --=-A2FPvdq+CdJ6c1wLZbuM-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: paul.kocialkowski@bootlin.com (Paul Kocialkowski) Date: Wed, 22 Aug 2018 15:07:00 +0200 Subject: [PATCH 1/9] CHROMIUM: v4l: Add H264 low-level decoder API compound controls. In-Reply-To: References: <20180613140714.1686-1-maxime.ripard@bootlin.com> <20180613140714.1686-2-maxime.ripard@bootlin.com> <80e1d9cb49c6df06843e49332685f2b401023292.camel@collabora.com> Message-ID: <53987ca7a536a21b2eb49626d777a9bf894d6910.camel@bootlin.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On Tue, 2018-08-21 at 13:07 -0400, Nicolas Dufresne wrote: > Le mardi 21 ao?t 2018 ? 13:58 -0300, Ezequiel Garcia a ?crit : > > On Wed, 2018-06-13 at 16:07 +0200, Maxime Ripard wrote: > > > From: Pawel Osciak > > > > > > Signed-off-by: Pawel Osciak > > > Reviewed-by: Wu-cheng Li > > > Tested-by: Tomasz Figa > > > [rebase44(groeck): include linux/types.h in v4l2-controls.h] > > > Signed-off-by: Guenter Roeck > > > Signed-off-by: Maxime Ripard > > > --- > > > > > > > [..] > > > diff --git a/include/uapi/linux/videodev2.h > > > b/include/uapi/linux/videodev2.h > > > index 242a6bfa1440..4b4a1b25a0db 100644 > > > --- a/include/uapi/linux/videodev2.h > > > +++ b/include/uapi/linux/videodev2.h > > > @@ -626,6 +626,7 @@ struct v4l2_pix_format { > > > #define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* > > > H264 with start codes */ > > > #define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* > > > H264 without start codes */ > > > #define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* > > > H264 MVC */ > > > +#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* > > > H264 parsed slices */ > > > > As pointed out by Tomasz, the Rockchip VPU driver expects start codes > > [1], so the userspace > > should be aware of it. Perhaps we could document this pixel format > > better as: > > > > #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* > > H264 parsed slices with start codes */ > > > > And introduce another pixel format: > > > > #define V4L2_PIX_FMT_H264_SLICE_NO_SC v4l2_fourcc(TODO) /* H264 > > parsed slices without start codes */ > > > > For cedrus to use, as it seems it doesn't need start codes. > > I must admit that this RK requirement is a bit weird for slice data. > Though, userspace wise, always adding start-code would be compatible, > as the driver can just offset to remove it. This would mean that the stateless API no longer takes parsed bitstream data but effectively the full bitstream, which defeats the purpose of the _SLICE pixel formats. > Another option, because I'm not fan of adding dedicated formats for > this, the RK driver could use data_offset (in mplane v4l2 buffers), > just write a start code there. I like this solution because I would not > be surprise if some drivers requires in fact an HW specific header, > that the driver can generate as needed. I like this idea, because it implies that the driver should deal with the specificities of the hardware, instead of making the blurrying the lines of stateless API for covering these cases. > > > > How does it sound? > > > > [1] > > https://cs.chromium.org/chromium/src/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc?rcl=63129434aeacf0f54bbae96814f10cf64e3e6c35&l=2438 -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: This is a digitally signed message part URL: