OBS image-source插件
+ -

image-source.dll-大纲

2024-06-21 8 0

导出函数集

image-source.dll的导出函数遵循OBS扩展模块规则,导出的函数存储于struct obs_module中。

struct obs_module {
  char *mod_name; //没有扩展名dll的文件名
  const char *file;//文件名 xxx.dll
  char *bin_path; //完整的dll的PathName
  char *data_path;//配置文件ini路径
  void *module;  //LoadLibrary返回的HMODULE实例

  bool loaded;  //obs_init_module函数中调用bool (*load)(void);的返回值
  bool (*load)(void);//必须存在
  void (*unload)(void);
  void (*post_load)(void);
  void (*set_locale)(const char *locale);// 参数obs->locale
  bool (*get_string)(const char *lookup_string,  const char **translated_string);
  void (*free_locale)(void);
  uint32_t (*ver)(void);//必须存在
  void (*set_pointer)(obs_module_t *module);//必须存在
  const char *(*name)(void);
  const char *(*description)(void);
  const char *(*author)(void);
  struct obs_module *next;//链表,下一个。第一个存在obs->first_module;
};

我们使用工具查看image-source.dll,用来验证其导出的函数。
115130860334

初始化

image-source.dll根据 https://www.pnpon.com/article/detail-696.html 一切可知,在其初始化时,会调用2个函数,分别为:

  • obs_module_load
  • obs_module_post_load
    不过明显,image-source.dll不具有函数obs_module_post_load,故只会调用obs_module_load。

obs_module_load函数用于向OBS内核注册其提供的源:

bool obs_module_load(void)
{
    obs_register_source(&image_source_info);
    obs_register_source(&color_source_info_v1);
    obs_register_source(&color_source_info_v2);
    obs_register_source(&color_source_info_v3);
    obs_register_source(&slideshow_info);
    obs_register_source(&slideshow_info_mk2);
    return true;
}

关于obs_register_source可见:https://www.pnpon.com/article/detail-635.html

image-source.dll注册的6个源,类型均为OBS_SOURCE_TYPE_INPUT,具体可见:https://www.pnpon.com/article/detail-690.html
这些注册的源均会存储在:obs->input_types 中。

0 篇笔记 写笔记

作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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