From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 39A434625A for ; Tue, 12 Sep 2023 06:15:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B0D3768C99C; Tue, 12 Sep 2023 09:15:06 +0300 (EEST) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 500DE68C97F for ; Tue, 12 Sep 2023 09:15:00 +0300 (EEST) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id 079901060152 for ; Tue, 12 Sep 2023 06:15:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1694499300; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=U912jRhDs1/T6XCnQT0uqLIrjBsv4riLRN8gOTtqNc8=; b=FJPITC5H36OZcRtrSYOMLUGT+OaGzQtdIAXjxFgkmdsPOiboNO6SyJLpi/5/6vgx EHiqXxGxmv9GKtIh5MdvpnUr7+MRoedOR0E6r0FwZNkAbWe11nbkes8bRD9QugxK1aN ypE/dDXj1RSCWkEJ+qJnZn3YT5McVgTRmdDAn9UYeyJA1EsLdwgjJrI5rinhpT/WFm3 vpEje4Day6lG6j+fs7P2kOgug05x3MWDZr405oxM3Z6a1cLM7HPdkBNAUT1iig2hQg+ 7QB4ZmLeM+ELlcTFmHqncPw0/6f33fMqle/e4w50KCPnkw9YfkFclKAn7RXuPwAGd75 P5TibxT4fw== Date: Tue, 12 Sep 2023 08:15:00 +0200 (CEST) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_893139_609435803.1694499300026" Subject: Re: [FFmpeg-devel] [RFC PATCH 3/3] aacdec: allow to skip sbr start-up delay 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: ------=_Part_893139_609435803.1694499300026 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sep 12, 2023, 08:14 by dev@lynne.ee: > As it happens, there's no standard between startup delay for SBR between > decoders either. libfdkaac uses 5056 samples, but Apple's encoder (via afconvert) > uses 3136. > > Currently, this only fixes libfdk-aac. Would like to have more samples from more > encoders so I can fix all known cases. > Wrong patch attached. ------=_Part_893139_609435803.1694499300026 Content-Type: text/x-diff; charset=us-ascii; name=0003-aacdec-allow-to-skip-sbr-start-up-delay.patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0003-aacdec-allow-to-skip-sbr-start-up-delay.patch >From c0e5659e5a2d56e883f9e1bb8c6d5bca1059721a Mon Sep 17 00:00:00 2001 From: Lynne Date: Tue, 12 Sep 2023 08:06:40 +0200 Subject: [PATCH 3/3] aacdec: allow to skip sbr start-up delay --- libavcodec/aac.h | 1 + libavcodec/aacdec_template.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/libavcodec/aac.h b/libavcodec/aac.h index 285d3b7482..3f67f353b7 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -298,6 +298,7 @@ struct AACContext { AVCodecContext *avctx; AVFrame *frame; + int sbr_state_changed; int is_saved; ///< Set if elements have stored overlap from previous frame. DynamicRangeControl che_drc; diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 0e4a274fea..b6c6d19f61 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -1207,6 +1207,8 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) avctx->extradata_size * 8LL, 1)) < 0) return ret; + + ac->sbr_state_changed = ac->oc[1].m4ac.sbr == 1; } else { int sr, i; uint8_t layout_map[MAX_ELEM_ID*4][3]; @@ -3154,6 +3156,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, AVFrame *frame, int is_dmono, sce_count = 0; int payload_alignment; uint8_t che_presence[4][MAX_ELEM_ID] = {{0}}; + int sbr_state_start = ac->oc[1].m4ac.sbr; ac->frame = frame; @@ -3346,6 +3349,14 @@ static int aac_decode_frame_int(AVCodecContext *avctx, AVFrame *frame, frame->data[0] = frame->data[1]; } + ac->sbr_state_changed |= (ac->oc[1].m4ac.sbr != sbr_state_start) && (ac->oc[1].m4ac.sbr == 1); + + if (ac->sbr_state_changed) { + avctx->internal->skip_samples = 5056; + avctx->internal->skip_samples_add = 1; + ac->sbr_state_changed = 0; + } + return 0; fail: pop_output_configuration(ac); -- 2.40.1 ------=_Part_893139_609435803.1694499300026 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ------=_Part_893139_609435803.1694499300026--