FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
iamf.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/attributes_internal.h"
#include "libavutil/channel_layout.h"
#include "libavutil/iamf.h"
#include "libavcodec/codec_id.h"
#include "libavcodec/codec_par.h"

Go to the source code of this file.

Data Structures

struct  IAMFCodecConfig
 
struct  IAMFLayer
 
struct  IAMFSubStream
 
struct  IAMFAudioElement
 
struct  IAMFMixPresentation
 
struct  IAMFParamDefinition
 
struct  IAMFContext
 
struct  IAMFSoundSystemMap
 

Macros

#define MAX_IAMF_OBU_HEADER_SIZE   (1 + 8 * 3)
 

Enumerations

enum  IAMF_OBU_Type {
  IAMF_OBU_IA_CODEC_CONFIG = 0, IAMF_OBU_IA_AUDIO_ELEMENT = 1, IAMF_OBU_IA_MIX_PRESENTATION = 2, IAMF_OBU_IA_PARAMETER_BLOCK = 3,
  IAMF_OBU_IA_TEMPORAL_DELIMITER = 4, IAMF_OBU_IA_AUDIO_FRAME = 5, IAMF_OBU_IA_AUDIO_FRAME_ID0 = 6, IAMF_OBU_IA_AUDIO_FRAME_ID1 = 7,
  IAMF_OBU_IA_AUDIO_FRAME_ID2 = 8, IAMF_OBU_IA_AUDIO_FRAME_ID3 = 9, IAMF_OBU_IA_AUDIO_FRAME_ID4 = 10, IAMF_OBU_IA_AUDIO_FRAME_ID5 = 11,
  IAMF_OBU_IA_AUDIO_FRAME_ID6 = 12, IAMF_OBU_IA_AUDIO_FRAME_ID7 = 13, IAMF_OBU_IA_AUDIO_FRAME_ID8 = 14, IAMF_OBU_IA_AUDIO_FRAME_ID9 = 15,
  IAMF_OBU_IA_AUDIO_FRAME_ID10 = 16, IAMF_OBU_IA_AUDIO_FRAME_ID11 = 17, IAMF_OBU_IA_AUDIO_FRAME_ID12 = 18, IAMF_OBU_IA_AUDIO_FRAME_ID13 = 19,
  IAMF_OBU_IA_AUDIO_FRAME_ID14 = 20, IAMF_OBU_IA_AUDIO_FRAME_ID15 = 21, IAMF_OBU_IA_AUDIO_FRAME_ID16 = 22, IAMF_OBU_IA_AUDIO_FRAME_ID17 = 23,
  IAMF_OBU_IA_SEQUENCE_HEADER = 31
}
 
enum  IAMF_Anchor_Element { IAMF_ANCHOR_ELEMENT_UNKNWONW, IAMF_ANCHOR_ELEMENT_DIALOGUE, IAMF_ANCHOR_ELEMENT_ALBUM }
 
enum  IAMF_Sound_System {
  SOUND_SYSTEM_A_0_2_0 = 0, SOUND_SYSTEM_B_0_5_0 = 1, SOUND_SYSTEM_C_2_5_0 = 2, SOUND_SYSTEM_D_4_5_0 = 3,
  SOUND_SYSTEM_E_4_5_1 = 4, SOUND_SYSTEM_F_3_7_0 = 5, SOUND_SYSTEM_G_4_9_0 = 6, SOUND_SYSTEM_H_9_10_3 = 7,
  SOUND_SYSTEM_I_0_7_0 = 8, SOUND_SYSTEM_J_4_7_0 = 9, SOUND_SYSTEM_10_2_7_0 = 10, SOUND_SYSTEM_11_2_3_0 = 11,
  SOUND_SYSTEM_12_0_1_0 = 12, SOUND_SYSTEM_13_9_1_6 = 13
}
 

Functions

static IAMFCodecConfigff_iamf_get_codec_config (const IAMFContext *c, unsigned int codec_config_id)
 
static IAMFParamDefinitionff_iamf_get_param_definition (const IAMFContext *iamf, unsigned int parameter_id)
 
void ff_iamf_free_audio_element (IAMFAudioElement **paudio_element)
 
void ff_iamf_free_mix_presentation (IAMFMixPresentation **pmix_presentation)
 
void ff_iamf_uninit_context (IAMFContext *c)
 

Variables

const FF_VISIBILITY_PUSH_HIDDEN AVChannelLayout ff_iamf_scalable_ch_layouts [10]
 
const AVChannelLayout ff_iamf_expanded_scalable_ch_layouts [13]
 
const struct IAMFSoundSystemMap ff_iamf_sound_system_map [14]
 

Macro Definition Documentation

◆ MAX_IAMF_OBU_HEADER_SIZE

#define MAX_IAMF_OBU_HEADER_SIZE   (1 + 8 * 3)

Definition at line 34 of file iamf.h.

Enumeration Type Documentation

◆ IAMF_OBU_Type

