From patchwork Sat May 25 02:27:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 35132 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:542:0:b0:460:55fa:d5ed with SMTP id 63csp2097888vqf; Fri, 24 May 2024 19:28:39 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWYTjwZL56smkY9QE4zby5RF4GLeiLMV5E2YaRMiHhOpNjVaPaydmya4iByYgOmuNfDincSBzWIrr5hW4PP7KosDVtdHRshTEDrvg== X-Google-Smtp-Source: AGHT+IH0HGSuzATCAZQQSr36HJ2UlgSxIMSQnTAP//PfkI9LK6bEuB6Jbv9m1mLk72u4xg2uhuiM X-Received: by 2002:a17:906:1517:b0:a59:a0f7:7ddc with SMTP id a640c23a62f3a-a62641a33ffmr222005466b.2.1716604119306; Fri, 24 May 2024 19:28:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716604119; cv=none; d=google.com; s=arc-20160816; b=zFOHTSQ4QZTWn4rUJG1EVpGKFUR0mA1wz2e+IvJb47UnQ/OpDbZGIvuaSOmcmft7Yh zPpoAix/PUnPY4zuzre0RM27/d3hxbW1u5ac7SXfCy+jH4Yx/YOH35FtbWaRNDUdRNT2 rgNRkyopujn2SQut1aKFgDoV7XL++rWQoV4WtHpdHwyUpWI7Ox9067Iqtl5/kKjjDc+t HvvSjF/yg2x6F2pOW8RFUEWociKtW+8s3kvTKPqddJi7GU4CgADBikZ+5VSyudNt1kHU b9vuJLJwooaFYODusUTKDRvlG1VaUsVNxW4k0wFV5ZH0Uk7MsLENw2TliiHTxHiRY2uZ ebDg== 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=uqGTY+jcDRzBwl1A6SAzjdhOeLc2SUXvtlo6OLGI7RE=; fh=nenT92/WZoU6unXd3J6UhGUdod4piddKfVtctNBOh6k=; b=oej+oO5rsSPFNv6B2RbD6saVgnX/VNY6IUdwUoxotrpp9NLtHn9BEYm6K2fHr9W9i9 bHLVyjKoq67sQVUcDVyJNdtdDuDox11rWlDmBScn7olIHvyR1rZrleNPS6UcLVji/tnB 2SmJmKyFu+8lyrVn/ztrTxAfmn5BIFYt+Pm3j4S3xqpQyl/EUS44oL1E7N/PHViZ4hw5 dTqxqVIQ8eQYk5in1XuvINe63mWupI3cM9C2HBmaZQNo1gGkCPP4xiX4SuuQwWz7DeT3 RWUuYxk6Y7TKNT/5kfxsROrAvo3tnjGzdpXnIyif6gto82QfZj/razwJBEbZbM8PLqLC RWLg==; 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-a626cdd4bfcsi136829766b.1027.2024.05.24.19.28.38; Fri, 24 May 2024 19:28:39 -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 E443E68D5BF; Sat, 25 May 2024 05:28:24 +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 55E9E68D22E for ; Sat, 25 May 2024 05:28:17 +0300 (EEST) To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 May 2024 04:27:53 +0200 Message-ID: <20240525022813.2292001-1-dev@lynne.ee> X-Mailer: git-send-email 2.43.0.381.gb435a96ce8 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 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: d1BYlqgvjkTn This commit adds a decoder for the frequency-domain part of USAC. SBR is as of now not yet supported, will be added with a future patch. A known issue is that preroll frames (usually present quite often within the file, as xHE-AAC has real keyframes and I-frames) can cause artifacts. 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 | 1592 ++++++++++++++++++++++++++ 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.h | 4 + tests/fate/aac.mak | 8 + 19 files changed, 3262 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