diff --git a/libavfilter/ebur128.c b/libavfilter/ebur128.c index 2e86974eba..d93500ef3e 100644 --- a/libavfilter/ebur128.c +++ b/libavfilter/ebur128.c @@ -362,9 +362,6 @@ static void ebur128_filter_##type(FFEBUR128State* st, const type** srcs, st->d->v[ci][1] = fabs(st->d->v[ci][1]) < DBL_MIN ? 0.0 : st->d->v[ci][1]; \ } \ } -EBUR128_FILTER(short, -((double)SHRT_MIN)) -EBUR128_FILTER(int, -((double)INT_MIN)) -EBUR128_FILTER(float, 1.0) EBUR128_FILTER(double, 1.0) static double ebur128_energy_to_loudness(double energy) @@ -459,8 +456,8 @@ int ff_ebur128_set_channel(FFEBUR128State * st, } static int ebur128_energy_shortterm(FFEBUR128State * st, double *out); -#define FF_EBUR128_ADD_FRAMES_PLANAR(type) \ -void ff_ebur128_add_frames_planar_##type(FFEBUR128State* st, const type** srcs, \ +#define EBUR128_ADD_FRAMES_PLANAR(type) \ +static void ebur128_add_frames_planar_##type(FFEBUR128State* st, const type** srcs, \ size_t frames, int stride) { \ size_t src_index = 0; \ while (frames > 0) { \ @@ -502,10 +499,7 @@ void ff_ebur128_add_frames_planar_##type(FFEBUR128State* st, const type** srcs, } \ } \ } -FF_EBUR128_ADD_FRAMES_PLANAR(short) -FF_EBUR128_ADD_FRAMES_PLANAR(int) -FF_EBUR128_ADD_FRAMES_PLANAR(float) -FF_EBUR128_ADD_FRAMES_PLANAR(double) +EBUR128_ADD_FRAMES_PLANAR(double) #define FF_EBUR128_ADD_FRAMES(type) \ void ff_ebur128_add_frames_##type(FFEBUR128State* st, const type* src, \ size_t frames) { \ @@ -513,11 +507,8 @@ void ff_ebur128_add_frames_##type(FFEBUR128State* st, const type* src, \ const type **buf = (const type**)st->d->data_ptrs; \ for (i = 0; i < st->channels; i++) \ buf[i] = src + i; \ - ff_ebur128_add_frames_planar_##type(st, buf, frames, st->channels); \ + ebur128_add_frames_planar_##type(st, buf, frames, st->channels); \ } -FF_EBUR128_ADD_FRAMES(short) -FF_EBUR128_ADD_FRAMES(int) -FF_EBUR128_ADD_FRAMES(float) FF_EBUR128_ADD_FRAMES(double) static int ebur128_calc_relative_threshold(FFEBUR128State **sts, size_t size, @@ -606,12 +597,6 @@ int ff_ebur128_loudness_global(FFEBUR128State * st, double *out) return ebur128_gated_loudness(&st, 1, out); } -int ff_ebur128_loudness_global_multiple(FFEBUR128State ** sts, size_t size, - double *out) -{ - return ebur128_gated_loudness(sts, size, out); -} - static int ebur128_energy_in_interval(FFEBUR128State * st, size_t interval_frames, double *out) { @@ -628,21 +613,6 @@ static int ebur128_energy_shortterm(FFEBUR128State * st, double *out) out); } -int ff_ebur128_loudness_momentary(FFEBUR128State * st, double *out) -{ - double energy; - int error = ebur128_energy_in_interval(st, st->d->samples_in_100ms * 4, - &energy); - if (error) { - return error; - } else if (energy <= 0.0) { - *out = -HUGE_VAL; - return 0; - } - *out = ebur128_energy_to_loudness(energy); - return 0; -} - int ff_ebur128_loudness_shortterm(FFEBUR128State * st, double *out) { double energy; @@ -657,22 +627,6 @@ int ff_ebur128_loudness_shortterm(FFEBUR128State * st, double *out) return 0; } -int ff_ebur128_loudness_window(FFEBUR128State * st, - unsigned long window, double *out) -{ - double energy; - size_t interval_frames = st->samplerate * window / 1000; - int error = ebur128_energy_in_interval(st, interval_frames, &energy); - if (error) { - return error; - } else if (energy <= 0.0) { - *out = -HUGE_VAL; - return 0; - } - *out = ebur128_energy_to_loudness(energy); - return 0; -} - /* EBU - TECH 3342 */ int ff_ebur128_loudness_range_multiple(FFEBUR128State ** sts, size_t size, double *out) diff --git a/libavfilter/ebur128.h b/libavfilter/ebur128.h index 74367545e8..8e7385e044 100644 --- a/libavfilter/ebur128.h +++ b/libavfilter/ebur128.h @@ -81,7 +81,7 @@ enum channel { * modes that suit your needs, as performance will be better. */ enum mode { - /** can call ff_ebur128_loudness_momentary */ + /** can resurrrect and call ff_ebur128_loudness_momentary */ FF_EBUR128_MODE_M = (1 << 0), /** can call ff_ebur128_loudness_shortterm */ FF_EBUR128_MODE_S = (1 << 1) | FF_EBUR128_MODE_M, @@ -151,41 +151,9 @@ int ff_ebur128_set_channel(FFEBUR128State * st, * @param src array of source frames. Channels must be interleaved. * @param frames number of frames. Not number of samples! */ -void ff_ebur128_add_frames_short(FFEBUR128State * st, - const short *src, size_t frames); -/** \brief See \ref ebur128_add_frames_short */ -void ff_ebur128_add_frames_int(FFEBUR128State * st, - const int *src, size_t frames); -/** \brief See \ref ebur128_add_frames_short */ -void ff_ebur128_add_frames_float(FFEBUR128State * st, - const float *src, size_t frames); -/** \brief See \ref ebur128_add_frames_short */ void ff_ebur128_add_frames_double(FFEBUR128State * st, const double *src, size_t frames); -/** \brief Add frames to be processed. - * - * @param st library state. - * @param srcs array of source frame channel data pointers - * @param frames number of frames. Not number of samples! - * @param stride number of samples to skip to for the next sample of the same channel - */ -void ff_ebur128_add_frames_planar_short(FFEBUR128State * st, - const short **srcs, - size_t frames, int stride); -/** \brief See \ref ebur128_add_frames_planar_short */ -void ff_ebur128_add_frames_planar_int(FFEBUR128State * st, - const int **srcs, - size_t frames, int stride); -/** \brief See \ref ebur128_add_frames_planar_short */ -void ff_ebur128_add_frames_planar_float(FFEBUR128State * st, - const float **srcs, - size_t frames, int stride); -/** \brief See \ref ebur128_add_frames_planar_short */ -void ff_ebur128_add_frames_planar_double(FFEBUR128State * st, - const double **srcs, - size_t frames, int stride); - /** \brief Get global integrated loudness in LUFS. * * @param st library state. @@ -196,28 +164,7 @@ void ff_ebur128_add_frames_planar_double(FFEBUR128State * st, * - AVERROR(EINVAL) if mode "FF_EBUR128_MODE_I" has not been set. */ int ff_ebur128_loudness_global(FFEBUR128State * st, double *out); -/** \brief Get global integrated loudness in LUFS across multiple instances. - * - * @param sts array of library states. - * @param size length of sts - * @param out integrated loudness in LUFS. -HUGE_VAL if result is negative - * infinity. - * @return - * - 0 on success. - * - AVERROR(EINVAL) if mode "FF_EBUR128_MODE_I" has not been set. - */ -int ff_ebur128_loudness_global_multiple(FFEBUR128State ** sts, - size_t size, double *out); -/** \brief Get momentary loudness (last 400ms) in LUFS. - * - * @param st library state. - * @param out momentary loudness in LUFS. -HUGE_VAL if result is negative - * infinity. - * @return - * - 0 on success. - */ -int ff_ebur128_loudness_momentary(FFEBUR128State * st, double *out); /** \brief Get short-term loudness (last 3s) in LUFS. * * @param st library state. @@ -229,20 +176,6 @@ int ff_ebur128_loudness_momentary(FFEBUR128State * st, double *out); */ int ff_ebur128_loudness_shortterm(FFEBUR128State * st, double *out); -/** \brief Get loudness of the specified window in LUFS. - * - * window must not be larger than the current window set in st. - * - * @param st library state. - * @param window window in ms to calculate loudness. - * @param out loudness in LUFS. -HUGE_VAL if result is negative infinity. - * @return - * - 0 on success. - * - AVERROR(EINVAL) if window larger than current window in st. - */ -int ff_ebur128_loudness_window(FFEBUR128State * st, - unsigned long window, double *out); - /** \brief Get loudness range (LRA) of programme in LU. * * Calculates loudness range according to EBU 3342.