FFMPEG源码分析(1)--持续更新
2013-08-01 09:45
621 查看
以FFMPEG 1.0为参考,对FFMPEG源码分析,其中调用以H264为例
一、main()中;在ffmpeg.c文件中
1、OptionsContext o ={ 0 }:
初始化结构体变量o,这个结构体主要是一些参数选项;
初始化的结果是:整型和浮点型都为0,指针型成员都为NULL
疑问是,这种初始化方式到底是:
(1)初始化结构体变量的第一个成员,其他成员变量由系统采用缺省值初始化
(2)初始化所有的结构体成员
2、reset_options(&o,0):在ffmpeg_opt.c.
这是重新设置结构体体变量o,前面只是初始化
3、av_log_set_flags(AV_LOG_SKIP_REPEATED):在log.c.
没细看,估计是设置标志的日志
4、parse_loglevel(argc,argv,options):cmdutils.c.
解析命令参数中的'--loglevel'的参数设置,并应用
5、av_log_set_callback(log_callback_null);:log.c.
暂时不知
下面是一些注册函数
6、avcodec_register_all():allcodecs.c.
注册所有的编解码器、参数以及比特流滤波器,这些都是在配置阶段就启用了;
如果你不想调用这个函数,你可以准确的悬着你想要支持的格式,当然这得通过你自己的注册函数;
各位,这就是说在我们实际应用的时候,没必要非得把所有的编解码器格式都注册一遍,可以选择自己能用到的,其他的,嘿嘿,就让他们玩去吧
avcodec_register_all()函数主要调用三个函数来完成编解码器、参数以及比特流滤波器的注册。这三个函数是:
avcodec_register音频视频字幕编解码器的注册
av_register_codec_parser编解码器解析器的注册
av_register_bitstream_filter数据流的滤波器的注册
注册流程是:
(1)avcodec_register_all()函数调用宏定义
(2)宏定义调用具体的注册函数完成注册,就是指上面的三个函数
下面具体分析一下某些格式的注册问题,例如FFMPEG和H264的注册:
(1)硬件加速:
一、main()中;在ffmpeg.c文件中
1、OptionsContext o ={ 0 }:
初始化结构体变量o,这个结构体主要是一些参数选项;
初始化的结果是:整型和浮点型都为0,指针型成员都为NULL
疑问是,这种初始化方式到底是:
(1)初始化结构体变量的第一个成员,其他成员变量由系统采用缺省值初始化
(2)初始化所有的结构体成员
2、reset_options(&o,0):在ffmpeg_opt.c.
这是重新设置结构体体变量o,前面只是初始化
3、av_log_set_flags(AV_LOG_SKIP_REPEATED):在log.c.
没细看,估计是设置标志的日志
4、parse_loglevel(argc,argv,options):cmdutils.c.
解析命令参数中的'--loglevel'的参数设置,并应用
5、av_log_set_callback(log_callback_null);:log.c.
暂时不知
下面是一些注册函数
6、avcodec_register_all():allcodecs.c.
注册所有的编解码器、参数以及比特流滤波器,这些都是在配置阶段就启用了;
如果你不想调用这个函数,你可以准确的悬着你想要支持的格式,当然这得通过你自己的注册函数;
各位,这就是说在我们实际应用的时候,没必要非得把所有的编解码器格式都注册一遍,可以选择自己能用到的,其他的,嘿嘿,就让他们玩去吧
avcodec_register_all()函数主要调用三个函数来完成编解码器、参数以及比特流滤波器的注册。这三个函数是:
avcodec_register音频视频字幕编解码器的注册
av_register_codec_parser编解码器解析器的注册
av_register_bitstream_filter数据流的滤波器的注册
注册流程是:
(1)avcodec_register_all()函数调用宏定义
(2)宏定义调用具体的注册函数完成注册,就是指上面的三个函数
下面具体分析一下某些格式的注册问题,例如FFMPEG和H264的注册:
(1)硬件加速:
00059 REGISTER_HWACCEL (H264_DXVA2, h264_dxva2);00060 REGISTER_HWACCEL (H264_VAAPI, h264_vaapi);00061 REGISTER_HWACCEL (H264_VDA, h264_vda);
相关文章推荐
- FFMPEG源码分析(1)--再版--持续更新
- FFMPEG源码分析(1)----初版--持续更新
- FFMPEG源码分析(1)----初版--持续更新
- FFMPEG源码分析(1)--再版--持续更新
- GNU GRUB 2.00 源码分析笔记,持续更新
- nginx源码分析(持续更新)
- 线程源码阅读分析,持续更新中。。。
- [原创] jQuery1.6.1源码分析系列(持续更新)
- kafka源码分析(持续更新)
- Lua源码分析(原创)[持续更新中]
- jQuery源码分析系列(持续更新)
- jQuery1.6.1源码分析系列(持续更新)
- jQuery源码分析系列(持续更新)
- jQuery1.6.1源码分析系列(持续更新)
- ffmpeg源码分析 (五)
- FFMPEG源码分析——小改动
- Android源码分析之WindowManager.LayoutParams属性更新过程
- FFMpeg 源码分析(1)av_register_all()
- ffmpeg源码分析与应用示例(一)——H.264解码与QP提取
- ffmpeg源码分析——大纲目录