From patchwork Wed Jun 5 03:08:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 49567 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d792:0:b0:460:55fa:d5ed with SMTP id db18csp105980vqb; Tue, 4 Jun 2024 20:09:18 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWM8X0MHW/o2jxwn7YZSAhqLCh8ijdTb18+JsTJ24vyXDDlo8PYCkx3Q3Z8BW+ku0TF7iLcSKxurNA5PXPBz+FfZrCG0+WXLlw9PA== X-Google-Smtp-Source: AGHT+IFBj0Ozrm+LnEs5P39dklTrsavLlaMwh8FQAZhmS6Qpx0vVfZRL9i9R6SIV+FMJtM+Q/mgT X-Received: by 2002:a17:907:30c8:b0:a68:c64d:d2ec with SMTP id a640c23a62f3a-a699f3621d2mr55636466b.9.1717556958675; Tue, 04 Jun 2024 20:09:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1717556958; cv=none; d=google.com; s=arc-20160816; b=TfElFcJwAxIY6Km7V9G6YRKG9XV+yWZwlkzjrqHDY0qUW5/P2iZ8nAFf2rW1PI58Fn KJ65wqewcBXlvBTtgi2ALBgWpBsMHIM41VQS3BycU7cCOde7KQ0YHlGjkj05Lwi8EDLU hAWf+eg2CEtaN3BiEWaLaJiJPwS8JUJu7S1zzogfAQgAvQK2wcoxc8fhyaY7I6yESRYs gLTFvJPFzvwKxKA8KVixIlClrSHRwKyZdeFpUoAKPcVT9CDTDpeLHkATALCBz6yMvb3F fWYnZQ1kkvVP0hw1sQqYEjNNfwAks49C8uyoMO2ZLIDChVuJUQi3QyPfG+HHYmGYd5WT 0TGg== 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:references:in-reply-to :message-id:date:to:delivered-to; bh=wSJwC7enFIEwVHGWFqfHOJRDeybKr4LSxdCpNhhySvM=; fh=nenT92/WZoU6unXd3J6UhGUdod4piddKfVtctNBOh6k=; b=wpmDc60FcePhlHDnLWHTdAu+3PQEhA4reD0nUQe5GR/CAowzmtQMDvsK42HlcpI70Y p49DuWS1bo0i9yyNYh1tWsqxIW7bA1eN2HvAeyaBKRwjQyJunyFl0jp6XSdO3VQRyaPF cm2mfUR/ZxqnriOg5NVbKiO0QuN+nubEog39rPD72sUUiKH+FzyF87bd+MoP7tn5imYT wHZJ/jjVCN767vEUdT+AslKq7pKDWe0NOFiY/L4WPsxyz/8BLGm7a4/1JDB6GfBzitIF wqjveK/hRh3mSiRisA3fLo3fVSe67RRe9vb+HeGm52L9Wc75DTXgeQVGSSLje6Idk42y ivPw==; 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-a68e3d79e9fsi362321466b.257.2024.06.04.20.09.18; Tue, 04 Jun 2024 20:09:18 -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 5883268D71D; Wed, 5 Jun 2024 06:08:55 +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 3E7D468D70D for ; Wed, 5 Jun 2024 06:08:46 +0300 (EEST) To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jun 2024 05:08:37 +0200 Message-ID: <20240605030843.2807174-3-dev@lynne.ee> X-Mailer: git-send-email 2.43.0.381.gb435a96ce8 In-Reply-To: <20240605030843.2807174-1-dev@lynne.ee> References: <20240605030843.2807174-1-dev@lynne.ee> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] aac: define a new profile for USAC 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: WXydmlREkDtr This allows users to determine whether a stream is USAC or not. --- libavcodec/aac/aacdec_usac.c | 4 ++++ libavcodec/avcodec.h | 1 + libavcodec/defs.h | 1 + libavcodec/profiles.c | 1 + libavcodec/profiles.h | 1 + 5 files changed, 8 insertions(+) diff --git a/libavcodec/aac/aacdec_usac.c b/libavcodec/aac/aacdec_usac.c index 7b36b49d63..5c3bb8d4ac 100644 --- a/libavcodec/aac/aacdec_usac.c +++ b/libavcodec/aac/aacdec_usac.c @@ -494,6 +494,8 @@ int ff_aac_usac_config_decode(AACDecContext *ac, AVCodecContext *avctx, } } + ac->avctx->profile = AV_PROFILE_AAC_USAC; + ret = ff_aac_usac_reset_state(ac, oc); if (ret < 0) return ret; @@ -1533,6 +1535,8 @@ int ff_aac_usac_decode_frame(AVCodecContext *avctx, AACDecContext *ac, ff_aac_output_configure(ac, ac->oc[1].layout_map, ac->oc[1].layout_map_tags, ac->oc[1].status, 0); + ac->avctx->profile = AV_PROFILE_AAC_USAC; + indep_flag = get_bits1(gb); nb_ch_el = 0; diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 2da63c87ea..257e04fe2d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1652,6 +1652,7 @@ typedef struct AVCodecContext { #define FF_PROFILE_AAC_HE_V2 28 #define FF_PROFILE_AAC_LD 22 #define FF_PROFILE_AAC_ELD 38 +#define FF_PROFILE_AAC_USAC 41 #define FF_PROFILE_MPEG2_AAC_LOW 128 #define FF_PROFILE_MPEG2_AAC_HE 131 diff --git a/libavcodec/defs.h b/libavcodec/defs.h index 00d840ec19..7ddfdcad0b 100644 --- a/libavcodec/defs.h +++ b/libavcodec/defs.h @@ -73,6 +73,7 @@ #define AV_PROFILE_AAC_HE_V2 28 #define AV_PROFILE_AAC_LD 22 #define AV_PROFILE_AAC_ELD 38 +#define AV_PROFILE_AAC_USAC 41 #define AV_PROFILE_MPEG2_AAC_LOW 128 #define AV_PROFILE_MPEG2_AAC_HE 131 diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c index 052b77926e..44bdf6f85b 100644 --- a/libavcodec/profiles.c +++ b/libavcodec/profiles.c @@ -33,6 +33,7 @@ const AVProfile ff_aac_profiles[] = { { AV_PROFILE_AAC_MAIN, "Main" }, { AV_PROFILE_AAC_SSR, "SSR" }, { AV_PROFILE_AAC_LTP, "LTP" }, + { AV_PROFILE_AAC_USAC, "xHE-AAC" }, { AV_PROFILE_UNKNOWN }, }; diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h index 842201718b..33b7ffc17a 100644 --- a/libavcodec/profiles.h +++ b/libavcodec/profiles.h @@ -35,6 +35,7 @@ FF_AVCTX_PROFILE_OPTION("aac_he_v2", NULL, AUDIO, AV_PROFILE_AAC_HE_V2)\ FF_AVCTX_PROFILE_OPTION("aac_ld", NULL, AUDIO, AV_PROFILE_AAC_LD)\ FF_AVCTX_PROFILE_OPTION("aac_eld", NULL, AUDIO, AV_PROFILE_AAC_ELD)\ + FF_AVCTX_PROFILE_OPTION("aac_xhe", NULL, AUDIO, AV_PROFILE_AAC_USAC)\ FF_AVCTX_PROFILE_OPTION("mpeg2_aac_low", NULL, AUDIO, AV_PROFILE_MPEG2_AAC_LOW)\ FF_AVCTX_PROFILE_OPTION("mpeg2_aac_he", NULL, AUDIO, AV_PROFILE_MPEG2_AAC_HE)\