[FFmpeg-devel] [PATCH v3 1/3] avfilter/af_volumedetect.c: Move logdb function

Paul B Mahol onemda at gmail.com
Tue May 21 10:20:20 EEST 2024


On Mon, May 20, 2024 at 10:25 PM Yigithan Yigit <
yigithanyigitdevel at gmail.com> wrote:

> ---
>  libavfilter/af_volumedetect.c | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/libavfilter/af_volumedetect.c b/libavfilter/af_volumedetect.c
> index 8b001d1cf2..327801a7f9 100644
> --- a/libavfilter/af_volumedetect.c
> +++ b/libavfilter/af_volumedetect.c
> @@ -24,6 +24,8 @@
>  #include "avfilter.h"
>  #include "internal.h"
>
> +#define MAX_DB 91
> +
>

That is only true for 16bit input files, not for floats.


>  typedef struct VolDetectContext {
>      /**
>       * Number of samples at each PCM value.
> @@ -33,6 +35,14 @@ typedef struct VolDetectContext {
>      uint64_t histogram[0x10001];
>  } VolDetectContext;
>
> +static inline double logdb(uint64_t v)
> +{
> +    double d = v / (double)(0x8000 * 0x8000);
> +    if (!v)
> +        return MAX_DB;
> +    return -log10(d) * 10;
> +}
> +
>  static int filter_frame(AVFilterLink *inlink, AVFrame *samples)
>  {
>      AVFilterContext *ctx = inlink->dst;
> @@ -56,16 +66,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame
> *samples)
>      return ff_filter_frame(inlink->dst->outputs[0], samples);
>  }
>
> -#define MAX_DB 91
> -
> -static inline double logdb(uint64_t v)
> -{
> -    double d = v / (double)(0x8000 * 0x8000);
> -    if (!v)
> -        return MAX_DB;
> -    return -log10(d) * 10;
> -}
> -
>  static void print_stats(AVFilterContext *ctx)
>  {
>      VolDetectContext *vd = ctx->priv;
> --
> 2.44.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list