频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
JEVT 代码分析之主线程main函数分析
2017-04-12 13:56:00      个评论      
收藏   我要投稿

JEVT 代码分析之主线程main函数分析:参考的是JEM/HM16.6的代码,分析仅代表我个人的观点,水平有限,请各位领域的大神批评指正。

在main函数中完成的工作主要有创建encoder类,调用cTAppEncTop.parseCfg( argc, argv )解析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 class
cTAppEncTop.create(); //创建encoder类,实际create是一个空函数,不做任何操作。


// parse configuration 解析cfg配置文件
try
{ //如果cfg文件正确,会调用xCheckParameter函数,在命令行窗口中输出解析提示,并调用xPrintParameter来回显参数
if(!cTAppEncTop.parseCfg( argc, argv ))
{
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;
}

 


点击复制链接 与好友分享!回本站首页
上一篇:数论 CQOI2017
下一篇:百度面试:查找是否存在某元素
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站