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 D4C7DC4332F for ; Wed, 8 Nov 2023 02:20:56 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=d8Xh/ApUdo2NMe15vBNUTa2A70D7jn5GrvYH7kLgsIM=; b=tsMXyayBgLxRNV 5pwvrkAn87Q1AFAka2mTY7hi7b3ISnUftRPsxNnqUrRUs3M0JfgT5xwDSESxuDMY1lMJomsXH2wr1 PFwjK91BLwY251RUCDSVV1OdmlMyD9MTuAf4m2keZBjmsuiQ7qH4aLz1caVLkA1p0LywkbDh0qPld wOokl7gtBxe/GudoqJplqFbN+l8NE/+aKoThrhIX6qBzAKKf91Y18CNreGa7zUa+SwCNS5DGk7Dj8 32DLMzk58Mjm9T+ClPj7lNcox26Xx5hzTiPV6U3wVHlZMjYjWTg4s1igBIT7wOWtblP+/UHnqWRhJ fwuoK/qtOLVXxP4MEV9A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r0YBH-002o3B-1t; Wed, 08 Nov 2023 02:20:35 +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 1r0YBD-002o2Q-0r for linux-rockchip@lists.infradead.org; Wed, 08 Nov 2023 02:20:33 +0000 Received: from [100.84.166.245] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by madras.collabora.co.uk (Postfix) with ESMTPSA id CF89866074E1; Wed, 8 Nov 2023 02:20:27 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1699410029; bh=WH85Amg99tF0eV69bwx6cJ+htvNyxS1t7CApZufIQ0U=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=S8gRO9yZW8EkIY1hZ5B3ug0/yGipCRWYro1TMVvZpom5Qqi6w+GjoT+o8oPlq0hPl N/cVHoMYfiDIIaEt18SrZ0u6dUw2ra1GGO2Aglkco4vTRAM4WQWOljnusucLzkwFTt JksxQVAdd312jkY1O7hZIfG05+1D4YcwfR/oif3ZTm2t0VVwF4QlxmcS+P933fAEGr Q/O1AYfA7PR87DaqjvQqJuS1o21+XJJPus73ai7Q6cMwR5fkEhz4hShutfeL+6eqHK zNn4t2EU75W0TV1DBWQfFbZVGQ1oXg+WXANObJBtXaeVJVaxgPF07jyZ5bdt2YLhHb jGQHh7iYAGGLw== Message-ID: Subject: Re: [PATCH v4 11/11] media: rkvdec: h264: Support High 10 and 4:2:2 profiles From: Nicolas Dufresne To: Jonas Karlman , Ezequiel Garcia , Mauro Carvalho Chehab , Hans Verkuil , Greg Kroah-Hartman Cc: Alex Bee , Benjamin Gaignard , Sebastian Fricke , Christopher Obbard , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Date: Tue, 07 Nov 2023 21:20:18 -0500 In-Reply-To: <20231105165521.3592037-12-jonas@kwiboo.se> References: <20231105165521.3592037-1-jonas@kwiboo.se> <20231105165521.3592037-12-jonas@kwiboo.se> User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231107_182031_612543_FC03BDD5 X-CRM114-Status: GOOD ( 28.03 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org TGUgZGltYW5jaGUgMDUgbm92ZW1icmUgMjAyMyDDoCAxNjo1NSArMDAwMCwgSm9uYXMgS2FybG1h biBhIMOpY3JpdMKgOgo+IEFkZCBzdXBwb3J0IGFuZCBlbmFibGUgZGVjb2Rpbmcgb2YgSDI2NCBI aWdoIDEwIGFuZCA0OjI6MiBwcm9maWxlcy4KPiAKPiBEZWNvZGVkIENBUFRVUkUgYnVmZmVyIHdp ZHRoIGlzIGFsaWduZWQgdG8gNjQgcGl4ZWxzIHRvIGFjY29tbW9kYXRlIEhXCj4gcmVxdWlyZW1l bnQgb2YgMTAtYml0IGZvcm1hdCBidWZmZXJzLCBmaXhlcyBkZWNvZGluZyBvZjoKPiAKPiAtIEhp NDIyRlIxM19TT05ZX0EKPiAtIEhpNDIyRlIxNF9TT05ZX0EKPiAtIEhpNDIyRlIxNV9TT05ZX0EK PiAtIEhpNDIyRlI2X1NPTllfQQo+IC0gSGk0MjJGUjdfU09OWV9BCj4gLSBIaTQyMkZSOF9TT05Z X0EKPiAtIEhpNDIyRlI5X1NPTllfQQo+IC0gSGk0MjJGUkVYVDE4X1NPTllfQQo+IAo+IFRoZSBn ZXRfaW1hZ2VfZm10KCkgb3BzIGlzIGltcGxlbWVudGVkIHRvIHNlbGVjdCBhbiBpbWFnZSBmb3Jt YXQKPiByZXF1aXJlZCBmb3IgdGhlIHByb3ZpZGVkIFNQUyBjb250cm9sLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IEpvbmFzIEthcmxtYW4gPGpvbmFzQGt3aWJvby5zZT4KPiAtLS0KPiB2NDoKPiAtIENo YW5nZSB0byB1c2UgZ2V0X2ltYWdlX2ZtdCgpIG9wcwo+IAo+IHYzOgo+IC0gQWRkIGdldF9mbXRf b3BhcXVlIG9wcywgdGhlIGV4cGVjdGVkIHBpeGVsZm9ybWF0IGlzIHVzZWQgYXMgb3BhcXVlCj4g LSBBZGQgbmV3IHZhbGlkX2ZtdCBvcHMgdGhhdCB2YWxpZGF0ZSBwaXhlbGZvcm1hdCBtYXRjaGVz IG9wYXF1ZQo+IC0gVXBkYXRlIEgyNjRfUFJPRklMRSBjb250cm9sIG1heCB2YWx1ZQo+IAo+ICBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy1oMjY0LmMgfCAzNyArKysrKysrKysr KysrKysrLS0tLS0tCj4gIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmMgICAg ICB8IDMzICsrKysrKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRl Yy9ya3ZkZWMuaCAgICAgIHwgIDMgKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21l ZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9y a3ZkZWMtaDI2NC5jCj4gaW5kZXggODE1ZDUzNTlkZGQ1Li5iYWFjNmQwMTJkZGQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jCj4gKysrIGIv ZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jCj4gQEAgLTEwMjcsMjQg KzEwMjcsNDIgQEAgc3RhdGljIGludCBya3ZkZWNfaDI2NF9hZGp1c3RfZm10KHN0cnVjdCBya3Zk ZWNfY3R4ICpjdHgsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGVudW0gcmt2ZGVj X2ltYWdlX2ZtdCBya3ZkZWNfaDI2NF9nZXRfaW1hZ2VfZm10KHN0cnVjdCBya3ZkZWNfY3R4ICpj dHgsCj4gKwkJCQkJCSAgICAgICBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsKQo+ICt7Cj4gKwljb25z dCBzdHJ1Y3QgdjRsMl9jdHJsX2gyNjRfc3BzICpzcHMgPSBjdHJsLT5wX25ldy5wX2gyNjRfc3Bz Owo+ICsKPiArCWlmIChjdHJsLT5pZCAhPSBWNEwyX0NJRF9TVEFURUxFU1NfSDI2NF9TUFMpCj4g KwkJcmV0dXJuIFJLVkRFQ19JTUdfRk1UX0FOWTsKPiArCj4gKwlpZiAoc3BzLT5iaXRfZGVwdGhf bHVtYV9taW51czggPT0gMCkgewo+ICsJCWlmIChzcHMtPmNocm9tYV9mb3JtYXRfaWRjID09IDIp Cj4gKwkJCXJldHVybiBSS1ZERUNfSU1HX0ZNVF80MjJfOEJJVDsKPiArCQllbHNlCj4gKwkJCXJl dHVybiBSS1ZERUNfSU1HX0ZNVF80MjBfOEJJVDsKPiArCX0gZWxzZSBpZiAoc3BzLT5iaXRfZGVw dGhfbHVtYV9taW51czggPT0gMikgewo+ICsJCWlmIChzcHMtPmNocm9tYV9mb3JtYXRfaWRjID09 IDIpCj4gKwkJCXJldHVybiBSS1ZERUNfSU1HX0ZNVF80MjJfMTBCSVQ7Cj4gKwkJZWxzZQo+ICsJ CQlyZXR1cm4gUktWREVDX0lNR19GTVRfNDIwXzEwQklUOwo+ICsJfQo+ICsKPiArCXJldHVybiBS S1ZERUNfSU1HX0ZNVF9BTlk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgcmt2ZGVjX2gyNjRfdmFs aWRhdGVfc3BzKHN0cnVjdCBya3ZkZWNfY3R4ICpjdHgsCj4gIAkJCQkgICAgY29uc3Qgc3RydWN0 IHY0bDJfY3RybF9oMjY0X3NwcyAqc3BzKQo+ICB7Cj4gIAl1bnNpZ25lZCBpbnQgd2lkdGgsIGhl aWdodDsKPiAgCj4gLQkvKgo+IC0JICogVE9ETzogVGhlIGhhcmR3YXJlIHN1cHBvcnRzIDEwLWJp dCBhbmQgNDoyOjIgcHJvZmlsZXMsCj4gLQkgKiBidXQgaXQncyBjdXJyZW50bHkgYnJva2VuIGlu IHRoZSBkcml2ZXIuCj4gLQkgKiBSZWplY3QgdGhlbSBmb3Igbm93LCB1bnRpbCBpdCdzIGZpeGVk Lgo+IC0JICovCj4gLQlpZiAoc3BzLT5jaHJvbWFfZm9ybWF0X2lkYyA+IDEpCj4gLQkJLyogT25s eSA0OjA6MCBhbmQgNDoyOjAgYXJlIHN1cHBvcnRlZCAqLwo+ICsJaWYgKHNwcy0+Y2hyb21hX2Zv cm1hdF9pZGMgPiAyKQo+ICsJCS8qIE9ubHkgNDowOjAsIDQ6MjowIGFuZCA0OjI6MiBhcmUgc3Vw cG9ydGVkICovCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAlpZiAoc3BzLT5iaXRfZGVwdGhfbHVt YV9taW51czggIT0gc3BzLT5iaXRfZGVwdGhfY2hyb21hX21pbnVzOCkKPiAgCQkvKiBMdW1hIGFu ZCBjaHJvbWEgYml0IGRlcHRoIG1pc21hdGNoICovCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gLQlp ZiAoc3BzLT5iaXRfZGVwdGhfbHVtYV9taW51czggIT0gMCkKPiAtCQkvKiBPbmx5IDgtYml0IGlz IHN1cHBvcnRlZCAqLwo+ICsJaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ICE9IDAgJiYg c3BzLT5iaXRfZGVwdGhfbHVtYV9taW51czggIT0gMikKPiArCQkvKiBPbmx5IDgtYml0IGFuZCAx MC1iaXQgaXMgc3VwcG9ydGVkICovCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJd2lkdGgg PSAoc3BzLT5waWNfd2lkdGhfaW5fbWJzX21pbnVzMSArIDEpICogMTY7Cj4gQEAgLTExNzUsNCAr MTE5Myw1IEBAIGNvbnN0IHN0cnVjdCBya3ZkZWNfY29kZWRfZm10X29wcyBya3ZkZWNfaDI2NF9m bXRfb3BzID0gewo+ICAJLnN0b3AgPSBya3ZkZWNfaDI2NF9zdG9wLAo+ICAJLnJ1biA9IHJrdmRl Y19oMjY0X3J1biwKPiAgCS50cnlfY3RybCA9IHJrdmRlY19oMjY0X3RyeV9jdHJsLAo+ICsJLmdl dF9pbWFnZV9mbXQgPSBya3ZkZWNfaDI2NF9nZXRfaW1hZ2VfZm10LAo+ICB9Owo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy5jIGIvZHJpdmVycy9zdGFn aW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMuYwo+IGluZGV4IDIyNWFhMWYwYWM0OC4uZWI1OTYwNWNj ZjI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmMK PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy5jCj4gQEAgLTczLDcg KzczLDcgQEAgc3RhdGljIHZvaWQgcmt2ZGVjX2ZpbGxfZGVjb2RlZF9waXhmbXQoc3RydWN0IHJr dmRlY19jdHggKmN0eCwKPiAgCQkJCSAgICAgICBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFu ZSAqcGl4X21wKQo+ICB7Cj4gIAl2NGwyX2ZpbGxfcGl4Zm10X21wKHBpeF9tcCwgcGl4X21wLT5w aXhlbGZvcm1hdCwKPiAtCQkJICAgIHBpeF9tcC0+d2lkdGgsIHBpeF9tcC0+aGVpZ2h0KTsKPiAr CQkJICAgIEFMSUdOKHBpeF9tcC0+d2lkdGgsIDY0KSwgcGl4X21wLT5oZWlnaHQpOwoKSWYgeW91 IGFsaWduIHJlZ2FyZGxlc3MgaWYgaXRzIDgvMTBiaXQgKHdoaWNoIEkgZG9uJ3QgcmVhbGx5IG1p bmQsIGl0CmRvZXMgbm90IGNvc3QgbXVjaCBhbmQgaGVscHMgaWYgeW91IGhhdmUgYSBNYWxpIEdQ VSksIHBsZWFzZSBkbyBpbiAKcmt2ZGVjX2NvZGVkX2ZtdHNbXS5mcm1zaXplLnN0ZXBfd2lkdGgu CgpPdGhlcndpc2UgeW91J2xsIGVuZHVwIGNyZWF0aW5nIGEgY29uZmlnIHBlciBiaXQgZGVwdGgs IGFuZCBwcm9iYWJseQp3b24ndCBuZWVkIGFueSBvZiB0aGUgcmsgZm9ybWF0IHN0dWZmLCBzaW5j ZSB5b3UgY291bGQganVzdCB1cGRhdGUgdGhlCmNvbmZpZywgYW5kIGVudW1lcmF0ZSBmcm9tIHRo ZXJlLiBJIGRvbid0IG1pbmQgeW91ciBtZXRob2QgdGhvdWdoLCBidXQKbGV0cyBub3QgaGFyZGNv ZGUgYWxpZ25tZW50IHdoZXJlIGl0IHNob3VsZG4ndCBiZS4KCj4gIAlwaXhfbXAtPnBsYW5lX2Zt dFswXS5zaXplaW1hZ2UgKz0gMTI4ICoKPiAgCQlESVZfUk9VTkRfVVAocGl4X21wLT53aWR0aCwg MTYpICoKPiAgCQlESVZfUk9VTkRfVVAocGl4X21wLT5oZWlnaHQsIDE2KTsKPiBAQCAtMTkzLDcg KzE5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2ZGVjX2N0cmxfZGVzYyBya3ZkZWNfaDI2 NF9jdHJsX2Rlc2NzW10gPSB7Cj4gIAl7Cj4gIAkJLmNmZy5pZCA9IFY0TDJfQ0lEX01QRUdfVklE RU9fSDI2NF9QUk9GSUxFLAo+ICAJCS5jZmcubWluID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJP RklMRV9CQVNFTElORSwKCkRvIHdlIHdhbnQgdG8ga2VlcCB0aGlzIHNtYWxsIGxpZSA/IEJhc2Vs aW5lIGlzIG5vdCBzdXBwb3J0ZWQgYXMgd2UKZG9uJ3Qgc3VwcG9ydCBGTU8gYW5kIEFTTy4gVGhh dCBiZWluZyBzYWlkLCBpbiBmcmFtZXdvcmsgbGlrZQpHU3RyZWFtZXIsIHdlIHRyeSB0byBkZWNv ZGUgYW55d2F5LCBjYXVzZSB3ZSBrbm93IHdlIGRvbid0IGhhdmUgYQpzb2Z0d2FyZSBmYWxsYmFj ayBhbnl3YXkuCgo+IC0JCS5jZmcubWF4ID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9I SUdILAo+ICsJCS5jZmcubWF4ID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9ISUdIXzQy MiwKClNob3VsZCBpbmNsdWRlIFY0TDJfTVBFR19WSURFT19IMjY0X1BST0ZJTEVfSElHSF8xMF9J TlRSQSBhbmQKVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9ISUdIXzQyMl9JTlRSQSB0b28g Li4uLgoKPiAgCQkuY2ZnLm1lbnVfc2tpcF9tYXNrID0KPiAgCQkJQklUKFY0TDJfTVBFR19WSURF T19IMjY0X1BST0ZJTEVfRVhURU5ERUQpLAoKV2hpY2ggcmVxdWlyZXMgc3Vic3RyYWN0aW5nClY0 TDJfTVBFR19WSURFT19IMjY0X1BST0ZJTEVfSElHSF80NDRfUFJFRElDVElWRSB0b28uCgo+ICAJ CS5jZmcuZGVmID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9NQUlOLAo+IEBAIC0yMTAs MTEgKzIxMCwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJrdmRlY19jdHJscyBya3ZkZWNfaDI2 NF9jdHJscyA9IHsKPiAgCS5udW1fY3RybHMgPSBBUlJBWV9TSVpFKHJrdmRlY19oMjY0X2N0cmxf ZGVzY3MpLAo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBya3ZkZWNfZGVjb2RlZF9m bXRfZGVzYyBya3ZkZWNfaDI2NF92cDlfZGVjb2RlZF9mbXRzW10gPSB7Cj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgcmt2ZGVjX2RlY29kZWRfZm10X2Rlc2Mgcmt2ZGVjX2gyNjRfZGVjb2RlZF9mbXRz W10gPSB7Cj4gIAl7Cj4gIAkJLmZvdXJjYyA9IFY0TDJfUElYX0ZNVF9OVjEyLAo+ICAJCS5pbWFn ZV9mbXQgPSBSS1ZERUNfSU1HX0ZNVF80MjBfOEJJVCwKPiAgCX0sCj4gKwl7Cj4gKwkJLmZvdXJj YyA9IFY0TDJfUElYX0ZNVF9OVjE1LAo+ICsJCS5pbWFnZV9mbXQgPSBSS1ZERUNfSU1HX0ZNVF80 MjBfMTBCSVQsCj4gKwl9LAo+ICsJewo+ICsJCS5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYxNiwK PiArCQkuaW1hZ2VfZm10ID0gUktWREVDX0lNR19GTVRfNDIyXzhCSVQsCj4gKwl9LAo+ICsJewo+ ICsJCS5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYyMCwKPiArCQkuaW1hZ2VfZm10ID0gUktWREVD X0lNR19GTVRfNDIyXzEwQklULAo+ICsJfSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgcmt2ZGVjX2N0cmxfZGVzYyBya3ZkZWNfdnA5X2N0cmxfZGVzY3NbXSA9IHsKPiBAQCAtMjM3 LDYgKzI0OSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJrdmRlY19jdHJscyBya3ZkZWNfdnA5 X2N0cmxzID0gewo+ICAJLm51bV9jdHJscyA9IEFSUkFZX1NJWkUocmt2ZGVjX3ZwOV9jdHJsX2Rl c2NzKSwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2ZGVjX2RlY29kZWRfZm10 X2Rlc2Mgcmt2ZGVjX3ZwOV9kZWNvZGVkX2ZtdHNbXSA9IHsKPiArCXsKPiArCQkuZm91cmNjID0g VjRMMl9QSVhfRk1UX05WMTIsCj4gKwkJLmltYWdlX2ZtdCA9IFJLVkRFQ19JTUdfRk1UXzQyMF84 QklULAo+ICsJfSwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2ZGVjX2NvZGVk X2ZtdF9kZXNjIHJrdmRlY19jb2RlZF9mbXRzW10gPSB7Cj4gIAl7Cj4gIAkJLmZvdXJjYyA9IFY0 TDJfUElYX0ZNVF9IMjY0X1NMSUNFLAo+IEBAIC0yNTAsOCArMjY5LDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBya3ZkZWNfY29kZWRfZm10X2Rlc2Mgcmt2ZGVjX2NvZGVkX2ZtdHNbXSA9IHsKPiAg CQl9LAo+ICAJCS5jdHJscyA9ICZya3ZkZWNfaDI2NF9jdHJscywKPiAgCQkub3BzID0gJnJrdmRl Y19oMjY0X2ZtdF9vcHMsCj4gLQkJLm51bV9kZWNvZGVkX2ZtdHMgPSBBUlJBWV9TSVpFKHJrdmRl Y19oMjY0X3ZwOV9kZWNvZGVkX2ZtdHMpLAo+IC0JCS5kZWNvZGVkX2ZtdHMgPSBya3ZkZWNfaDI2 NF92cDlfZGVjb2RlZF9mbXRzLAo+ICsJCS5udW1fZGVjb2RlZF9mbXRzID0gQVJSQVlfU0laRShy a3ZkZWNfaDI2NF9kZWNvZGVkX2ZtdHMpLAo+ICsJCS5kZWNvZGVkX2ZtdHMgPSBya3ZkZWNfaDI2 NF9kZWNvZGVkX2ZtdHMsCj4gIAkJLnN1YnN5c3RlbV9mbGFncyA9IFZCMl9WNEwyX0ZMX1NVUFBP UlRTX00yTV9IT0xEX0NBUFRVUkVfQlVGLAo+ICAJfSwKPiAgCXsKPiBAQCAtMjY2LDggKzI4NSw4 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2ZGVjX2NvZGVkX2ZtdF9kZXNjIHJrdmRlY19jb2Rl ZF9mbXRzW10gPSB7Cj4gIAkJfSwKPiAgCQkuY3RybHMgPSAmcmt2ZGVjX3ZwOV9jdHJscywKPiAg CQkub3BzID0gJnJrdmRlY192cDlfZm10X29wcywKPiAtCQkubnVtX2RlY29kZWRfZm10cyA9IEFS UkFZX1NJWkUocmt2ZGVjX2gyNjRfdnA5X2RlY29kZWRfZm10cyksCj4gLQkJLmRlY29kZWRfZm10 cyA9IHJrdmRlY19oMjY0X3ZwOV9kZWNvZGVkX2ZtdHMsCj4gKwkJLm51bV9kZWNvZGVkX2ZtdHMg PSBBUlJBWV9TSVpFKHJrdmRlY192cDlfZGVjb2RlZF9mbXRzKSwKPiArCQkuZGVjb2RlZF9mbXRz ID0gcmt2ZGVjX3ZwOV9kZWNvZGVkX2ZtdHMsCj4gIAl9Cj4gIH07Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy5oIGIvZHJpdmVycy9zdGFnaW5n L21lZGlhL3JrdmRlYy9ya3ZkZWMuaAo+IGluZGV4IGU0NjZhMjc1M2NjZi4uOWE5ZjRmY2VkN2Ex IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmgKPiAr KysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy5oCj4gQEAgLTgwLDYgKzgw LDkgQEAgc3RydWN0IHJrdmRlY19jb2RlZF9mbXRfb3BzIHsKPiAgZW51bSBya3ZkZWNfaW1hZ2Vf Zm10IHsKPiAgCVJLVkRFQ19JTUdfRk1UX0FOWSA9IDAsCj4gIAlSS1ZERUNfSU1HX0ZNVF80MjBf OEJJVCwKPiArCVJLVkRFQ19JTUdfRk1UXzQyMF8xMEJJVCwKPiArCVJLVkRFQ19JTUdfRk1UXzQy Ml84QklULAo+ICsJUktWREVDX0lNR19GTVRfNDIyXzEwQklULAo+ICB9Owo+ICAKPiAgc3RydWN0 IHJrdmRlY19kZWNvZGVkX2ZtdF9kZXNjIHsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9j a2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90F607FD for ; Wed, 8 Nov 2023 02:20:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="S8gRO9yZ" Received: from [100.84.166.245] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by madras.collabora.co.uk (Postfix) with ESMTPSA id CF89866074E1; Wed, 8 Nov 2023 02:20:27 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1699410029; bh=WH85Amg99tF0eV69bwx6cJ+htvNyxS1t7CApZufIQ0U=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=S8gRO9yZW8EkIY1hZ5B3ug0/yGipCRWYro1TMVvZpom5Qqi6w+GjoT+o8oPlq0hPl N/cVHoMYfiDIIaEt18SrZ0u6dUw2ra1GGO2Aglkco4vTRAM4WQWOljnusucLzkwFTt JksxQVAdd312jkY1O7hZIfG05+1D4YcwfR/oif3ZTm2t0VVwF4QlxmcS+P933fAEGr Q/O1AYfA7PR87DaqjvQqJuS1o21+XJJPus73ai7Q6cMwR5fkEhz4hShutfeL+6eqHK zNn4t2EU75W0TV1DBWQfFbZVGQ1oXg+WXANObJBtXaeVJVaxgPF07jyZ5bdt2YLhHb jGQHh7iYAGGLw== Message-ID: Subject: Re: [PATCH v4 11/11] media: rkvdec: h264: Support High 10 and 4:2:2 profiles From: Nicolas Dufresne To: Jonas Karlman , Ezequiel Garcia , Mauro Carvalho Chehab , Hans Verkuil , Greg Kroah-Hartman Cc: Alex Bee , Benjamin Gaignard , Sebastian Fricke , Christopher Obbard , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Date: Tue, 07 Nov 2023 21:20:18 -0500 In-Reply-To: <20231105165521.3592037-12-jonas@kwiboo.se> References: <20231105165521.3592037-1-jonas@kwiboo.se> <20231105165521.3592037-12-jonas@kwiboo.se> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Le dimanche 05 novembre 2023 =C3=A0 16:55 +0000, Jonas Karlman a =C3=A9crit= =C2=A0: > Add support and enable decoding of H264 High 10 and 4:2:2 profiles. >=20 > Decoded CAPTURE buffer width is aligned to 64 pixels to accommodate HW > requirement of 10-bit format buffers, fixes decoding of: >=20 > - Hi422FR13_SONY_A > - Hi422FR14_SONY_A > - Hi422FR15_SONY_A > - Hi422FR6_SONY_A > - Hi422FR7_SONY_A > - Hi422FR8_SONY_A > - Hi422FR9_SONY_A > - Hi422FREXT18_SONY_A >=20 > The get_image_fmt() ops is implemented to select an image format > required for the provided SPS control. >=20 > Signed-off-by: Jonas Karlman > --- > v4: > - Change to use get_image_fmt() ops >=20 > v3: > - Add get_fmt_opaque ops, the expected pixelformat is used as opaque > - Add new valid_fmt ops that validate pixelformat matches opaque > - Update H264_PROFILE control max value >=20 > drivers/staging/media/rkvdec/rkvdec-h264.c | 37 ++++++++++++++++------ > drivers/staging/media/rkvdec/rkvdec.c | 33 +++++++++++++++---- > drivers/staging/media/rkvdec/rkvdec.h | 3 ++ > 3 files changed, 57 insertions(+), 16 deletions(-) >=20 > diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging= /media/rkvdec/rkvdec-h264.c > index 815d5359ddd5..baac6d012ddd 100644 > --- a/drivers/staging/media/rkvdec/rkvdec-h264.c > +++ b/drivers/staging/media/rkvdec/rkvdec-h264.c > @@ -1027,24 +1027,42 @@ static int rkvdec_h264_adjust_fmt(struct rkvdec_c= tx *ctx, > return 0; > } > =20 > +static enum rkvdec_image_fmt rkvdec_h264_get_image_fmt(struct rkvdec_ctx= *ctx, > + struct v4l2_ctrl *ctrl) > +{ > + const struct v4l2_ctrl_h264_sps *sps =3D ctrl->p_new.p_h264_sps; > + > + if (ctrl->id !=3D V4L2_CID_STATELESS_H264_SPS) > + return RKVDEC_IMG_FMT_ANY; > + > + if (sps->bit_depth_luma_minus8 =3D=3D 0) { > + if (sps->chroma_format_idc =3D=3D 2) > + return RKVDEC_IMG_FMT_422_8BIT; > + else > + return RKVDEC_IMG_FMT_420_8BIT; > + } else if (sps->bit_depth_luma_minus8 =3D=3D 2) { > + if (sps->chroma_format_idc =3D=3D 2) > + return RKVDEC_IMG_FMT_422_10BIT; > + else > + return RKVDEC_IMG_FMT_420_10BIT; > + } > + > + return RKVDEC_IMG_FMT_ANY; > +} > + > static int rkvdec_h264_validate_sps(struct rkvdec_ctx *ctx, > const struct v4l2_ctrl_h264_sps *sps) > { > unsigned int width, height; > =20 > - /* > - * TODO: The hardware supports 10-bit and 4:2:2 profiles, > - * but it's currently broken in the driver. > - * Reject them for now, until it's fixed. > - */ > - if (sps->chroma_format_idc > 1) > - /* Only 4:0:0 and 4:2:0 are supported */ > + if (sps->chroma_format_idc > 2) > + /* Only 4:0:0, 4:2:0 and 4:2:2 are supported */ > return -EINVAL; > if (sps->bit_depth_luma_minus8 !=3D sps->bit_depth_chroma_minus8) > /* Luma and chroma bit depth mismatch */ > return -EINVAL; > - if (sps->bit_depth_luma_minus8 !=3D 0) > - /* Only 8-bit is supported */ > + if (sps->bit_depth_luma_minus8 !=3D 0 && sps->bit_depth_luma_minus8 != =3D 2) > + /* Only 8-bit and 10-bit is supported */ > return -EINVAL; > =20 > width =3D (sps->pic_width_in_mbs_minus1 + 1) * 16; > @@ -1175,4 +1193,5 @@ const struct rkvdec_coded_fmt_ops rkvdec_h264_fmt_o= ps =3D { > .stop =3D rkvdec_h264_stop, > .run =3D rkvdec_h264_run, > .try_ctrl =3D rkvdec_h264_try_ctrl, > + .get_image_fmt =3D rkvdec_h264_get_image_fmt, > }; > diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/medi= a/rkvdec/rkvdec.c > index 225aa1f0ac48..eb59605ccf28 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.c > +++ b/drivers/staging/media/rkvdec/rkvdec.c > @@ -73,7 +73,7 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ct= x *ctx, > struct v4l2_pix_format_mplane *pix_mp) > { > v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat, > - pix_mp->width, pix_mp->height); > + ALIGN(pix_mp->width, 64), pix_mp->height); If you align regardless if its 8/10bit (which I don't really mind, it does not cost much and helps if you have a Mali GPU), please do in=20 rkvdec_coded_fmts[].frmsize.step_width. Otherwise you'll endup creating a config per bit depth, and probably won't need any of the rk format stuff, since you could just update the config, and enumerate from there. I don't mind your method though, but lets not hardcode alignment where it shouldn't be. > pix_mp->plane_fmt[0].sizeimage +=3D 128 * > DIV_ROUND_UP(pix_mp->width, 16) * > DIV_ROUND_UP(pix_mp->height, 16); > @@ -193,7 +193,7 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl= _descs[] =3D { > { > .cfg.id =3D V4L2_CID_MPEG_VIDEO_H264_PROFILE, > .cfg.min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, Do we want to keep this small lie ? Baseline is not supported as we don't support FMO and ASO. That being said, in framework like GStreamer, we try to decode anyway, cause we know we don't have a software fallback anyway. > - .cfg.max =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, > + .cfg.max =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422, Should include V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA and V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA too .... > .cfg.menu_skip_mask =3D > BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED), Which requires substracting V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE too. > .cfg.def =3D V4L2_MPEG_VIDEO_H264_PROFILE_MAIN, > @@ -210,11 +210,23 @@ static const struct rkvdec_ctrls rkvdec_h264_ctrls = =3D { > .num_ctrls =3D ARRAY_SIZE(rkvdec_h264_ctrl_descs), > }; > =20 > -static const struct rkvdec_decoded_fmt_desc rkvdec_h264_vp9_decoded_fmts= [] =3D { > +static const struct rkvdec_decoded_fmt_desc rkvdec_h264_decoded_fmts[] = =3D { > { > .fourcc =3D V4L2_PIX_FMT_NV12, > .image_fmt =3D RKVDEC_IMG_FMT_420_8BIT, > }, > + { > + .fourcc =3D V4L2_PIX_FMT_NV15, > + .image_fmt =3D RKVDEC_IMG_FMT_420_10BIT, > + }, > + { > + .fourcc =3D V4L2_PIX_FMT_NV16, > + .image_fmt =3D RKVDEC_IMG_FMT_422_8BIT, > + }, > + { > + .fourcc =3D V4L2_PIX_FMT_NV20, > + .image_fmt =3D RKVDEC_IMG_FMT_422_10BIT, > + }, > }; > =20 > static const struct rkvdec_ctrl_desc rkvdec_vp9_ctrl_descs[] =3D { > @@ -237,6 +249,13 @@ static const struct rkvdec_ctrls rkvdec_vp9_ctrls = =3D { > .num_ctrls =3D ARRAY_SIZE(rkvdec_vp9_ctrl_descs), > }; > =20 > +static const struct rkvdec_decoded_fmt_desc rkvdec_vp9_decoded_fmts[] = =3D { > + { > + .fourcc =3D V4L2_PIX_FMT_NV12, > + .image_fmt =3D RKVDEC_IMG_FMT_420_8BIT, > + }, > +}; > + > static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] =3D { > { > .fourcc =3D V4L2_PIX_FMT_H264_SLICE, > @@ -250,8 +269,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_code= d_fmts[] =3D { > }, > .ctrls =3D &rkvdec_h264_ctrls, > .ops =3D &rkvdec_h264_fmt_ops, > - .num_decoded_fmts =3D ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), > - .decoded_fmts =3D rkvdec_h264_vp9_decoded_fmts, > + .num_decoded_fmts =3D ARRAY_SIZE(rkvdec_h264_decoded_fmts), > + .decoded_fmts =3D rkvdec_h264_decoded_fmts, > .subsystem_flags =3D VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF, > }, > { > @@ -266,8 +285,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_code= d_fmts[] =3D { > }, > .ctrls =3D &rkvdec_vp9_ctrls, > .ops =3D &rkvdec_vp9_fmt_ops, > - .num_decoded_fmts =3D ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), > - .decoded_fmts =3D rkvdec_h264_vp9_decoded_fmts, > + .num_decoded_fmts =3D ARRAY_SIZE(rkvdec_vp9_decoded_fmts), > + .decoded_fmts =3D rkvdec_vp9_decoded_fmts, > } > }; > =20 > diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/medi= a/rkvdec/rkvdec.h > index e466a2753ccf..9a9f4fced7a1 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.h > +++ b/drivers/staging/media/rkvdec/rkvdec.h > @@ -80,6 +80,9 @@ struct rkvdec_coded_fmt_ops { > enum rkvdec_image_fmt { > RKVDEC_IMG_FMT_ANY =3D 0, > RKVDEC_IMG_FMT_420_8BIT, > + RKVDEC_IMG_FMT_420_10BIT, > + RKVDEC_IMG_FMT_422_8BIT, > + RKVDEC_IMG_FMT_422_10BIT, > }; > =20 > struct rkvdec_decoded_fmt_desc {