31#include "config_components.h"
32#define IMDCT_TYPE AV_TX_FLOAT_MDCT
37#if CONFIG_EAC3_DECODER
42#define EXPORT (AV_OPT_FLAG_EXPORT | AV_OPT_FLAG_READONLY)
44 {
"cons_noisegen",
"enable consistent noise generation",
OFFSET(consistent_noise_generation),
AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1,
PAR },
45 {
"drc_scale",
"percentage of dynamic range compression to apply",
OFFSET(drc_scale),
AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 6.0,
PAR },
46 {
"heavy_compr",
"enable heavy dynamic range compression",
OFFSET(heavy_compression),
AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1,
PAR },
47 {
"target_level",
"target level in -dBFS (0 not applied)",
OFFSET(target_level),
AV_OPT_TYPE_INT, {.i64 = 0 }, -31, 0,
PAR },
49{
"dmix_mode",
"Preferred Stereo Downmix Mode",
OFFSET(preferred_stereo_downmix),
AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 3,
EXPORT, .unit =
"dmix_mode"},
61 .class_name =
"(E-)AC3 decoder",
71 .priv_data_size =
sizeof (AC3DecodeContext),
84#if CONFIG_EAC3_DECODER
89 .priv_data_size =
sizeof (AC3DecodeContext),
static const AVClass ac3_eac3_decoder_class
const FFCodec ff_ac3_decoder
const FFCodec ff_eac3_decoder
static av_cold void close(AVCodecParserContext *s)
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define CODEC_SAMPLEFMTS(...)
void(* flush)(AVBSFContext *ctx)
int(* init)(AVBSFContext *ctx)
@ AV_OPT_TYPE_INT
Underlying C type is int.
@ AV_OPT_TYPE_CHLAYOUT
Underlying C type is AVChannelLayout.
@ AV_OPT_TYPE_FLOAT
Underlying C type is float.
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
const char * av_default_item_name(void *ptr)
Return the context name.
@ AV_SAMPLE_FMT_FLTP
float, planar
#define LIBAVUTIL_VERSION_INT
static av_cold void ac3_decode_flush(AVCodecContext *avctx)
static av_cold int ac3_decode_end(AVCodecContext *avctx)
Uninitialize the AC-3 decoder.
static int ac3_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt)
Decode a single AC-3 frame.
static av_cold int ac3_decode_init(AVCodecContext *avctx)
AVCodec initialization.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
const AVProfile ff_eac3_profiles[]
Describe the class of an AVClass context structure.