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 79E794A994 for ; Mon, 6 May 2024 19:56:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9316A68D68D; Mon, 6 May 2024 22:56:42 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2086.outbound.protection.outlook.com [40.92.65.86]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8962868D609 for ; Mon, 6 May 2024 22:56:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WPI2ruwg0lb47IO0zs1jCKFITguEQkcTXqS1Q5QmtxJdiuQtSabzJ03FwYBMf0gwIC69Ja0ggqX3D4ZnBk6qymmptWer5YhRpI0OgaiJFmCA7HL14D/hDAJIGjYVKWg4sZzxhe2rOVtqD+HxLpZr65/MlC+clyEYLBmXHtqsEqKzkShLkdrIyMaGZThp7Im+3WFnNkE4xlZwMJCxZo6JFkPRoXxm1P0fW9Q6LNOyAUDjpZtWEJz+7bImGHFjRJVlCxv2G9aUTOg7DEuY/pYF3uzq+VqOYVTSeeco8h5IqgFDkh80UpQuWKfxFhCUbawZ41jJoi2ti3MYXI2rSwERGA== 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=2lHT7DMHn76JjWrU3QogEdDCFeSzN5um99ZV2ByjDHQ=; b=Zcn5vxFSlo04AFn1Q3qypDckUlWLjdn3TWrvtRC563/vnWdn1kBp7x2XzpLj4nvD6EXSi1n14mjG8ROReU+f1uTRmSro9+GeGcTkIS8C/lRQB7iuvq/h3e9RpmnWbdnJfYfYU34If0XGx3SSaLHRMcZJ/MV3UnZv7H2ukR9femfoTbG8ejAvHgkoLHMLtRW319U8CErIrr826WaRq3W3y9uXjRLNfMvo4sQ7eSKVxqx4O1mGqcyxPqq2VspuSet+uOZGAFslTsVuKO1A4S3dmOy9t4SfPIk2YaXv51vRaOGeNCFep+J7LCnmT/v5i4Y7xLj2pJNDsCKkj8dA5W0kkA== 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=2lHT7DMHn76JjWrU3QogEdDCFeSzN5um99ZV2ByjDHQ=; b=HYSKr0p3zSOnJBrSg6AwP3o9eHDPn5i54BT2YUjX1T7mDYd9z4lnIJih+DJW4veo4OFvqJpdXB1tZ4VtfabZkWvkaXEPS23bPwYKXhLpm1lkM7JHFvO4AiEIfZJWyx4zKEdMH/240ztKBRgJNKaYcQFA3EFnyun1ypN57Bsx1f55AC/ZTfKTiNml/wK0kGo9raIxmLARSaut/hHopcxdUE8xUp+t3bnmOLZGAQK2fAfwftrYSjid8K2iu7zhG+eb6NaZc5riFmHHfuFvJvouW8a8gjL7zBl89DXt72dlEtHpSWqxsEskJSc8HQ06UDGyeXV8CHwNNr7T9pfRywh1vA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0026.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:2b7::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.42; Mon, 6 May 2024 19:56:33 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%7]) with mapi id 15.20.7544.041; Mon, 6 May 2024 19:56:33 +0000 Message-ID: Date: Mon, 6 May 2024 21:56:30 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240506184726.826159-1-sw@jkqxz.net> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240506184726.826159-1-sw@jkqxz.net> X-TMN: [ckl042b3S94jxFR46MAyGb1wPrhFmJPB6ghb9RhBmT0=] X-ClientProxiedBy: ZR0P278CA0041.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::10) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <134c22e3-6fae-4128-b435-95294aeb9624@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0026:EE_ X-MS-Office365-Filtering-Correlation-Id: d8d313ea-3623-4247-5639-08dc6e06a0fd X-Microsoft-Antispam: BCL:0;ARA:14566002|461199019|440099019|3412199016; X-Microsoft-Antispam-Message-Info: 1BCjyIuNckDcUE49lZ14699G5/rbFndm2gSNS2RR7KKuggQPDrg20CH2eiSi0+TGnf3hp7K6Qma7VmDLXyNRxiiHqQKu0Grx0pJBRwDwKiLZ2tgfm/+QjvhnCPSGGk/HcaWz89RDeoDryoHl+YT3ksb2AB3a9RmHSBRh9/vTAOXrjyEc+Pr07HA06vfS0W+efMilKT5pyn/8lUILaevo82/JeDblcNCyAU+wXVLBoFr59LpMMP5F+E+2XTcAj/6vRYRVzGeckuzCYmzEBb0G7/WD81UjCxp0FIN98ER5Z0KhF5iFv/k32qZFrzYamvcc8hN69cpdncHwKYO5bVmkHaDu610b+f2MC0xJAdcNIxfceEuM56L2Jrf1fZ08QdiW8iRZNbj3ZAievMig8lBrdqCCWBJrNIVkYqfp0fBQ1sqVlbuU5O+oTHHDXMSnju4Gi0xN1DDp/6eGcqtlADSwaD0puXRj41QeECVbnwIomtBG2IvPvkyInySc/N39aiRH8PQfLSlMyCKBTTwGwWAFfGESPem2LA+r6nN5nNSJOjeknpHkYEvV62csZZq71BSz X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y29ORTE1MitjNE9KYzNWenpzZlZUOGM1Zjl0L0g2WFRRSDdjUnpoNThoSXJB?= =?utf-8?B?b0tCa0YxSjd2UDg5eHVwYVNsNUd1OFlCanlkeUVZZm5JUVhhYm5KT3lMcGtU?= =?utf-8?B?T0pzc2h0aDJtNmdiQWM2WllETFBZQVVBakk0NUV3OVZxbDczTWlSS0ZEMk85?= =?utf-8?B?WmlzdC9FTkRYeHozZlVpTXZpWHRIM3duK0dvbGNXY3NJbWljVFpkWDBCaDYx?= =?utf-8?B?ZnU0c0RHcWtGb3NHcytjTFdDeURBd1poOVJWbGxwRWg3WVRRcW5VMEdmd3Vq?= =?utf-8?B?aDVZbXhKbzNETEdKcEIvcElZMnh6c2xuVE9JTkhsaDRYQVh0M2Z3UVR0UGZi?= =?utf-8?B?Z1RWSE5rQmlxajRZQmpjM2lSMHRYTS9salNYaWFsMGVXYnVkK0lKenJia0N6?= =?utf-8?B?SmxsTVRvT3dmenlzV1lSU2pDRHkzd0s4N3FYcnNtMklmLzlhY2tRQnlQdks1?= =?utf-8?B?VmxUVGNrUDFEUnhHaFJzQmZYRXZUTzBNOWE4R0JpaEIwYkRHVm5wb2VoUWFn?= =?utf-8?B?K01JZDBFSUJHYnl5aS9CelVVOUZ3ZXpxWXYwQnRBenQ1RmpaTmpWS1FDelJ4?= =?utf-8?B?bzBJUWFZSGJ3bVJwbUJuN3lYNS9yeTNISjNSNVgxaE5vRjUwdFNwMHZOTi9m?= =?utf-8?B?dS9oUk80bVgxZndQajFQYVlwL3pVNC9rMktkL2ZnL05SUzdRN0RuQzBjMVZS?= =?utf-8?B?Z0ZzSWU3YkRnZXV4UDB3S2FtVGJQaHBzRXdGbThhWis5d1NJeW1qSkdiMDhT?= =?utf-8?B?dFdYQ3ZDOFpkRXI0enM2MERJZ0VsNXV2TXZFSFhFeGY3T3FTakJ4UmhKeGJv?= =?utf-8?B?dTY4NGVJNWVCN095NjlmZEdialJjMGZrTjd3N3pPRGxJNStaanJGdkhwMVhx?= =?utf-8?B?QmZBL3hlbFRQN2pqNTJxNVdCTklubm9WU0d1ZDdjQ2dUNHA1ckZxWUpuMjRE?= =?utf-8?B?T2RuNGg4Rkd2VzhuOFc0eDBWbnN6UWxES29naiszSnQvQUFRcXUwUnN5TEd5?= =?utf-8?B?dkI1MjRyZHVnRFZDd3gvY0JGaW1RLys5MDhraDBPRjdNTUN3dDVkdDd3M3NM?= =?utf-8?B?RWRyZzRvSmV0bmtyZ1dBcDZFcXkxQ1hVMGFHZFpCdVVKTGNhMlVRcy9OMXl3?= =?utf-8?B?ZFQ2MHZia3VXZ05KR2YxTXBYNmVZMkxIeVRrRENvd0hMQVRhSlczWFlvOWtN?= =?utf-8?B?M2J2MzdLdHhsbm90Nzh6ZEJ1d0E2T2RVQ3BxZnBhMlh6WGtyN0NCaDZaUnlM?= =?utf-8?B?emJxMXU5NEJyZG5LR1NXVFlqS3EzaENiUVhqc2lxaXgvSjFXN1pMNGJWK3ps?= =?utf-8?B?MHJTT0xDT1pRZkpKRitBWE4vQU9Ob3V4UVJxZ2FZdjV0SDdtLzd6MGxOUjE1?= =?utf-8?B?THRMRklEZGlnNmwyR1ZPOVpORGIrdGFVS3F3c2pmNWNPbHVnbFlqZURGSzRH?= =?utf-8?B?SEFDOGFDd3hUMHNJdzducWhQQmdmSWVQakhlMStqc3liNHRnNzYwQTVKYVZp?= =?utf-8?B?ckZRdWdYVkJKUlhLbVNsSmVjd1BRWW9MejJBaGI3ZStxbkwrS2dBOFQ2V3d3?= =?utf-8?B?YW5pZ0d4Q0ZyL3JSR2hXTmx0Q2RZVlpmVm1ESDZNVDR6R1k3Szl4SUVoOEln?= =?utf-8?B?cmZGYXZ4blJzeVdqTEFjVDAzdSt1cnpOSlV3eTNIYzA2MU1yd2ViYkVmVlYw?= =?utf-8?B?bFdqTXdwN3p4VmNhOGdPZW13TmphRXpKcXQxcWYyVm5uTHZXOHFIUUtnPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8d313ea-3623-4247-5639-08dc6e06a0fd X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2024 19:56:33.1754 (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: DU2P250MB0026 Subject: Re: [FFmpeg-devel] [PATCH v2 1/3] lavc/h265_profile_level: Expand profile compatibility checking 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: Mark Thompson: > Replace existing get_profile() with find_profile(), which finds the > lowest compatible profile rather than requiring an exact match. > --- > Series changes since v1: > * Added H265_PROFILE_INVALID with value zero because it simplifies some code (and the values don't matter). What code is simplified by using zero (instead of -1)? I only see that it leads to the addition of an unnecessary entry to h265_profiles. > * Fixed the h265-levels test. > * Added a new h265-profiles test which tests the profile compatibility checking. > * Fixed missing VAAPI profiles. > > > libavcodec/h265_profile_level.c | 78 +++++++++++++++++++++------------ > libavcodec/h265_profile_level.h | 71 +++++++++++++++++++++++++++++- > libavcodec/tests/h265_levels.c | 2 +- > libavcodec/vaapi_hevc.c | 2 +- > libavcodec/vdpau_hevc.c | 2 +- > 5 files changed, 123 insertions(+), 32 deletions(-) > > diff --git a/libavcodec/h265_profile_level.c b/libavcodec/h265_profile_level.c > index 7ff9681f65..2e4a1c88bf 100644 > --- a/libavcodec/h265_profile_level.c > +++ b/libavcodec/h265_profile_level.c > @@ -40,6 +40,7 @@ static const H265LevelDescriptor h265_levels[] = { > }; > > static const H265ProfileDescriptor h265_profiles[] = { > + { "Invalid" }, > // profile_idc 8bit one-picture > // HT-profile | 422chroma | lower-bit-rate > // | 14bit | | 420chroma | | CpbVclFactor MinCrScaleFactor > @@ -119,41 +120,62 @@ static const H265ProfileDescriptor h265_profiles[] = { > 5, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 4000, 4400, 6.000, 0.5, 6 }, > }; > > +_Static_assert(H265_PROFILE_COUNT == FF_ARRAY_ELEMS(h265_profiles), > + "Incorrect H.265 profiles table."); > > -const H265ProfileDescriptor *ff_h265_get_profile(const H265RawProfileTierLevel *ptl) > + > +const int ff_h265_profile_compatible(const H265RawProfileTierLevel *ptl, > + int profile) Why don't you add a tag to this enum and pass a proper enum here? > { > - int i; > + const H265ProfileDescriptor *desc; > + > + av_assert0(profile > H265_PROFILE_INVALID && > + profile < H265_PROFILE_COUNT); > > if (ptl->general_profile_space) > - return NULL; > + return 0; > > - for (i = 0; i < FF_ARRAY_ELEMS(h265_profiles); i++) { > - const H265ProfileDescriptor *profile = &h265_profiles[i]; > + desc = &h265_profiles[profile]; > > - if (ptl->general_profile_idc && > - ptl->general_profile_idc != profile->profile_idc) > - continue; > - if (!ptl->general_profile_compatibility_flag[profile->profile_idc]) > - continue; > + if (ptl->general_profile_idc && > + ptl->general_profile_idc != desc->profile_idc) > + return 0; > + if (!ptl->general_profile_compatibility_flag[desc->profile_idc]) > + return 0; > > -#define check_flag(name) \ > - if (profile->name < 2) { \ > - if (profile->name != ptl->general_ ## name ## _constraint_flag) \ > - continue; \ > - } > - check_flag(max_14bit); > - check_flag(max_12bit); > - check_flag(max_10bit); > - check_flag(max_8bit); > - check_flag(max_422chroma); > - check_flag(max_420chroma); > - check_flag(max_monochrome); > - check_flag(intra); > - check_flag(one_picture_only); > - check_flag(lower_bit_rate); > +#define check_flag(flag) \ > + if (desc->flag < 2 && \ > + desc->flag > ptl->general_ ## flag ## _constraint_flag) \ > + return 0; > + check_flag(max_14bit); > + check_flag(max_12bit); > + check_flag(max_10bit); > + check_flag(max_8bit); > + check_flag(max_422chroma); > + check_flag(max_420chroma); > + check_flag(max_monochrome); > + check_flag(intra); > + check_flag(one_picture_only); > + check_flag(lower_bit_rate); > #undef check_flag > > - return profile; > + return 1; > +} > + > + > +const H265ProfileDescriptor *ff_h265_get_profile(int profile) > +{ > + av_assert0(profile > H265_PROFILE_INVALID && > + profile < H265_PROFILE_COUNT); > + > + return &h265_profiles[profile]; > +} > + > +const H265ProfileDescriptor *ff_h265_find_profile(const H265RawProfileTierLevel *ptl) > +{ > + for (int p = 1; p < H265_PROFILE_COUNT; p++) { > + if (ff_h265_profile_compatible(ptl, p)) > + return &h265_profiles[p]; > } > > return NULL; > @@ -171,12 +193,12 @@ const H265LevelDescriptor *ff_h265_guess_level(const H265RawProfileTierLevel *pt > int i; > > if (ptl) > - profile = ff_h265_get_profile(ptl); > + profile = ff_h265_find_profile(ptl); > else > profile = NULL; > if (!profile) { > // Default to using multiplication factors for Main profile. > - profile = &h265_profiles[4]; > + profile = &h265_profiles[H265_PROFILE_MAIN]; > } > > pic_size = width * height; > diff --git a/libavcodec/h265_profile_level.h b/libavcodec/h265_profile_level.h > index cd30ac5c50..e4e63dfef1 100644 > --- a/libavcodec/h265_profile_level.h > +++ b/libavcodec/h265_profile_level.h > @@ -24,6 +24,50 @@ > #include "cbs_h265.h" > > > +// Enumeration of all H.265 profiles. > +// The list is ordered to match table A.10; numeric values are an index > +// into the latest version of this table and have no codec meaning. > +enum { > + H265_PROFILE_INVALID, > + H265_PROFILE_MONOCHROME, > + H265_PROFILE_MONOCHROME_10, > + H265_PROFILE_MONOCHROME_12, > + H265_PROFILE_MONOCHROME_16, > + H265_PROFILE_MAIN, > + H265_PROFILE_SCREEN_EXTENDED_MAIN, > + H265_PROFILE_MAIN_10, > + H265_PROFILE_SCREEN_EXTENDED_MAIN_10, > + H265_PROFILE_MAIN_12, > + H265_PROFILE_MAIN_STILL_PICTURE, > + H265_PROFILE_MAIN_10_STILL_PICTURE, > + H265_PROFILE_MAIN_422_10, > + H265_PROFILE_MAIN_422_12, > + H265_PROFILE_MAIN_444, > + H265_PROFILE_HIGH_THROUGHPUT_444, > + H265_PROFILE_SCREEN_EXTENDED_MAIN_444, > + H265_PROFILE_SCREEN_EXTENDED_HIGH_THROUGHPUT_444, > + H265_PROFILE_MAIN_444_10, > + H265_PROFILE_HIGH_THROUGHPUT_444_10, > + H265_PROFILE_SCREEN_EXTENDED_MAIN_444_10, > + H265_PROFILE_SCREEN_EXTENDED_HIGH_THROUGHPUT_444_10, > + H265_PROFILE_MAIN_444_12, > + H265_PROFILE_HIGH_THROUGHPUT_444_14, > + H265_PROFILE_SCREEN_EXTENDED_HIGH_THROUGHPUT_444_14, > + H265_PROFILE_MAIN_INTRA, > + H265_PROFILE_MAIN_10_INTRA, > + H265_PROFILE_MAIN_12_INTRA, > + H265_PROFILE_MAIN_422_10_INTRA, > + H265_PROFILE_MAIN_422_12_INTRA, > + H265_PROFILE_MAIN_444_INTRA, > + H265_PROFILE_MAIN_444_10_INTRA, > + H265_PROFILE_MAIN_444_12_INTRA, > + H265_PROFILE_MAIN_444_16_INTRA, > + H265_PROFILE_MAIN_444_STILL_PICTURE, > + H265_PROFILE_MAIN_444_16_STILL_PICTURE, > + H265_PROFILE_HIGH_THROUGHPUT_444_16_INTRA, > + H265_PROFILE_COUNT, > +}; > + > typedef struct H265LevelDescriptor { > char name[4]; // Large enough for all current levels like "4.1" > uint8_t level_idc; > @@ -70,7 +114,32 @@ typedef struct H265ProfileDescriptor { > } H265ProfileDescriptor; > > > -const H265ProfileDescriptor *ff_h265_get_profile(const H265RawProfileTierLevel *ptl); > +/** > + * Test whether the PTL structure is compatible with the given profile. > + * > + * @param ptl PTL structure to check. > + * @param profile Profile to test compatibility with. Must be a valid > + * H265_PROFILE_* value. > + * @return Nonzero if compatible, zero if incompatible. > + */ > +const int ff_h265_profile_compatible(const H265RawProfileTierLevel *ptl, > + int profile); > + > +/** > + * Return profile descriptor for the given profile. > + * > + * @param profile Profile number; must be a valid H265_PROFILE_* value. > + * @return Profile descriptor. > + */ > +const H265ProfileDescriptor *ff_h265_get_profile(int profile); > + > +/** > + * Find the first profile compatible with the given PTL structure. > + * > + * @param ptl PTL structure to search for. > + * @return First compatible profile, or NULL if no compatible profiles. > + */ > +const H265ProfileDescriptor *ff_h265_find_profile(const H265RawProfileTierLevel *ptl); > > > /** > diff --git a/libavcodec/tests/h265_levels.c b/libavcodec/tests/h265_levels.c > index 66d72c63a3..9923f346f7 100644 > --- a/libavcodec/tests/h265_levels.c > +++ b/libavcodec/tests/h265_levels.c > @@ -275,7 +275,7 @@ int main(void) > } > > for (i = 0; i < FF_ARRAY_ELEMS(test_bitrate); i++) { > - profile = ff_h265_get_profile(test_bitrate[i].ptl); > + profile = ff_h265_find_profile(test_bitrate[i].ptl); > level = ff_h265_guess_level(test_bitrate[i].ptl, > test_bitrate[i].bitrate, > 0, 0, 0, 0, 0, 0); > diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c > index 3bdd2dd1b8..77f55ff8b1 100644 > --- a/libavcodec/vaapi_hevc.c > +++ b/libavcodec/vaapi_hevc.c > @@ -604,7 +604,7 @@ VAProfile ff_vaapi_parse_hevc_rext_scc_profile(AVCodecContext *avctx) > /* convert PTLCommon to H265RawProfileTierLevel */ > ptl_convert(general_ptl, &h265_raw_ptl); > > - profile = ff_h265_get_profile(&h265_raw_ptl); > + profile = ff_h265_find_profile(&h265_raw_ptl); > if (!profile) { > av_log(avctx, AV_LOG_WARNING, "HEVC profile is not found.\n"); > goto end; > diff --git a/libavcodec/vdpau_hevc.c b/libavcodec/vdpau_hevc.c > index 4cd7ce5621..a59a030b1c 100644 > --- a/libavcodec/vdpau_hevc.c > +++ b/libavcodec/vdpau_hevc.c > @@ -478,7 +478,7 @@ static int vdpau_hevc_parse_rext_profile(AVCodecContext *avctx, VdpDecoderProfil > /* convert PTLCommon to H265RawProfileTierLevel */ > ptl_convert(general_ptl, &h265_raw_ptl); > > - profile = ff_h265_get_profile(&h265_raw_ptl); > + profile = ff_h265_find_profile(&h265_raw_ptl); > if (!profile) { > av_log(avctx, AV_LOG_WARNING, "HEVC profile is not found.\n"); > if (avctx->hwaccel_flags & AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH) { _______________________________________________ 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".