From patchwork Wed Sep 21 01:35:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38125 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp2315021pzh; Tue, 20 Sep 2022 18:36:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7dXvJqeso7vJ/0A+Ga6kqHr1Ng8BxPicvk+dNpQlemLWysZxEA1pkmzUwhSmcZO2R0SgfB X-Received: by 2002:a17:907:3faa:b0:780:1b17:67ea with SMTP id hr42-20020a1709073faa00b007801b1767eamr19299155ejc.464.1663724162537; Tue, 20 Sep 2022 18:36:02 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id nd39-20020a17090762a700b00781c9313d6asi1453531ejc.1.2022.09.20.18.36.01; Tue, 20 Sep 2022 18:36:02 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=DKOsewX6; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2121668BB37; Wed, 21 Sep 2022 04:35:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073069.outbound.protection.outlook.com [40.92.73.69]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 68E2668BB18 for ; Wed, 21 Sep 2022 04:35:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=faRHBVaIRzEqp8iq084WI9cfSw+hjbGpLNSuRfdeMvzd5o3qFIMc+sM3MFMoghh6Q6GyaIVMM89gAhHrzEXL/NYf8RlosVh4Hyj2MuPXjtmz5wkuxsZZSbRYroSj7ZvGhAYV5b/Rya36LbHoVSrBGYpoHeBjX3xGhXU+PgTZyjgIqbufk7Ef8N3zUF3JSoUo7YvvuvGFZgL07HSZ3jnBNYtxQp2Py78eFiuR8xGZ7lgHidvM63l9rtXxaey3lSGJL6OEFsslewNm+o9QeiNtVWjOkrbCqJHAjd0tOP3CaFfR0sE6/gra/OOIK4wTVzHdo5S8O9zJ3wAVYbXH8qQxgg== 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=ay6YsF4nC/8aCETGqRWf9H0FKJNLVCA49bOPlDObzCs=; b=NuBtb2LMZEpfIXWOE4JtNzOiVmmT+RNy9b5zN/R12+Ev4rN2Lj1mGaDs/LvdF2cl2/NXS9e6eKUZEUXNUgTaq5gJNY2Z0kzFHiKb+y2+RxDLJg2hj9SXDlpTpGrirBE/2VqprVMnxgMbOi/7QDHTAv7F0K2XNEewPbYIui5ra0XTy1Jbv+73EVSzdd9SNbO8CF57bEUVU+7IL9J7B6CVKn5PTrLniMsvegXLFooGwybBkqYnJmD78Iz6C0aec6Ja/KWCnZeZlO4JGm9i2/fenf3hOmnYp7/ieD7alUqLoL5/qIFPkxxm/e89XwrnWS3Xjh3L3HmT5rl1LmILWHPrRg== 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=ay6YsF4nC/8aCETGqRWf9H0FKJNLVCA49bOPlDObzCs=; b=DKOsewX6BXCR8+YSaDIJT1Rke3OACPlB+H0d6zugpeQjW4WEkLifWQ8Nsc0ViwuLROT+j/iV7rUoerBDPaKwJVTzRK7jHmYEcm/PuUQgf/I6oNiwq8lMY9yW2vzBwkJEe6JCRJVUDYllGxdtydp/7/H9eIHM1cXcL3tjr26BP+yHFBXKnpdKbqt2RAIKD26nP9uwqLlsbDcEhReVZvBScGjOHyzujzX1c7tQ7c3rcP+CJdDhGfn5jaORDqi8IgLDvD4MraDDALZ1Fhn7X2VKolno81EDGhWLfw9jMpXlzuPhE42yS6Ds+08xWBDqwfUjOVPZ6XtoUF0BZ5DD7QJNRg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0206.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:277::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Wed, 21 Sep 2022 01:35:46 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%8]) with mapi id 15.20.5632.019; Wed, 21 Sep 2022 01:35:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Sep 2022 03:35:40 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [cVYOisVgWf4k+SZvAMh3eknRAn5Wpdi2juZZbrUOq7U=] X-ClientProxiedBy: ZR2P278CA0044.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220921013541.245789-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0206:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a6e8f15-ea7e-45c2-7b07-08da9b719b3e X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmrSLXKEIOho5rOHknB/H9spvn5PpjlzCyiIJvthVjUeWDNuPYx7SA95IIJ5D+wfkP81JeQ3ug8Nuzr9YM8MNzxddlJm9be1KzpFkSMRVgpm5HhQ9Z6AaKBdDb04j4tGbLA8fa/0gbb/vv2gbI1z14+4OjnLU/FJoRGX6EWsCg0n0I2mZEoUdQQdaaojdv/jwQzrfGguvkmNSTpDan+VcNGodnHGa7UZU69ON7qsAN0A2CBOwCoyDpINdje1UHq033uZ3OhZEjd0GbCiZwVBwIKwJ6U8kkWsfxP0gncG4U7DlHpuDap/GnNcdJwt34P5NWYhh7mBKr3cN4jwx/799lnQTLzsORetF5a2rRXw4ldbFtALjCBOmOxXTg8GoRR4I7FGIy6p5wA3gT2yslKPo2S42iwJjaSDYGScqqUfUyyk6RPRmhzm8vN9MWgGq8RudwKrWe+WxI+Q3o8T4Kj7ZhSWpNCny+oNPohZW/7BWosY7WzfJTy3smX4Wb2Z0jANQSeHn4P7R4Cai3p0hRDOplfhU6/sSc6tVR+DPs+KDYMtiPXkgUCKMecq+/FMDsS2FMi/LR8uIDk0u4lk+na90ZS0Q5+8Y7xJThTPRckL3RP7aQhs4Z5uB1ZWGDUOSHBoKLXAJZeg2hrKzoWAyeUn6fozAjYYI/3U4vP5PKcXesZgYa3bcrUJ/rzmr+FVcvMmQ9UzAyx9t0/5WWSzV0kwNyP8QMeWe3gMCxiAGK66CyuXMi76rl+PKXWMgfnd7eYF5oE= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EWMBbDR5C0KEPrPKdM5GeWkrY4E5cIbHIOm+IUQUGb2pUxxI58HrhWqzIDmafZ/PqB7oUxdx+uhbpahJOk7Tl4mLY/WJzLYxGacnbvbqqxzoS43GENXomKc+zeiVDYUcX1XZMeuNJJjZBV+yf0+1gsJ4jGzeLw+efjhdHMpec2TVmPm/o0ZB3jiVfz8l6e5xgm+rWNpGwpEfhiowrERrQU+hNxiP3P/emILFmov607yId0ZcOXV584gjwNo79Wrebvq8mTzrxVINLrXO9/gbEz4jnvI9yZHiKXWqXrMAjgHn8w1pDBgegyuYCR8romCyhvX67MExeh5RPoXH9MGZ4NEolIxJwuxxRjptBcCXFCnAMjOkh8yDoX2Pyowx9nntBR/HVPVKnzyZEV4k7JiMNJczt8yXLRhzd1CF4P29R37SjQ0riifErdxfXnDJwf/q21nkreunm/m/XX2DJAF1f0gkE1welAesY1K8/JE2FjZNf/n8tNTQlCO6X8dXfw9xU/e1U9HSK16lEzCPUrB+TUW3SEKeBkzUdNM0QS+q9yz4mSfTby7ILB5Zz5xRzf3rfSGwa/X0PUHp1SAlbQD+m+xoDHwFcaJFWnB/O17NSztAz8dQ4hWIdKhUaXWWZguVz02m7zW2WT6EmfuN2C1pgQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ChbEjFH9kNmWx0kFuf8/KOFG7Xv/YqyjzmNaSPvxp8ZBrlgnaf13Q9VHvddzEKLA+79xtU6yNxPnISr7zXKcJDd9Kug8AWq6MdiMoIY2WVoV0QWwXjTgRSRoEci44X2hNFuJ6xlgh3i143wxeMZQU6Y0ZUg2URlZ8RPJ9H0qARxd1Fbh7q50lQJGZZzInqRbye15CMFmuaOkHkXoTmfKo0KtSJDyRlg4d2Vl6Lxsb7DqAF5+XJ+k81rkydQH44BrTJD9y5U9mr2ghSeRdnrsBbNUWtaqwKbombr39x02k+UAJysq1piaF7Jsvq8sl3aahu/TvZDSUaLPZNo4ARMzJpTuOJo95mA3NEkM/dK+3gANXaVq7xi6zcJ1S7gcNfRJAiwhbSV6slQbwHKkwreKabdYPujepZgcRzZT40VVkEA+dwrWBr2Lkfn7F+w4ZiJV6bm1PSK1k1X4quZyCyIorp2Io0Sn2Rs2eXy3+noBwGZUcdvFv+w6xp7s/O0e6MBc5qXCBdqjUirVBRsjf4QZgk2E4D+pFM7GE7lW45+Roe7hRlNX0Y1ZZq1YVz2LCfobXEkWZ9kKnbdX60E/FVJiA3Dkwc3JoHlE+KenOo/Up+7x4vFbW9BW70UikHUB2Lo0gawmYY/f7JX/ghIP+gD7xL0LihVWFII+TTExYhuTf0+gZ7o/nLKczi7q6IK6+sh68XsaC2qrvtX0u+pvqKRhPWaFp7NxyAbBj4dikk/KFgpEuXFxvR0ri5auRcuGr/y8p3r3iRwf1sHmJLtlf2Js1Y0lXiZpm8w3dBZ7vU4PHMMVGNEvDe9PQ7+Ze59YhwCLuydnJfOoGfv4Aj7cvdfIQTDfbLkR3N4iTyhBFv7x/LUly1K1sXQzjvXQeh5SPFvGSX7tLKhsp8UoMPvWNNElS0r/84l0pSfXJ1UKr4FSEWUl++xst8lmx1+WI0J7C5nwPSLcKNG6G2HUR94tRH8ycE+4JqdMYfXnC2Rgys7D2lAtN4Yrsuhe5S/iYA7Xd2MhC8W+9HOQuH6E0PhxWfdgnx6M6iN9l+evSU2FoSy7/5kqvCu62QXZZL5emeSu4ezSR4qCe7NwQwYgCMgUPLCedbUkV5Cuoxm5dNMcMWaslsfRw7vXgrTd9+Urw/l5btDgvUnNNj3szKZbem7WE9zsavhigqszi2FlCaVl9qwKZlj9v0Sg8rA+4BC2VoAZ9XOuQLVBedwwiztohKDHPm4qG7+RpJcMXAH80xT64J5884Y8a1wdkmZwM5sjlCKnCfcfwc+piYVM/s0Xan+qvAX1GkkmpImQj/4rKekLq3myLib+mi4mMfZ6XH7/wnSZJxdr X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a6e8f15-ea7e-45c2-7b07-08da9b719b3e X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 01:35:46.6394 (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: DU2P250MB0206 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/avcodec: Deprecate lavc chroma pos API functions 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: n4I0nC8xW0oW avcodec_enum_to_chroma_pos() and avcodec_chroma_pos_to_enum() deal with enum AVChromaLocation which is defined in lavu. These functions are therefore replaced by av_chroma_location_enum_to_pos() and av_chroma_location_pos_to_enum(). This commit provides the necessary deprecations. Also already make these functions wrappers around the corresponding lavu functions as not doing so would force one to disable deprecation warnings. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 5 +++++ libavcodec/avcodec.h | 6 ++++++ libavcodec/utils.c | 20 ++++---------------- libavcodec/version.h | 2 +- libavcodec/version_major.h | 1 + 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 8ead37dcbb..858a9c18bf 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,11 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-09-21 - xxxxxxxxxx - lavc 59.46.100 - avcodec.h + Deprecate avcodec_enum_to_chroma_pos() and avcodec_chroma_pos_to_enum(). + Use av_chroma_location_enum_to_pos() or av_chroma_location_pos_to_enum() + instead. + 2022-09-21 - xxxxxxxxxx - lavu 57.xx.100 - pixdesc.h Add av_chroma_location_enum_to_pos() and av_chroma_location_pos_to_enum(). diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 0769577338..7365eb5cc0 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2496,6 +2496,7 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int linesize_align[AV_NUM_DATA_POINTERS]); +#ifdef FF_API_AVCODEC_CHROMA_POS /** * Converts AVChromaLocation to swscale x/y chroma position. * @@ -2504,7 +2505,9 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, * * @param xpos horizontal chroma sample position * @param ypos vertical chroma sample position + * @deprecated Use av_chroma_location_enum_to_pos() instead. */ + attribute_deprecated int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos); /** @@ -2515,8 +2518,11 @@ int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos); * * @param xpos horizontal chroma sample position * @param ypos vertical chroma sample position + * @deprecated Use av_chroma_location_pos_to_enum() instead. */ + attribute_deprecated enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos); +#endif /** * Decode a subtitle message. diff --git a/libavcodec/utils.c b/libavcodec/utils.c index ba64aaf32d..0e01f18497 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -353,29 +353,17 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height) align = FFMAX3(align, linesize_align[1], linesize_align[2]); *width = FFALIGN(*width, align); } - +#if FF_API_AVCODEC_CHROMA_POS int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos) { - if (pos <= AVCHROMA_LOC_UNSPECIFIED || pos >= AVCHROMA_LOC_NB) - return AVERROR(EINVAL); - pos--; - - *xpos = (pos&1) * 128; - *ypos = ((pos>>1)^(pos<4)) * 128; - - return 0; + return av_chroma_location_enum_to_pos(xpos, ypos, pos); } enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos) { - int pos, xout, yout; - - for (pos = AVCHROMA_LOC_UNSPECIFIED + 1; pos < AVCHROMA_LOC_NB; pos++) { - if (avcodec_enum_to_chroma_pos(&xout, &yout, pos) == 0 && xout == xpos && yout == ypos) - return pos; - } - return AVCHROMA_LOC_UNSPECIFIED; + return av_chroma_location_pos_to_enum(xpos, ypos); } +#endif int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, enum AVSampleFormat sample_fmt, const uint8_t *buf, diff --git a/libavcodec/version.h b/libavcodec/version.h index a3441795e0..e973bb1c4d 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 45 +#define LIBAVCODEC_VERSION_MINOR 46 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h index d9386792de..12f863deb7 100644 --- a/libavcodec/version_major.h +++ b/libavcodec/version_major.h @@ -52,5 +52,6 @@ #define FF_API_SVTAV1_OPTS (LIBAVCODEC_VERSION_MAJOR < 60) #define FF_API_AYUV_CODECID (LIBAVCODEC_VERSION_MAJOR < 60) #define FF_API_VT_OUTPUT_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 60) +#define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 60) #endif /* AVCODEC_VERSION_MAJOR_H */