86 if (sd->
size <
sizeof(*di)) {
102 "surround %f (%f ltrt) - lfe %f",
147 if (gain == INT32_MIN)
169 if (sd->
size <
sizeof(*rg)) {
186 if (sd->
size <
sizeof(*ast)) {
209 switch (param->
type) {
228 "parameter_rate=%d, "
230 "constant_subblock_duration=%d,",
242 switch (param->
type) {
246 "subblock_duration=%d, "
247 "animation_type=%d, "
248 "start_point_value=%d/%d, "
249 "end_point_value=%d/%d, "
250 "control_point_value=%d/%d, "
251 "control_point_relative_time=%d/%d",
252 mix->subblock_duration,
254 mix->start_point_value.num,
mix->start_point_value.den,
255 mix->end_point_value.num,
mix->end_point_value.den,
256 mix->control_point_value.num,
mix->control_point_value.den,
257 mix->control_point_relative_time.num,
mix->control_point_relative_time.den
264 "subblock_duration=%d, "
295 char chlayout_str[128];
296 uint32_t checksum = 0;
300 int data_size = buf->
nb_samples * block_align;
307 s->plane_checksums = tmp_ptr;
314 s->plane_checksums[0];
320 "n:%"PRId64
" pts:%s pts_time:%s "
321 "fmt:%s channels:%d chlayout:%s rate:%d nb_samples:%d "
322 "checksum:%08"PRIX32
" ",
367 .p.name =
"ashowinfo",
Public header for Adler-32 hash function implementation.
static const AVFilterPad inputs[]
static void dump_audio_service_type(AVFilterContext *ctx, AVFrameSideData *sd)
static void dump_downmix(AVFilterContext *ctx, AVFrameSideData *sd)
static const int downmix_type_map[AV_DOWNMIX_TYPE_NB]
static void dump_iamf_parameter_definition(AVFilterContext *ctx, const AVFrameSideData *sd)
static void dump_downmix_matrix(AVFilterContext *ctx, AVFrameSideData *sd, AVChannelLayout *ch_layout)
static void dump_replaygain(AVFilterContext *ctx, AVFrameSideData *sd)
static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
static void print_peak(AVFilterContext *ctx, const char *str, uint32_t peak)
static void print_gain(AVFilterContext *ctx, const char *str, int32_t gain)
static void dump_unknown(AVFilterContext *ctx, AVFrameSideData *sd)
const FFFilter ff_af_ashowinfo
static av_cold void uninit(AVFilterContext *ctx)
static void dump_matrixenc(AVFilterContext *ctx, AVFrameSideData *sd)
static AVFormatContext * ctx
const AVFilterPad ff_audio_default_filterpad[1]
An AVFilterPad array whose only entry has name "default" and is of type AVMEDIA_TYPE_AUDIO.
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter.
Main libavfilter public API header.
#define i(width, name, range_min, range_max)
Public libavutil channel layout APIs header.
Misc types and constants that do not belong anywhere else.
@ AV_AUDIO_SERVICE_TYPE_VOICE_OVER
@ AV_AUDIO_SERVICE_TYPE_EMERGENCY
@ AV_AUDIO_SERVICE_TYPE_EFFECTS
@ AV_AUDIO_SERVICE_TYPE_MAIN
@ AV_AUDIO_SERVICE_TYPE_DIALOGUE
@ AV_AUDIO_SERVICE_TYPE_KARAOKE
@ AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED
@ AV_AUDIO_SERVICE_TYPE_COMMENTARY
@ AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED
static int filter_frame(DBEDecodeContext *s, AVFrame *frame)
static av_always_inline AVDownmixCoeff * av_downmix_matrix_coeff(AVDownmixMatrix *dm, unsigned int out, unsigned int in)
Get a pointer to the coeff that represents the weight of input channel in in output channel out.
@ AV_DOWNMIX_TYPE_UNKNOWN
Not indicated.
@ AV_DOWNMIX_TYPE_LTRT
Lt/Rt 2-channel downmix, Dolby Surround compatible.
@ AV_DOWNMIX_TYPE_LORO
Lo/Ro 2-channel downmix (Stereo).
@ AV_DOWNMIX_TYPE_DPLII
Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible.
@ AV_DOWNMIX_TYPE_NB
Number of downmix types.
#define AVFILTER_FLAG_METADATA_ONLY
The filter is a "metadata" filter - it does not modify the frame data in any way.
AVAdler av_adler32_update(AVAdler adler, const uint8_t *buf, size_t len)
Calculate the Adler32 checksum of a buffer.
int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel_id)
Get a human readable string in an abbreviated form describing a given channel.
enum AVChannel av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, unsigned int idx)
Get the channel with the given index in a channel layout.
int av_channel_layout_describe(const AVChannelLayout *channel_layout, char *buf, size_t buf_size)
Get a human-readable string describing the channel layout properties.
@ AV_MATRIX_ENCODING_DPLIIX
@ AV_MATRIX_ENCODING_NONE
@ AV_MATRIX_ENCODING_DOLBY
@ AV_MATRIX_ENCODING_DPLII
@ AV_MATRIX_ENCODING_DPLIIZ
@ AV_MATRIX_ENCODING_DOLBYEX
@ AV_MATRIX_ENCODING_DOLBYHEADPHONE
@ AV_FRAME_DATA_DOWNMIX_MATRIX
Metadata relevant to a downmix procedure in the form of a remixig matrix.
@ AV_FRAME_DATA_AUDIO_SERVICE_TYPE
This side data must be associated with an audio frame and corresponds to enum AVAudioServiceType defi...
@ AV_FRAME_DATA_REPLAYGAIN
ReplayGain information in the form of the AVReplayGain struct.
@ AV_FRAME_DATA_IAMF_RECON_GAIN_INFO_PARAM
IAMF Recon Gain Info Parameter Data associated with the audio frame.
@ AV_FRAME_DATA_IAMF_MIX_GAIN_PARAM
IAMF Mix Gain Parameter Data associated with the audio frame.
@ AV_FRAME_DATA_DOWNMIX_INFO
Metadata relevant to a downmix procedure.
@ AV_FRAME_DATA_MATRIXENCODING
The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
@ AV_FRAME_DATA_IAMF_DEMIXING_INFO_PARAM
IAMF Demixing Info Parameter Data associated with the audio frame.
static av_always_inline void * av_iamf_param_definition_get_subblock(const AVIAMFParamDefinition *par, unsigned int idx)
Get the subblock at the specified idx.
@ AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN
Subblocks are of struct type AVIAMFReconGain.
@ AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN
Subblocks are of struct type AVIAMFMixGain.
@ AV_IAMF_PARAMETER_DEFINITION_DEMIXING
Subblocks are of struct type AVIAMFDemixingInfo.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define AV_LOG_INFO
Standard information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt)
Check if the sample format is planar.
int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt)
Return number of bytes per sample.
const char * av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
Return the name of sample_fmt, or NULL if sample_fmt is not recognized.
static av_cold void uninit(AVBitStreamFilterContext *ctx)
static int mix(int c0, int c1)
#define FILTER_INPUTS(array)
#define FILTER_OUTPUTS(array)
static FilterLink * ff_filter_link(AVFilterLink *link)
Macro definitions for various function/variable attributes.
Immersive Audio Model and Formats API header.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static const struct @257111027162314367033347246032313251342043035002 planes[]
Memory handling functions.
uint32_t * plane_checksums
Scratch space for individual plane checksums for planar audio.
An AVChannelLayout holds information about the channel layout of audio data.
int nb_channels
Number of channels in this layout.
This structure describes optional metadata relevant to a downmix procedure.
double lfe_mix_level
Absolute scale factor representing the level at which the LFE data is mixed into L/R channels during ...
double surround_mix_level_ltrt
Absolute scale factor representing the nominal level of the surround channels during an Lt/Rt compati...
double surround_mix_level
Absolute scale factor representing the nominal level of the surround channels during a regular downmi...
double center_mix_level
Absolute scale factor representing the nominal level of the center channel during a regular downmix.
enum AVDownmixType preferred_downmix_type
Type of downmix preferred by the mastering engineer.
double center_mix_level_ltrt
Absolute scale factor representing the nominal level of the center channel during an Lt/Rt compatible...
This structure describes optional metadata relevant to a downmix procedure in the form of a remixing ...
int in_ch_count
Input channel count.
enum AVDownmixType downmix_type
Type of downmix the coeffs will produce.
AVFilterLink ** outputs
array of pointers to output links
A link between two filters.
AVRational time_base
Define the time base used by the PTS of the frames/samples which will pass through this link.
AVChannelLayout ch_layout
channel layout of current buffer (see libavutil/channel_layout.h)
AVFilterContext * dst
dest filter
A filter pad used for either input or output.
Structure to hold side data for an AVFrame.
enum AVFrameSideDataType type
This structure describes decoded (raw) audio or video data.
int nb_samples
number of audio samples (per channel) described by this frame
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
AVFrameSideData ** side_data
int sample_rate
Sample rate of the audio data.
AVChannelLayout ch_layout
Channel layout of the audio data.
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames,...
uint8_t ** extended_data
pointers to the data planes/channels.
Demixing Info Parameter Data as defined in section 3.8.2 of IAMF.
unsigned int dmixp_mode
Pre-defined combination of demixing parameters.
unsigned int subblock_duration
Duration for the given subblock, in units of 1 / parameter_rate.
Mix Gain Parameter Data as defined in section 3.8.1 of IAMF.
Parameters as defined in section 3.6.1 of IAMF.
unsigned int parameter_rate
Sample rate for the parameter substream.
unsigned int duration
The accumulated duration of all blocks in this parameter definition, in units of 1 / parameter_rate.
unsigned int constant_subblock_duration
The duration of every subblock in the case where all subblocks, with the optional exception of the la...
unsigned int parameter_id
Identifier for the parameter substream.
enum AVIAMFParamDefinitionType type
Parameters type.
unsigned int nb_subblocks
Number of subblocks in the array.
Recon Gain Info Parameter Data as defined in section 3.8.3 of IAMF.
unsigned int subblock_duration
Duration for the given subblock, in units of 1 / parameter_rate.
ReplayGain information (see http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1....
uint32_t track_peak
Peak track amplitude, with 100000 representing full scale (but values may overflow).
uint32_t album_peak
Same as track_peak, but for the whole album,.
int32_t track_gain
Track replay gain in microbels (divide by 100000 to get the value in dB).
int32_t album_gain
Same as track_gain, but for the whole album.
Link properties exposed to filter code, but not external callers.
timestamp utils, mostly useful for debugging/logging purposes
#define av_ts2str(ts)
Convenience macro, the return value should be used only directly in function arguments but never stan...
#define av_ts2timestr(ts, tb)
Convenience macro, the return value should be used only directly in function arguments but never stan...