On 23-01-2019 07:40 PM, Paul B Mahol wrote:
On 1/23/19, Gyan <ffm...@gyani.pro> wrote:

On 23-01-2019 03:00 PM, Paul B Mahol wrote:
On 1/23/19, Gyan <ffm...@gyani.pro> wrote:
Why? afade needs change too.
If a user doesn't want to apply fade, then they can simply not add afade
filter. This change is meant for users who want to combine two audio
streams with overlap but don't want to apply fade to audio during overlap.

I do not like such reasoning, also you changed afade too with this approach.

That was to prevent an integer value of nb_curves-1 from being accepted.

Anyway, revised patch attached, although I don't see how afade=c=nofade   is useful.

Gyan
From e8ee422323eabad02ac4c2385c8d5a5997f6cab8 Mon Sep 17 00:00:00 2001
From: Gyan Doshi <ffm...@gyani.pro>
Date: Wed, 23 Jan 2019 13:35:23 +0530
Subject: [PATCH v2] avfilter/afade+acrossfade: allow skipping fade on inputs

New fade curve value 'nofade' passes audio samples as-is.
Primarily useful in carrying out acrossfade without fades.
---
 doc/filters.texi       | 2 ++
 libavfilter/af_afade.c | 7 ++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index d06dfe089f..fc98323af0 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -958,6 +958,8 @@ select double-exponential seat
 select double-exponential sigmoid
 @item losi
 select logistic sigmoid
+@item nofade
+no fade applied
 @end table
 @end table
 
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index 751db7da4d..195fb65ab5 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -51,7 +51,7 @@ typedef struct AudioFadeContext {
                               int curve0, int curve1);
 } AudioFadeContext;
 
-enum CurveType { TRI, QSIN, ESIN, HSIN, LOG, IPAR, QUA, CUB, SQU, CBR, PAR, 
EXP, IQSIN, IHSIN, DESE, DESI, LOSI, NB_CURVES };
+enum CurveType { TRI, QSIN, ESIN, HSIN, LOG, IPAR, QUA, CUB, SQU, CBR, PAR, 
EXP, IQSIN, IHSIN, DESE, DESI, LOSI, NONE, NB_CURVES };
 
 #define OFFSET(x) offsetof(AudioFadeContext, x)
 #define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
@@ -153,6 +153,9 @@ static double fade_gain(int curve, int64_t index, int64_t 
range)
                    gain = (A - B) / (C - B);
                }
         break;
+    case NONE:
+        gain = 1.0;
+        break;
     }
 
     return gain;
@@ -260,6 +263,7 @@ static const AVOption afade_options[] = {
     { "dese",         "double-exponential seat",                     0,        
            AV_OPT_TYPE_CONST,  {.i64 = DESE }, 0, 0, FLAGS, "curve" },
     { "desi",         "double-exponential sigmoid",                  0,        
            AV_OPT_TYPE_CONST,  {.i64 = DESI }, 0, 0, FLAGS, "curve" },
     { "losi",         "logistic sigmoid",                            0,        
            AV_OPT_TYPE_CONST,  {.i64 = LOSI }, 0, 0, FLAGS, "curve" },
+    { "nofade",       "no fade; keep audio as-is",                   0,        
            AV_OPT_TYPE_CONST,  {.i64 = NONE }, 0, 0, FLAGS, "curve" },
     { NULL }
 };
 
@@ -380,6 +384,7 @@ static const AVOption acrossfade_options[] = {
     {     "dese",     "double-exponential seat",                       0,      
              AV_OPT_TYPE_CONST,  {.i64 = DESE }, 0, 0, FLAGS, "curve" },
     {     "desi",     "double-exponential sigmoid",                    0,      
              AV_OPT_TYPE_CONST,  {.i64 = DESI }, 0, 0, FLAGS, "curve" },
     {     "losi",     "logistic sigmoid",                              0,      
              AV_OPT_TYPE_CONST,  {.i64 = LOSI }, 0, 0, FLAGS, "curve" },
+    {     "nofade",   "no fade; keep audio as-is",                     0,      
              AV_OPT_TYPE_CONST,  {.i64 = NONE }, 0, 0, FLAGS, "curve" },
     { "curve2",       "set fade curve type for 2nd stream",            
OFFSET(curve2),       AV_OPT_TYPE_INT,    {.i64 = TRI  }, 0, NB_CURVES - 1, 
FLAGS, "curve" },
     { "c2",           "set fade curve type for 2nd stream",            
OFFSET(curve2),       AV_OPT_TYPE_INT,    {.i64 = TRI  }, 0, NB_CURVES - 1, 
FLAGS, "curve" },
     { NULL }
-- 
2.19.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to