zoukankan      html  css  js  c++  java
  • OBS源码解析(2)run_program函数

    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);

    auto PrintInitProfile = [&]()
    {
    auto snap = GetSnapshot();

    profiler_snapshot_filter_roots(snap.get(), [](void *data,
    const char *name, bool *remove)
    {
    *remove = (*static_cast<const char**>(data)) != name;
    return true;
    }, static_cast<void*>(&run_program_init));

    profiler_print(snap.get());
    };

    ScopeProfiler prof{run_program_init};

    QCoreApplication::addLibraryPath(".");
    /*生成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;
    }

    本博客所有内容均为原创,转载请说明出处。欢迎音视频多媒体领域的朋友来人来函交流心得。
  • 相关阅读:
    PHP 语法
    PHP 变量
    为什么说PHP是个集中营
    简单介绍ThinkPHP3.1.3使用笔记
    PHP实现提交表单及输出例子
    linux 用户组以及权限
    linux vim学习
    linux基础指令学习
    pycharm
    Codeforces Round #346 (Div. 2) C题
  • 原文地址:https://www.cnblogs.com/liuxt/p/6070149.html
Copyright © 2011-2022 走看看