FFmpeg
|
EBU R.128 implementation. More...
#include <math.h>
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/dict.h"
#include "libavutil/xga_font_data.h"
#include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "audio.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | hist_entry |
An histogram is an array of HIST_SIZE hist_entry storing all the energies recorded (with an accuracy of 1/HIST_GRAIN) of the loudnesses from ABS_THRES (at 0) to ABS_UP_THRES (at HIST_SIZE-1). More... | |
struct | integrator |
struct | rect |
struct | EBUR128Context |
Macros | |
#define | MAX_CHANNELS 63 |
#define | PRE_B0 1.53512485958697 |
#define | PRE_B1 -2.69169618940638 |
#define | PRE_B2 1.19839281085285 |
#define | PRE_A1 -1.69065929318241 |
#define | PRE_A2 0.73248077421585 |
#define | RLB_B0 1.0 |
#define | RLB_B1 -2.0 |
#define | RLB_B2 1.0 |
#define | RLB_A1 -1.99004745483398 |
#define | RLB_A2 0.99007225036621 |
#define | ABS_THRES -70 |
silence gate: we discard anything below this absolute (LUFS) threshold More... | |
#define | ABS_UP_THRES 10 |
upper loud limit to consider (ABS_THRES being the minimum) More... | |
#define | HIST_GRAIN 100 |
defines histogram precision More... | |
#define | HIST_SIZE ((ABS_UP_THRES - ABS_THRES) * HIST_GRAIN + 1) |
#define | I400_BINS (48000 * 4 / 10) |
#define | I3000_BINS (48000 * 3) |
#define | OFFSET(x) offsetof(EBUR128Context, x) |
#define | A AV_OPT_FLAG_AUDIO_PARAM |
#define | V AV_OPT_FLAG_VIDEO_PARAM |
#define | F AV_OPT_FLAG_FILTERING_PARAM |
#define | FONT8 0 |
#define | FONT16 1 |
#define | PAD 8 |
#define | DRAW_RECT(r) |
#define | BACK_MASK |
#define | ENERGY(loudness) (pow(10, ((loudness) + 0.691) / 10.)) |
#define | LOUDNESS(energy) (-0.691 + 10 * log10(energy)) |
#define | HIST_POS(power) (int)(((power) - ABS_THRES) * HIST_GRAIN) |
#define | MOVE_TO_NEXT_CACHED_ENTRY(time) |
#define | FILTER(Y, X, name) |
#define | COMPUTE_LOUDNESS(m, time) |
#define | I_GATE_THRES -10 |
#define | LRA_GATE_THRES -20 |
#define | LRA_LOWER_PRC 10 |
#define | LRA_HIGHER_PRC 95 |
#define | LOG_FMT "M:%6.1f S:%6.1f I:%6.1f LUFS LRA:%6.1f LU" |
#define | SET_META(name, var) |
Functions | |
AVFILTER_DEFINE_CLASS (ebur128) | |
static const uint8_t * | get_graph_color (const EBUR128Context *ebur128, int v, int y) |
static int | lu_to_y (const EBUR128Context *ebur128, double v) |
static void | drawtext (AVFrame *pic, int x, int y, int ftid, const uint8_t *color, const char *fmt,...) |
static void | drawline (AVFrame *pic, int x, int y, int len, int step) |
static int | config_video_output (AVFilterLink *outlink) |
static int | config_audio_input (AVFilterLink *inlink) |
static int | config_audio_output (AVFilterLink *outlink) |
static struct hist_entry * | get_histogram (void) |
static av_cold int | init (AVFilterContext *ctx) |
static int | gate_update (struct integrator *integ, double power, double loudness, int gate_thres) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *insamples) |
static int | query_formats (AVFilterContext *ctx) |
static av_cold void | uninit (AVFilterContext *ctx) |
Variables | |
static const AVOption | ebur128_options [] |
static const uint8_t | graph_colors [] |
static const uint8_t | font_colors [] |
static const AVFilterPad | ebur128_inputs [] |
AVFilter | avfilter_af_ebur128 |
Detailed Description
EBU R.128 implementation.
- See also
- http://tech.ebu.ch/loudness
- https://www.youtube.com/watch?v=iuEtQqC-Sqo "EBU R128 Introduction - Florian Camerer"
- Todo:
True Peak
implement start/stop/reset through filter command injection
support other frequencies to avoid resampling
Definition in file f_ebur128.c.
Macro Definition Documentation
#define A AV_OPT_FLAG_AUDIO_PARAM |
Definition at line 134 of file f_ebur128.c.
#define ABS_THRES -70 |
silence gate: we discard anything below this absolute (LUFS) threshold
Definition at line 61 of file f_ebur128.c.
Referenced by filter_frame(), get_histogram(), and init().
#define ABS_UP_THRES 10 |
upper loud limit to consider (ABS_THRES being the minimum)
Definition at line 62 of file f_ebur128.c.
#define BACK_MASK |
Referenced by config_audio_output().
#define COMPUTE_LOUDNESS | ( | m, | |
time | |||
) |
Referenced by filter_frame().
#define DRAW_RECT | ( | r | ) |
Referenced by config_video_output().
#define ENERGY | ( | loudness | ) | (pow(10, ((loudness) + 0.691) / 10.)) |
Definition at line 389 of file f_ebur128.c.
Referenced by get_histogram().
#define F AV_OPT_FLAG_FILTERING_PARAM |
Definition at line 136 of file f_ebur128.c.
Referenced by filter_frame().
#define FONT16 1 |
Definition at line 179 of file f_ebur128.c.
Referenced by drawtext(), and filter_frame().
#define FONT8 0 |
Definition at line 178 of file f_ebur128.c.
Referenced by config_video_output(), and drawtext().
#define HIST_GRAIN 100 |
defines histogram precision
Definition at line 63 of file f_ebur128.c.
Referenced by get_histogram().
#define HIST_POS | ( | power | ) | (int)(((power) - ABS_THRES) * HIST_GRAIN) |
Definition at line 457 of file f_ebur128.c.
Referenced by gate_update().
#define HIST_SIZE ((ABS_UP_THRES - ABS_THRES) * HIST_GRAIN + 1) |
Definition at line 64 of file f_ebur128.c.
Referenced by filter_frame(), gate_update(), and get_histogram().
#define I3000_BINS (48000 * 3) |
Definition at line 119 of file f_ebur128.c.
Referenced by config_audio_output().
#define I400_BINS (48000 * 4 / 10) |
Definition at line 118 of file f_ebur128.c.
Referenced by config_audio_output().
#define I_GATE_THRES -10 |
Referenced by filter_frame().
#define LOG_FMT "M:%6.1f S:%6.1f I:%6.1f LUFS LRA:%6.1f LU" |
Referenced by filter_frame().
#define LOUDNESS | ( | energy | ) | (-0.691 + 10 * log10(energy)) |
Definition at line 390 of file f_ebur128.c.
Referenced by filter_frame(), and gate_update().
#define LRA_GATE_THRES -20 |
Referenced by filter_frame().
#define LRA_HIGHER_PRC 95 |
Referenced by filter_frame().
#define LRA_LOWER_PRC 10 |
Referenced by filter_frame().
#define MAX_CHANNELS 63 |
Definition at line 45 of file f_ebur128.c.
#define MOVE_TO_NEXT_CACHED_ENTRY | ( | time | ) |
Referenced by filter_frame().
#define OFFSET | ( | x | ) | offsetof(EBUR128Context, x) |
Definition at line 133 of file f_ebur128.c.
#define PAD 8 |
Referenced by avfilter_register_all(), config_video_output(), and filter_frame().
#define PRE_A1 -1.69065929318241 |
Definition at line 51 of file f_ebur128.c.
#define PRE_A2 0.73248077421585 |
Definition at line 52 of file f_ebur128.c.
#define PRE_B0 1.53512485958697 |
Definition at line 48 of file f_ebur128.c.
#define PRE_B1 -2.69169618940638 |
Definition at line 49 of file f_ebur128.c.
#define PRE_B2 1.19839281085285 |
Definition at line 50 of file f_ebur128.c.
#define RLB_A1 -1.99004745483398 |
Definition at line 58 of file f_ebur128.c.
#define RLB_A2 0.99007225036621 |
Definition at line 59 of file f_ebur128.c.
#define RLB_B0 1.0 |
Definition at line 55 of file f_ebur128.c.
#define RLB_B1 -2.0 |
Definition at line 56 of file f_ebur128.c.
#define RLB_B2 1.0 |
Definition at line 57 of file f_ebur128.c.
#define SET_META | ( | name, | |
var | |||
) |
Referenced by filter_frame().
#define V AV_OPT_FLAG_VIDEO_PARAM |
Definition at line 135 of file f_ebur128.c.
Function Documentation
AVFILTER_DEFINE_CLASS | ( | ebur128 | ) |
|
static |
Definition at line 324 of file f_ebur128.c.
|
static |
Definition at line 338 of file f_ebur128.c.
Referenced by init().
|
static |
Definition at line 230 of file f_ebur128.c.
Referenced by init().
Definition at line 219 of file f_ebur128.c.
|
static |
Definition at line 186 of file f_ebur128.c.
Referenced by avfilter_register_all(), config_video_output(), and filter_frame().
|
static |
Definition at line 484 of file f_ebur128.c.
|
static |
Definition at line 461 of file f_ebur128.c.
Referenced by filter_frame().
|
static |
Definition at line 161 of file f_ebur128.c.
Referenced by config_video_output(), and filter_frame().
|
static |
Definition at line 392 of file f_ebur128.c.
Referenced by init().
|
static |
Definition at line 406 of file f_ebur128.c.
|
inlinestatic |
Definition at line 170 of file f_ebur128.c.
Referenced by config_video_output(), and filter_frame().
|
static |
Definition at line 702 of file f_ebur128.c.
|
static |
Definition at line 747 of file f_ebur128.c.
Variable Documentation
AVFilter avfilter_af_ebur128 |
Definition at line 789 of file f_ebur128.c.
|
static |
Definition at line 778 of file f_ebur128.c.
|
static |
Definition at line 137 of file f_ebur128.c.
|
static |
Definition at line 181 of file f_ebur128.c.
Referenced by config_video_output(), and filter_frame().
|
static |
Definition at line 150 of file f_ebur128.c.
Referenced by get_graph_color().
Generated on Mon Nov 18 2024 06:52:05 for FFmpeg by 1.8.11