FFMPEG学习【libavutil】:音频相关(二)
来源:互联网 发布:时间轴js特效代码 编辑:程序博客网 时间:2024/05/17 23:15
一、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_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) #define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) #define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) #define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) #define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) #define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) #define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) #define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) #define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) #define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) #define AV_CH_LAYOUT_HEXADECAGONAL (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) #define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
二)、枚举
#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)enum AVMatrixEncoding {
AV_MATRIX_ENCODING_NONE, AV_MATRIX_ENCODING_DOLBY, AV_MATRIX_ENCODING_DPLII, AV_MATRIX_ENCODING_DPLIIX,
AV_MATRIX_ENCODING_DPLIIZ, AV_MATRIX_ENCODING_DOLBYEX, AV_MATRIX_ENCODING_DOLBYHEADPHONE, AV_MATRIX_ENCODING_NB
}
三)、函数
uint64_t av_get_channel_layout (const char *name)返回与名称匹配的通道布局ID,如果未找到匹配,则返回0。名称可以是以下一个或几个符号,用“+”或“|”分隔:
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”
这个函数类似于(查看av_get_channel_layout),但也可以解析未知的通道布局规格。
参数:index:通道布局规格字符串
layout:解析的频道布局(如果未知,则为0)
name:通道数量
返回:成功时为0,如果解析失败,则为AVERROR(EINVAL)。
如果nb_channels为<= 0,则从channel_layout中猜出。
参数:buf:在这里放置包含通道布局的字符串
buf_size:缓冲区大小(以字节为单位)
参数:channel:一个通道布局,描述channel_layout中必须存在的一个通道。
返回:channel_layout中的频道索引成功,错误的AVERROR为负。
返回:通道名称成功,NULL错误。
参数:channel:具有单个通道的通道布局
返回:通道描述成功,NULL错误
参数:index:索引在内部列表中,从0开始
layout:通道布局面具
name:布局名称
返回:如果布局存在,则为0,如果索引超出限制,则为0
二、Audio downmix metadata
一)、数据结构
此结构描述与下混程序相关的可选元数据。
所有字段由解码器设置为音频比特流(如果存在)中指示的值,否则为“理智”默认值。
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)获取帧的AV_FRAME_DATA_DOWNMIX_INFO边数据进行编辑。如果侧面数据不存在,则创建它并将其添加到框架中。
参数:frame:要获取或创建副数据的帧。
返回:要由调用者编辑的AVDownmixInfo结构,如果结构不能被分配,则为NULL。
- FFMPEG学习【libavutil】:音频相关(二)
- FFMPEG学习【libavutil】:音频相关(一)
- FFMPEG学习【libavutil】:音频相关(三)
- FFMPEG学习【libavutil】:Memory Management(二)
- FFMPEG学习【libavutil】:数据结构(二)
- FFMPEG学习【libavutil】:视频相关
- FFMPEG学习【libavutil】:Crypto and Hashing(二)
- FFMPEG学习【libavutil】:Memory Management(一)
- FFMPEG学习【libavutil】:数据结构(一)
- FFMPEG学习【libavutil】:数据结构(三)
- FFMPEG学习【libavutil】:数据结构(四)
- FFMPEG学习【libavutil】:Mathematics
- FFMPEG学习【libavutil】:Mathematics:AVRational
- FFMPEG学习【libavutil】:String Manipulation
- FFMPEG学习【libavutil】:Crypto and Hashing(一)
- FFMPEG学习【libavutil】:Crypto and Hashing(三)
- FFMPEG学习【libavutil】:Crypto and Hashing(四)
- FFMPEG学习【libavutil】:Crypto and Hashing(五)
- 进制的本质
- android 修改状态栏颜色
- jsp中声明方法的使用 计数器小例子
- [01背包] Piggy-Bank HDU
- hbase官方文档中文版0.97
- FFMPEG学习【libavutil】:音频相关(二)
- C语言(5)A+B
- 实现图片上传前本地预览功能之二
- Musk, Zuckerberg duel over artificial intelligence
- Hibernate学习第四天
- linux-15 系统虚拟机的管理
- syswow64
- 在Windows上编译jabberd2
- Linux进程间通信——信号量