TAppEncoder是编码器工程,完成视频序列的编码。

运行时,首先调用encmain.cpp中的main函数

main函数中完成的工作主要有初始化encoder类,解析cfg文件,然后调用TAppEncTop::encode函数进入下一层,并且对编码过程进行计时。

其中调用了重要参数TAppEncTop::encode,是编码器的最上层的入口。

int main(int argc, char* argv[])
{TAppEncTop  cTAppEncTop; //定义cTAppEncTop// print information 打印信息并标准输出HM版本信息fprintf( stdout, "\n" );fprintf( stdout, "HM software: Encoder Version [%s] (including RExt)", NV_VERSION );fprintf( stdout, NVM_ONOS );fprintf( stdout, NVM_COMPILEDBY );fprintf( stdout, NVM_BITS );fprintf( stdout, "\n\n" );// create application encoder classcTAppEncTop.create(); //创建encoder类,实际create是一个空函数,不做任何操作。// parse configuration 解析cfg配置文件try{if(!cTAppEncTop.parseCfg( argc, argv ))//如果cfg文件正确,会调用xCheckParameter函数,在命令行窗口中输出解析提示,并调用xPrintParameter来回显参数{cTAppEncTop.destroy(); //如果cfg文件错误,调用destroy函数,实际也是一个空函数,不做任何操作。
#if ENVIRONMENT_VARIABLE_DEBUG_AND_TESTEnvVar::printEnvVar();
#endifreturn 1;}}catch (df::program_options_lite::ParseFailure &e) //异常处理,如果cfg文件错误时回显错误提示{std::cerr << "Error parsing option \""<< e.arg <<"\" with argument \""<< e.val <<"\"." << std::endl;return 1;}#if PRINT_MACRO_VALUES //打印宏块值printMacroSettings();
#endif#if ENVIRONMENT_VARIABLE_DEBUG_AND_TESTEnvVar::printEnvVarInUse();
#endif// starting timeDouble dResult;clock_t lBefore = clock(); //计时// call encoding functioncTAppEncTop.encode(); //调用encode函数,进行编码// ending timedResult = (Double)(clock()-lBefore) / CLOCKS_PER_SEC; //计时结果printf("\n Total Time: %12.3f sec.\n", dResult); //显示计时结果// destroy application encoder classcTAppEncTop.destroy();  //调用destroy函数return 0;
}

  

转载于:https://www.cnblogs.com/chenjz1993/p/6784573.html

TAppEncoder的main函数相关推荐

  1. HEVC编码框架和main函数代码跟踪解读

    刚入学的时候导师安排的是看Hevc,虽然后面转头去做别的东西了,不过还是想着把自己学习的皮毛记录下来叭! 嗯,主要的框架图看到这篇文章写的很好,可以帮助我们进行代码跟踪 化简之后的图为: 代码我们从一 ...

  2. Java的IDEA最常用快捷键汇总+快速写出Main函数

    前言 IDEA可以说是当下Java程序员日常开发的神器,但是想要发挥这款神器的牛逼威力,必须得熟练使用它的各种快捷键才行.本篇总结下使用IDEA(也就是IntelliJ IDEA )进行日常开发中最常 ...

  3. linux 为什么 c语言,为什么C程序里一定要写main函数

    为什么C程序里一定要写main函数 一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号'_main'. 那 ...

  4. 单片机如何从上电复位执行到main函数?

    目录 1.启动文件 2.系统初始化过程 3.全局变量的初始化 从事嵌入式开发的伙伴可能会思考过一个问题,我们一般都是使用芯片厂商提供的驱动库和初始化文件,直接从main函数开始写程序,那么系统上电之后 ...

  5. main函数参数,在VS中向命令行添加参数的方法

    问题描述 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数"-a"选项执行加法,"-s"选项执行减法,"-m"选 ...

  6. 【FFmpeg】ffmpeg工具源码分析(一):main函数

    ffmpeg工具经常用来转换.生成媒体文件,下面是它的源码分析(一):main函数 ffmpeg版本:4.2.1 int main(int argc, char **argv) {int i, ret ...

  7. java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...

    日常生活中,要完成一件复杂的功能,我们总是习惯把"大功能"分解为多个"小功能"以实现.在C++程序的世界里,"功能"可称呼为"函数 ...

  8. 为什么Python没有main函数?

    作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到" Python的main函数" ...

  9. 为什么 Python 没有 main 函数?

    作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到" Python的main函数" ...

最新文章

  1. MultiBox_Loss bug改进
  2. 介绍理想工作计算机 英语作文,我的理想工作英语作文(精选5篇)
  3. 鸿蒙系统发布会16号几点,华为鸿蒙手机系统正式定档发布,12月16日于我们见面...
  4. c语言判断字符是汉字,c语言里面判断字符是否为汉字
  5. flutter不支持热更新_Flutter 在安卓上可以实现热更新了
  6. pycharm下打开、执行并调试scrapy爬虫程序
  7. java班长竞选投票_竞选班长采取投票式,引家长不满,班主任:您说该怎么选?...
  8. 04-11 常见接口安全测试工具
  9. Flutter拓展 android studio如何连接夜神模拟器(亲测!!!)
  10. 主题等.ppt及活动内容.ppt文档规范要求
  11. cad插件制作教程_站长私藏CAD插件分享(内附使用教程)
  12. java tm 2已停止工作_Java(TM) 2 Platform Standard Edition binary 已停止工作
  13. Python 计算思维训练——SAR图像处理
  14. npm ERR! 400 Bad Request - PUT xxx - Cannot publish over previously published version “1.0.0“.
  15. Muti-Similarity Loss:考虑了batch中整体距离分布的对比损失函数
  16. 卧槽!迅雷的代码结构竟然被扒了精光!
  17. 10月22日科技联播:饿了么与屈臣氏达成合作;马蜂窝回应数据造假
  18. Android日常开发问题总结:这些问题火候不够,随时变成删库跑路!
  19. 软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题1-5题)
  20. 推动和规范编程教育纳入中小学相关课程加强师资建设(2020)

热门文章

  1. ASP.NET 对类进行XML序列化和反序列化
  2. 转:(图文并茂)SQL Server 2005详细安装过程及配置
  3. (原创)UML要点总结
  4. 如何赛筛选出多列内容相同的数据??
  5. Oracle ODP.NET数据库访问连接字符串
  6. 压缩 js/css 的工具
  7. android 开发不能创建目录
  8. PHP的SQL注入技术实现以及预防措施
  9. android自动化框架简要剖析(一):运行原理+基本框架
  10. JDBC连接本地sqlserver2005的方法