HEVC代码学习1:TAppEncoder的main函数

来源:互联网 发布:如何在淘宝上申请直播 编辑:程序博客网 时间:2024/06/05 20:50

这里使用的是HM16.6。

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

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


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

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


主要过程是:



代码如下:

<span style="font-size:14px;">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 class  cTAppEncTop.create(); //创建encoder类,实际create是一个空函数,不做任何操作。  // parse configuration 解析cfg配置文件  try  {    if(!cTAppEncTop.parseCfg( argc, argv ))//如果cfg文件正确,会调用xCheckParameter函数,在命令行窗口中输出解析提示,并调用xPrintParameter来回显参数    {      cTAppEncTop.destroy(); //如果cfg文件错误,调用destroy函数,实际也是一个空函数,不做任何操作。#if ENVIRONMENT_VARIABLE_DEBUG_AND_TEST      EnvVar::printEnvVar();#endif      return 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_TEST  EnvVar::printEnvVarInUse();#endif  // starting time  Double dResult;  clock_t lBefore = clock(); //计时  // call encoding function  cTAppEncTop.encode(); //调用encode函数,进行编码  // ending time  dResult = (Double)(clock()-lBefore) / CLOCKS_PER_SEC; //计时结果  printf("\n Total Time: %12.3f sec.\n", dResult); //显示计时结果  // destroy application encoder class  cTAppEncTop.destroy();  //调用destroy函数  return 0;}</span>



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