Enumerator
IAMF_OBU_IA_CODEC_CONFIG 
IAMF_OBU_IA_AUDIO_ELEMENT 
IAMF_OBU_IA_MIX_PRESENTATION 
IAMF_OBU_IA_PARAMETER_BLOCK 
IAMF_OBU_IA_TEMPORAL_DELIMITER 
IAMF_OBU_IA_AUDIO_FRAME 
IAMF_OBU_IA_AUDIO_FRAME_ID0 
IAMF_OBU_IA_AUDIO_FRAME_ID1 
IAMF_OBU_IA_AUDIO_FRAME_ID2 
IAMF_OBU_IA_AUDIO_FRAME_ID3 
IAMF_OBU_IA_AUDIO_FRAME_ID4 
IAMF_OBU_IA_AUDIO_FRAME_ID5 
IAMF_OBU_IA_AUDIO_FRAME_ID6 
IAMF_OBU_IA_AUDIO_FRAME_ID7 
IAMF_OBU_IA_AUDIO_FRAME_ID8 
IAMF_OBU_IA_AUDIO_FRAME_ID9 
IAMF_OBU_IA_AUDIO_FRAME_ID10 
IAMF_OBU_IA_AUDIO_FRAME_ID11 
IAMF_OBU_IA_AUDIO_FRAME_ID12 
IAMF_OBU_IA_AUDIO_FRAME_ID13 
IAMF_OBU_IA_AUDIO_FRAME_ID14 
IAMF_OBU_IA_AUDIO_FRAME_ID15 
IAMF_OBU_IA_AUDIO_FRAME_ID16 
IAMF_OBU_IA_AUDIO_FRAME_ID17 
IAMF_OBU_IA_SEQUENCE_HEADER 

Definition at line 37 of file iamf.h.

◆ IAMF_Anchor_Element

Enumerator
IAMF_ANCHOR_ELEMENT_UNKNWONW 
IAMF_ANCHOR_ELEMENT_DIALOGUE 
IAMF_ANCHOR_ELEMENT_ALBUM 

Definition at line 139 of file iamf.h.

◆ IAMF_Sound_System

Enumerator
SOUND_SYSTEM_A_0_2_0 
SOUND_SYSTEM_B_0_5_0 
SOUND_SYSTEM_C_2_5_0 
SOUND_SYSTEM_D_4_5_0 
SOUND_SYSTEM_E_4_5_1 
SOUND_SYSTEM_F_3_7_0 
SOUND_SYSTEM_G_4_9_0 
SOUND_SYSTEM_H_9_10_3 
SOUND_SYSTEM_I_0_7_0 
SOUND_SYSTEM_J_4_7_0 
SOUND_SYSTEM_10_2_7_0 
SOUND_SYSTEM_11_2_3_0 
SOUND_SYSTEM_12_0_1_0 
SOUND_SYSTEM_13_9_1_6 

Definition at line 145 of file iamf.h.

Function Documentation

◆ ff_iamf_get_codec_config()

static IAMFCodecConfig* ff_iamf_get_codec_config ( const IAMFContext c,
unsigned int  codec_config_id 
)
inlinestatic

Definition at line 172 of file iamf.h.

Referenced by audio_element_obu(), and ff_iamf_write_audio_frame().

◆ ff_iamf_get_param_definition()

static IAMFParamDefinition* ff_iamf_get_param_definition ( const IAMFContext iamf,
unsigned int  parameter_id 
)
inlinestatic

◆ ff_iamf_free_audio_element()

void ff_iamf_free_audio_element ( IAMFAudioElement **  paudio_element)

Definition at line 130 of file iamf.c.

Referenced by audio_element_obu(), ff_iamf_add_audio_element(), and ff_iamf_uninit_context().

◆ ff_iamf_free_mix_presentation()

void ff_iamf_free_mix_presentation ( IAMFMixPresentation **  pmix_presentation)

◆ ff_iamf_uninit_context()

void ff_iamf_uninit_context ( IAMFContext c)

Definition at line 159 of file iamf.c.

Referenced by ff_iamf_read_deinit(), iamf_deinit(), and mov_free().

Variable Documentation

◆ ff_iamf_scalable_ch_layouts

const FF_VISIBILITY_PUSH_HIDDEN AVChannelLayout ff_iamf_scalable_ch_layouts[10]

Definition at line 27 of file iamf.c.

Referenced by ff_iamf_add_audio_element(), and scalable_channel_layout_config().

◆ ff_iamf_expanded_scalable_ch_layouts

const AVChannelLayout ff_iamf_expanded_scalable_ch_layouts[13]

Definition at line 48 of file iamf.c.

Referenced by ff_iamf_add_audio_element(), and scalable_channel_layout_config().

◆ ff_iamf_sound_system_map

const struct IAMFSoundSystemMap ff_iamf_sound_system_map[14]

Definition at line 107 of file iamf.c.

Referenced by iamf_write_mixing_presentation(), and mix_presentation_obu().