From patchwork Mon Oct 3 22:45:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38549 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1575919pzh; Mon, 3 Oct 2022 15:47:15 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7Stp1XVCV2xPEV6eKsWYxp6qky0g0YpU3FpAeXwJK/DjTittSXHWtffA0IJ4OIKzcumm62 X-Received: by 2002:a05:6402:4503:b0:457:e6ac:9785 with SMTP id ez3-20020a056402450300b00457e6ac9785mr20579772edb.416.1664837235146; Mon, 03 Oct 2022 15:47:15 -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 w7-20020a05640234c700b0045157918d66si10679342edc.355.2022.10.03.15.47.14; Mon, 03 Oct 2022 15:47:15 -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=COEtFQlm; 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 DFF9068BC25; Tue, 4 Oct 2022 01:47:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2036.outbound.protection.outlook.com [40.92.58.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D480A68BC07 for ; Tue, 4 Oct 2022 01:47:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J7lNmx1Y9VViEqIZ18Mi5bYfcXOEWGvZhWhXRaXvULVI9F57zk6CwCuRYcEXadLF+6/sEu4vgX2KlRgmOi24DIpd5kk95E2/CAongbn2XKuafa/WyROg7FOOnFszE700eKz/0DETPMSkCiujYZCrD+AHAD9AMjdc4ZhvhijJ3q0I8ePKIXHcePKAQvDnC+jhhmuj+bMAZTlgNEHleAgCv8GiNZdxqeeHXqXnaZmAibNlGeLUZzXneWF4fbo0oNx0ily2sd16o7Tn7JEW0CMVOfSRlZvBfd2+Mm+n9tnES7lVAgYrO84NvuDQMCgrdKToWpyxBNvhHSycVbDGxRTTmw== 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=H/GV9daLFBoQtsREodOw1javlIxqecLKUo1sPZXQ/84=; b=EVuIEjR5zc0tPvNZfYByWxEQucXzH9IidXbmkgMAQEuqwEN436jUDd8wveiWU9bNZerK6+tSNeUosjSD4gyCpYYNyZuY54Qmt86VI9TYNKWc2w7dZoFhOLUGwQO32jUO4uRzWm8ecVX7xuV0JVRyYr+LjWvyLISAbH/TubdnkJoQK5Pj/YIR+PVj44QtK1P4CFiQzjH/ETAxLyn7pnPk5JkDylS/pvrVecX06KoA028j+CPYIMwYVKvZtsKGGVNtwk3qvTzehT/ntJ/UHCFX42U0nfp01O/GmB0HhrS7oy2sOSgZHK3PO5ClOJJjOJtBTjqYiQFe2muZ/cp61NM8kA== 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=H/GV9daLFBoQtsREodOw1javlIxqecLKUo1sPZXQ/84=; b=COEtFQlm40HwOTph+xHZZP64QTDiV+l3NM6S5lGHJcNmvogTXoppCmZ+flL1HXZ504aBHZLLynZ0k9u8lJMrZjMcMWiT4JKRqR/OFZ6Xw3ncPwEatNitxbUduTD4dbkEmWjlPBmhPAF5syyw9PX/h83mxyO0I3ne50i90iB/yA0vQMPTrvX+HW46NkwYZZhCof1OjMfNBR++gwOS6HN49LNuCmQyQe0Ermj1MY9gmUEWa2oLCKP/cc+s2Ub8ciPsKly/S/AnFwlaYftBFhPE8caFe/xlFKHUvokqfIaxW6Y0qG2FaxNwVm0FEO8dX94w7Doj/4zZGcDT3H0KifMQ6A== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PAXP250MB0470.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:283::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Mon, 3 Oct 2022 22:47:06 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8%9]) with mapi id 15.20.5676.023; Mon, 3 Oct 2022 22:47:06 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Oct 2022 00:45:04 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [i0JG8b+3Bemlt0JKtdULIeLBMXwPef6PTD6LxQLl/MA=] X-ClientProxiedBy: ZR0P278CA0056.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221003224505.1846824-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0470:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b2e3274-4301-46c2-9b59-08daa5913284 X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHXgXBGESH14SR3yJncyDS0I/b3vIW3FxkHf29efWIropvwa+FY7ofSEeLQG5rwYhJlUUKKaDhfni6LvU4xiM9l/1cC4ORjOTjhv5DUU97M+TS+pVnOzt+qTIE/3YxwzjjVvdoaMFcS+yTt9mSPQ6yxqnIKJLB+AN5mDKrAlz92pw1FUEG6f73R8+CXHhTVqKrl2zD51tK7D5Kly/4rUmRFhLTM9AUxBtPGqoj1yJJYse7FTW+Go0LZSH3lI39250bY4f6+FkAYfGYJi3FVnAMMGKtaa2+gBhKWoePrMABaF3o5WH4P8RpvrVbB+F64HmOxri6VAi85kvJZaWXGodz9h+x2NDtFdI01eh9//xn7tx1khFo1m61EH7qUjwaL/GHq6b51GHS/KEwMeoTH/14uaQobpIHTBHIpyxrAY0/3J2TAqnqLneF3Zq2HAxLZGbt/C+JKPg1RIeL/AO3DxRcxWwA6nHxpYeRXXdXclxINFIBrbXdAGTHYjYqsxbqdVi6A0e+glb3lm7PLOlvNAQHHhF2Nylr5hqFauEdPQZfApbu3MAeDnhQmzBnWgjDP8W05WxHClF7X5mfnkzYVq8Sq5ZEaISplPOzn9+TfFzbAoc4x2nW2658TFXj0RlxTQlszPHeMfkDWXz9vV8HQzegc7zA33EXXFnUf7AvJX3qoK1giNCd/+cncOoroUSQ7vy/v429rVZSvFgQ== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cBc4r4HMovS5O+K/Kp07FWqJ4VsBSCjxfI06/nv1oEKty0oI64BKUyVqOzzIVWep96eCEZrDB5YwKYJFQRYdTJETJCK2zatFUZ3AwZCjc/tJsMVbChPTG5U310PIttu7L36mpv0QzwnIhyVLr0rWaTLb7dN0haReWgRXoXbCSz6TzBTjAGbifAZ5MAT5945rJlX7enAhAS8MQJYMvUaCDkN9zvJLpODe4qTjIKN7TNS/+C6xH51eBflrpkbyB/oIvtQWT/Qf85pXY29ZH0YD9IJPjho0jTlpnUGZpSzHyT/P02yNJJJ/nG7PcrgY1W90hkA463Rn55HWNzB4zk/yPhmQ3uwgJJQsToDtWpqwL9uya/ampzcs5OVwSdXYffm1zPGPUKUpdGmFvYX5zWiVDfin6mQvuw/A4chhK1K+Q9pfSZvXNZNTOTIc2jzI3v/xmda9XXJC9sHrPQeRgS8PGfxYvwak7D6RmNzwBMTvwXeH1wbadRANLczUqCU3jFeKFJPMekBeGf4vD7XVGu4MI4pzNHrwSpgGhq5CzCNQhcrihpiy6AB3BcmqoQ3yMF5bk24OPemg6mPEbpbCN0Yg0ZsyhnYg22txZDQmxif+J03+Sw1soRO/KB9BS5/mTTyF/YubxTtqKq6qcmeoG3+5e98PctT4qbKj4zcfihdrbFZbi8pjzgfjowcX5otKYhTr X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oGpaQfJnEXp/Hea//JxZOAaXqCAJwiDK1IvHYneEQHQD8jjvLyVkQ0kZCdh9Jsj5vZ6xTVE1UGFeBIY1/fJ01AY1Aq6hKlRtFCnVA36VLP0r6dRBFV4MIaRRNZNdXr82wuYBXGRGMVEF6didOsrx8KxabDcvsD+t8ji9Er8lQ8VHw3fDfQ35zSXigLAVMGE52uW9KnmQo+vGBjgsNjzk7kAaDXG+Afc3tQFeu3tXv8ME3or7tzLyVOsQGIhl8F8EV6o64U8/EEADFkZAZGBxX8+aXmmJ38tmmtL19QvP5X/WoRjEUk/IHKGcfWsZx4c0vx5yzjaXngLD81xaNMC4neyy0dj6p6Wras/XxGhG1FreqISz4h+nYYSZHR+gKgZ5Oc9yhzfcRreAlV0KGaxrKk6N34DakXNwBVJFsmAmyVizOdTh1L8FgHCrx91yU0cdX5cX7/92zrIuMMKDCveR8Kzpga6q+56UCqlmfvi5eB/f1aVjU1V0U+8Ol1TBjris0aGxEGuVk6DR0a4RknP/QKc9Ee0NYsNvn00Dp3KP8f+FJa0UnJK3f33dP1mJFjQmirpZzPrGc58dJyyNcvDod7NGdNNTJarVqd8avlScLjCEOjKMRYzlmEe4MW40TdJDLVcQpEs9hn4xRPHENqgYT5fW6ny558jlH9yoKko0vB9Ep1ob43sLEYKV9fY4LV1vQEjYCKcPc277U4SnoQao9XEmmS1Tt/gtU4ULTM2LsS8aYplYuuOJRp3EOAIea8Owa//HdeSh5iKwJSlSK2e40sYXdq1KFKkn5jxXaEiw2Cleze5824jykF3S9IFHubZrvEkzInIXHWQN/QDb4hvWzHsSbdJ+qpqB2W+TPLKNRGOooImGO5A5HQlOxMAFZfseQUOO9PCaxaNq/vKEljg+VSgZkcNNrct0EefH06GzhPhQh18gtkufIQTfx0HNCVr5fgLUPWePQ7XUoOyy5XlqK3iWDSgClORES0VPp6C5h+iMv46w/miw1Fuwk3IYoBJoySitG9AMlDRlNR6ROTTdO1tx//HDBnli4RatFDOaSxma7JkgR/uTAa+9JEckCg4QskKB1vTHK7f4AD4JuCK41B8IOeQwQQVDl4qtZPSjtasGFoHeFCoiWma9mqttQlT8/YYIYWnvW/TciScWo4E00Sx/9+pELz52Fyyx1IviJk5IQBhOJYlBPQlzo/TdVqOrt4oRUBK1I9cSS79hGkFv1+XcNImKyeg8VJZHaGSjOrrkipImIYFm+NKl4Jc4HgyQpGfF7DtZoVtMtLviCR2A5ePiDmW2AGSUpoVoCnXgo5Q= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b2e3274-4301-46c2-9b59-08daa5913284 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2022 22:47:06.4300 (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: PAXP250MB0470 Subject: [FFmpeg-devel] [PATCH 8/9] avcodec/opus: Move defines to better places 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: KNL+J3a1axiG Move ROUND_MUL* macros to their only users and the Celt macros to opus_celt.h. Also improve the other headers a bit while at it. Signed-off-by: Andreas Rheinhardt --- libavcodec/opus.h | 9 --------- libavcodec/opus_celt.c | 2 ++ libavcodec/opus_celt.h | 10 ++++++++-- libavcodec/opus_pvq.c | 5 +++++ libavcodec/opus_silk.c | 3 +++ libavcodec/opusenc.c | 2 ++ libavcodec/opusenc.h | 3 ++- libavcodec/opusenc_psy.c | 5 ++++- libavcodec/opusenc_psy.h | 2 +- 9 files changed, 27 insertions(+), 14 deletions(-) diff --git a/libavcodec/opus.h b/libavcodec/opus.h index 023bc9daa1..283d9d9f7a 100644 --- a/libavcodec/opus.h +++ b/libavcodec/opus.h @@ -32,18 +32,9 @@ #define MAX_FRAMES 48 #define MAX_PACKET_DUR 5760 -#define CELT_SHORT_BLOCKSIZE 120 -#define CELT_OVERLAP CELT_SHORT_BLOCKSIZE -#define CELT_MAX_LOG_BLOCKS 3 -#define CELT_MAX_FRAME_SIZE (CELT_SHORT_BLOCKSIZE * (1 << CELT_MAX_LOG_BLOCKS)) -#define CELT_MAX_BANDS 21 - #define SILK_HISTORY 322 #define SILK_MAX_LPC 16 -#define ROUND_MULL(a,b,s) (((MUL64(a, b) >> ((s) - 1)) + 1) >> 1) -#define ROUND_MUL16(a,b) ((MUL16(a, b) + 16384) >> 15) - #define OPUS_TS_HEADER 0x7FE0 // 0x3ff (11 bits) #define OPUS_TS_MASK 0xFFE0 // top 11 bits diff --git a/libavcodec/opus_celt.c b/libavcodec/opus_celt.c index f1fb88a56d..c2904cc9e0 100644 --- a/libavcodec/opus_celt.c +++ b/libavcodec/opus_celt.c @@ -25,6 +25,8 @@ * Opus CELT decoder */ +#include + #include "opus_celt.h" #include "opustab.h" #include "opus_pvq.h" diff --git a/libavcodec/opus_celt.h b/libavcodec/opus_celt.h index 8d92b86b07..3aa96244e1 100644 --- a/libavcodec/opus_celt.h +++ b/libavcodec/opus_celt.h @@ -24,9 +24,9 @@ #ifndef AVCODEC_OPUS_CELT_H #define AVCODEC_OPUS_CELT_H -#include +#include -#include "opus.h" +#include "avcodec.h" #include "opusdsp.h" #include "opus_rc.h" @@ -35,6 +35,12 @@ #include "libavutil/mem_internal.h" #include "libavutil/tx.h" +#define CELT_SHORT_BLOCKSIZE 120 +#define CELT_OVERLAP CELT_SHORT_BLOCKSIZE +#define CELT_MAX_LOG_BLOCKS 3 +#define CELT_MAX_FRAME_SIZE (CELT_SHORT_BLOCKSIZE * (1 << CELT_MAX_LOG_BLOCKS)) +#define CELT_MAX_BANDS 21 + #define CELT_VECTORS 11 #define CELT_ALLOC_STEPS 6 #define CELT_FINE_OFFSET 21 diff --git a/libavcodec/opus_pvq.c b/libavcodec/opus_pvq.c index a4e44b7a14..79101847af 100644 --- a/libavcodec/opus_pvq.c +++ b/libavcodec/opus_pvq.c @@ -23,11 +23,16 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "config_components.h" +#include "mathops.h" #include "opustab.h" #include "opus_pvq.h" +#define ROUND_MUL16(a,b) ((MUL16(a, b) + 16384) >> 15) + #define CELT_PVQ_U(n, k) (ff_celt_pvq_u_row[FFMIN(n, k)][FFMAX(n, k)]) #define CELT_PVQ_V(n, k) (CELT_PVQ_U(n, k) + CELT_PVQ_U(n, (k) + 1)) diff --git a/libavcodec/opus_silk.c b/libavcodec/opus_silk.c index f9d67f4fb3..fd1e83659c 100644 --- a/libavcodec/opus_silk.c +++ b/libavcodec/opus_silk.c @@ -26,9 +26,12 @@ #include +#include "mathops.h" #include "opus.h" #include "opustab.h" +#define ROUND_MULL(a,b,s) (((MUL64(a, b) >> ((s) - 1)) + 1) >> 1) + typedef struct SilkFrame { int coded; int log_gain; diff --git a/libavcodec/opusenc.c b/libavcodec/opusenc.c index 06f71876eb..d082b86056 100644 --- a/libavcodec/opusenc.c +++ b/libavcodec/opusenc.c @@ -19,6 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "encode.h" #include "opusenc.h" #include "opus_pvq.h" diff --git a/libavcodec/opusenc.h b/libavcodec/opusenc.h index 32d23deead..4d691d6a7d 100644 --- a/libavcodec/opusenc.h +++ b/libavcodec/opusenc.h @@ -22,7 +22,8 @@ #ifndef AVCODEC_OPUSENC_H #define AVCODEC_OPUSENC_H -#include "opus_celt.h" +#include "libavutil/intmath.h" +#include "opus.h" /* Determines the maximum delay the psychoacoustic system will use for lookahead */ #define FF_BUFQUEUE_SIZE 145 diff --git a/libavcodec/opusenc_psy.c b/libavcodec/opusenc_psy.c index 3bff57d347..9b11651dbe 100644 --- a/libavcodec/opusenc_psy.c +++ b/libavcodec/opusenc_psy.c @@ -19,10 +19,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "opusenc_psy.h" +#include "opus_celt.h" #include "opus_pvq.h" #include "opustab.h" -#include "libavutil/qsort.h" +#include "libavfilter/window_func.h" static float pvq_band_cost(CeltPVQ *pvq, CeltFrame *f, OpusRangeCoder *rc, int band, float *bits, float lambda) diff --git a/libavcodec/opusenc_psy.h b/libavcodec/opusenc_psy.h index 0a7cdb6f2c..67e96b2fa5 100644 --- a/libavcodec/opusenc_psy.h +++ b/libavcodec/opusenc_psy.h @@ -26,8 +26,8 @@ #include "libavutil/mem_internal.h" #include "opusenc.h" +#include "opus_celt.h" #include "opusenc_utils.h" -#include "libavfilter/window_func.h" /* Each step is 2.5ms */ typedef struct OpusPsyStep {