From: Jonas Karlman <jonas@kwiboo.se>
To: Ezequiel Garcia <ezequiel@collabora.com>,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Tomasz Figa <tfiga@chromium.org>,
kernel@collabora.com, Hans Verkuil <hverkuil@xs4all.nl>,
Alexandre Courbot <acourbot@chromium.org>,
Jeffrey Kardatzke <jkardatzke@chromium.org>,
Nicolas Dufresne <nicolas.dufresne@collabora.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Maxime Ripard <mripard@kernel.org>,
Paul Kocialkowski <paul.kocialkowski@bootlin.com>,
Jernej Skrabec <jernej.skrabec@siol.net>
Subject: Re: [PATCH v3 16/19] media: rkvdec: Drop unneeded per_request driver-specific control flag
Date: Tue, 18 Aug 2020 22:25:10 +0000 (UTC) [thread overview]
Message-ID: <b97351fc-1238-e3ee-e7ec-6e74b19725fb@kwiboo.se> (raw)
In-Reply-To: <57e324f9e3e7e56aa634bcfa0aeebf08c118776d.camel@collabora.com>
On 2020-08-18 23:38, Ezequiel Garcia wrote:
> On Tue, 2020-08-18 at 20:17 +0000, Jonas Karlman wrote:
>> Hi Ezequiel,
>>
>> On 2020-08-14 15:36, Ezequiel Garcia wrote:
>>> Currently, the drivers makes no distinction between per_request
>>> and mandatory, as both are used in the same request validate check.
>>>
>>> The driver only cares to know if a given control is
>>> required to be part of a request, so only one flag is needed.
>>
>> This patch cause decoding issues with ffmpeg.
>>
>> The removal of per_request makes DECODE_MODE and START_CODE ctrls
>> mandatory to be included in the request.
>>
>
> Ugh, I just failed boolean logic 101.
>
> Yeah, we those controls shouldn't be mandatory.
Yep, removing mandatory flag makes rkvdec decoding work again :-)
>
> I'll send a fix for that. Other than this, can I add your tested-by to the series?
Yes, with above fix this series is
Tested-by: Jonas Karlman <jonas@kwiboo.se>
using ffmpeg [1] on rk3288 (hantro) and rk3399 (rkvdec).
I have also done limited testing of field decoding on H.264 conformance
video samples and rkvdec manage to generate matching checksums.
On hantro the output is slightly different for fld and picaff samples
and match for frm and mbaff samples.
Because field decoding works correctly with rkvdec I am confident that
uapi contains everything needed to support field decoding.
[1] https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-hwaccel-4.3.1
Best regards,
Jonas
>
> Thanks,
> Ezequiel
>
>> Best regards,
>> Jonas
>>
>>> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
>>> ---
>>> drivers/staging/media/rkvdec/rkvdec.c | 6 +-----
>>> drivers/staging/media/rkvdec/rkvdec.h | 1 -
>>> 2 files changed, 1 insertion(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
>>> index 7c5129593921..cd720d726d7f 100644
>>> --- a/drivers/staging/media/rkvdec/rkvdec.c
>>> +++ b/drivers/staging/media/rkvdec/rkvdec.c
>>> @@ -55,23 +55,19 @@ static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = {
>>>
>>> static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = {
>>> {
>>> - .per_request = true,
>>> .mandatory = true,
>>> .cfg.id = V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS,
>>> },
>>> {
>>> - .per_request = true,
>>> .mandatory = true,
>>> .cfg.id = V4L2_CID_MPEG_VIDEO_H264_SPS,
>>> .cfg.ops = &rkvdec_ctrl_ops,
>>> },
>>> {
>>> - .per_request = true,
>>> .mandatory = true,
>>> .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PPS,
>>> },
>>> {
>>> - .per_request = true,
>>> .mandatory = true,
>>> .cfg.id = V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX,
>>> },
>>> @@ -615,7 +611,7 @@ static int rkvdec_request_validate(struct media_request *req)
>>> u32 id = ctrls->ctrls[i].cfg.id;
>>> struct v4l2_ctrl *ctrl;
>>>
>>> - if (!ctrls->ctrls[i].per_request || !ctrls->ctrls[i].mandatory)
>>> + if (!ctrls->ctrls[i].mandatory)
>>> continue;
>>>
>>> ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl, id);
>>> diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
>>> index 2fc9f46b6910..77a137cca88e 100644
>>> --- a/drivers/staging/media/rkvdec/rkvdec.h
>>> +++ b/drivers/staging/media/rkvdec/rkvdec.h
>>> @@ -25,7 +25,6 @@
>>> struct rkvdec_ctx;
>>>
>>> struct rkvdec_ctrl_desc {
>>> - u32 per_request : 1;
>>> u32 mandatory : 1;
>>> struct v4l2_ctrl_config cfg;
>>> };
>>>
>
>
next prev parent reply other threads:[~2020-08-18 22:25 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-14 13:36 [PATCH v3 00/19] Clean H264 stateless uAPI Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 01/19] media: uapi: h264: Update reference lists Ezequiel Garcia
2020-08-20 9:11 ` Hans Verkuil
2020-08-14 13:36 ` [PATCH v3 02/19] media: uapi: h264: Further clarify scaling lists order Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 03/19] media: uapi: h264: Split prediction weight parameters Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 04/19] media: uapi: h264: Clarify pic_order_cnt_bit_size field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 05/19] media: uapi: h264: Increase size of 'first_mb_in_slice' field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 06/19] media: uapi: h264: Clean DPB entry interface Ezequiel Garcia
2020-08-20 9:12 ` Hans Verkuil
2020-08-14 13:36 ` [PATCH v3 07/19] media: uapi: h264: Increase size of DPB entry pic_num Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 08/19] media: uapi: h264: Drop SLICE_PARAMS 'size' field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 09/19] media: uapi: h264: Clarify SLICE_BASED mode Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 10/19] media: uapi: h264: Clean slice invariants syntax elements Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 11/19] media: uapi: h264: Rename and clarify PPS_FLAG_SCALING_MATRIX_PRESENT Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 12/19] media: hantro: Don't require unneeded H264_SLICE_PARAMS Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 13/19] media: rkvdec: " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 14/19] media: cedrus: h264: Properly configure reference field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 15/19] media: cedrus: h264: Fix frame list construction Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 16/19] media: rkvdec: Drop unneeded per_request driver-specific control flag Ezequiel Garcia
2020-08-18 20:17 ` Jonas Karlman
2020-08-18 21:38 ` Ezequiel Garcia
2020-08-18 22:25 ` Jonas Karlman [this message]
2020-08-19 14:37 ` [PATCH v4] " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 17/19] media: rkvdec: Use H264_SCALING_MATRIX only when required Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 18/19] media: hantro: " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 19/19] media: cedrus: " Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b97351fc-1238-e3ee-e7ec-6e74b19725fb@kwiboo.se \
--to=jonas@kwiboo.se \
--cc=acourbot@chromium.org \
--cc=ezequiel@collabora.com \
--cc=hverkuil@xs4all.nl \
--cc=jernej.skrabec@siol.net \
--cc=jkardatzke@chromium.org \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®