From patchwork Thu May 30 02:37:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 35135 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:5c1:0:b0:460:55fa:d5ed with SMTP id 184csp31690vqf; Wed, 29 May 2024 19:39:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXpteJtSGkl/OrSb6dgyQel7qu2GTxmhN+1Gw+FXnF+Vbdx9NmHs8C7zuZnCVRpmkRpdMYhp6NwP/WKRJ496lqPufwVJ8mrhbcJMQ== X-Google-Smtp-Source: AGHT+IE7dKTTNd1cOZ06nVw/zAsDUMPcF1xsJTxTVzI0fz9ZC8BFjQo+BUgll2fKfV/IZLelNw2H X-Received: by 2002:a17:906:ca43:b0:a5a:90e9:c2a7 with SMTP id a640c23a62f3a-a65e8e78f08mr41984966b.33.1717036783072; Wed, 29 May 2024 19:39:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1717036783; cv=none; d=google.com; s=arc-20160816; b=PVnVlHy5uW7XdghdYpWqKND1q5JJP43haP7C5wpY4brj+FwkhF5+Qj10LrN+SIqrPk Y9qDnc8J9pYMWezSBnuGlehKXvfxJZO1ZRsVkj5/pXCwJrUbaaPKiBTH78lrJDKXAPVy GF30qZhRdQI3PNsxujkTycflKp8pxNfAVj+xiq4E2pRXD/xx1kitfh9CekHJI6JeALh0 EOs3rbs7aHGz/PytwRw4qcBOHvSvBpCwCZYBI76u8SAX86ImWtQU/TyaOqShY51m2u+P +2Fe8eqUtNpy6jt8+bPI4VfIzrzRTuH4+xSH2Eca6q8X4ALt43vNP/QE42oz6afaAAwY 0r9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to :delivered-to; bh=OPmvPCBHwtspoC4+20GBM3g2V1+4MAUOnaoc83MI5Xk=; fh=nenT92/WZoU6unXd3J6UhGUdod4piddKfVtctNBOh6k=; b=g2qLchmCcx7mMOu7L/dCGfQDrHOBGN//Tx6SUX8en7Dr/meIrh9/SnbFoGE5Qj1xjV rSro9qh3buO1H86D2hnUB6+t4qInm73PC6XtLlmsZgYewrSuBYs7uMDV89fsAvlESi1E MiTAsW000n0uFZBGCO3KYscW6PgTD28X4L0BZT8/NPWkWOEzwx/FXLDhwDiLnZgXBiek a1+7S7XrYd83WDe5tTrR8iHcG+aI4YIc1Jz60eVs4GBcYcwZxrOe2+t0onrsJD25GFKs AL4jhkq65nw+sh0KHiY8j6y4gyXuc0P+Dcda22mVRru1ug9Fl2Ogcsj/crxt3dhY3dRa 7r/w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a6471d6858asi161983866b.499.2024.05.29.19.39.42; Wed, 29 May 2024 19:39:43 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AC11868D509; Thu, 30 May 2024 05:39:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6D0968C528 for ; Thu, 30 May 2024 05:39:31 +0300 (EEST) To: ffmpeg-devel@ffmpeg.org Date: Thu, 30 May 2024 04:37:08 +0200 Message-ID: <20240530023927.1205442-1-dev@lynne.ee> X-Mailer: git-send-email 2.43.0.381.gb435a96ce8 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 00/10] aacdec: add a native xHE-AAC decoder 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: , X-Patchwork-Original-From: Lynne via ffmpeg-devel From: Lynne Reply-To: FFmpeg development discussions and patches Cc: Lynne Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: d6fSDvSAbCel This commit adds a decoder for the frequency-domain part of USAC. Changes over version 4: - Actually reset entropy decoding upon configuration. - Support for LFE channels. Lynne (10): channel_layout: add new channel positions supported by xHE-AAC aacdec: move from scalefactor ranged arrays to flat arrays aacdec: expose channel layout related functions aacdec: expose decode_tns aacdec_dsp: implement 768-point transform and windowing aactab: add deemphasis tables for USAC aactab: add tables for the new USAC arithmetic coder aactab: add new scalefactor offset tables for 96/768pt windows aacdec: add a decoder for AAC USAC (xHE-AAC) fate: add tests for xHE-AAC libavcodec/aac/Makefile | 3 +- libavcodec/aac/aacdec.c | 371 +++--- libavcodec/aac/aacdec.h | 219 +++- libavcodec/aac/aacdec_ac.c | 208 ++++ libavcodec/aac/aacdec_ac.h | 54 + libavcodec/aac/aacdec_dsp_template.c | 162 ++- libavcodec/aac/aacdec_fixed.c | 2 + libavcodec/aac/aacdec_float.c | 4 + libavcodec/aac/aacdec_latm.h | 14 +- libavcodec/aac/aacdec_lpd.c | 198 ++++ libavcodec/aac/aacdec_lpd.h | 33 + libavcodec/aac/aacdec_usac.c | 1608 ++++++++++++++++++++++++++ libavcodec/aac/aacdec_usac.h | 37 + libavcodec/aactab.c | 560 +++++++++ libavcodec/aactab.h | 22 + libavcodec/sinewin_fixed_tablegen.c | 2 + libavcodec/sinewin_fixed_tablegen.h | 4 + libavutil/channel_layout.c | 4 + libavutil/channel_layout.h | 8 + tests/fate/aac.mak | 8 + 20 files changed, 3286 insertions(+), 235 deletions(-) create mode 100644 libavcodec/aac/aacdec_ac.c create mode 100644 libavcodec/aac/aacdec_ac.h create mode 100644 libavcodec/aac/aacdec_lpd.c create mode 100644 libavcodec/aac/aacdec_lpd.h create mode 100644 libavcodec/aac/aacdec_usac.c create mode 100644 libavcodec/aac/aacdec_usac.h