From patchwork Thu Apr 29 01:49:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: realies X-Patchwork-Id: 27470 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a11:4023:0:0:0:0 with SMTP id ky35csp1057775pxb; Wed, 28 Apr 2021 20:52:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxOO/5WKvWtzh3mfcmECJ/WaEzjHE4b6mmLJ8frFKX6DYgpJrYPkFPUKXhW0Rrb/loeJXYF X-Received: by 2002:a17:906:953:: with SMTP id j19mr32849917ejd.56.1619668336682; Wed, 28 Apr 2021 20:52:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619668336; cv=none; d=google.com; s=arc-20160816; b=H2Halgc0mM7p014jHPFB+xe/0MmV57gJaNBqFJ93sy+RCH6drZ0zU4C33XtOmuubSA viKTahCdTFRS4NGl0mOSGIMOokCQGQuS13wtXqCEet05+1j3TLDHxfTnr5K4GLg/LP9s Nmj3K+1yayL2wIKViViEF9MIWfSQ9P1TT3oCjp+WW3zC3q9gDEdV24uC4TQ8e+tRWds5 6sADt5Ix1ENR+mH7+3gPx7nQfltsOih2L5gX2veBnAEZARoPKMf45XBDYD0kuv6KCTBZ tRnwxZSc8K7ECW4SEyFKpCndGap8P0nZYWkgdnWoc+eQ+VWlI7lZsBm4URQ3dvakKPvV qLpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:message-id:date:from:mime-version :delivered-to; bh=W6/tL7zgkwHNTOBS7ACVzrUwAe77FcvVBIEvvo8kCJQ=; b=eCp+6KDl3RvcOj4AjaFh8gKCvRbZGX3mSXV9ZCAdEjputEZOXWpF7sPhAYADjbYbTX KFvHhdiXrZJFu9ofkNLVu9iP3qCfEQKlUViHAZOdJ/Ghii5Zox9fATtk8CGt8QeclGO7 MamJED9NPbvZ+2WmtACil/Au+3co/z+l18LNjn42BsZrVdBPjmg/E1QQA1j4qv38xWb3 WvPuIc6q4YvBOanKdcuhBfh5RnccTATEb4YCUF5R5iOwNP7tGVAkGy8JTS5HEHnOi87H Z42lARUFebyfefoXKus0aBQXVcdA8TYCbAnj7ETsb+PN4eF/yGRQ5rjOYu52Bh4uF6vL UxRA== 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 i6si2061108ejr.690.2021.04.28.20.52.15; Wed, 28 Apr 2021 20:52:16 -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 AC51868A24C; Thu, 29 Apr 2021 06:52:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB4A6689F8F for ; Thu, 29 Apr 2021 06:52:04 +0300 (EEST) Received: by mail-lf1-f45.google.com with SMTP id x19so72317715lfa.2 for ; Wed, 28 Apr 2021 20:52:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=4vykEFqhwyIXK+ttq8byqO6/6H/o4fYeSKw/x5rL4iU=; b=mI6oBPtkZeudR6YE1rJ8EXPby5WS5L7f4T021l9P5lrFaLDe87XdxuOw4osB3+yWaU oT0QcJf5lj2OlpUz46uLgei0njpgu3nST5+5BRhHAruWythfr62cBjGGcgKcmU/8c8K0 WHCUuaQOAbDggxJO5r7f/xnvNm9ELtVkMUFmiY1C2YOcPA2IUKHJzf5sipfupVhR5007 i12SFOp1WR4dac08GeOq/Ra0dIIIh8KgJFpnqpozqgudssIlPLj3b8ATS6pogSd0PP84 Sp+kvxKCaQ/gEpDm1z5BD0CauJvSrUa973IpE3P2ftKglnbNditPDLfYEwPoBIDUuo0e 0wdA== X-Gm-Message-State: AOAM533/RB1hoLouMyJ2VatITuWQA7QalvbT/+OoUUj2Dz+/aun1CP+F Es9FHWNbnvpmQBChk7vpfrZzYFK8/4BW1A== X-Received: by 2002:a17:906:9ac5:: with SMTP id ah5mr31568560ejc.360.1619660990117; Wed, 28 Apr 2021 18:49:50 -0700 (PDT) Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com. [209.85.218.53]) by smtp.gmail.com with ESMTPSA id ga33sm222417ejc.11.2021.04.28.18.49.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Apr 2021 18:49:50 -0700 (PDT) Received: by mail-ej1-f53.google.com with SMTP id w3so97490308ejc.4 for ; Wed, 28 Apr 2021 18:49:50 -0700 (PDT) X-Received: by 2002:a17:906:5906:: with SMTP id h6mr32405974ejq.176.1619660989940; Wed, 28 Apr 2021 18:49:49 -0700 (PDT) MIME-Version: 1.0 From: realies Date: Thu, 29 Apr 2021 02:49:39 +0100 X-Gmail-Original-Message-ID: Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avfilter/af_afade: remove fade duration limit 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" X-TUID: Oj6RueP2ilUj From 8a4fe250e508932d8018adbb1af95d7c4a599a58 Mon Sep 17 00:00:00 2001 From: realies Date: Fri, 9 Apr 2021 21:57:47 +0100 Subject: [PATCH] avfilter/af_afade: remove fade duration limit Removes arbitrary filter duration to allow fades up to the limit of available memory. A docs warning has been added noting memory use & potential delay with large fade durations on some muxer configurations. --- doc/filters.texi | 3 +++ libavfilter/af_afade.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) 60000000, FLAGS }, - { "d", "set cross fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0 }, 0, 60000000, FLAGS }, + { "duration", "set cross fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0 }, 0, INT_MAX, FLAGS }, + { "d", "set cross fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0 }, 0, INT_MAX, FLAGS }, { "overlap", "overlap 1st stream end with 2nd stream start", OFFSET(overlap), AV_OPT_TYPE_BOOL, {.i64 = 1 }, 0, 1, FLAGS }, { "o", "overlap 1st stream end with 2nd stream start", OFFSET(overlap), AV_OPT_TYPE_BOOL, {.i64 = 1 }, 0, 1, FLAGS }, { "curve1", "set fade curve type for 1st stream", OFFSET(curve), AV_OPT_TYPE_INT, {.i64 = TRI }, NONE, NB_CURVES - 1, FLAGS, "curve" }, diff --git a/doc/filters.texi b/doc/filters.texi index 5e35fa6467..05ac14f30c 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1146,6 +1146,9 @@ no fade applied @end table @end table +Warning: This filter requires memory to buffer the fade duration. Some +muxer configurations can cause delays with large fade durations. + @subsection Commands This filter supports the all above options as @ref{commands}. diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c index 976b6752cd..23ece37774 100644 --- a/libavfilter/af_afade.c +++ b/libavfilter/af_afade.c @@ -385,8 +385,8 @@ AVFilter ff_af_afade = { static const AVOption acrossfade_options[] = { { "nb_samples", "set number of samples for cross fade duration", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 44100}, 1, INT32_MAX/10, FLAGS }, { "ns", "set number of samples for cross fade duration", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 44100}, 1, INT32_MAX/10, FLAGS }, - { "duration", "set cross fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0 }, 0,