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 6E9DFD149CD for ; Fri, 25 Oct 2024 18:25:42 +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=SlHAcJ/Dl51q/xE387ZxmDaPyeJrRn+NB7K+5PaG42o=; b=seAUbjU4w0CZH1 7CpjpO51GsNM0flqDn0mAq/gRXtaaXMelNwc8BIwDPL7toxdq7GKA1lpV+syGezgo/1HZ5Xnv+3h3 GTCF/KfMzV3bxTWaLI4ZFHQh4W2rpYIxSG+pjxXJKkucAcMnlOq1pm4ShA7knW4ZhngcjfTzi7lhD 24z2wZKVIPGOcSoc3roxUnkEiHv+e9wdT8dEmX5e07TGg/ZimYfYUGKyrHKu4j7fxqNCXvSc8F7hO 10pXePYYKZezkfz6/G4M51DK9adjlKwyxeZ47LwqGVuvjfQRt/90W47eP03XpS17y6AYMKQIHD6aw dP2KAs3tH4yQQdWhR7QQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t4P0E-00000004nOv-0qbG; Fri, 25 Oct 2024 18:25:38 +0000 Received: from bali.collaboradmins.com ([148.251.105.195]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t4ONh-00000004fRq-06KD for linux-rockchip@lists.infradead.org; Fri, 25 Oct 2024 17:45:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729878347; bh=bNv4jIyQDliGcVawBrOSvkpb5zpdi3jBSjsJjCPEVEc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=fPjvJ3nynAedGwttLkqjAiCTDRn+hUKvfZQus61FeEwQ0GY2Y5FKcxwZavucLuRzx ztn6IijoH7PBYy771wY6qh4jCZNekkzLBiLIPGGILnx5DTa/LWJst3LCKEjeSlfZ1Y ESX5UeKFwCSKHZjW1UhUyq1mHd47dNsArvETkwUQNa4YjzEz6T7upKB3MKrF3mh8SW jDtkxMLiqIPQP3NG+hSOkhkCOfoTHXgxa6QqK6IIwrOyf+cUp31FcVe1ll86CazEdA N+SaFGcOoZksv5691roGUlw6kcRzcMeZ7iossAFHqywgGGfoGXA8bYXITqnGH7AtK5 tROwehnxYQdMw== Received: from nicolas-tpx395.lan (unknown [IPv6:2606:6d00:15:862e::7a9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: nicolas) by bali.collaboradmins.com (Postfix) with ESMTPSA id 9667F17E36B5; Fri, 25 Oct 2024 19:45:45 +0200 (CEST) Message-ID: <8e6f209cbc2c33e445b544d13b06374338910d78.camel@collabora.com> Subject: Re: [PATCH v6 10/11] media: rkvdec: h264: Support High 10 and 4:2:2 profiles From: Nicolas Dufresne To: Jonas Karlman , Sebastian Fricke , Ezequiel Garcia , Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Alex Bee , Benjamin Gaignard , Detlev Casanova , Dan Carpenter , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Christopher Obbard Date: Fri, 25 Oct 2024 13:45:44 -0400 In-Reply-To: <20240909192522.1076704-11-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-11-jonas@kwiboo.se> Organization: Collabora User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241025_104549_250406_AEE6259A X-CRM114-Status: GOOD ( 29.61 ) 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 TGUgbHVuZGkgMDkgc2VwdGVtYnJlIDIwMjQgw6AgMTk6MjUgKzAwMDAsIEpvbmFzIEthcmxtYW4g YSDDqWNyaXTCoDoKPiBBZGQgc3VwcG9ydCBhbmQgZW5hYmxlIGRlY29kaW5nIG9mIEgyNjQgSGln aCAxMCBhbmQgNDoyOjIgcHJvZmlsZXMuCj4gCj4gRGVjb2RlZCBDQVBUVVJFIGJ1ZmZlciB3aWR0 aCBpcyBhbGlnbmVkIHRvIDY0IHBpeGVscyB0byBhY2NvbW1vZGF0ZSBIVwo+IHJlcXVpcmVtZW50 IG9mIDEwLWJpdCBmb3JtYXQgYnVmZmVycywgZml4ZXMgZGVjb2Rpbmcgb2Y6Cj4gCj4gLSBIaTQy MkZSMTNfU09OWV9BCj4gLSBIaTQyMkZSMTRfU09OWV9BCj4gLSBIaTQyMkZSMTVfU09OWV9BCj4g LSBIaTQyMkZSNl9TT05ZX0EKPiAtIEhpNDIyRlI3X1NPTllfQQo+IC0gSGk0MjJGUjhfU09OWV9B Cj4gLSBIaTQyMkZSOV9TT05ZX0EKPiAtIEhpNDIyRlJFWFQxOF9TT05ZX0EKPiAKPiBUaGUgZ2V0 X2ltYWdlX2ZtdCgpIG9wcyBpcyBpbXBsZW1lbnRlZCB0byBzZWxlY3QgYW4gaW1hZ2UgZm9ybWF0 Cj4gcmVxdWlyZWQgZm9yIHRoZSBwcm92aWRlZCBTUFMgY29udHJvbC4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBKb25hcyBLYXJsbWFuIDxqb25hc0Brd2lib28uc2U+Cj4gVGVzdGVkLWJ5OiBOaWNvbGFz IER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+Cj4gVGVzdGVkLWJ5OiBD aHJpc3RvcGhlciBPYmJhcmQgPGNocmlzLm9iYmFyZEBjb2xsYWJvcmEuY29tPgo+IC0tLQo+IHY2 Ogo+IC0gTm8gY2hhbmdlCj4gCj4gdjU6Cj4gLSBNb3ZlIGJ1ZmZlciBhbGlnbiBmcm9tIHJrdmRl Y19maWxsX2RlY29kZWRfcGl4Zm10IHRvIG1pbi9zdGVwX3dpZHRoCj4gLSBVc2UgY29ycmVjdCBw cm9maWxlcyBmb3IgVjRMMl9DSURfTVBFR19WSURFT19IMjY0X1BST0ZJTEUKPiAtIENvbGxlY3Qg dC1iIHRhZ3MKPiAKPiB2NDoKPiAtIENoYW5nZSB0byB1c2UgZ2V0X2ltYWdlX2ZtdCgpIG9wcwo+ IAo+IHYzOgo+IC0gQWRkIGdldF9mbXRfb3BhcXVlIG9wcywgdGhlIGV4cGVjdGVkIHBpeGVsZm9y bWF0IGlzIHVzZWQgYXMgb3BhcXVlCj4gLSBBZGQgbmV3IHZhbGlkX2ZtdCBvcHMgdGhhdCB2YWxp ZGF0ZSBwaXhlbGZvcm1hdCBtYXRjaGVzIG9wYXF1ZQo+IC0gVXBkYXRlIEgyNjRfUFJPRklMRSBj b250cm9sIG1heCB2YWx1ZQo+IC0tLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3Jr dmRlYy1oMjY0LmMgfCAzNyArKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL3N0YWdpbmcv bWVkaWEvcmt2ZGVjL3JrdmRlYy5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrLS0tLS0tCj4g IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmggICAgICB8ICAzICsrCj4gIDMg ZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYyBiL2Ry aXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYwo+IGluZGV4IDhiY2U4OTAy YjhkZC4uZDE0YjRkMTczNDQ4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9y a3ZkZWMvcmt2ZGVjLWgyNjQuYwo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMv cmt2ZGVjLWgyNjQuYwo+IEBAIC0xMDI3LDI0ICsxMDI3LDQyIEBAIHN0YXRpYyBpbnQgcmt2ZGVj X2gyNjRfYWRqdXN0X2ZtdChzdHJ1Y3Qgcmt2ZGVjX2N0eCAqY3R4LAo+ICAJcmV0dXJuIDA7Cj4g IH0KPiAgCj4gK3N0YXRpYyBlbnVtIHJrdmRlY19pbWFnZV9mbXQgcmt2ZGVjX2gyNjRfZ2V0X2lt YWdlX2ZtdChzdHJ1Y3Qgcmt2ZGVjX2N0eCAqY3R4LAo+ICsJCQkJCQkgICAgICAgc3RydWN0IHY0 bDJfY3RybCAqY3RybCkKPiArewo+ICsJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oMjY0X3NwcyAq c3BzID0gY3RybC0+cF9uZXcucF9oMjY0X3NwczsKPiArCj4gKwlpZiAoY3RybC0+aWQgIT0gVjRM Ml9DSURfU1RBVEVMRVNTX0gyNjRfU1BTKQo+ICsJCXJldHVybiBSS1ZERUNfSU1HX0ZNVF9BTlk7 Cj4gKwo+ICsJaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ID09IDApIHsKPiArCQlpZiAo c3BzLT5jaHJvbWFfZm9ybWF0X2lkYyA9PSAyKQo+ICsJCQlyZXR1cm4gUktWREVDX0lNR19GTVRf NDIyXzhCSVQ7Cj4gKwkJZWxzZQo+ICsJCQlyZXR1cm4gUktWREVDX0lNR19GTVRfNDIwXzhCSVQ7 Cj4gKwl9IGVsc2UgaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ID09IDIpIHsKPiArCQlp ZiAoc3BzLT5jaHJvbWFfZm9ybWF0X2lkYyA9PSAyKQo+ICsJCQlyZXR1cm4gUktWREVDX0lNR19G TVRfNDIyXzEwQklUOwo+ICsJCWVsc2UKPiArCQkJcmV0dXJuIFJLVkRFQ19JTUdfRk1UXzQyMF8x MEJJVDsKPiArCX0KPiArCj4gKwlyZXR1cm4gUktWREVDX0lNR19GTVRfQU5ZOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgaW50IHJrdmRlY19oMjY0X3ZhbGlkYXRlX3NwcyhzdHJ1Y3Qgcmt2ZGVjX2N0eCAq Y3R4LAo+ICAJCQkJICAgIGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaDI2NF9zcHMgKnNwcykKPiAg ewo+ICAJdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7Cj4gIAo+IC0JLyoKPiAtCSAqIFRPRE86 IFRoZSBoYXJkd2FyZSBzdXBwb3J0cyAxMC1iaXQgYW5kIDQ6MjoyIHByb2ZpbGVzLAo+IC0JICog YnV0IGl0J3MgY3VycmVudGx5IGJyb2tlbiBpbiB0aGUgZHJpdmVyLgo+IC0JICogUmVqZWN0IHRo ZW0gZm9yIG5vdywgdW50aWwgaXQncyBmaXhlZC4KPiAtCSAqLwo+IC0JaWYgKHNwcy0+Y2hyb21h X2Zvcm1hdF9pZGMgPiAxKQo+IC0JCS8qIE9ubHkgNDowOjAgYW5kIDQ6MjowIGFyZSBzdXBwb3J0 ZWQgKi8KPiArCWlmIChzcHMtPmNocm9tYV9mb3JtYXRfaWRjID4gMikKPiArCQkvKiBPbmx5IDQ6 MDowLCA0OjI6MCBhbmQgNDoyOjIgYXJlIHN1cHBvcnRlZCAqLwo+ICAJCXJldHVybiAtRUlOVkFM Owo+ICAJaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ICE9IHNwcy0+Yml0X2RlcHRoX2No cm9tYV9taW51czgpCj4gIAkJLyogTHVtYSBhbmQgY2hyb21hIGJpdCBkZXB0aCBtaXNtYXRjaCAq Lwo+ICAJCXJldHVybiAtRUlOVkFMOwo+IC0JaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4 ICE9IDApCj4gLQkJLyogT25seSA4LWJpdCBpcyBzdXBwb3J0ZWQgKi8KPiArCWlmIChzcHMtPmJp dF9kZXB0aF9sdW1hX21pbnVzOCAhPSAwICYmIHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ICE9 IDIpCj4gKwkJLyogT25seSA4LWJpdCBhbmQgMTAtYml0IGlzIHN1cHBvcnRlZCAqLwo+ICAJCXJl dHVybiAtRUlOVkFMOwo+ICAKPiAgCXdpZHRoID0gKHNwcy0+cGljX3dpZHRoX2luX21ic19taW51 czEgKyAxKSAqIDE2Owo+IEBAIC0xMTkwLDQgKzEyMDgsNSBAQCBjb25zdCBzdHJ1Y3Qgcmt2ZGVj X2NvZGVkX2ZtdF9vcHMgcmt2ZGVjX2gyNjRfZm10X29wcyA9IHsKPiAgCS5zdG9wID0gcmt2ZGVj X2gyNjRfc3RvcCwKPiAgCS5ydW4gPSBya3ZkZWNfaDI2NF9ydW4sCj4gIAkudHJ5X2N0cmwgPSBy a3ZkZWNfaDI2NF90cnlfY3RybCwKPiArCS5nZXRfaW1hZ2VfZm10ID0gcmt2ZGVjX2gyNjRfZ2V0 X2ltYWdlX2ZtdCwKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3Jr dmRlYy9ya3ZkZWMuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmMKPiBp bmRleCA4ZGY0OWVlMTI4MjAuLmM4YzE0ZjM1YWM0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0 YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy5jCj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlh L3JrdmRlYy9ya3ZkZWMuYwo+IEBAIC0xOTUsMTAgKzE5NSwxMSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHJrdmRlY19jdHJsX2Rlc2Mgcmt2ZGVjX2gyNjRfY3RybF9kZXNjc1tdID0gewo+ICAJfSwK PiAgCXsKPiAgCQkuY2ZnLmlkID0gVjRMMl9DSURfTVBFR19WSURFT19IMjY0X1BST0ZJTEUsCj4g LQkJLmNmZy5taW4gPSBWNEwyX01QRUdfVklERU9fSDI2NF9QUk9GSUxFX0JBU0VMSU5FLAo+IC0J CS5jZmcubWF4ID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9ISUdILAo+ICsJCS5jZmcu bWluID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9DT05TVFJBSU5FRF9CQVNFTElORSwK ClRoZSBjaGFuZ2UgZnJvbSBCQVNFTElORSB0byBDT05TVFJBSU5FRF9CQVNFTElORSBpcyBjb3Jy ZWN0LCBidXQgaXQgYnVncyBtZSBhCmxpdHRsZSB0byBoaWRlIGl0IGludG8gdGhpcyBwYXRjaC4g RG8geW91IG1pbmQgc3BsaXR0aW5nIGl0IG91dCA/CgpOb3RlIHRoYXQgdGhlc2UgZGF5cywgc2lu Y2Ugd2UgaGF2ZSBubyBzb2Z0d2FyZSBmYWxsYmFjayBmb3IgaXQsIEdTdHJlYW1lciwgYW5kCnBy b2JhYmx5IEZGTVBFRyB0b28sIHN0aWxsIHRyeSBvdXQgY29udHJhaW5lZC1iYXNlbGluZSBkZWNv ZGVycyBmb3IgYmFzZWxpbmUKY29udGVudCwgYXMgdmVyeSBvZnRlbiB0aGUgYml0c3RyZWFtIGRv ZXMgbm90IGFjdHVhbGx5IHVzZXMgRk1PIGFuZCBBU08KZmVhdHVyZXMuIFNvIHBlcmhhcHMgd2Ug Y2FuIGp1c3QgZWRpdCB0aGlzIG9uZSBvdXQgdG8gaGVscCB3aXRoIG1lcmdpbmcgdGhpcwpzZXQ/ CgpXaXRoIG9uZSBvZiB0aGVzZSB0d28gZml4OgoKUmV2aWV3ZWQtYnk6IE5pY29sYXMgRHVmcmVz bmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCj4gKwkJLmNmZy5tYXggPSBWNEwy X01QRUdfVklERU9fSDI2NF9QUk9GSUxFX0hJR0hfNDIyX0lOVFJBLAo+ICAJCS5jZmcubWVudV9z a2lwX21hc2sgPQo+IC0JCQlCSVQoVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9FWFRFTkRF RCksCj4gKwkJCUJJVChWNEwyX01QRUdfVklERU9fSDI2NF9QUk9GSUxFX0VYVEVOREVEKSB8Cj4g KwkJCUJJVChWNEwyX01QRUdfVklERU9fSDI2NF9QUk9GSUxFX0hJR0hfNDQ0X1BSRURJQ1RJVkUp LAo+ICAJCS5jZmcuZGVmID0gVjRMMl9NUEVHX1ZJREVPX0gyNjRfUFJPRklMRV9NQUlOLAo+ICAJ fSwKPiAgCXsKPiBAQCAtMjEzLDExICsyMTQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBya3Zk ZWNfY3RybHMgcmt2ZGVjX2gyNjRfY3RybHMgPSB7Cj4gIAkubnVtX2N0cmxzID0gQVJSQVlfU0la RShya3ZkZWNfaDI2NF9jdHJsX2Rlc2NzKSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3Qgcmt2ZGVjX2RlY29kZWRfZm10X2Rlc2Mgcmt2ZGVjX2gyNjRfdnA5X2RlY29kZWRfZm10c1td ID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJrdmRlY19kZWNvZGVkX2ZtdF9kZXNjIHJrdmRl Y19oMjY0X2RlY29kZWRfZm10c1tdID0gewo+ICAJewo+ICAJCS5mb3VyY2MgPSBWNEwyX1BJWF9G TVRfTlYxMiwKPiAgCQkuaW1hZ2VfZm10ID0gUktWREVDX0lNR19GTVRfNDIwXzhCSVQsCj4gIAl9 LAo+ICsJewo+ICsJCS5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYxNSwKPiArCQkuaW1hZ2VfZm10 ID0gUktWREVDX0lNR19GTVRfNDIwXzEwQklULAo+ICsJfSwKPiArCXsKPiArCQkuZm91cmNjID0g VjRMMl9QSVhfRk1UX05WMTYsCj4gKwkJLmltYWdlX2ZtdCA9IFJLVkRFQ19JTUdfRk1UXzQyMl84 QklULAo+ICsJfSwKPiArCXsKPiArCQkuZm91cmNjID0gVjRMMl9QSVhfRk1UX05WMjAsCj4gKwkJ LmltYWdlX2ZtdCA9IFJLVkRFQ19JTUdfRk1UXzQyMl8xMEJJVCwKPiArCX0sCj4gIH07Cj4gIAo+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IHJrdmRlY19jdHJsX2Rlc2Mgcmt2ZGVjX3ZwOV9jdHJsX2Rl c2NzW10gPSB7Cj4gQEAgLTI0MCwyMSArMjUzLDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2 ZGVjX2N0cmxzIHJrdmRlY192cDlfY3RybHMgPSB7Cj4gIAkubnVtX2N0cmxzID0gQVJSQVlfU0la RShya3ZkZWNfdnA5X2N0cmxfZGVzY3MpLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBya3ZkZWNfZGVjb2RlZF9mbXRfZGVzYyBya3ZkZWNfdnA5X2RlY29kZWRfZm10c1tdID0gewo+ ICsJewo+ICsJCS5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYxMiwKPiArCQkuaW1hZ2VfZm10ID0g UktWREVDX0lNR19GTVRfNDIwXzhCSVQsCj4gKwl9LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBya3ZkZWNfY29kZWRfZm10X2Rlc2Mgcmt2ZGVjX2NvZGVkX2ZtdHNbXSA9IHsKPiAg CXsKPiAgCQkuZm91cmNjID0gVjRMMl9QSVhfRk1UX0gyNjRfU0xJQ0UsCj4gIAkJLmZybXNpemUg PSB7Cj4gLQkJCS5taW5fd2lkdGggPSA0OCwKPiArCQkJLm1pbl93aWR0aCA9IDY0LAo+ICAJCQku bWF4X3dpZHRoID0gNDA5NiwKPiAtCQkJLnN0ZXBfd2lkdGggPSAxNiwKPiArCQkJLnN0ZXBfd2lk dGggPSA2NCwKPiAgCQkJLm1pbl9oZWlnaHQgPSA0OCwKPiAgCQkJLm1heF9oZWlnaHQgPSAyNTYw LAo+ICAJCQkuc3RlcF9oZWlnaHQgPSAxNiwKPiAgCQl9LAo+ICAJCS5jdHJscyA9ICZya3ZkZWNf aDI2NF9jdHJscywKPiAgCQkub3BzID0gJnJrdmRlY19oMjY0X2ZtdF9vcHMsCj4gLQkJLm51bV9k ZWNvZGVkX2ZtdHMgPSBBUlJBWV9TSVpFKHJrdmRlY19oMjY0X3ZwOV9kZWNvZGVkX2ZtdHMpLAo+ IC0JCS5kZWNvZGVkX2ZtdHMgPSBya3ZkZWNfaDI2NF92cDlfZGVjb2RlZF9mbXRzLAo+ICsJCS5u dW1fZGVjb2RlZF9mbXRzID0gQVJSQVlfU0laRShya3ZkZWNfaDI2NF9kZWNvZGVkX2ZtdHMpLAo+ ICsJCS5kZWNvZGVkX2ZtdHMgPSBya3ZkZWNfaDI2NF9kZWNvZGVkX2ZtdHMsCj4gIAkJLnN1YnN5 c3RlbV9mbGFncyA9IFZCMl9WNEwyX0ZMX1NVUFBPUlRTX00yTV9IT0xEX0NBUFRVUkVfQlVGLAo+ ICAJfSwKPiAgCXsKPiBAQCAtMjY5LDggKzI4OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmt2 ZGVjX2NvZGVkX2ZtdF9kZXNjIHJrdmRlY19jb2RlZF9mbXRzW10gPSB7Cj4gIAkJfSwKPiAgCQku Y3RybHMgPSAmcmt2ZGVjX3ZwOV9jdHJscywKPiAgCQkub3BzID0gJnJrdmRlY192cDlfZm10X29w cywKPiAtCQkubnVtX2RlY29kZWRfZm10cyA9IEFSUkFZX1NJWkUocmt2ZGVjX2gyNjRfdnA5X2Rl Y29kZWRfZm10cyksCj4gLQkJLmRlY29kZWRfZm10cyA9IHJrdmRlY19oMjY0X3ZwOV9kZWNvZGVk X2ZtdHMsCj4gKwkJLm51bV9kZWNvZGVkX2ZtdHMgPSBBUlJBWV9TSVpFKHJrdmRlY192cDlfZGVj b2RlZF9mbXRzKSwKPiArCQkuZGVjb2RlZF9mbXRzID0gcmt2ZGVjX3ZwOV9kZWNvZGVkX2ZtdHMs Cj4gIAl9Cj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2 ZGVjL3JrdmRlYy5oIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMuaAo+IGlu ZGV4IGU0NjZhMjc1M2NjZi4uOWE5ZjRmY2VkN2ExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmgKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEv cmt2ZGVjL3JrdmRlYy5oCj4gQEAgLTgwLDYgKzgwLDkgQEAgc3RydWN0IHJrdmRlY19jb2RlZF9m bXRfb3BzIHsKPiAgZW51bSBya3ZkZWNfaW1hZ2VfZm10IHsKPiAgCVJLVkRFQ19JTUdfRk1UX0FO WSA9IDAsCj4gIAlSS1ZERUNfSU1HX0ZNVF80MjBfOEJJVCwKPiArCVJLVkRFQ19JTUdfRk1UXzQy MF8xMEJJVCwKPiArCVJLVkRFQ19JTUdfRk1UXzQyMl84QklULAo+ICsJUktWREVDX0lNR19GTVRf NDIyXzEwQklULAo+ICB9Owo+ICAKPiAgc3RydWN0IHJrdmRlY19kZWNvZGVkX2ZtdF9kZXNjIHsK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1y b2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlw Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 65C1E14D6EF for ; Fri, 25 Oct 2024 17:45:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729878353; cv=none; b=CMRlOqfl6QA2pST4Ajw5FKM8rdFbLh5C8wFFKir00hKLfW+y0nnc/3NHiMvRAJ8LGvsTaw3UqOBGFutX2laJinnqQmBA8PxucwisdXhh052TJSL2KsETL0eq/BfKjJWyGJUvMjLmfoPkm2q6irxgKQ7a+DSZDnbM5SjKXMJZsiE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729878353; c=relaxed/simple; bh=bNv4jIyQDliGcVawBrOSvkpb5zpdi3jBSjsJjCPEVEc=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=jRocAq0+bzd/E6Jdj8BAut0fKSXacsiIwBWXEvT8U79uEY1CSWTa1WzyDpY/dWvyZ/BH7tTa85pmGeAEtg/gIE/ta3+Fxhi7DnPiX8I2UILsV+DEOTGTYCNwrpIqL6xIUiRSBC0kGxPp7ar9id5l8XzLmFxeQezN1hOaVKUVN9c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=fPjvJ3ny; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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="fPjvJ3ny" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729878347; bh=bNv4jIyQDliGcVawBrOSvkpb5zpdi3jBSjsJjCPEVEc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=fPjvJ3nynAedGwttLkqjAiCTDRn+hUKvfZQus61FeEwQ0GY2Y5FKcxwZavucLuRzx ztn6IijoH7PBYy771wY6qh4jCZNekkzLBiLIPGGILnx5DTa/LWJst3LCKEjeSlfZ1Y ESX5UeKFwCSKHZjW1UhUyq1mHd47dNsArvETkwUQNa4YjzEz6T7upKB3MKrF3mh8SW jDtkxMLiqIPQP3NG+hSOkhkCOfoTHXgxa6QqK6IIwrOyf+cUp31FcVe1ll86CazEdA N+SaFGcOoZksv5691roGUlw6kcRzcMeZ7iossAFHqywgGGfoGXA8bYXITqnGH7AtK5 tROwehnxYQdMw== Received: from nicolas-tpx395.lan (unknown [IPv6:2606:6d00:15:862e::7a9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: nicolas) by bali.collaboradmins.com (Postfix) with ESMTPSA id 9667F17E36B5; Fri, 25 Oct 2024 19:45:45 +0200 (CEST) Message-ID: <8e6f209cbc2c33e445b544d13b06374338910d78.camel@collabora.com> Subject: Re: [PATCH v6 10/11] media: rkvdec: h264: Support High 10 and 4:2:2 profiles From: Nicolas Dufresne To: Jonas Karlman , Sebastian Fricke , Ezequiel Garcia , Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Alex Bee , Benjamin Gaignard , Detlev Casanova , Dan Carpenter , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Christopher Obbard Date: Fri, 25 Oct 2024 13:45:44 -0400 In-Reply-To: <20240909192522.1076704-11-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-11-jonas@kwiboo.se> Organization: Collabora Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Le lundi 09 septembre 2024 à 19:25 +0000, Jonas Karlman a écrit : > Add support and enable decoding of H264 High 10 and 4:2:2 profiles. > > Decoded CAPTURE buffer width is aligned to 64 pixels to accommodate HW > requirement of 10-bit format buffers, fixes decoding of: > > - Hi422FR13_SONY_A > - Hi422FR14_SONY_A > - Hi422FR15_SONY_A > - Hi422FR6_SONY_A > - Hi422FR7_SONY_A > - Hi422FR8_SONY_A > - Hi422FR9_SONY_A > - Hi422FREXT18_SONY_A > > The get_image_fmt() ops is implemented to select an image format > required for the provided SPS control. > > Signed-off-by: Jonas Karlman > Tested-by: Nicolas Dufresne > Tested-by: Christopher Obbard > --- > v6: > - No change > > v5: > - Move buffer align from rkvdec_fill_decoded_pixfmt to min/step_width > - Use correct profiles for V4L2_CID_MPEG_VIDEO_H264_PROFILE > - Collect t-b tags > > v4: > - Change to use get_image_fmt() ops > > 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 > --- > drivers/staging/media/rkvdec/rkvdec-h264.c | 37 +++++++++++++++----- > drivers/staging/media/rkvdec/rkvdec.c | 40 ++++++++++++++++------ > drivers/staging/media/rkvdec/rkvdec.h | 3 ++ > 3 files changed, 61 insertions(+), 19 deletions(-) > > diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c > index 8bce8902b8dd..d14b4d173448 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_ctx *ctx, > return 0; > } > > +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 = ctrl->p_new.p_h264_sps; > + > + if (ctrl->id != V4L2_CID_STATELESS_H264_SPS) > + return RKVDEC_IMG_FMT_ANY; > + > + if (sps->bit_depth_luma_minus8 == 0) { > + if (sps->chroma_format_idc == 2) > + return RKVDEC_IMG_FMT_422_8BIT; > + else > + return RKVDEC_IMG_FMT_420_8BIT; > + } else if (sps->bit_depth_luma_minus8 == 2) { > + if (sps->chroma_format_idc == 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; > > - /* > - * 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 != sps->bit_depth_chroma_minus8) > /* Luma and chroma bit depth mismatch */ > return -EINVAL; > - if (sps->bit_depth_luma_minus8 != 0) > - /* Only 8-bit is supported */ > + if (sps->bit_depth_luma_minus8 != 0 && sps->bit_depth_luma_minus8 != 2) > + /* Only 8-bit and 10-bit is supported */ > return -EINVAL; > > width = (sps->pic_width_in_mbs_minus1 + 1) * 16; > @@ -1190,4 +1208,5 @@ const struct rkvdec_coded_fmt_ops rkvdec_h264_fmt_ops = { > .stop = rkvdec_h264_stop, > .run = rkvdec_h264_run, > .try_ctrl = rkvdec_h264_try_ctrl, > + .get_image_fmt = rkvdec_h264_get_image_fmt, > }; > diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c > index 8df49ee12820..c8c14f35ac44 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.c > +++ b/drivers/staging/media/rkvdec/rkvdec.c > @@ -195,10 +195,11 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { > }, > { > .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE, > - .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, > - .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, > + .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE, The change from BASELINE to CONSTRAINED_BASELINE is correct, but it bugs me a little to hide it into this patch. Do you mind splitting it out ? Note that these days, since we have no software fallback for it, GStreamer, and probably FFMPEG too, still try out contrained-baseline decoders for baseline content, as very often the bitstream does not actually uses FMO and ASO features. So perhaps we can just edit this one out to help with merging this set? With one of these two fix: Reviewed-by: Nicolas Dufresne > + .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA, > .cfg.menu_skip_mask = > - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED), > + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED) | > + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE), > .cfg.def = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN, > }, > { > @@ -213,11 +214,23 @@ static const struct rkvdec_ctrls rkvdec_h264_ctrls = { > .num_ctrls = ARRAY_SIZE(rkvdec_h264_ctrl_descs), > }; > > -static const struct rkvdec_decoded_fmt_desc rkvdec_h264_vp9_decoded_fmts[] = { > +static const struct rkvdec_decoded_fmt_desc rkvdec_h264_decoded_fmts[] = { > { > .fourcc = V4L2_PIX_FMT_NV12, > .image_fmt = RKVDEC_IMG_FMT_420_8BIT, > }, > + { > + .fourcc = V4L2_PIX_FMT_NV15, > + .image_fmt = RKVDEC_IMG_FMT_420_10BIT, > + }, > + { > + .fourcc = V4L2_PIX_FMT_NV16, > + .image_fmt = RKVDEC_IMG_FMT_422_8BIT, > + }, > + { > + .fourcc = V4L2_PIX_FMT_NV20, > + .image_fmt = RKVDEC_IMG_FMT_422_10BIT, > + }, > }; > > static const struct rkvdec_ctrl_desc rkvdec_vp9_ctrl_descs[] = { > @@ -240,21 +253,28 @@ static const struct rkvdec_ctrls rkvdec_vp9_ctrls = { > .num_ctrls = ARRAY_SIZE(rkvdec_vp9_ctrl_descs), > }; > > +static const struct rkvdec_decoded_fmt_desc rkvdec_vp9_decoded_fmts[] = { > + { > + .fourcc = V4L2_PIX_FMT_NV12, > + .image_fmt = RKVDEC_IMG_FMT_420_8BIT, > + }, > +}; > + > static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = { > { > .fourcc = V4L2_PIX_FMT_H264_SLICE, > .frmsize = { > - .min_width = 48, > + .min_width = 64, > .max_width = 4096, > - .step_width = 16, > + .step_width = 64, > .min_height = 48, > .max_height = 2560, > .step_height = 16, > }, > .ctrls = &rkvdec_h264_ctrls, > .ops = &rkvdec_h264_fmt_ops, > - .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), > - .decoded_fmts = rkvdec_h264_vp9_decoded_fmts, > + .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_decoded_fmts), > + .decoded_fmts = rkvdec_h264_decoded_fmts, > .subsystem_flags = VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF, > }, > { > @@ -269,8 +289,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = { > }, > .ctrls = &rkvdec_vp9_ctrls, > .ops = &rkvdec_vp9_fmt_ops, > - .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), > - .decoded_fmts = rkvdec_h264_vp9_decoded_fmts, > + .num_decoded_fmts = ARRAY_SIZE(rkvdec_vp9_decoded_fmts), > + .decoded_fmts = rkvdec_vp9_decoded_fmts, > } > }; > > diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/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 = 0, > RKVDEC_IMG_FMT_420_8BIT, > + RKVDEC_IMG_FMT_420_10BIT, > + RKVDEC_IMG_FMT_422_8BIT, > + RKVDEC_IMG_FMT_422_10BIT, > }; > > struct rkvdec_decoded_fmt_desc {