obs 模块插件实现方式:同一导出接口名称,如:obs_module_load,然后所有插件都实现该接口
obs 模块插件加载方式调用关系(非堆栈反序,是正序)如下:obs64.exe!OBSBasic::OBSInit(void * view)obs.dll!AddExtraModulePaths() //添加插件相对于可执行程序的路径obs.dll!obs_load_all_modules()obs.dll!obs_find_modules(...)obs.dll!load_all_callback(...)obs.dll!obs_open_module(...) //使用动态库 LoadLibrary 方式加载,把加载的数据保存到全局的 struct obs_core *obs 链表结构对象中obs.dll!load_module_exports(...) //加载同一导出的接口
自定义引用插件的接口:导出需要引用的接口:extern "C" __declspec(dllexport) void xxx(...),C++ 动态获取 C 实现的接口地址必需加 extern "C" 进行导出,否则会获取不到该地址。封装获取插件接口地址的函数:
void *obs_get_module_func(const char *file, const char *func)
{struct obs_module *mod = obs->first_module;while (mod) {if(!strcmp(file, mod->file)){return os_dlsym(mod->module, func);}mod = mod->next;}return NULL;
}获取到接口指针后强制转换成具体的函数类型,如 typedef void(*TPFxxx)(...),然后直接调用即可。

obs plugins 分析相关推荐

  1. 开源直播工具OBS研究

    项目简介 OBS - Free and open source software for live streaming and screen recording(OBS是一款开源的用于录屏直播的工具软 ...

  2. obs在linux下的离线安装教程,OBS手动安装插件教程

    亲爱的葫芦丝们,大家好! (•̀ᴗ•́)و ̑̑ 今天给大家讲解下 -- OBS手动安装插件,建议不怕麻烦,动手能力强的主播使用~ 闲话不多说,小编我开始讲解: (。・ω・)ノ゙ 安装VC2013运行 ...

  3. ElasticSearch5.5.1插件分类

    附官网介绍:https://www.elastic.co/guide/en/elasticsearch/plugins/5.5/intro.html 一.插件介绍 插件是以自定义方式来增强Elasti ...

  4. ElasticSearch 插件开发

    es有丰富的插件差不多 可以满平时开发的需求,但出现奇葩需求的时候又不能完全满足,所以就需要自定义开发插件了 目前es有以下几种插件可以去自定义 Analysis Plugins 分析插件 Disco ...

  5. ElasticSearch es 插件开发

    ElasticSearch es 插件开发 1. 插件分类 API Extension Plugins API扩展插件 通过添加新的API或功能向Elasticsearch添加新功能,通常与搜索或映射 ...

  6. textract_比较亚马逊textract与tesseract ocr ocr nlp用例

    textract What is OCR anyway and why the buzz? Artificial Intelligence (AI) enables entities with Hum ...

  7. obs源码分析【一】:main函数

    目录 main函数在哪里 obs项目架构 main函数浅析 crash的处理 obs配置 obs log 网络请求libcurl 主界面 Qt适配高dpi屏幕 总结   最近对obs的代码感兴趣了,在 ...

  8. C#调用obs studio 二次开发 源码分析 编译

    C#二次开发obs studio obs studio二次开发视频教程,录制.推流.调整分辨率.调整位置.画面回调.推流回调等功能 obs二次开发还是比较繁琐的,我在学习的时候也是很痛苦,有需要的朋友 ...

  9. OBS框架流程和源码分析七一视频流捕获机制

    1. 视频流捕获机制 1.1. 视频流捕获基本原理 所谓视频流,实际上是由一张张图像组成,由于人体眼睛的捕获频率,以及视觉暂留机制,在图像连续播放时,会让大脑以为产生连贯性的动画效果.常见的电影帧率是 ...

最新文章

  1. 解决MYSQL错误:ERROR 1040 (08004): Too many connections
  2. 零基础可以学python吗-零基础可以学会python吗?python好学吗?
  3. jupyter notebook妙用之%time
  4. 如何取消IE窗口的全屏显示
  5. nltk和python的关系_NLTK学习笔记(一):语言处理和Python
  6. python实例 99,100
  7. 03-git上传大项目的时很慢
  8. 计算机图形学研究与应用的最新进展,关于计算机图形学的发展及应用探究
  9. 对棋盘完美覆盖问题证明过程的质疑及其解决
  10. encodeURI和uncodeURIComponent的介绍
  11. 腾讯位置服务开发应用-使用教程,案例分享,知识总结
  12. IDEA 代码格式化插件Save Actions
  13. JDK和JRE和JVM的区别
  14. 基于p5实现的大五人格“线条”效果
  15. Go 编程语言官方文档中文版和官方教程中文版
  16. 3月8号女神节不知道送什么?python告诉你~(祝小仙女们节日快乐~)
  17. win7与internet时间同步出错_时间同步出错,教您时间同步出错
  18. 纯java写2D格斗游戏(一)——界面背景设置及人物的简单设置
  19. Redis核心技术笔记——Redis主从、主从从、切片集群
  20. 农业技术:从能量的角度看农业革命(垄耕种植法)

热门文章

  1. 河海大学李轶团队揭示河流交汇特性决定了汇流水动力区微生物群落对河网的影响
  2. SDR/无线设计中LNA和PA的基本原理
  3. 天津大学《高电压技术》在线作业2
  4. Origin平台意料之外错误修复
  5. 十进制与二进制相互转换
  6. 什么是UI?UI的工作内容?
  7. word2013中如何去除尾注分隔符? 网上教程说是在普通视图下,而2013无此视图
  8. 支持4K30帧的海鸟4K潜水套装上手体验
  9. QB800提升机绝缘监测装置
  10. 直播带货开发,获取这个礼拜的开始、时间