OBS0.2.4基础框架
+ -

obs_core结构体分析

2024-10-08 19 0
本想着从简单的开始,但是发现核心的渲染如D3D11和新的版本基本差不多,还不如直接用新的代码调试,所以本章节放弃。

obs_core结构体主要分为四大部分:

  • 第一部分是通过Load的dll,加载支持的各种模块类型,如输入模块的视频,颜色图片等。
  • 第二部分是全局的信号量及处理函数。
  • 第三部分是音视频功能结构体。
  • 第四部分是运行时信息。如加载的的具体视频输入源
struct obs_core {
    //扩展类型
    DARRAY(struct obs_module)       modules;//扩展DLL模块句柄
    DARRAY(struct obs_source_info)  input_types; //输入类型
    DARRAY(struct obs_source_info)  filter_types; //过滤类型
    DARRAY(struct obs_source_info)  transition_types;//转换类型
    DARRAY(struct obs_output_info)  output_types; //输出类型
    DARRAY(struct obs_encoder_info) encoder_types;//编码类型
    DARRAY(struct obs_service_info) service_types; //服务类型
    DARRAY(struct obs_modal_ui)     modal_ui_callbacks; //扩展模块ui回调函数
    DARRAY(struct obs_modeless_ui)  modeless_ui_callbacks;

    //两个全局信号量及处理过程
    signal_handler_t                signals;
    proc_handler_t                  procs;

    /* segmented into multiple sub-structures to keep things a bit more
     * clean and organized */
    struct obs_core_video           video; //视频集
    struct obs_core_audio           audio; //音频集


    struct obs_core_data            data;  //模块类型实例
};

obs_core结构体与其它结构体关系

最终obs_core结构体的关系图如下:
094105337895

0 篇笔记 写笔记

obs_core结构体
struct obs_core { struct obs_module *first_module; DARRAY(struct obs_module_path) module_paths; DARRAY(char *) safe_modules; obs_sour......
obs_core_video_mixs概述
obs_core_video_mix结构体是用于承载视频图像渲染及格式转换的结构体。obs_core_video_mix 结构体定义为:struct obs_view { pthread_mutex_t channels_mutex; obs_source_t *channels[......
obs_core_video_mix创建
obs_core_video_mix创建使用函数obs_create_video_mix创建,不过对外使用的其实是obs_view_add2和obs_view_add。在OBS中,创建obs_core_video_mix有两处,分别为:static int obs_init_video(stru......
obs_core_video_mix使用
obs_core_video_mix使用在视频线程,其总的入口调用函数为output_frames()。bool obs_graphics_thread_loop(struct obs_graphics_context *context){... //GPU渲染并内容输出 p......
obs_core结构体初始化
OBSBasic::OBSInit()函数的第一步是创建obs_core对构体,并对其进行初始化。实际为了防止重复初始化,该函数进行了简单的判断之后,使用的是函数是obs_init()来进行创建初始化。 bool obs_startup(void){ bool success; ......
obs_core结构体分析
obs_core结构体主要分为四大部分:第一部分是通过Load的dll,加载支持的各种模块类型,如输入模块的视频,颜色图片等。第二部分是全局的信号量及处理函数。第三部分是音视频功能结构体。第四部分是运行时信息。如加载的的具体视频输入源struct obs_core { //扩展类型 ......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!