251 unsigned int nb_subblocks,
size_t *size);
280#define AV_IAMF_LAYER_FLAG_RECON_GAIN (1 << 0)
Macro definitions for various function/variable attributes.
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
Public libavutil channel layout APIs header.
struct AVDictionary AVDictionary
AVIAMFLayer * av_iamf_audio_element_add_layer(AVIAMFAudioElement *audio_element)
Allocate a layer and add it to a given AVIAMFAudioElement.
const AVClass * av_iamf_audio_element_get_class(void)
void av_iamf_audio_element_free(AVIAMFAudioElement **audio_element)
Free an AVIAMFAudioElement and all its contents.
AVIAMFAudioElement * av_iamf_audio_element_alloc(void)
Allocates a AVIAMFAudioElement, and initializes its fields with default values.
@ AV_IAMF_AMBISONICS_MODE_MONO
@ AV_IAMF_AMBISONICS_MODE_PROJECTION
@ AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE
@ AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL
AVIAMFSubmixLayout * av_iamf_submix_add_layout(AVIAMFSubmix *submix)
Allocate a submix layout and add it to a given AVIAMFSubmix.
void av_iamf_mix_presentation_free(AVIAMFMixPresentation **mix_presentation)
Free an AVIAMFMixPresentation and all its contents.
AVIAMFMixPresentation * av_iamf_mix_presentation_alloc(void)
Allocates a AVIAMFMixPresentation, and initializes its fields with default values.
AVIAMFSubmix * av_iamf_mix_presentation_add_submix(AVIAMFMixPresentation *mix_presentation)
Allocate a submix and add it to a given AVIAMFMixPresentation.
AVIAMFSubmixElement * av_iamf_submix_add_element(AVIAMFSubmix *submix)
Allocate a submix element and add it to a given AVIAMFSubmix.
const AVClass * av_iamf_mix_presentation_get_class(void)
@ AV_IAMF_HEADPHONES_MODE_STEREO
The referenced Audio Element shall be rendered to stereo loudspeakers.
@ AV_IAMF_HEADPHONES_MODE_BINAURAL
The referenced Audio Element shall be rendered with a binaural renderer.
@ AV_IAMF_SUBMIX_LAYOUT_TYPE_BINAURAL
The layout is binaural.
@ AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS
The layout follows the loudspeaker sound system convention of ITU-2051-3.
static av_always_inline void * av_iamf_param_definition_get_subblock(const AVIAMFParamDefinition *par, unsigned int idx)
Get the subblock at the specified idx.
AVIAMFParamDefinitionType
const AVClass * av_iamf_param_definition_get_class(void)
AVIAMFParamDefinition * av_iamf_param_definition_alloc(enum AVIAMFParamDefinitionType type, unsigned int nb_subblocks, size_t *size)
Allocates memory for AVIAMFParamDefinition, plus an array of nb_subblocks amount of subblocks of the ...
@ 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.
@ AV_IAMF_ANIMATION_TYPE_BEZIER
@ AV_IAMF_ANIMATION_TYPE_LINEAR
@ AV_IAMF_ANIMATION_TYPE_STEP
Utilties for rational number calculation.
An AVChannelLayout holds information about the channel layout of audio data.
Describe the class of an AVClass context structure.
Information on how to combine one or more audio streams, as defined in section 3.6 of IAMF.
enum AVIAMFAudioElementType audio_element_type
Audio element type as defined in section 3.6 of IAMF.
AVIAMFParamDefinition * recon_gain_info
Recon gain information used to reconstruct a scalable channel audio representation.
unsigned int default_w
Default weight value as defined in section 3.6 of IAMF.
AVIAMFParamDefinition * demixing_info
Demixing information used to reconstruct a scalable channel audio representation.
unsigned int nb_layers
Number of layers, or channel groups, in the Audio Element.
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.
A layer defining a Channel Layout in the Audio Element.
unsigned int flags
A bitmask which may contain a combination of AV_IAMF_LAYER_FLAG_* flags.
unsigned int output_gain_flags
Output gain channel flags as defined in section 3.6.2 of IAMF.
enum AVIAMFAmbisonicsMode ambisonics_mode
Ambisonics mode as defined in section 3.6.3 of IAMF.
AVRational * demixing_matrix
Demixing matrix as defined in section 3.6.3 of IAMF.
AVChannelLayout ch_layout
AVRational output_gain
Output gain as defined in section 3.6.2 of IAMF.
Mix Gain Parameter Data as defined in section 3.8.1 of IAMF.
unsigned int subblock_duration
Duration for the given subblock, in units of 1 / parameter_rate.
AVRational start_point_value
Parameter value that is applied at the start of the subblock.
AVRational control_point_value
Parameter value of the middle control point of a quadratic Bezier curve, i.e., its y-axis value.
AVRational end_point_value
Parameter value that is applied at the end of the subblock.
enum AVIAMFAnimationType animation_type
The type of animation applied to the parameter values.
AVRational control_point_relative_time
Parameter value of the time of the middle control point of a quadratic Bezier curve,...
Information on how to render and mix one or more AVIAMFAudioElement to generate the final audio outpu...
unsigned int nb_submixes
Number of submixes in the presentation.
AVDictionary * annotations
A dictionary of strings describing the mix in different languages.
AVIAMFSubmix ** submixes
Array of submixes.
Parameters as defined in section 3.6.1 of IAMF.
unsigned int parameter_rate
Sample rate for the paremeter substream.
size_t subblocks_offset
Offset in bytes from the start of this struct, at which the subblocks array is located.
size_t subblock_size
Size in bytes of each element in the subblocks array.
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 paremeter 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.
uint8_t recon_gain[6][12]
Array of gain values to be applied to each channel for each layer defined in the Audio Element refere...
Submix element as defined in section 3.7 of IAMF.
AVIAMFParamDefinition * element_mix_config
Information required required for applying any processing to the referenced and rendered Audio Elemen...
unsigned int audio_element_id
The id of the Audio Element this submix element references.
AVDictionary * annotations
A dictionary of strings describing the submix in different languages.
enum AVIAMFHeadphonesMode headphones_rendering_mode
A value that indicates whether the referenced channel-based Audio Element shall be rendered to stereo...
AVRational default_mix_gain
Default mix gain value to apply when there are no AVIAMFParamDefinition with element_mix_config's par...
Submix layout as defined in section 3.7.6 of IAMF.
AVRational true_peak
The true peak of the audio signal, as defined in ITU-1770-4.
AVRational digital_peak
The digital (sampled) peak value of the audio signal, as defined in ITU-1770-4.
enum AVIAMFSubmixLayoutType layout_type
AVRational dialogue_anchored_loudness
The Dialogue loudness information, as defined in ITU-1770-4.
AVRational album_anchored_loudness
The Album loudness information, as defined in ITU-1770-4.
AVRational integrated_loudness
The program integrated loudness information, as defined in ITU-1770-4.
AVChannelLayout sound_system
Channel layout matching one of Sound Systems A to J of ITU-2051-3, plus 7.1.2ch and 3....
Submix layout as defined in section 3.7 of IAMF.
AVRational default_mix_gain
Default mix gain value to apply when there are no AVIAMFParamDefinition with output_mix_config's para...
unsigned int nb_elements
Number of elements in the submix.
AVIAMFSubmixElement ** elements
Array of submix elements.
AVIAMFSubmixLayout ** layouts
Array of submix layouts.
AVIAMFParamDefinition * output_mix_config
Information required for post-processing the mixed audio signal to generate the audio signal for play...
unsigned int nb_layouts
Number of layouts in the submix.
Rational number (pair of numerator and denominator).