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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 289F9C77B70 for ; Mon, 27 Mar 2023 12:53:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232269AbjC0Mxi (ORCPT ); Mon, 27 Mar 2023 08:53:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231287AbjC0Mx2 (ORCPT ); Mon, 27 Mar 2023 08:53:28 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 079A51709 for ; Mon, 27 Mar 2023 05:53:25 -0700 (PDT) Received: from [192.168.0.192] (unknown [194.146.248.75]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: andrzej.p) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7059866015A6; Mon, 27 Mar 2023 13:53:23 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1679921604; bh=bhgQciSobL/ZpgAIbaR3LBgVjRRj3Tp/+e7lLLp6Mr8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=B1sAFyiMXwT74Z8N/4CO5KqYMBwERta3cRy988TfLyqGgNu1fMzOEg337hdNiyXPB 2jiS6ux0ub0vP2yCHLmypR2Kt7jqKOLPHCDQaDjh8lQnU1xMCU8ntMrmCCtq07iXS0 GRJ/sH5cz1PT1OwYkbQHFE9ZciFyAB4DYuIbCKJfxSIMAfCnbqJ0+cfXOee1Pj6NGV JCgBbZIDPKptnuHVE4bMVfkggTQmA5ZODVb6qThcMmVGQOQ3Occ+Z32RMam4cnRqMe 68L6zJ6O6ImdKR4vbifEX/ZO1tRxiGaVfjSUX+ZOQRya7jnWSMKNuojig31LeDcLGe edIEEOnzxB6/g== Message-ID: <0224abd9-df5b-0c79-6366-a52176a2e45b@collabora.com> Date: Mon, 27 Mar 2023 14:53:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [RFC 1/2] media: uapi: Add VP8 stateless encoder controls Content-Language: en-US To: Nicolas Dufresne , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Mauro Carvalho Chehab , Ezequiel Garcia , Philipp Zabel , Heiko Stuebner , kernel@collabora.com References: <20230309125651.23911-1-andrzej.p@collabora.com> <20230309125651.23911-2-andrzej.p@collabora.com> <4ddd59e5-4db3-5027-850c-118230926911@collabora.com> <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> From: Andrzej Pietrasiewicz In-Reply-To: <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi, W dniu 24.03.2023 o 19:49, Nicolas Dufresne pisze: > Le mercredi 22 mars 2023 à 11:06 +0100, Andrzej Pietrasiewicz a écrit : >> Hi Hans, >> >> W dniu 21.03.2023 o 14:39, Hans Verkuil pisze: >>> Hi Andrzej, >>> >>> On 09/03/2023 13:56, Andrzej Pietrasiewicz wrote: >>>> Add uAPI for stateless VP8 encoders. >>>> >>>> Signed-off-by: Andrzej Pietrasiewicz >>>> --- >>>> drivers/media/v4l2-core/v4l2-ctrls-core.c | 16 ++++ >>>> drivers/media/v4l2-core/v4l2-ctrls-defs.c | 5 ++ >>>> include/media/v4l2-ctrls.h | 1 + >>>> include/uapi/linux/v4l2-controls.h | 91 +++++++++++++++++++++++ >>>> include/uapi/linux/videodev2.h | 3 + >>>> 5 files changed, 116 insertions(+) >>>> >>>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c >>>> index 29169170880a..5055e75d37bb 100644 >>>> --- a/drivers/media/v4l2-core/v4l2-ctrls-core.c >>>> +++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c >>>> @@ -335,6 +335,9 @@ void v4l2_ctrl_type_op_log(const struct v4l2_ctrl *ctrl) >>>> case V4L2_CTRL_TYPE_VP9_FRAME: >>>> pr_cont("VP9_FRAME"); >>>> break; >>>> + case V4L2_CTRL_TYPE_VP8_ENCODE_PARAMS: >>>> + pr_cont("VP8_ENCODE_PARAMS"); >>>> + break; >>>> case V4L2_CTRL_TYPE_HEVC_SPS: >>>> pr_cont("HEVC_SPS"); >>>> break; >>>> @@ -568,6 +571,7 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, >>>> struct v4l2_ctrl_hevc_pps *p_hevc_pps; >>>> struct v4l2_ctrl_hdr10_mastering_display *p_hdr10_mastering; >>>> struct v4l2_ctrl_hevc_decode_params *p_hevc_decode_params; >>>> + struct v4l2_ctrl_vp8_encode_params *p_vp8_encode_params; >>>> struct v4l2_area *area; >>>> void *p = ptr.p + idx * ctrl->elem_size; >>>> unsigned int i; >>>> @@ -918,6 +922,15 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, >>>> return -EINVAL; >>>> break; >>>> >>>> + case V4L2_CTRL_TYPE_VP8_ENCODE_PARAMS: >>>> + p_vp8_encode_params = p; >>>> + if (p_vp8_encode_params->loop_filter_level > 63) >>>> + return -EINVAL; >>>> + >>>> + if (p_vp8_encode_params->sharpness_level > 7) >>>> + return -EINVAL; >>>> + break; >>>> + >>>> default: >>>> return -EINVAL; >>>> } >>>> @@ -1602,6 +1615,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, >>>> case V4L2_CTRL_TYPE_VP9_FRAME: >>>> elem_size = sizeof(struct v4l2_ctrl_vp9_frame); >>>> break; >>>> + case V4L2_CTRL_TYPE_VP8_ENCODE_PARAMS: >>>> + elem_size = sizeof(struct v4l2_ctrl_vp8_encode_params); >>>> + break; >>>> case V4L2_CTRL_TYPE_AREA: >>>> elem_size = sizeof(struct v4l2_area); >>>> break; >>>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c >>>> index 564fedee2c88..935bd9a07bad 100644 >>>> --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c >>>> +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c >>>> @@ -1182,6 +1182,8 @@ const char *v4l2_ctrl_get_name(u32 id) >>>> case V4L2_CID_STATELESS_MPEG2_QUANTISATION: return "MPEG-2 Quantisation Matrices"; >>>> case V4L2_CID_STATELESS_VP9_COMPRESSED_HDR: return "VP9 Probabilities Updates"; >>>> case V4L2_CID_STATELESS_VP9_FRAME: return "VP9 Frame Decode Parameters"; >>>> + case V4L2_CID_STATELESS_VP8_ENCODE_PARAMS: return "VP8 Encode Parameters"; >>>> + case V4L2_CID_STATELESS_VP8_ENCODE_QP: return "VP8 Encode QP"; >>>> case V4L2_CID_STATELESS_HEVC_SPS: return "HEVC Sequence Parameter Set"; >>>> case V4L2_CID_STATELESS_HEVC_PPS: return "HEVC Picture Parameter Set"; >>>> case V4L2_CID_STATELESS_HEVC_SLICE_PARAMS: return "HEVC Slice Parameters"; >>>> @@ -1531,6 +1533,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, >>>> case V4L2_CID_STATELESS_VP9_FRAME: >>>> *type = V4L2_CTRL_TYPE_VP9_FRAME; >>>> break; >>>> + case V4L2_CID_STATELESS_VP8_ENCODE_PARAMS: >>>> + *type = V4L2_CTRL_TYPE_VP8_ENCODE_PARAMS; >>>> + break; >>> >>> Why isn't V4L2_CID_STATELESS_VP8_ENCODE_QP added here as well? I assume it is of >>> type INTEGER? >>> >> >> Thanks for pointing that. >> >> And it is a simple integer, indeed. >> >>> I also wonder if VP9 would have the same control, so that this could be called >>> V4L2_CID_STATELESS_VPX_ENCODE_QP. On the other hand, that might be overkill. >>> >> >> It seems to me that having a single kind of control for passing the >> requested QP value for both VP8 and VP9 makes sense. In fact, perhaps not >> restricting ourselves to VPX would make even more sense? >> >> This touches the question of how we do rate control in general in stateless >> encoders. If the uAPI is to be independent of underlying hardware, then the only >> parameter userspace passes to the kernel is the required QP (which is determined >> entirely by userspace using whatever means it considers appropriate, for example >> judging by the last encoded frame(s) size(s)). Any other kinds of data would >> probably be somehow hardware-specific. So, I'm wondering if maybe even a >> >> V4L2_CID_STATELESS_ENCODE_QP >> >> is what we want? > > We already have V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY which is bound to > V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, Nice catch. Both are used only by Venus. We could reuse it. But then there's the allowed range - which you do discuss below. which seems what we should expect form a > stateless encoder. In fact, adding the entire BITRATE_MODE would enable later > encoder that has firmware driven rate control to be able to add it easily > (similar to what we have in GPUs). > > We don't need per frame type QP, as stateless encoder have requests, so we can > set the QP for each frame separately anyway. > >> >> This, in turn, brings another question of the range and interpretation of values >> that should be passed through this control. 0-255? 0-100? 0 = no quantization at >> all (i.e. highest quality) or maybe 0 = lowest possible quality? > > It seems V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY has decided to go 0-100 regardless > of the CODEC. The API is not very inconsistent, like VPX_IN_QP does not even > document a range, and says its for VP8 only. Perhaps we could open it up, and > allow per codec range so we can match 1:1 with the CODEC specs ? We could only > allow that for stateless if we beleive abstracting it to 0-100 make is better in > general. Just that in stateless, we expect that number to be written in the > bitstream verbatim. > Do you mean to relax the 0-100 range of V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY and then use this control instead of adding a new one for stateless codecs, or to specifically add a new one, modeled after V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY? Regards, Andrzej 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1496FC77B72 for ; Mon, 27 Mar 2023 12:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4RTvXEzr3sOhOIVnY/YDBR9Gt+ClrMA+RsqewdgMXYQ=; b=BoZjfndgBzsmHN J/4xlAfUerkwanBKcn9MtryFogzkSOAviWIxbSOFjeK7Fibe2AVbm71xl3S6HKlkNh47vx305ukjU k2u9S8Xkd6PSCCRa2T4rqyQQffhLql4gHSoQRn7Tq7OGrcuOcEO1bMkgViBfJ18yof/3MNY0IvcTN ieXbAcuje0vg7Ev/yAN6P4WX+5cj6+ifgGJLC4Rg3Hdc3VWzh8NDjAaN9k+MsdR1DU1KOK1UbzUtc TA4LuBlDCGRBjDgQ3ueduTqaokPHxASBBjHvfOAagK9njBkh5Wme196NlMYlumOVBOTK9nqwredZ4 TJYoGJPaw0LaIlU1H5qg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgmLt-00B13G-2l; Mon, 27 Mar 2023 12:53:33 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgmLp-00B0z0-1a; Mon, 27 Mar 2023 12:53:31 +0000 Received: from [192.168.0.192] (unknown [194.146.248.75]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: andrzej.p) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7059866015A6; Mon, 27 Mar 2023 13:53:23 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1679921604; bh=bhgQciSobL/ZpgAIbaR3LBgVjRRj3Tp/+e7lLLp6Mr8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=B1sAFyiMXwT74Z8N/4CO5KqYMBwERta3cRy988TfLyqGgNu1fMzOEg337hdNiyXPB 2jiS6ux0ub0vP2yCHLmypR2Kt7jqKOLPHCDQaDjh8lQnU1xMCU8ntMrmCCtq07iXS0 GRJ/sH5cz1PT1OwYkbQHFE9ZciFyAB4DYuIbCKJfxSIMAfCnbqJ0+cfXOee1Pj6NGV JCgBbZIDPKptnuHVE4bMVfkggTQmA5ZODVb6qThcMmVGQOQ3Occ+Z32RMam4cnRqMe 68L6zJ6O6ImdKR4vbifEX/ZO1tRxiGaVfjSUX+ZOQRya7jnWSMKNuojig31LeDcLGe edIEEOnzxB6/g== Message-ID: <0224abd9-df5b-0c79-6366-a52176a2e45b@collabora.com> Date: Mon, 27 Mar 2023 14:53:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [RFC 1/2] media: uapi: Add VP8 stateless encoder controls Content-Language: en-US To: Nicolas Dufresne , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Mauro Carvalho Chehab , Ezequiel Garcia , Philipp Zabel , Heiko Stuebner , kernel@collabora.com References: <20230309125651.23911-1-andrzej.p@collabora.com> <20230309125651.23911-2-andrzej.p@collabora.com> <4ddd59e5-4db3-5027-850c-118230926911@collabora.com> <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> From: Andrzej Pietrasiewicz In-Reply-To: <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230327_055329_871318_59313470 X-CRM114-Status: GOOD ( 28.12 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGksCgpXIGRuaXUgMjQuMDMuMjAyMyBvwqAxOTo0OSwgTmljb2xhcyBEdWZyZXNuZSBwaXN6ZToK PiBMZSBtZXJjcmVkaSAyMiBtYXJzIDIwMjMgw6AgMTE6MDYgKzAxMDAsIEFuZHJ6ZWogUGlldHJh c2lld2ljeiBhIMOpY3JpdMKgOgo+PiBIaSBIYW5zLAo+Pgo+PiBXIGRuaXUgMjEuMDMuMjAyMyBv wqAxNDozOSwgSGFucyBWZXJrdWlsIHBpc3plOgo+Pj4gSGkgQW5kcnplaiwKPj4+Cj4+PiBPbiAw OS8wMy8yMDIzIDEzOjU2LCBBbmRyemVqIFBpZXRyYXNpZXdpY3ogd3JvdGU6Cj4+Pj4gQWRkIHVB UEkgZm9yIHN0YXRlbGVzcyBWUDggZW5jb2RlcnMuCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBB bmRyemVqIFBpZXRyYXNpZXdpY3ogPGFuZHJ6ZWoucEBjb2xsYWJvcmEuY29tPgo+Pj4+IC0tLQo+ Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jIHwgMTYgKysr Kwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtZGVmcy5jIHwgIDUg KysKPj4+PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCAgICAgICAgICAgICAgICB8ICAx ICsKPj4+PiAgICBpbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oICAgICAgICB8IDkx ICsrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gICAgaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVv ZGV2Mi5oICAgICAgICAgICAgfCAgMyArCj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5z ZXJ0aW9ucygrKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItY3RybHMtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1j b3JlLmMKPj4+PiBpbmRleCAyOTE2OTE3MDg4MGEuLjUwNTVlNzVkMzdiYiAxMDA2NDQKPj4+PiAt LS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWNvcmUuYwo+Pj4+ICsrKyBi L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jCj4+Pj4gQEAgLTMzNSw2 ICszMzUsOSBAQCB2b2lkIHY0bDJfY3RybF90eXBlX29wX2xvZyhjb25zdCBzdHJ1Y3QgdjRsMl9j dHJsICpjdHJsKQo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX1ZQOV9GUkFNRToKPj4+PiAg ICAJCXByX2NvbnQoIlZQOV9GUkFNRSIpOwo+Pj4+ICAgIAkJYnJlYWs7Cj4+Pj4gKwljYXNlIFY0 TDJfQ1RSTF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOgo+Pj4+ICsJCXByX2NvbnQoIlZQOF9FTkNP REVfUEFSQU1TIik7Cj4+Pj4gKwkJYnJlYWs7Cj4+Pj4gICAgCWNhc2UgVjRMMl9DVFJMX1RZUEVf SEVWQ19TUFM6Cj4+Pj4gICAgCQlwcl9jb250KCJIRVZDX1NQUyIpOwo+Pj4+ICAgIAkJYnJlYWs7 Cj4+Pj4gQEAgLTU2OCw2ICs1NzEsNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3Vu ZChjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsLCB1MzIgaWR4LAo+Pj4+ICAgIAlzdHJ1Y3Qg djRsMl9jdHJsX2hldmNfcHBzICpwX2hldmNfcHBzOwo+Pj4+ICAgIAlzdHJ1Y3QgdjRsMl9jdHJs X2hkcjEwX21hc3RlcmluZ19kaXNwbGF5ICpwX2hkcjEwX21hc3RlcmluZzsKPj4+PiAgICAJc3Ry dWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJhbXMgKnBfaGV2Y19kZWNvZGVfcGFyYW1zOwo+ Pj4+ICsJc3RydWN0IHY0bDJfY3RybF92cDhfZW5jb2RlX3BhcmFtcyAqcF92cDhfZW5jb2RlX3Bh cmFtczsKPj4+PiAgICAJc3RydWN0IHY0bDJfYXJlYSAqYXJlYTsKPj4+PiAgICAJdm9pZCAqcCA9 IHB0ci5wICsgaWR4ICogY3RybC0+ZWxlbV9zaXplOwo+Pj4+ICAgIAl1bnNpZ25lZCBpbnQgaTsK Pj4+PiBAQCAtOTE4LDYgKzkyMiwxNSBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3Vu ZChjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsLCB1MzIgaWR4LAo+Pj4+ICAgIAkJCXJldHVy biAtRUlOVkFMOwo+Pj4+ICAgIAkJYnJlYWs7Cj4+Pj4gICAgCj4+Pj4gKwljYXNlIFY0TDJfQ1RS TF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOgo+Pj4+ICsJCXBfdnA4X2VuY29kZV9wYXJhbXMgPSBw Owo+Pj4+ICsJCWlmIChwX3ZwOF9lbmNvZGVfcGFyYW1zLT5sb29wX2ZpbHRlcl9sZXZlbCA+IDYz KQo+Pj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPj4+PiArCj4+Pj4gKwkJaWYgKHBfdnA4X2VuY29k ZV9wYXJhbXMtPnNoYXJwbmVzc19sZXZlbCA+IDcpCj4+Pj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ Pj4+ICsJCWJyZWFrOwo+Pj4+ICsKPj4+PiAgICAJZGVmYXVsdDoKPj4+PiAgICAJCXJldHVybiAt RUlOVkFMOwo+Pj4+ICAgIAl9Cj4+Pj4gQEAgLTE2MDIsNiArMTYxNSw5IEBAIHN0YXRpYyBzdHJ1 Y3QgdjRsMl9jdHJsICp2NGwyX2N0cmxfbmV3KHN0cnVjdCB2NGwyX2N0cmxfaGFuZGxlciAqaGRs LAo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX1ZQOV9GUkFNRToKPj4+PiAgICAJCWVsZW1f c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdjRsMl9jdHJsX3ZwOV9mcmFtZSk7Cj4+Pj4gICAgCQlicmVh azsKPj4+PiArCWNhc2UgVjRMMl9DVFJMX1RZUEVfVlA4X0VOQ09ERV9QQVJBTVM6Cj4+Pj4gKwkJ ZWxlbV9zaXplID0gc2l6ZW9mKHN0cnVjdCB2NGwyX2N0cmxfdnA4X2VuY29kZV9wYXJhbXMpOwo+ Pj4+ICsJCWJyZWFrOwo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX0FSRUE6Cj4+Pj4gICAg CQllbGVtX3NpemUgPSBzaXplb2Yoc3RydWN0IHY0bDJfYXJlYSk7Cj4+Pj4gICAgCQlicmVhazsK Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1kZWZz LmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWRlZnMuYwo+Pj4+IGluZGV4 IDU2NGZlZGVlMmM4OC4uOTM1YmQ5YTA3YmFkIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtZGVmcy5jCj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1jdHJscy1kZWZzLmMKPj4+PiBAQCAtMTE4Miw2ICsxMTgyLDggQEAgY29u c3QgY2hhciAqdjRsMl9jdHJsX2dldF9uYW1lKHUzMiBpZCkKPj4+PiAgICAJY2FzZSBWNEwyX0NJ RF9TVEFURUxFU1NfTVBFRzJfUVVBTlRJU0FUSU9OOgkJcmV0dXJuICJNUEVHLTIgUXVhbnRpc2F0 aW9uIE1hdHJpY2VzIjsKPj4+PiAgICAJY2FzZSBWNEwyX0NJRF9TVEFURUxFU1NfVlA5X0NPTVBS RVNTRURfSERSOglyZXR1cm4gIlZQOSBQcm9iYWJpbGl0aWVzIFVwZGF0ZXMiOwo+Pj4+ICAgIAlj YXNlIFY0TDJfQ0lEX1NUQVRFTEVTU19WUDlfRlJBTUU6CQkJcmV0dXJuICJWUDkgRnJhbWUgRGVj b2RlIFBhcmFtZXRlcnMiOwo+Pj4+ICsJY2FzZSBWNEwyX0NJRF9TVEFURUxFU1NfVlA4X0VOQ09E RV9QQVJBTVM6CQlyZXR1cm4gIlZQOCBFbmNvZGUgUGFyYW1ldGVycyI7Cj4+Pj4gKwljYXNlIFY0 TDJfQ0lEX1NUQVRFTEVTU19WUDhfRU5DT0RFX1FQOgkJCXJldHVybiAiVlA4IEVuY29kZSBRUCI7 Cj4+Pj4gICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX0hFVkNfU1BTOgkJCXJldHVybiAiSEVW QyBTZXF1ZW5jZSBQYXJhbWV0ZXIgU2V0IjsKPj4+PiAgICAJY2FzZSBWNEwyX0NJRF9TVEFURUxF U1NfSEVWQ19QUFM6CQkJcmV0dXJuICJIRVZDIFBpY3R1cmUgUGFyYW1ldGVyIFNldCI7Cj4+Pj4g ICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX0hFVkNfU0xJQ0VfUEFSQU1TOgkJcmV0dXJuICJI RVZDIFNsaWNlIFBhcmFtZXRlcnMiOwo+Pj4+IEBAIC0xNTMxLDYgKzE1MzMsOSBAQCB2b2lkIHY0 bDJfY3RybF9maWxsKHUzMiBpZCwgY29uc3QgY2hhciAqKm5hbWUsIGVudW0gdjRsMl9jdHJsX3R5 cGUgKnR5cGUsCj4+Pj4gICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX1ZQOV9GUkFNRToKPj4+ PiAgICAJCSp0eXBlID0gVjRMMl9DVFJMX1RZUEVfVlA5X0ZSQU1FOwo+Pj4+ICAgIAkJYnJlYWs7 Cj4+Pj4gKwljYXNlIFY0TDJfQ0lEX1NUQVRFTEVTU19WUDhfRU5DT0RFX1BBUkFNUzoKPj4+PiAr CQkqdHlwZSA9IFY0TDJfQ1RSTF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOwo+Pj4+ICsJCWJyZWFr Owo+Pj4KPj4+IFdoeSBpc24ndCBWNEwyX0NJRF9TVEFURUxFU1NfVlA4X0VOQ09ERV9RUCBhZGRl ZCBoZXJlIGFzIHdlbGw/IEkgYXNzdW1lIGl0IGlzIG9mCj4+PiB0eXBlIElOVEVHRVI/Cj4+Pgo+ Pgo+PiBUaGFua3MgZm9yIHBvaW50aW5nIHRoYXQuCj4+Cj4+IEFuZCBpdCBpcyBhIHNpbXBsZSBp bnRlZ2VyLCBpbmRlZWQuCj4+Cj4+PiBJIGFsc28gd29uZGVyIGlmIFZQOSB3b3VsZCBoYXZlIHRo ZSBzYW1lIGNvbnRyb2wsIHNvIHRoYXQgdGhpcyBjb3VsZCBiZSBjYWxsZWQKPj4+IFY0TDJfQ0lE X1NUQVRFTEVTU19WUFhfRU5DT0RFX1FQLiBPbiB0aGUgb3RoZXIgaGFuZCwgdGhhdCBtaWdodCBi ZSBvdmVya2lsbC4KPj4+Cj4+Cj4+IEl0IHNlZW1zIHRvIG1lIHRoYXQgaGF2aW5nIGEgc2luZ2xl IGtpbmQgb2YgY29udHJvbCBmb3IgcGFzc2luZyB0aGUKPj4gcmVxdWVzdGVkIFFQIHZhbHVlIGZv ciBib3RoIFZQOCBhbmQgVlA5IG1ha2VzIHNlbnNlLiBJbiBmYWN0LCBwZXJoYXBzIG5vdAo+PiBy ZXN0cmljdGluZyBvdXJzZWx2ZXMgdG8gVlBYIHdvdWxkIG1ha2UgZXZlbiBtb3JlIHNlbnNlPwo+ Pgo+PiBUaGlzIHRvdWNoZXMgdGhlIHF1ZXN0aW9uIG9mIGhvdyB3ZSBkbyByYXRlIGNvbnRyb2wg aW4gZ2VuZXJhbCBpbiBzdGF0ZWxlc3MKPj4gZW5jb2RlcnMuIElmIHRoZSB1QVBJIGlzIHRvIGJl IGluZGVwZW5kZW50IG9mIHVuZGVybHlpbmcgaGFyZHdhcmUsIHRoZW4gdGhlIG9ubHkKPj4gcGFy YW1ldGVyIHVzZXJzcGFjZSBwYXNzZXMgdG8gdGhlIGtlcm5lbCBpcyB0aGUgcmVxdWlyZWQgUVAg KHdoaWNoIGlzIGRldGVybWluZWQKPj4gZW50aXJlbHkgYnkgdXNlcnNwYWNlIHVzaW5nIHdoYXRl dmVyIG1lYW5zIGl0IGNvbnNpZGVycyBhcHByb3ByaWF0ZSwgZm9yIGV4YW1wbGUKPj4ganVkZ2lu ZyBieSB0aGUgbGFzdCBlbmNvZGVkIGZyYW1lKHMpIHNpemUocykpLiBBbnkgb3RoZXIga2luZHMg b2YgZGF0YSB3b3VsZAo+PiBwcm9iYWJseSBiZSBzb21laG93IGhhcmR3YXJlLXNwZWNpZmljLiBT bywgSSdtIHdvbmRlcmluZyBpZiBtYXliZSBldmVuIGEKPj4KPj4gVjRMMl9DSURfU1RBVEVMRVNT X0VOQ09ERV9RUAo+Pgo+PiBpcyB3aGF0IHdlIHdhbnQ/Cj4gCj4gV2UgYWxyZWFkeSBoYXZlIFY0 TDJfQ0lEX01QRUdfVklERU9fQ09OU1RBTlRfUVVBTElUWSB3aGljaCBpcyBib3VuZCB0bwo+IFY0 TDJfTVBFR19WSURFT19CSVRSQVRFX01PREVfQ1EsCgpOaWNlIGNhdGNoLiBCb3RoIGFyZSB1c2Vk IG9ubHkgYnkgVmVudXMuIFdlIGNvdWxkIHJldXNlIGl0LiBCdXQgdGhlbiB0aGVyZSdzCnRoZSBh bGxvd2VkIHJhbmdlIC0gd2hpY2ggeW91IGRvIGRpc2N1c3MgYmVsb3cuCgoKd2hpY2ggc2VlbXMg d2hhdCB3ZSBzaG91bGQgZXhwZWN0IGZvcm0gYQo+IHN0YXRlbGVzcyBlbmNvZGVyLiBJbiBmYWN0 LCBhZGRpbmcgdGhlIGVudGlyZSBCSVRSQVRFX01PREUgd291bGQgZW5hYmxlIGxhdGVyCj4gZW5j b2RlciB0aGF0IGhhcyBmaXJtd2FyZSBkcml2ZW4gcmF0ZSBjb250cm9sIHRvIGJlIGFibGUgdG8g YWRkIGl0IGVhc2lseQo+IChzaW1pbGFyIHRvIHdoYXQgd2UgaGF2ZSBpbiBHUFVzKS4KPiAKPiBX ZSBkb24ndCBuZWVkIHBlciBmcmFtZSB0eXBlIFFQLCBhcyBzdGF0ZWxlc3MgZW5jb2RlciBoYXZl IHJlcXVlc3RzLCBzbyB3ZSBjYW4KPiBzZXQgdGhlIFFQIGZvciBlYWNoIGZyYW1lIHNlcGFyYXRl bHkgYW55d2F5Lgo+IAo+Pgo+PiBUaGlzLCBpbiB0dXJuLCBicmluZ3MgYW5vdGhlciBxdWVzdGlv biBvZiB0aGUgcmFuZ2UgYW5kIGludGVycHJldGF0aW9uIG9mIHZhbHVlcwo+PiB0aGF0IHNob3Vs ZCBiZSBwYXNzZWQgdGhyb3VnaCB0aGlzIGNvbnRyb2wuIDAtMjU1PyAwLTEwMD8gMCA9IG5vIHF1 YW50aXphdGlvbiBhdAo+PiBhbGwgKGkuZS4gaGlnaGVzdCBxdWFsaXR5KSBvciBtYXliZSAwID0g bG93ZXN0IHBvc3NpYmxlIHF1YWxpdHk/Cj4gCj4gSXQgc2VlbXMgVjRMMl9DSURfTVBFR19WSURF T19DT05TVEFOVF9RVUFMSVRZIGhhcyBkZWNpZGVkIHRvIGdvIDAtMTAwIHJlZ2FyZGxlc3MKPiBv ZiB0aGUgQ09ERUMuIFRoZSBBUEkgaXMgbm90IHZlcnkgaW5jb25zaXN0ZW50LCBsaWtlIFZQWF9J Tl9RUCBkb2VzIG5vdCBldmVuCj4gZG9jdW1lbnQgYSByYW5nZSwgYW5kIHNheXMgaXRzIGZvciBW UDggb25seS4gUGVyaGFwcyB3ZSBjb3VsZCBvcGVuIGl0IHVwLCBhbmQKPiBhbGxvdyBwZXIgY29k ZWMgcmFuZ2Ugc28gd2UgY2FuIG1hdGNoIDE6MSB3aXRoIHRoZSBDT0RFQyBzcGVjcyA/IFdlIGNv dWxkIG9ubHkKPiBhbGxvdyB0aGF0IGZvciBzdGF0ZWxlc3MgaWYgd2UgYmVsZWl2ZSBhYnN0cmFj dGluZyBpdCB0byAwLTEwMCBtYWtlIGlzIGJldHRlciBpbgo+IGdlbmVyYWwuIEp1c3QgdGhhdCBp biBzdGF0ZWxlc3MsIHdlIGV4cGVjdCB0aGF0IG51bWJlciB0byBiZSB3cml0dGVuIGluIHRoZQo+ IGJpdHN0cmVhbSB2ZXJiYXRpbS4KPiAKCkRvIHlvdSBtZWFuIHRvIHJlbGF4IHRoZSAwLTEwMCBy YW5nZSBvZiBWNEwyX0NJRF9NUEVHX1ZJREVPX0NPTlNUQU5UX1FVQUxJVFkKYW5kIHRoZW4gdXNl IHRoaXMgY29udHJvbCBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBvbmUgZm9yIHN0YXRlbGVzcyBj b2RlY3MsCm9yIHRvIHNwZWNpZmljYWxseSBhZGQgYSBuZXcgb25lLCBtb2RlbGVkIGFmdGVyClY0 TDJfQ0lEX01QRUdfVklERU9fQ09OU1RBTlRfUVVBTElUWT8KClJlZ2FyZHMsCgpBbmRyemVqCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2Nr Y2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EA3E1C7619A for ; Mon, 27 Mar 2023 12:54:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uP4LX07xXeZzxEvPzaB8VWDpK0UhnG304iOwUKaug4s=; b=oLXqCiB54ZzssB 3XYGHc4yk699DjRxdqMgpR381ZKO7p+uiVwXigeH6ntDRufs9Tplz3eXNRFDzWHmSl9rFrQHbncmF tto5TLqT/6xEx6nyxyaWlYgLbnHqm6UssudTJc5ry/wbBjsIgyg3woHuHtQg4p2d7To+nA7SD/ZnB kfmRslWEUyc72bq+ZwBtnlRgMoodHEmMv84DHA6pz9bB0kHEWiBExqeXJKH+aPi11Bop6Y5yN47Ye LnRur0+sYetluwK4yl18iM9Ex9LRawQrA726zrh5vieRaJK3KMWoVEWgXc5Tv3lds44UKTUTt5zEu 9QvSyWHGfoMH/w/MW20A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgmLs-00B12X-1p; Mon, 27 Mar 2023 12:53:32 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgmLp-00B0z0-1a; Mon, 27 Mar 2023 12:53:31 +0000 Received: from [192.168.0.192] (unknown [194.146.248.75]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: andrzej.p) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7059866015A6; Mon, 27 Mar 2023 13:53:23 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1679921604; bh=bhgQciSobL/ZpgAIbaR3LBgVjRRj3Tp/+e7lLLp6Mr8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=B1sAFyiMXwT74Z8N/4CO5KqYMBwERta3cRy988TfLyqGgNu1fMzOEg337hdNiyXPB 2jiS6ux0ub0vP2yCHLmypR2Kt7jqKOLPHCDQaDjh8lQnU1xMCU8ntMrmCCtq07iXS0 GRJ/sH5cz1PT1OwYkbQHFE9ZciFyAB4DYuIbCKJfxSIMAfCnbqJ0+cfXOee1Pj6NGV JCgBbZIDPKptnuHVE4bMVfkggTQmA5ZODVb6qThcMmVGQOQ3Occ+Z32RMam4cnRqMe 68L6zJ6O6ImdKR4vbifEX/ZO1tRxiGaVfjSUX+ZOQRya7jnWSMKNuojig31LeDcLGe edIEEOnzxB6/g== Message-ID: <0224abd9-df5b-0c79-6366-a52176a2e45b@collabora.com> Date: Mon, 27 Mar 2023 14:53:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [RFC 1/2] media: uapi: Add VP8 stateless encoder controls Content-Language: en-US To: Nicolas Dufresne , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Mauro Carvalho Chehab , Ezequiel Garcia , Philipp Zabel , Heiko Stuebner , kernel@collabora.com References: <20230309125651.23911-1-andrzej.p@collabora.com> <20230309125651.23911-2-andrzej.p@collabora.com> <4ddd59e5-4db3-5027-850c-118230926911@collabora.com> <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> From: Andrzej Pietrasiewicz In-Reply-To: <421f8157aa11aab997b092f4b1378a8bbd008c18.camel@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230327_055329_871318_59313470 X-CRM114-Status: GOOD ( 28.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpXIGRuaXUgMjQuMDMuMjAyMyBvwqAxOTo0OSwgTmljb2xhcyBEdWZyZXNuZSBwaXN6ZToK PiBMZSBtZXJjcmVkaSAyMiBtYXJzIDIwMjMgw6AgMTE6MDYgKzAxMDAsIEFuZHJ6ZWogUGlldHJh c2lld2ljeiBhIMOpY3JpdMKgOgo+PiBIaSBIYW5zLAo+Pgo+PiBXIGRuaXUgMjEuMDMuMjAyMyBv wqAxNDozOSwgSGFucyBWZXJrdWlsIHBpc3plOgo+Pj4gSGkgQW5kcnplaiwKPj4+Cj4+PiBPbiAw OS8wMy8yMDIzIDEzOjU2LCBBbmRyemVqIFBpZXRyYXNpZXdpY3ogd3JvdGU6Cj4+Pj4gQWRkIHVB UEkgZm9yIHN0YXRlbGVzcyBWUDggZW5jb2RlcnMuCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBB bmRyemVqIFBpZXRyYXNpZXdpY3ogPGFuZHJ6ZWoucEBjb2xsYWJvcmEuY29tPgo+Pj4+IC0tLQo+ Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jIHwgMTYgKysr Kwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtZGVmcy5jIHwgIDUg KysKPj4+PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCAgICAgICAgICAgICAgICB8ICAx ICsKPj4+PiAgICBpbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oICAgICAgICB8IDkx ICsrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gICAgaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVv ZGV2Mi5oICAgICAgICAgICAgfCAgMyArCj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5z ZXJ0aW9ucygrKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItY3RybHMtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1j b3JlLmMKPj4+PiBpbmRleCAyOTE2OTE3MDg4MGEuLjUwNTVlNzVkMzdiYiAxMDA2NDQKPj4+PiAt LS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWNvcmUuYwo+Pj4+ICsrKyBi L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jCj4+Pj4gQEAgLTMzNSw2 ICszMzUsOSBAQCB2b2lkIHY0bDJfY3RybF90eXBlX29wX2xvZyhjb25zdCBzdHJ1Y3QgdjRsMl9j dHJsICpjdHJsKQo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX1ZQOV9GUkFNRToKPj4+PiAg ICAJCXByX2NvbnQoIlZQOV9GUkFNRSIpOwo+Pj4+ICAgIAkJYnJlYWs7Cj4+Pj4gKwljYXNlIFY0 TDJfQ1RSTF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOgo+Pj4+ICsJCXByX2NvbnQoIlZQOF9FTkNP REVfUEFSQU1TIik7Cj4+Pj4gKwkJYnJlYWs7Cj4+Pj4gICAgCWNhc2UgVjRMMl9DVFJMX1RZUEVf SEVWQ19TUFM6Cj4+Pj4gICAgCQlwcl9jb250KCJIRVZDX1NQUyIpOwo+Pj4+ICAgIAkJYnJlYWs7 Cj4+Pj4gQEAgLTU2OCw2ICs1NzEsNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3Vu ZChjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsLCB1MzIgaWR4LAo+Pj4+ICAgIAlzdHJ1Y3Qg djRsMl9jdHJsX2hldmNfcHBzICpwX2hldmNfcHBzOwo+Pj4+ICAgIAlzdHJ1Y3QgdjRsMl9jdHJs X2hkcjEwX21hc3RlcmluZ19kaXNwbGF5ICpwX2hkcjEwX21hc3RlcmluZzsKPj4+PiAgICAJc3Ry dWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJhbXMgKnBfaGV2Y19kZWNvZGVfcGFyYW1zOwo+ Pj4+ICsJc3RydWN0IHY0bDJfY3RybF92cDhfZW5jb2RlX3BhcmFtcyAqcF92cDhfZW5jb2RlX3Bh cmFtczsKPj4+PiAgICAJc3RydWN0IHY0bDJfYXJlYSAqYXJlYTsKPj4+PiAgICAJdm9pZCAqcCA9 IHB0ci5wICsgaWR4ICogY3RybC0+ZWxlbV9zaXplOwo+Pj4+ICAgIAl1bnNpZ25lZCBpbnQgaTsK Pj4+PiBAQCAtOTE4LDYgKzkyMiwxNSBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3Vu ZChjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsLCB1MzIgaWR4LAo+Pj4+ICAgIAkJCXJldHVy biAtRUlOVkFMOwo+Pj4+ICAgIAkJYnJlYWs7Cj4+Pj4gICAgCj4+Pj4gKwljYXNlIFY0TDJfQ1RS TF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOgo+Pj4+ICsJCXBfdnA4X2VuY29kZV9wYXJhbXMgPSBw Owo+Pj4+ICsJCWlmIChwX3ZwOF9lbmNvZGVfcGFyYW1zLT5sb29wX2ZpbHRlcl9sZXZlbCA+IDYz KQo+Pj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPj4+PiArCj4+Pj4gKwkJaWYgKHBfdnA4X2VuY29k ZV9wYXJhbXMtPnNoYXJwbmVzc19sZXZlbCA+IDcpCj4+Pj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ Pj4+ICsJCWJyZWFrOwo+Pj4+ICsKPj4+PiAgICAJZGVmYXVsdDoKPj4+PiAgICAJCXJldHVybiAt RUlOVkFMOwo+Pj4+ICAgIAl9Cj4+Pj4gQEAgLTE2MDIsNiArMTYxNSw5IEBAIHN0YXRpYyBzdHJ1 Y3QgdjRsMl9jdHJsICp2NGwyX2N0cmxfbmV3KHN0cnVjdCB2NGwyX2N0cmxfaGFuZGxlciAqaGRs LAo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX1ZQOV9GUkFNRToKPj4+PiAgICAJCWVsZW1f c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdjRsMl9jdHJsX3ZwOV9mcmFtZSk7Cj4+Pj4gICAgCQlicmVh azsKPj4+PiArCWNhc2UgVjRMMl9DVFJMX1RZUEVfVlA4X0VOQ09ERV9QQVJBTVM6Cj4+Pj4gKwkJ ZWxlbV9zaXplID0gc2l6ZW9mKHN0cnVjdCB2NGwyX2N0cmxfdnA4X2VuY29kZV9wYXJhbXMpOwo+ Pj4+ICsJCWJyZWFrOwo+Pj4+ICAgIAljYXNlIFY0TDJfQ1RSTF9UWVBFX0FSRUE6Cj4+Pj4gICAg CQllbGVtX3NpemUgPSBzaXplb2Yoc3RydWN0IHY0bDJfYXJlYSk7Cj4+Pj4gICAgCQlicmVhazsK Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1kZWZz LmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWRlZnMuYwo+Pj4+IGluZGV4 IDU2NGZlZGVlMmM4OC4uOTM1YmQ5YTA3YmFkIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtZGVmcy5jCj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1jdHJscy1kZWZzLmMKPj4+PiBAQCAtMTE4Miw2ICsxMTgyLDggQEAgY29u c3QgY2hhciAqdjRsMl9jdHJsX2dldF9uYW1lKHUzMiBpZCkKPj4+PiAgICAJY2FzZSBWNEwyX0NJ RF9TVEFURUxFU1NfTVBFRzJfUVVBTlRJU0FUSU9OOgkJcmV0dXJuICJNUEVHLTIgUXVhbnRpc2F0 aW9uIE1hdHJpY2VzIjsKPj4+PiAgICAJY2FzZSBWNEwyX0NJRF9TVEFURUxFU1NfVlA5X0NPTVBS RVNTRURfSERSOglyZXR1cm4gIlZQOSBQcm9iYWJpbGl0aWVzIFVwZGF0ZXMiOwo+Pj4+ICAgIAlj YXNlIFY0TDJfQ0lEX1NUQVRFTEVTU19WUDlfRlJBTUU6CQkJcmV0dXJuICJWUDkgRnJhbWUgRGVj b2RlIFBhcmFtZXRlcnMiOwo+Pj4+ICsJY2FzZSBWNEwyX0NJRF9TVEFURUxFU1NfVlA4X0VOQ09E RV9QQVJBTVM6CQlyZXR1cm4gIlZQOCBFbmNvZGUgUGFyYW1ldGVycyI7Cj4+Pj4gKwljYXNlIFY0 TDJfQ0lEX1NUQVRFTEVTU19WUDhfRU5DT0RFX1FQOgkJCXJldHVybiAiVlA4IEVuY29kZSBRUCI7 Cj4+Pj4gICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX0hFVkNfU1BTOgkJCXJldHVybiAiSEVW QyBTZXF1ZW5jZSBQYXJhbWV0ZXIgU2V0IjsKPj4+PiAgICAJY2FzZSBWNEwyX0NJRF9TVEFURUxF U1NfSEVWQ19QUFM6CQkJcmV0dXJuICJIRVZDIFBpY3R1cmUgUGFyYW1ldGVyIFNldCI7Cj4+Pj4g ICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX0hFVkNfU0xJQ0VfUEFSQU1TOgkJcmV0dXJuICJI RVZDIFNsaWNlIFBhcmFtZXRlcnMiOwo+Pj4+IEBAIC0xNTMxLDYgKzE1MzMsOSBAQCB2b2lkIHY0 bDJfY3RybF9maWxsKHUzMiBpZCwgY29uc3QgY2hhciAqKm5hbWUsIGVudW0gdjRsMl9jdHJsX3R5 cGUgKnR5cGUsCj4+Pj4gICAgCWNhc2UgVjRMMl9DSURfU1RBVEVMRVNTX1ZQOV9GUkFNRToKPj4+ PiAgICAJCSp0eXBlID0gVjRMMl9DVFJMX1RZUEVfVlA5X0ZSQU1FOwo+Pj4+ICAgIAkJYnJlYWs7 Cj4+Pj4gKwljYXNlIFY0TDJfQ0lEX1NUQVRFTEVTU19WUDhfRU5DT0RFX1BBUkFNUzoKPj4+PiAr CQkqdHlwZSA9IFY0TDJfQ1RSTF9UWVBFX1ZQOF9FTkNPREVfUEFSQU1TOwo+Pj4+ICsJCWJyZWFr Owo+Pj4KPj4+IFdoeSBpc24ndCBWNEwyX0NJRF9TVEFURUxFU1NfVlA4X0VOQ09ERV9RUCBhZGRl ZCBoZXJlIGFzIHdlbGw/IEkgYXNzdW1lIGl0IGlzIG9mCj4+PiB0eXBlIElOVEVHRVI/Cj4+Pgo+ Pgo+PiBUaGFua3MgZm9yIHBvaW50aW5nIHRoYXQuCj4+Cj4+IEFuZCBpdCBpcyBhIHNpbXBsZSBp bnRlZ2VyLCBpbmRlZWQuCj4+Cj4+PiBJIGFsc28gd29uZGVyIGlmIFZQOSB3b3VsZCBoYXZlIHRo ZSBzYW1lIGNvbnRyb2wsIHNvIHRoYXQgdGhpcyBjb3VsZCBiZSBjYWxsZWQKPj4+IFY0TDJfQ0lE X1NUQVRFTEVTU19WUFhfRU5DT0RFX1FQLiBPbiB0aGUgb3RoZXIgaGFuZCwgdGhhdCBtaWdodCBi ZSBvdmVya2lsbC4KPj4+Cj4+Cj4+IEl0IHNlZW1zIHRvIG1lIHRoYXQgaGF2aW5nIGEgc2luZ2xl IGtpbmQgb2YgY29udHJvbCBmb3IgcGFzc2luZyB0aGUKPj4gcmVxdWVzdGVkIFFQIHZhbHVlIGZv ciBib3RoIFZQOCBhbmQgVlA5IG1ha2VzIHNlbnNlLiBJbiBmYWN0LCBwZXJoYXBzIG5vdAo+PiBy ZXN0cmljdGluZyBvdXJzZWx2ZXMgdG8gVlBYIHdvdWxkIG1ha2UgZXZlbiBtb3JlIHNlbnNlPwo+ Pgo+PiBUaGlzIHRvdWNoZXMgdGhlIHF1ZXN0aW9uIG9mIGhvdyB3ZSBkbyByYXRlIGNvbnRyb2wg aW4gZ2VuZXJhbCBpbiBzdGF0ZWxlc3MKPj4gZW5jb2RlcnMuIElmIHRoZSB1QVBJIGlzIHRvIGJl IGluZGVwZW5kZW50IG9mIHVuZGVybHlpbmcgaGFyZHdhcmUsIHRoZW4gdGhlIG9ubHkKPj4gcGFy YW1ldGVyIHVzZXJzcGFjZSBwYXNzZXMgdG8gdGhlIGtlcm5lbCBpcyB0aGUgcmVxdWlyZWQgUVAg KHdoaWNoIGlzIGRldGVybWluZWQKPj4gZW50aXJlbHkgYnkgdXNlcnNwYWNlIHVzaW5nIHdoYXRl dmVyIG1lYW5zIGl0IGNvbnNpZGVycyBhcHByb3ByaWF0ZSwgZm9yIGV4YW1wbGUKPj4ganVkZ2lu ZyBieSB0aGUgbGFzdCBlbmNvZGVkIGZyYW1lKHMpIHNpemUocykpLiBBbnkgb3RoZXIga2luZHMg b2YgZGF0YSB3b3VsZAo+PiBwcm9iYWJseSBiZSBzb21laG93IGhhcmR3YXJlLXNwZWNpZmljLiBT bywgSSdtIHdvbmRlcmluZyBpZiBtYXliZSBldmVuIGEKPj4KPj4gVjRMMl9DSURfU1RBVEVMRVNT X0VOQ09ERV9RUAo+Pgo+PiBpcyB3aGF0IHdlIHdhbnQ/Cj4gCj4gV2UgYWxyZWFkeSBoYXZlIFY0 TDJfQ0lEX01QRUdfVklERU9fQ09OU1RBTlRfUVVBTElUWSB3aGljaCBpcyBib3VuZCB0bwo+IFY0 TDJfTVBFR19WSURFT19CSVRSQVRFX01PREVfQ1EsCgpOaWNlIGNhdGNoLiBCb3RoIGFyZSB1c2Vk IG9ubHkgYnkgVmVudXMuIFdlIGNvdWxkIHJldXNlIGl0LiBCdXQgdGhlbiB0aGVyZSdzCnRoZSBh bGxvd2VkIHJhbmdlIC0gd2hpY2ggeW91IGRvIGRpc2N1c3MgYmVsb3cuCgoKd2hpY2ggc2VlbXMg d2hhdCB3ZSBzaG91bGQgZXhwZWN0IGZvcm0gYQo+IHN0YXRlbGVzcyBlbmNvZGVyLiBJbiBmYWN0 LCBhZGRpbmcgdGhlIGVudGlyZSBCSVRSQVRFX01PREUgd291bGQgZW5hYmxlIGxhdGVyCj4gZW5j b2RlciB0aGF0IGhhcyBmaXJtd2FyZSBkcml2ZW4gcmF0ZSBjb250cm9sIHRvIGJlIGFibGUgdG8g YWRkIGl0IGVhc2lseQo+IChzaW1pbGFyIHRvIHdoYXQgd2UgaGF2ZSBpbiBHUFVzKS4KPiAKPiBX ZSBkb24ndCBuZWVkIHBlciBmcmFtZSB0eXBlIFFQLCBhcyBzdGF0ZWxlc3MgZW5jb2RlciBoYXZl IHJlcXVlc3RzLCBzbyB3ZSBjYW4KPiBzZXQgdGhlIFFQIGZvciBlYWNoIGZyYW1lIHNlcGFyYXRl bHkgYW55d2F5Lgo+IAo+Pgo+PiBUaGlzLCBpbiB0dXJuLCBicmluZ3MgYW5vdGhlciBxdWVzdGlv biBvZiB0aGUgcmFuZ2UgYW5kIGludGVycHJldGF0aW9uIG9mIHZhbHVlcwo+PiB0aGF0IHNob3Vs ZCBiZSBwYXNzZWQgdGhyb3VnaCB0aGlzIGNvbnRyb2wuIDAtMjU1PyAwLTEwMD8gMCA9IG5vIHF1 YW50aXphdGlvbiBhdAo+PiBhbGwgKGkuZS4gaGlnaGVzdCBxdWFsaXR5KSBvciBtYXliZSAwID0g bG93ZXN0IHBvc3NpYmxlIHF1YWxpdHk/Cj4gCj4gSXQgc2VlbXMgVjRMMl9DSURfTVBFR19WSURF T19DT05TVEFOVF9RVUFMSVRZIGhhcyBkZWNpZGVkIHRvIGdvIDAtMTAwIHJlZ2FyZGxlc3MKPiBv ZiB0aGUgQ09ERUMuIFRoZSBBUEkgaXMgbm90IHZlcnkgaW5jb25zaXN0ZW50LCBsaWtlIFZQWF9J Tl9RUCBkb2VzIG5vdCBldmVuCj4gZG9jdW1lbnQgYSByYW5nZSwgYW5kIHNheXMgaXRzIGZvciBW UDggb25seS4gUGVyaGFwcyB3ZSBjb3VsZCBvcGVuIGl0IHVwLCBhbmQKPiBhbGxvdyBwZXIgY29k ZWMgcmFuZ2Ugc28gd2UgY2FuIG1hdGNoIDE6MSB3aXRoIHRoZSBDT0RFQyBzcGVjcyA/IFdlIGNv dWxkIG9ubHkKPiBhbGxvdyB0aGF0IGZvciBzdGF0ZWxlc3MgaWYgd2UgYmVsZWl2ZSBhYnN0cmFj dGluZyBpdCB0byAwLTEwMCBtYWtlIGlzIGJldHRlciBpbgo+IGdlbmVyYWwuIEp1c3QgdGhhdCBp biBzdGF0ZWxlc3MsIHdlIGV4cGVjdCB0aGF0IG51bWJlciB0byBiZSB3cml0dGVuIGluIHRoZQo+ IGJpdHN0cmVhbSB2ZXJiYXRpbS4KPiAKCkRvIHlvdSBtZWFuIHRvIHJlbGF4IHRoZSAwLTEwMCBy YW5nZSBvZiBWNEwyX0NJRF9NUEVHX1ZJREVPX0NPTlNUQU5UX1FVQUxJVFkKYW5kIHRoZW4gdXNl IHRoaXMgY29udHJvbCBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBvbmUgZm9yIHN0YXRlbGVzcyBj b2RlY3MsCm9yIHRvIHNwZWNpZmljYWxseSBhZGQgYSBuZXcgb25lLCBtb2RlbGVkIGFmdGVyClY0 TDJfQ0lEX01QRUdfVklERU9fQ09OU1RBTlRfUVVBTElUWT8KClJlZ2FyZHMsCgpBbmRyemVqCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==