From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 099B849BA6 for ; Mon, 4 Mar 2024 13:05:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4AA8C68D3C7; Mon, 4 Mar 2024 15:05:03 +0200 (EET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04olkn2082.outbound.protection.outlook.com [40.92.75.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E8CA568D269 for ; Mon, 4 Mar 2024 15:04:56 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nWqzpq4iC6xyPfsVuHyp5zL6XRdtTcunkD0d7IaEb+FaeMpK9RXabKL6HUhp+RmOT1cF2pJx8Hc4Gbg/ygC9PHNhy7N/QvV2Iiaor64x5qiObV5Om7/x+jTQR9K0AFBXChXULZpNzXMbm+msMq8VHMaaMCzYySdSaryXIUodKK00JJ7QaMyUd4ilvzX7pqYFMbd0r5hcY9vhVaYhZL6itPlpUopJFK3635cj3I6jEZx/Vi6dZVfry8twE8U3RgmC4zp/TFbxptLk87jSx6uZKYMEsvQQLhlz5qbrYmyqSLuvec+97BWHN2h1Y9Cp2qWy7PI9sJwSibFZ7Mq6xLeH3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QPX6tDc1c4i/MJaFf1MENG0b3+8GL4zwDE3A2mYw2Kc=; b=JL+XqPQEhUSa29YXV+gCoXM2q4Y9Wef5Ba9zbopiPcm5gbI9FyO1khzybIKU2Py83okLqVYfitHfY4YxYlZPbJYGgf/ux48mT4MtRXt+GqPizzpPFLxCYKn0r0JviVAQrkPcllshwlQJWDu3FtdNTioAF9L+NA630tQLCJ/R95nu3oyQuCxV92jYZnodujs1Tfg5Ny23y/Egx5sFB+bZs/vytZFW1k/+QoMn4yUQb1Y60Tc51i5tMZ6BboIg8Ri0NTTLYQiZ9fibpd1rNRJCv/q9SSRYM9eGosB1LMYHm4/jt6PujGEB7LJHuEQoZOqsBgkBPifzqeYa1kYBs/JjgQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QPX6tDc1c4i/MJaFf1MENG0b3+8GL4zwDE3A2mYw2Kc=; b=CLVcgDNs9dDg+ryqsIYgoiP/gW6nmrhXRTbjBEP49cETCQR3KGYfJd2Ev5EtUw/l2R5g8sTeLsk/LHV+Td5zQD8wV9rtg+R5rCg90unngQnqd4D5lJfdzJwPK40wDpUtf3obHRBxtbAC1cPsvGwO0p5nhwGQSL1DgP/p3U2qsKsZYxeQaNmhEP4E4RWhPah9i3WjYqZbc36uByRfFGhL7A6soovv5cydwEZ+ScGuJL502yX14EjF44srQK97zekHUEJtWfCDHH16tqOFjNCk9Br7JsF3QRYv9sR1lxpPAk1LDyrsEHKt9/oQ4HTqC9TSS8bq5q+NKQxj4tFDPvUgng== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by PAXP250MB0472.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.37; Mon, 4 Mar 2024 13:04:53 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc%3]) with mapi id 15.20.7292.036; Mon, 4 Mar 2024 13:04:53 +0000 Message-ID: Date: Mon, 4 Mar 2024 14:06:51 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240225114451.27645-1-ffmpeg@haasn.xyz> From: Andreas Rheinhardt In-Reply-To: <20240225114451.27645-1-ffmpeg@haasn.xyz> X-TMN: [OYLWunlXijQST1T3y/4DOHgFDAROwHXtleX9N5xGQcg=] X-ClientProxiedBy: FR2P281CA0156.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:98::13) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <6af7ff77-023a-444d-97c8-bdd50b87b34d@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|PAXP250MB0472:EE_ X-MS-Office365-Filtering-Correlation-Id: e942f4bc-96f0-4fb2-fcec-08dc3c4baee3 X-MS-Exchange-SLBlob-MailProps: zGFXENFVT+TxtXK2ZyovORnX4GfG5q6u/M5F9cvzSYFrvgPla3iL5nnG67fynTzVzhOiM0CHsA/RD2teE4mA7P4JXoJSoDQWdrZCeRY3k+u1TxihV5PPPVIZnPIfM5fJzc6TkjMPJEMTL11ljijMtBpcgvrR/6tFbH2J92RYHQO2r+urM8cfd9NK7mzdHiZwoZ4k7QnrJg6AXiAKKdYWVfYrnxjgcKmQKjgi1h1XBnSJP/oTHWp8nuktusqVzHH0ALwHc7dZYf/Qjmb6DE08Wfo3GjESqRjdWIwFBL2Asq6Neux9GUMu+UnUBfzbGdq1Gse/NM354xOqV3zdq5WBu65+Devu5FJl7vg9Yu27LBIwAkrpyMi7+10943IIROJDOLywcE16rEyWRAS2yLblYgDUk/oQOAlRotbvTz+Rn+vtGv/WrrOen7XLEK4AStiVDPslpOfhymzl/fr/+o/sYeyoOmO6JQrKL5vYOe+qNY8iaNAcAqfxIzXeMkUT9gKUQv0olHyR2Z2l+t/aUAuicsG2KatmkwdaVZAMe70bNZaf0cYTfL7nyucVph0U/eny2JU9wjFC3fFVAfVonlumzFVf0NsQuN2DQleKSl8BPccr/X54PD/g6I23XagtAR1DNGSR5KryCMaNM7tvEcKWjIC1TdBAJIz+C6uvNNRmHUeJyi7UewxzVJ74wPu1Nz1dnDG58LXtQ/dR545maODvhPjD/1MnLuw9mxagIWx7CldLvLmVzRh5OWxNeYRMiWre2NaJ5iA+iSZMzvgn7Q0daYlBqg2xBhCLQ/OwYIBZNVMqBoTkkDOZY0X6Y5FjWzHVN8nJ/PaSTCEkz37ckDGME6423azI3n+80oDW42D7n68yI5e0ZMeO2TkGOpQOpORyet+OMfM2sVp+lAsg1NU75vbcaU6U978wygxy2y4/5Nc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WGNlZ24vN21BL2RnVUVPZmFPSG1wTUkxL1NUNWY2ajl0MkFXT1ptc3VWZ3lU?= =?utf-8?B?ZlVKcUlJOXhiMGZTVHdhQ05SeTlydGZ6YmhoZFdPQ2p5d21pSjlRaVJGSU9j?= =?utf-8?B?VlgxTGxkTTdQL1BIc1JBMkFZc3pmcDBRNWsrdy96THc2ZDlrR1VVOWFQSkVH?= =?utf-8?B?QnVZMmZLQ3ZiY3h5K3JkTnRnNlM1T1I5ZUNvTGNLOUVXTmhIZTlEM0ZkSWpM?= =?utf-8?B?MDRvRmRjNUZTZzI4aTNiUTh1UzI5NXNpVkcvdFhKZzBRTWZXMGVZS2hmYXBu?= =?utf-8?B?ZGx0SHpMNDVaN2wzM0cydDFSOURjUGEyVlNyYXdDejIvWWtWT0NEcXM0S0dU?= =?utf-8?B?T0R1Ym94bUFmZGJGMVJBenR3OGxUaUo2M0FBNG9QdmloL3B3dzBySlhRTDRm?= =?utf-8?B?RnJVd3hmNmFTZXBHTU4zWlNudWM2RGVObDdrSmFDY0RYUUhuRlNENnArVlZ0?= =?utf-8?B?S0RCeUU3RmZzQm8yc3BaNVhzSWhYRzlXalRtOHFkbDZYdXN3UWlwNlpUTHYv?= =?utf-8?B?Q1M1eVBDaUJRUExWVENIam1NSU9BaHB3R3NlMDZ6VTdpcTc0Qkl2SVdjazlU?= =?utf-8?B?amxuVC9Va3ovUjBzdEJ1T0JDaVduYWFITktZM0swdEpQUnh2aDhTWkRVcWdi?= =?utf-8?B?dnFaRWJEbW51WXNMa0xJY2x4c0VJTlJod25rMUlwZHRjeEZOMFZLL1krY1Zz?= =?utf-8?B?dlczcTRhUFg3c1pTa2w3dmJPTlkvdmdtbXFFV1U2SjVaUC9LYVhLR2REYnll?= =?utf-8?B?aStEVFh2RG9jaXFkMzM2ZWZQbUtBQUdOck1uZ1J5a1J0Qm9XUVZnNkZMMGRw?= =?utf-8?B?LzBsbEFxeG1SZVM2Q2Jmek5NSTh1S3UwMyt3RG0xMXgyUDQ3VGJpcjhUYk9y?= =?utf-8?B?TkdDUXpneWtQVDJVUXZreWdWL2Z6ZGxDbDVRTEdjaytWS3RCQitGVE9ZcUU0?= =?utf-8?B?dnlhT2MrNzlmWXRLV29vZE5GRE9HbWF6UmZjZkNRSXo0RmYrT0I4UWFnM1E1?= =?utf-8?B?L1lhMVJJTzVkNzZ4NWxoc2tsOFBLaDIwbURKSVNOV3E4cFZWYkMvQ1RBeGEr?= =?utf-8?B?bTZFNkpSZEVVR0tZS0hXWnFDM2VERU01R2tBbVVmWG9RelF5c1IzMVp4Ry8r?= =?utf-8?B?RzZJc2IwM0pYN2dlZGIwS2Y1RlhRYVMrNE9oYzJreTZ3TVV2VVNtdU5weHU3?= =?utf-8?B?aUdtdEpibFRsb21CY3lyanY0SngrL210bmZSeGxIbjVwSVFqOUVEQ1A3RzZI?= =?utf-8?B?Z1ZVM1NIQ1dKSmNIWE4yNzg2S2Y5R090WHM0djdtZDAxNDQrcjhoSTFCQy9R?= =?utf-8?B?VUE0Q3piQVJzMUlFREVzdzZuVUYwSnV0TEdHSkZ2aGR2YVYvNDZ4bFZoYzR5?= =?utf-8?Q?bklUCN41ViWeCNPiQRZrasnkFtYlDpc0=3D?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UW1wK2NSbVVibFZIT2xjZkFzaFNadnhxcm80WVI3cm45OGIzcmJDQkVhbit2?= =?utf-8?B?bS9rMXJjVFhzUXg5MU1sRzJCMUZMb0tLUnJENksxMXlXazdzQThsSWdxZWk3?= =?utf-8?B?aC9KNG5ySWhCY3c3bjNoaFlYcW9EZUZmWndXS3RhOGtIcHoreXlNQUpCL3d6?= =?utf-8?B?L21zSjJ2YlN0TGh4emZTVndLZWt4SjBGV0EzZVR0SXFGTGRkalJkdDE1bHZu?= =?utf-8?B?eU9iVEpRSmJlYWVzeExoa25ZelBJeU9tajZkQ3J3MDZwY3dGSk9lcGdaUldk?= =?utf-8?B?emROdEorTmx5ekVoUm1PUzRQQ3daQjJCR2tmeUwwUWpvWnJncllUMU9KRkNm?= =?utf-8?B?MmFTcUxodDdFUjUweWp2TFhueXJEMGZWVjl1NHpUNnptNnllanNZZ2g3OVRx?= =?utf-8?B?WWpLQVc4UlR2cWhnQmcrNTdVaE8xZlc2VjBpc09KNTRRZVd6ekNJMHhhZ2lx?= =?utf-8?B?VHFQcXhYMVVHOS9yYXdSUzZZZGo1dXI4SjFWZFM0amZYd2FSUHZKNFYxY0dv?= =?utf-8?B?Y2dkTTFDd0w1L3h2YXlzUTh0UFpUaHhpZlRKdExzSEZzcXlKZXVjOWZOUmF6?= =?utf-8?B?UFE5czlMd1JDRURIdGdtcngrWVUya2xXcHV3NjhMQ3lWQTc3S0E2ME1jVTI2?= =?utf-8?B?MjRQNXhSeE9ONnZ4MkxqcUQ5OW9ITFNrNk56YTRvNUV4c0xqcUhaU3VoL3FI?= =?utf-8?B?c2lMbnRUSjZCaEwyb1QzZFVEZEZoOTJBcWc5KzBoK1BqbFNUREthQVhMN2xq?= =?utf-8?B?dGZBVERWVnhrYU9YSmdLQnNMY0VhY0lNeVFRUzg4cjNBL3BQY2F3ZVZtY2lS?= =?utf-8?B?NG9hbXgya2JhdjhOT0QrQXl3REp2Q1drMkRkQXdiZHN2ZERnRkQzaklTYmdL?= =?utf-8?B?bzR1U2IxQ2dLNTBaSG9TVnlwTDByeDg1emROejhPZ2NxUFhDQXhHenA2QmVE?= =?utf-8?B?b3FZN3YzOW03a0J6WFRuUnZpS2hka2lwV2NhY29EMmR1RDFkak1lbnArMnUr?= =?utf-8?B?YThvUDlPQlhlNURWQzZhTkhSK1pvRFpPV0dVRVluVzBFdG1rU29hZjJPY0lF?= =?utf-8?B?aFlRZE5zdHpQK2w4alBaUnIyUVlheUF0bGYrNWF0dG1RUmlHSnBBOE9zb01L?= =?utf-8?B?NkRnUm9IK29GaFlwc2ZXczU3TElveGJJeVpZd2ZvWlBZUXRQVGJkdWlYV3Vk?= =?utf-8?B?TnlnVVAvOFRIdUh2UHFxNWRtVzN0a2JzRG42akQvZWM1bVFEdTVVeDNHWXJZ?= =?utf-8?B?WHVobmFTMlhzVWcvVU1zUHc3ZG0wL05scG5PbVI4NEhaREVWWk5Ub012bk9F?= =?utf-8?B?K2hCSkpqWTBJVUE1bFZ4SVdQUG5tRUFUYm15djJiRndGN2k0UWlKK2JDbTdG?= =?utf-8?B?VVZ4L1F6RklRZkJOK3RIQndBUjFxencyTmI0SWVOZW9acnUyNVNaYzJZdnZD?= =?utf-8?B?aTNrRTRrUklXNCs5VnMrQkdZdXVYZ2tlMFZ1TzZDMUtPS3NFdHIrSDRiQldN?= =?utf-8?B?TXBMS1ZrNjdGa0lqUmwrV2pOREQ3UzNTWWt3SzB2YVhuK1J2dUNKTmczKy9E?= =?utf-8?B?ZGlFNFJSVzkwNmFpR0QwdWtOTWVNZVQ4YTlqNzIxdkthQkR1TUUrVmZIa1Rp?= =?utf-8?B?SlBUbDNObXUxYjRrempOTXoyU2o0T1ByVFczWUVuVUVudFJjZ21ORVFTYkE2?= =?utf-8?B?QkZtdVMzZDZxcTJURGhhZ2JndW9KMmtVL1BpUGtxcXF1OFFUZVNtNStBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e942f4bc-96f0-4fb2-fcec-08dc3c4baee3 X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2024 13:04:53.7579 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP250MB0472 Subject: Re: [FFmpeg-devel] [PATCH 1/3] avcodec/dovi_rpu: implement support for profile 10 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Niklas Haas: > From: Niklas Haas > > Instead of the nal_prefix, this profile inside wraps the RPU inside an > EMDF header, as specified in ETSI TS 102 366. This particular usage is > supposedly specified in ETSI TS 103 572, at least according to European > Patent EP 3 588 964 A1, but I could not find any references to DV RPUs > in the former. > > It's worth pointing out that the EMDF container is not byte-aligned, > meaning that payloads are delivered at arbitrary byte boundaries. Hence > the reason for doing it inside ff_dovi_rpu_parse, which already uses > a bitstream reader, rather than splitting off the container in > a separate stage. (Plus, we hard-code the DV-specific payload ID) > > Magic values were taken from a combination of the sources below, all of > which agree about what the specific EMDF header should look like. In > fact, they all hard-code a very *specific* header sequence, but I wanted > to go the extra mile and at least properly skip the variable fields > - even though the non-existent Dolby Vision specification probably > specifies that they all must be 0. This is probably overkill. > > Validated and tested using sample files from the merge request linked > below. > > Relevant links: > - https://www.etsi.org/deliver/etsi_ts/102300_102399/102366/01.04.01_60/ts_102366v010401p.pdf > - https://patentimages.storage.googleapis.com/8a/0b/da/28294acaed2182/EP3588964A1.pdf > - https://www.etsi.org/deliver/etsi_ts/103500_103599/103572/01.03.01_60/ts_103572v010301p.pdf > - https://github.com/rockchip-linux/mpp/blob/fdeb8c378b79d4b4ef80457e4431815de89dc417/mpp/codec/dec/av1/av1d_cbs.c#L2378 > - https://github.com/elginsk8r/android_kernel_amlogic_linux-4.9/blob/23a4c38bf06ef34821e476a8edddbf9213712c8a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c#L5638 > - https://gitlab.com/mbunkus/mkvtoolnix/-/merge_requests/2254 > --- > libavcodec/dovi_rpu.c | 68 +++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 65 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/dovi_rpu.c b/libavcodec/dovi_rpu.c > index a6b23f4dd11..c7cdd65a2f2 100644 > --- a/libavcodec/dovi_rpu.c > +++ b/libavcodec/dovi_rpu.c > @@ -174,6 +174,18 @@ static inline int64_t get_se_coef(GetBitContext *gb, const AVDOVIRpuDataHeader * > return 0; /* unreachable */ > } > > +static inline unsigned get_variable_bits(GetBitContext *gb, int n) > +{ > + unsigned int value = get_bits(gb, n); > + int read_more = get_bits1(gb); > + while (read_more) { > + value = (value + 1) << n; > + value += get_bits(gb, n); Using |= is more appropriate. > + read_more = get_bits1(gb); > + }; The ';' is a null statement. > + return value; > +} > + > #define VALIDATE(VAR, MIN, MAX) \ > do { \ > if (VAR < MIN || VAR > MAX) { \ > @@ -200,9 +212,59 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size) > if ((ret = init_get_bits8(gb, rpu, rpu_size)) < 0) > return ret; > > - /* RPU header, common values */ > - nal_prefix = get_bits(gb, 8); > - VALIDATE(nal_prefix, 25, 25); > + /* Container header */ > + if (s->dv_profile == 10 /* dav1.10 */) { > + /* DV inside AV1 re-uses EMDF container, parse header */ > + int emdf_version, key_id, emdf_payload_id, emdf_payload_size, smploffste; > + emdf_version = get_bits(gb, 2); > + if (emdf_version == 3) > + emdf_version += get_variable_bits(gb, 2); > + key_id = get_bits(gb, 3); > + if (key_id == 7) > + key_id += get_variable_bits(gb, 3); > + emdf_payload_id = get_bits(gb, 5); > + if (emdf_payload_id == 0x1F) > + emdf_payload_id += get_variable_bits(gb, 5); > + > + /* Magic values taken from amlogic and rockchip drivers, and also > + * match values found in practice (and validated in hardware) */ > + VALIDATE(key_id, 6, 6); > + VALIDATE(emdf_payload_id, 256, 256); > + > + /* Note: In theory, there could be multiple payloads, and we should > + * skip over the unused payloads until we find the one we're interested > + * in. But this capability does not seem to be used in practice, so > + * the DV-specific usage of EMDF probably requires only one payload > + * per T.35 OBU */ > + > + /* Skip emdf_payload_config() */ > + if ((smploffste = get_bits1(gb))) > + skip_bits(gb, 11 + 1); > + if (get_bits1(gb)) /* duratione */ > + get_variable_bits(gb, 11); > + if (get_bits1(gb)) /* groupide */ > + get_variable_bits(gb, 2); > + if (get_bits1(gb)) /* codecdatae */ > + skip_bits(gb, 8); > + if (!get_bits1(gb)) { /* discard_unknown_payload */ > + int payload_frame_aligned; > + if (!smploffste) { > + if ((payload_frame_aligned = get_bits1(gb))) > + skip_bits(gb, 1 + 1); > + } > + if (smploffste || payload_frame_aligned) > + skip_bits(gb, 5 + 2); > + } > + > + emdf_payload_size = get_variable_bits(gb, 8); > + if (emdf_payload_size * 8 > get_bits_left(gb)) > + return AVERROR_INVALIDDATA; > + } else { > + nal_prefix = get_bits(gb, 8); > + VALIDATE(nal_prefix, 25, 25); > + } > + > + /* RPU header */ > rpu_type = get_bits(gb, 6); > if (rpu_type != 2) { > av_log(s->logctx, AV_LOG_WARNING, "Unrecognized RPU type " _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".