一、Audio channel layouts
一)、宏
#define | AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) |
#define | AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) |
#define | AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) |
二)、枚举
#define | AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) |
三)、函数
uint64_t | av_get_channel_layout (const char *name) |
名称可以是以下一个或几个符号,用“+”或“|”分隔:
1、通常的通道布局(单声道,立体声,4.0,四,5.0,5.0(侧),5.1,5.1(侧),7.1,7.1(宽),下混合)的名称;
2、单个通道的名称(FL,FR,FC,LFE,BL,BR,FLC,FRC,BC,SL,SR,TC,TFL,TFC,TFR,TBL,TBC,TBR,DL,DR)
3、多个通道,以十进制,后跟'c',产生该通道数的默认通道布局(查看av_get_default_channel_layout)
4、一个通道布局掩码,十六进制以“0x”开头(见AV_CH_ *宏)。
示例:“stereo + FC”=“2c + FC”=“2c + 1c”=“0x7”
int | av_get_extended_channel_layout (const char *name, uint64_t *channel_layout, int *nb_channels) |
这个函数类似于(查看av_get_channel_layout),但也可以解析未知的通道布局规格。
参数:index:通道布局规格字符串
layout:解析的频道布局(如果未知,则为0)
name:通道数量
返回:成功时为0,如果解析失败,则为AVERROR(EINVAL)。
void | av_get_channel_layout_string (char *buf, int buf_size, int nb_channels, uint64_t channel_layout) |
如果nb_channels为<= 0,则从channel_layout中猜出。
参数:buf:在这里放置包含通道布局的字符串
buf_size:缓冲区大小(以字节为单位)
void | av_bprint_channel_layout (struct AVBPrint *bp, int nb_channels, uint64_t channel_layout) |
int | av_get_channel_layout_nb_channels (uint64_t channel_layout) |
int64_t | av_get_default_channel_layout (int nb_channels) |
int | av_get_channel_layout_channel_index (uint64_t channel_layout, uint64_t channel) |
参数:channel:一个通道布局,描述channel_layout中必须存在的一个通道。
返回:channel_layout中的频道索引成功,错误的AVERROR为负。
uint64_t | av_channel_layout_extract_channel (uint64_t channel_layout, int index) |
const char * | av_get_channel_name (uint64_t channel) |
返回:通道名称成功,NULL错误。
const char * | av_get_channel_description (uint64_t channel) |
参数:channel:具有单个通道的通道布局
返回:通道描述成功,NULL错误
int | av_get_standard_channel_layout (unsigned index, uint64_t *layout, const char **name) |
参数:index:索引在内部列表中,从0开始
layout:通道布局面具
name:布局名称
返回:如果布局存在,则为0,如果索引超出限制,则为0
二、Audio downmix metadata
一)、数据结构
此结构描述与下混程序相关的可选元数据。
所有字段由解码器设置为音频比特流(如果存在)中指示的值,否则为“理智”默认值。
struct | AVDownmixInfo{ enum AVDownmixType preferred_downmix_type; //母版工程师优选的下混类型。 double center_mix_level; //表示正常下混时中心通道的标称电平的绝对比例因子。 double center_mix_level_ltrt; //表示在Lt / Rt兼容下混合期间中心通道的标称电平的绝对比例因子。 double surround_mix_level; //表示正常缩混期间环绕声道的标称电平的绝对比例因子。 double surround_mix_level_ltrt; //表示在Lt / Rt兼容下混合期间环绕声道的标称电平的绝对比例因子。 double lfe_mix_level; //表示在下混期间将LFE数据混入L / R通道的电平的绝对比例因子。 } |
二)、宏
enum | AVDownmixType { AV_DOWNMIX_TYPE_UNKNOWN, AV_DOWNMIX_TYPE_LORO, AV_DOWNMIX_TYPE_LTRT, AV_DOWNMIX_TYPE_DPLII, AV_DOWNMIX_TYPE_NB } |
三)、函数
AVDownmixInfo * | av_downmix_info_update_side_data (AVFrame *frame) |
如果侧面数据不存在,则创建它并将其添加到框架中。
参数:frame:要获取或创建副数据的帧。
返回:要由调用者编辑的AVDownmixInfo结构,如果结构不能被分配,则为NULL。