FFmpeg
libavfilter
af_volume.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
24
#ifndef AVFILTER_VOLUME_H
25
#define AVFILTER_VOLUME_H
26
27
#include "
libavutil/common.h
"
28
#include "
libavutil/eval.h
"
29
#include "libavutil/float_dsp.h"
30
#include "
libavutil/opt.h
"
31
#include "libavutil/samplefmt.h"
32
33
enum
PrecisionType {
34
PRECISION_FIXED = 0,
35
PRECISION_FLOAT,
36
PRECISION_DOUBLE,
37
};
38
39
enum
EvalMode {
40
EVAL_MODE_ONCE,
41
EVAL_MODE_FRAME,
42
EVAL_MODE_NB
43
};
44
45
enum
VolumeVarName {
46
VAR_N,
47
VAR_NB_CHANNELS,
48
VAR_NB_CONSUMED_SAMPLES,
49
VAR_NB_SAMPLES,
50
VAR_POS,
51
VAR_PTS,
52
VAR_SAMPLE_RATE,
53
VAR_STARTPTS,
54
VAR_STARTT,
55
VAR_T,
56
VAR_TB,
57
VAR_VOLUME,
58
VAR_VARS_NB
59
};
60
61
enum
ReplayGainType {
62
REPLAYGAIN_DROP,
63
REPLAYGAIN_IGNORE,
64
REPLAYGAIN_TRACK,
65
REPLAYGAIN_ALBUM,
66
};
67
68
typedef
struct
VolumeContext
{
69
const
AVClass
*
class
;
70
AVFloatDSPContext
*fdsp;
71
int
precision;
72
int
eval_mode;
73
const
char
*volume_expr;
74
AVExpr
*volume_pexpr;
75
double
var_values[VAR_VARS_NB];
76
77
int
replaygain;
78
double
replaygain_preamp;
79
int
replaygain_noclip;
80
double
volume;
81
int
volume_i;
82
int
channels;
83
int
planes;
84
enum
AVSampleFormat
sample_fmt;
85
86
void (*scale_samples)(uint8_t *dst,
const
uint8_t *src,
int
nb_samples,
87
int
volume);
88
int
samples_align;
89
}
VolumeContext
;
90
91
void
ff_volume_init_x86(
VolumeContext
*vol);
92
93
#endif
/* AVFILTER_VOLUME_H */
opt.h
AVOptions.
AVExpr
Definition:
eval.c:157
AVFloatDSPContext
Definition:
float_dsp.h:24
VolumeContext
Definition:
af_volume.h:68
AVSampleFormat
AVSampleFormat
Audio sample formats.
Definition:
samplefmt.h:58
AVClass
Describe the class of an AVClass context structure.
Definition:
log.h:67
common.h
common internal and external API header
eval.h
simple arithmetic expression evaluator
Generated by
1.8.12