From patchwork Sat Aug 26 13:48:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Sabatini X-Patchwork-Id: 43331 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7194:b0:149:dfde:5c0a with SMTP id s20csp444421pzb; Sat, 26 Aug 2023 06:48:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHKW4zJeBQMd+t9aItt3/t6lYtugdc89aoKHbsOmGuol30y5t5PBGiAtMFOaiCCYXy6f9DW X-Received: by 2002:a05:6402:1817:b0:523:bfec:4902 with SMTP id g23-20020a056402181700b00523bfec4902mr16584463edy.0.1693057738190; Sat, 26 Aug 2023 06:48:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693057738; cv=none; d=google.com; s=arc-20160816; b=uykZOerSOR8GtVQ6NI2VSwklhUm3UH1AwdJ4k+QUcSvH7hRmCNIw0ZYSwNK739PcCm Xq7b8SseF+M1FcWoTj6RrKD18QfZXIXSjhQuKnUYDH/1EO3h5CK1Lb+SW1EFoy5+QRui rNGaCvcuRU8R6b/YxFj2Cn2pPWQA0LmZyPNVDsQ8sFoYiFi09MVRkVgUcNnPovDEYKTZ kBEEiHBXdO+XM5UJCgUXi8M/Ch+PJxJNJhsmaa4WxBXWopmH8DaplD+DTmt8E3JrlKWT jsttZK8rhBSLhUsUxkDd/CDvY+x0it2EaKyM4MnMRNANFSaC9DdJSNrzz0Y8xQMPSyqq na2Q== 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 :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=p369n1CihtrKI+wc3FfLtlifwbSvrlJtwDW5tlf0g5E=; fh=QdWxt2OToL83TTnLQn0lGhLakV7i1QyAJdC8te7qN0E=; b=jdOgrm4vDJ8BW0j6jqMIR7W6FbGIhmtqNSwtvw3BjDdIWdfsvAwliMz81MKl37ChBn hxgod1NBGh3Mdg8kL6WOsiyUF5gae1fbVrbwwmgenvN315GzQyfvcEGjFADwIqz4qh7w 2FOp46CdjjcC9gBGXotMo9aKAGNQ22IsPyRekNjft829Dx71REt8AZtvstzL73QTXQS+ nhbTQJiOdP8LdPA00RkIdL16wuI3t+WOV6VTvws60mmkUN0TsT7LiW87bDcKS0Or3qmd uxZEyV9v6iC3j3Ir82HrWZ/hVbmpGsvKGPtyfJcmzSZeaLtguSXfcUFZtZ/pSaoicSPV r7jQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=Zz53C9ds; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s15-20020aa7c54f000000b0052286405b7dsi2272392edr.387.2023.08.26.06.48.55; Sat, 26 Aug 2023 06:48:58 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=Zz53C9ds; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CF23868A05D; Sat, 26 Aug 2023 16:48:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 41FC068BD32 for ; Sat, 26 Aug 2023 16:48:45 +0300 (EEST) Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-31adc5c899fso1545063f8f.2 for ; Sat, 26 Aug 2023 06:48:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693057724; x=1693662524; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=A5bBfYzG/4yG9Z541QQVO6RYZdz6/EY3LCI4a1gFRMw=; b=Zz53C9dsisYar16A+shm2jBJpyyCyWZRv3uhylWzB/7NMwhl4sJzyQA+CLKa6QAO8K B6Yq6tcVl6JV/gZIjqc+Aty6SCbFai5AxR8Ms+qpK/ebThTgKoWdntIT5v3JIJZbDS8d LPhxBm9etjqVuaRZxJ0XbatcUeQKpicntOTlWdv9yrcVTs2hm7zuqW8AzpBQdLDcgDvu Mz2wyVO5JDHxa5gkjCybpLPcPWnay8SVlP+sz6uMkuRjgMqP3yYpxSn3StEMQiqtVlMs yTg40cFQw5mjXP0HCdZgoAGGdOA3YnCA/2RIKmRWIjvQmkdeCHRvgFB2zExXnK1MAqJy dtIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693057724; x=1693662524; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=A5bBfYzG/4yG9Z541QQVO6RYZdz6/EY3LCI4a1gFRMw=; b=NEsPIdLGenGfvtphTBsu7EIEyiy50veMs/9hF8QitGrUxydtrKyVviMeQrWY/67Jk+ H8rOV2m94JeSF7nLne2jLX9K9gg3VNBfbEO29VoREmUWs3nuKw7HRLAt/FlfbofjMC2T 1t8atR1c5cXlz3mfY9eJjMT7NT0zlhWlcj2yu+JoT/L+fWjfhl5sPv727NOgAacJfkOR boveLY6VlizUTJqnDsp/ZyjKl+eJx2mKqxOjiWwm7SRwzF+RysqC4ZRUjrxUHhNeo4ws 3xYZdOQL8QoAOvnv09/NELimZxqtLjNHdR2V1neo9tQ6E7ElDjp13bVHkuGfYM/Tk2NO i56w== X-Gm-Message-State: AOJu0Yws4FsDy5ZpsBq1POqkQjwpIUlmcSXR5DdFJSBpjaB6cYa59R1Y ieCRHeS7rM6DGtLT18inQtMZ77lVBIk= X-Received: by 2002:a5d:4d8d:0:b0:31a:ea86:cbb8 with SMTP id b13-20020a5d4d8d000000b0031aea86cbb8mr17045808wru.2.1693057723504; Sat, 26 Aug 2023 06:48:43 -0700 (PDT) Received: from mariano ([82.84.194.139]) by smtp.gmail.com with ESMTPSA id w12-20020a5d4b4c000000b0031416362e23sm5013309wrs.3.2023.08.26.06.48.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Aug 2023 06:48:42 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id 7C343BFCDA; Sat, 26 Aug 2023 15:48:41 +0200 (CEST) From: Stefano Sabatini To: FFmpeg development discussions and patches Date: Sat, 26 Aug 2023 15:48:41 +0200 Message-Id: <20230826134841.161129-1-stefasab@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] doc/encoders/libopus: clarify lowdelay and cutoff options 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: Stefano Sabatini Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: jyP2XMlzWZzV Extend descriptions for the application=lowdelay and cutoff options. Based on notes by Mingye Wang. Address issue: http://trac.ffmpeg.org/ticket/10330 --- doc/encoders.texi | 7 +++++-- libavcodec/libopusenc.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 25c40a6486..96250fe3fe 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -977,14 +977,17 @@ Favor improved speech intelligibility. @item audio Favor faithfulness to the input (the default). @item lowdelay -Restrict to only the lowest delay modes. +Restrict to only the lowest delay modes by disabling voice-optimized +modes. @end table @item cutoff (N.A.) Set cutoff bandwidth in Hz. The argument must be exactly one of the following: 4000, 6000, 8000, 12000, or 20000, corresponding to narrowband, mediumband, wideband, super wideband, and fullband -respectively. The default is 0 (cutoff disabled). +respectively. The default is 0 (cutoff disabled). Note that libopus +forces a wideband cutoff for bitrates < 15 kbps, unless CELT-only +(@option{application} set to @samp{lowdelay}) mode is used. @item mapping_family (@emph{mapping_family}) Set channel mapping family to be used by the encoder. The default value of -1 diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c index 5a0786f32f..f395d84af5 100644 --- a/libavcodec/libopusenc.c +++ b/libavcodec/libopusenc.c @@ -547,7 +547,7 @@ static const AVOption libopus_options[] = { { "application", "Intended application type", OFFSET(application), AV_OPT_TYPE_INT, { .i64 = OPUS_APPLICATION_AUDIO }, OPUS_APPLICATION_VOIP, OPUS_APPLICATION_RESTRICTED_LOWDELAY, FLAGS, "application" }, { "voip", "Favor improved speech intelligibility", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_VOIP }, 0, 0, FLAGS, "application" }, { "audio", "Favor faithfulness to the input", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_AUDIO }, 0, 0, FLAGS, "application" }, - { "lowdelay", "Restrict to only the lowest delay modes", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, FLAGS, "application" }, + { "lowdelay", "Restrict to only the lowest delay modes, disable voice-optimized modes", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, FLAGS, "application" }, { "frame_duration", "Duration of a frame in milliseconds", OFFSET(frame_duration), AV_OPT_TYPE_FLOAT, { .dbl = 20.0 }, 2.5, 120.0, FLAGS }, { "packet_loss", "Expected packet loss percentage", OFFSET(packet_loss), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, FLAGS }, { "fec", "Enable inband FEC. Expected packet loss must be non-zero", OFFSET(fec), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },