FFmpeg与libx264 x264接口源代码简单分析

- //libx264对应的AVCodec结构体
- AVCodec ff_libx264_encoder = {
- .name = "libx264",
- .long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
- .type = AVMEDIA_TYPE_VIDEO,
- .id = AV_CODEC_ID_H264,
- .priv_data_size = sizeof(X264Context),
- .init = X264_init,
- .encode2 = X264_frame,
- .close = X264_close,
- .capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS,
- .priv_class = &x264_class,
- .defaults = x264_defaults,
- .init_static_data = X264_init_static,
- };
- static const AVClass x264_class = {
- .class_name = "libx264",
- .item_name = av_default_item_name,
- .option = options,//选项
- .version = LIBAVUTIL_VERSION_INT,
- };
- //FFmpeg针对libx264提供的可以通过AVOption设置的选项
- if (avctx->gop_size >= 0)
- x4->params.i_keyint_max = avctx->gop_size;
- if(x4->x264opts){
- const char *p= x4->x264opts;
- while(p){
- char param[256]={0}, val[256]={0};
- if(sscanf(p, "%255[^:=]=%255[^:]", param, val) == 1){
- OPT_STR(param, "1");
- }else
- OPT_STR(param, val);
- p= strchr(p, ':');
- p+=!!p;
- }
- }
- if (x4->x264_params) {
- AVDictionary *dict = NULL;
- AVDictionaryEntry *en = NULL;
- if (!av_dict_parse_string(&dict, x4->x264_params, "=", ":", 0)) {
- while ((en = av_dict_get(dict, "", en, AV_DICT_IGNORE_SUFFIX))) {
- if (x264_param_parse(&x4->params, en->key, en->value) < 0)
- av_log(avctx, AV_LOG_WARNING,
- "Error parsing option '%s = %s'.\n",
- en->key, en->value);
- }
- av_dict_free(&dict);
- }
- }
FFmpeg与libx264 x264接口源代码简单分析的更多相关文章
- FFmpeg与libx264接口源代码简单分析
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:环路滤波(Loop Filter)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:熵解码(Entropy Decoding)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:解码器主干部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:解析器(Parser)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg的H.264解码器源代码简单分析:概述
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- FFmpeg与libx264 x264接口对应关系源代码分析
源代码位于“libavcodec/libx264.c”中.正是有了这部分代码,使得FFmpeg可以调用libx264编码H.264视频. 从图中可以看出,libx264对应的AVCodec结构体ff ...
- FFmpeg的H.264解码器源代码简单分析
本文简单记录FFmpeg中libavcodec的H.264解码器(H.264 Decoder)的源代码.这个H.264解码器十分重要,可以说FFmpeg项目今天可以几乎“垄断”视音频编解码技术,很大一 ...
随机推荐
- bootstrap 重写JS的alert、comfirm函数
原理是使用bootstrap的Modal插件实现. 一.在前端模板合适的地方,加入Modal展现div元素. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- winrt 页面进入动画
private async void DoAnimistion(){Storyboard storyboard = new Storyboard(); using (IEnumerator<De ...
- BestCoder22 1003.NPY and shot 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 题目意思:有个人抛物体,已知抛的速度和高度,问可以抛到的最远距离是多少.即水平距离. 做的时候是 ...
- oracle触发器,一个表新增、修改的同时同步另一张表
oracle创建触发器,把本地新增.修改数据过程同步到另一个服务器上去. 如果是本地,加数据库名即可.如果是远程服务器,不是一台机器,做一个db_link操作即可. ----------------- ...
- 【leetcode】Wildcard Matching(hard) ★ 大神太牛了
Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...
- WIN7 64位系统下,右下角的声音和电源图标不见的解决办法
近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.Ctrl+Shift+Esc键调出windows资源管理器. 2.找到进程中的exp ...
- volatile和const
volatile可理解为“编译器警告指示字” volatile用于告诉编译器必须每次去内存中取变量值 volatile主要修饰可能被多个线程访问的变量 volatile也可以修饰可能被未知因数更改的变 ...
- PHP之MVC学习
代码架构进货过程 one,混编 嵌入式脚本语言PHP html与php混编的编码方式 two,显示和逻辑相分离 最后,需要将显示和逻辑的结果放在一起! 需要在 php页面,将html代码 载入才可以! ...
- 使用 Laravel 框架:成为微信公众平台开发者
转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...
- ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)
1064: 输入三个字符串,按由小到大的顺序输出 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 471 Solved: 188[Submit][Sta ...