OBS源码 run_program函数

#include <Shlwapi.h>

#pragma comment(lib, "shlwapi.lib")
static const char *run_program_init = "run_program_init";
static int run_program(fstream &logFile, int argc, char *argv[])

{

/*初始化和读取profile相关信息*/

int ret = -1;
auto profilerNameStore = CreateNameStore();
std::unique_ptr<void, decltype(ProfilerFree)>
prof_release(static_cast<void*>(&ProfilerFree),
ProfilerFree);
profiler_start();
profile_register_root(run_program_init, 0);
ScopeProfiler prof{run_program_init};
QCoreApplication::addLibraryPath(".");
//keys load 自己添加的通过web启动程序并保存参数
char filepath[MAX_PATH];
GetModuleFileNameA(NULL, filepath, MAX_PATH);
QTextCodec *xcodec = QTextCodec::codecForLocale();
QString exeDir = xcodec->toUnicode(QByteArray(filepath));
QString BKE_CURRENT_DIR = QFileInfo(exeDir).path();
QStringList  libpath;
libpath << BKE_CURRENT_DIR + QString::fromLocal8Bit("/platforms");
libpath << BKE_CURRENT_DIR;
QApplication::setLibraryPaths(libpath);
PathRemoveFileSpecA(filepath);
QDir::setCurrent(filepath);


/*生成OBSApp 对象*/
OBSApp program(argc, argv, profilerNameStore.get());

try {

/*初始化应用*/
program.AppInit();

OBSTranslator translator;

create_log_file(logFile);
delete_oldest_file("obs-studio/profiler_data");

program.installTranslator(&translator);

 

/*初始化obs模块*/

if (!program.OBSInit())
return 0;

prof.Stop();

return program.exec();

} catch (const char *error) {
blog(LOG_ERROR, "%s", error);
OBSErrorBox(nullptr, "%s", error);
}

return ret;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值