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 F19DB40635 for ; Sat, 28 May 2022 08:39:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C336268B588; Sat, 28 May 2022 11:39:43 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EA66C68B3F9 for ; Sat, 28 May 2022 11:39:36 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d22so6067595plr.9 for ; Sat, 28 May 2022 01:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=TEvmJ3WgvKB5dzgqBSz4woESzusYxFZov9qX/7n4wC8=; b=jjDR5KW/v598s8K96NPbC6rucSErMoyRL1QMyW+78OSykaP7sGIWlrcjHyo6W0ELXS zdv07AfUPsG5ZindUwwHqC/DFWnvIHGYRsfGoaB48mKekGN90jtaNI6KyZEme7vJP7+H azmN34CEsfdJH2qXw+rZN+NniWoY3C3hosnAuaqqqLm+XERkbA9y6nsM7iKVPLT6oCbV UI7KrSC9ubmctfXWRKJaH9WYcKlRgO9sIcoTI2KMwWURehSbB2AnmQUcxevA6r46nFmU Wg/JJmxsz7rw5hz9Df2uHd17Ie8pvoMGq45oWUwITENiHMUiCpNmfPrk4tbOn5cEH8ci +g5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=TEvmJ3WgvKB5dzgqBSz4woESzusYxFZov9qX/7n4wC8=; b=EooHj+hPPUteqbgJTq2eBFY12emINfhFCrpDodfv8+3wKySKf6vt/ly7TA2viuQTAx 1e/hruLYTNHQo5QL6yLj/mW8kpdIXrnG6LYzVNptrhGepxHS7fLRDb/FPP4cVShdGHjr kHQrfLe1NG5SgY3KPW/07OliTQCPB9j8J8hDUoDGFqcPFQi7GV4nOR2DqZB2PzPXJ/NZ 12doj0oJyPvXZdt5jN4kjpfTD9+nalajhIPWffsIJtMHD1reS8tRRCl6iImtk5ltqixA iWyTE7ZuLj4RQxCr6oJ2nIt05zFepShAjsrMY7vPI36PlkmVFdjvHpiBwsbr6+3WYvVW WuZg== X-Gm-Message-State: AOAM532QjBVbE/dzKGx5XAdKoxrauxEKlBgpeZEiFEGtSM0mubppwuft PI9orqB2E1MZzgXRc7tzeW75IanrJ2TrHCqp X-Google-Smtp-Source: ABdhPJwGKMKINPCya8iGuburiv2X8eFA6ZpoYPYEQOtx5hQaFKydTfbuvSWTJAF2dvm29u2SkNjosQ== X-Received: by 2002:a17:902:bb10:b0:163:6f61:fd46 with SMTP id im16-20020a170902bb1000b001636f61fd46mr13458961plb.78.1653727175191; Sat, 28 May 2022 01:39:35 -0700 (PDT) Received: from sbpc.sbnet ([45.123.218.23]) by smtp.gmail.com with ESMTPSA id i4-20020a655b84000000b003faf4acac63sm4747514pgr.13.2022.05.28.01.39.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 May 2022 01:39:34 -0700 (PDT) From: Santanu Biswas To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 May 2022 14:09:21 +0530 Message-Id: <20220528083921.16538-1-shbisws@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avfilter/asrc_sine: Generate full amplitude sine wave. 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: Santanu Biswas Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Previously, generating a full amplitude sine wave require to either use the 'volume' filter in combination with this filter or manually generate sine wave using 'aevalsrc' (e.g "aevalsrc=sin(2*PI*t*440)"). This method is not bit-exact; therefore it is much coherent to not scale the amplitude by 1/8 and keep it as it is. Signed-off-by: Santanu Biswas --- doc/filters.texi | 2 +- libavfilter/asrc_sine.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 0e10946cca..a42e27b9b5 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -7452,7 +7452,7 @@ Set number of taps for low-pass filter. @section sine -Generate an audio signal made of a sine wave with amplitude 1/8. +Generate an audio signal made of a sine wave. The audio signal is bit-exact. diff --git a/libavfilter/asrc_sine.c b/libavfilter/asrc_sine.c index c0d8d2265b..6c2f9d40f3 100644 --- a/libavfilter/asrc_sine.c +++ b/libavfilter/asrc_sine.c @@ -83,13 +83,11 @@ static const AVOption sine_options[] = { AVFILTER_DEFINE_CLASS(sine); #define LOG_PERIOD 15 -#define AMPLITUDE 4095 -#define AMPLITUDE_SHIFT 3 static void make_sin_table(int16_t *sin) { unsigned half_pi = 1 << (LOG_PERIOD - 2); - unsigned ampls = AMPLITUDE << AMPLITUDE_SHIFT; + unsigned ampls = 32767; uint64_t unit2 = (uint64_t)(ampls * ampls) << 32; unsigned step, i, c, s, k, new_k, n2; @@ -116,9 +114,7 @@ static void make_sin_table(int16_t *sin) sin[half_pi - i - step / 2] = (k * c + 0x8000) >> 16; } } - /* Unshift amplitude */ - for (i = 0; i <= half_pi; i++) - sin[i] = (sin[i] + (1 << (AMPLITUDE_SHIFT - 1))) >> AMPLITUDE_SHIFT; + /* Use symmetries to fill the other three quarters */ for (i = 0; i < half_pi; i++) sin[half_pi * 2 - i] = sin[i]; -- 2.35.1 _______________________________________________ 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".