FFmpeg
|
Audio Mix Filter. More...
#include "libavutil/audio_fifo.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/samplefmt.h"
#include "audio.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | FrameInfo |
struct | FrameList |
Linked list used to store timestamps and frame sizes of all frames in the FIFO for the first input. More... | |
struct | MixContext |
Macros | |
#define | INPUT_OFF 0 |
input has reached EOF More... | |
#define | INPUT_ON 1 |
input is active More... | |
#define | INPUT_INACTIVE 2 |
input is on, but is currently inactive More... | |
#define | DURATION_LONGEST 0 |
#define | DURATION_SHORTEST 1 |
#define | DURATION_FIRST 2 |
#define | OFFSET(x) offsetof(MixContext, x) |
#define | A AV_OPT_FLAG_AUDIO_PARAM |
#define | F AV_OPT_FLAG_FILTERING_PARAM |
Typedefs | |
typedef struct FrameInfo | FrameInfo |
typedef struct FrameList | FrameList |
Linked list used to store timestamps and frame sizes of all frames in the FIFO for the first input. More... | |
typedef struct MixContext | MixContext |
Functions | |
static void | frame_list_clear (FrameList *frame_list) |
static int | frame_list_next_frame_size (FrameList *frame_list) |
static int64_t | frame_list_next_pts (FrameList *frame_list) |
static void | frame_list_remove_samples (FrameList *frame_list, int nb_samples) |
static int | frame_list_add_frame (FrameList *frame_list, int nb_samples, int64_t pts) |
AVFILTER_DEFINE_CLASS (amix) | |
static void | calculate_scales (MixContext *s, int nb_samples) |
Update the scaling factors to apply to each input during mixing. More... | |
static int | config_output (AVFilterLink *outlink) |
static int | output_frame (AVFilterLink *outlink, int nb_samples) |
Read samples from the input FIFOs, mix, and write to the output link. More... | |
static int | get_available_samples (MixContext *s) |
Returns the smallest number of samples available in the input FIFOs other than that of the first input. More... | |
static int | request_samples (AVFilterContext *ctx, int min_samples) |
Requests a frame, if needed, from each input link other than the first. More... | |
static int | calc_active_inputs (MixContext *s) |
Calculates the number of active inputs and determines EOF based on the duration option. More... | |
static int | request_frame (AVFilterLink *outlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *buf) |
static int | init (AVFilterContext *ctx) |
static void | uninit (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
Variables | |
static const AVOption | amix_options [] |
static const AVFilterPad | avfilter_af_amix_outputs [] |
AVFilter | avfilter_af_amix |
Detailed Description
Audio Mix Filter.
Mixes audio from multiple sources into a single output. The channel layout, sample rate, and sample format will be the same for all inputs and the output.
Definition in file af_amix.c.
Macro Definition Documentation
#define A AV_OPT_FLAG_AUDIO_PARAM |
#define DURATION_FIRST 2 |
Definition at line 52 of file af_amix.c.
Referenced by calc_active_inputs().
#define DURATION_SHORTEST 1 |
Definition at line 51 of file af_amix.c.
Referenced by calc_active_inputs().
#define F AV_OPT_FLAG_FILTERING_PARAM |
#define INPUT_INACTIVE 2 |
#define INPUT_OFF 0 |
input has reached EOF
Definition at line 46 of file af_amix.c.
Referenced by calc_active_inputs(), get_available_samples(), request_frame(), and request_samples().
#define INPUT_ON 1 |
input is active
Definition at line 47 of file af_amix.c.
Referenced by calculate_scales(), config_output(), and output_frame().
#define OFFSET | ( | x | ) | offsetof(MixContext, x) |
Typedef Documentation
Linked list used to store timestamps and frame sizes of all frames in the FIFO for the first input.
This is needed to keep timestamps synchronized for the case where multiple input frames are pushed to the filter for processing before a frame is requested by the output link.
typedef struct MixContext MixContext |
Function Documentation
AVFILTER_DEFINE_CLASS | ( | amix | ) |
|
static |
Calculates the number of active inputs and determines EOF based on the duration option.
- Returns
- 0 if mixing should continue, or AVERROR_EOF if mixing should stop.
Definition at line 371 of file af_amix.c.
Referenced by request_frame().
|
static |
Update the scaling factors to apply to each input during mixing.
This balances the full volume range between active inputs and handles volume transitions when EOF is encountered on an input but mixing continues with the remaining inputs.
Definition at line 201 of file af_amix.c.
Referenced by config_output(), and output_frame().
|
static |
|
static |
|
static |
Definition at line 131 of file af_amix.c.
Referenced by filter_frame().
Definition at line 76 of file af_amix.c.
Referenced by frame_list_remove_samples(), and uninit().
|
static |
Definition at line 90 of file af_amix.c.
Referenced by request_frame().
|
static |
Definition at line 97 of file af_amix.c.
Referenced by request_frame().
Definition at line 104 of file af_amix.c.
Referenced by request_frame().
|
static |
Returns the smallest number of samples available in the input FIFOs other than that of the first input.
Definition at line 319 of file af_amix.c.
Referenced by request_frame().
|
static |
|
static |
Read samples from the input FIFOs, mix, and write to the output link.
Definition at line 269 of file af_amix.c.
Referenced by request_frame().
|
static |
|
static |
|
static |
Requests a frame, if needed, from each input link other than the first.
Definition at line 341 of file af_amix.c.
Referenced by request_frame().
|
static |
Variable Documentation
|
static |
AVFilter avfilter_af_amix |
|
static |
Generated on Fri Dec 20 2024 06:56:10 for FFmpeg by 1.8.11