OBS0.2.4基础框架
+ -

OBS数据结构梳理

2025-05-29 2 0
本想着从简单的开始,但是发现核心的渲染如D3D11和新的版本基本差不多,还不如直接用新的代码调试,所以本章节放弃。
struct obs_display; //窗口
struct obs_view;//多个数组通道,0是视图,1是音频等
struct obs_source;
struct obs_data;//是obs_source参数配置信息source->private_settings = obs_data_create()
struct obs_scene;
struct obs_scene_item;
struct obs_output;
struct obs_encoder;
struct obs_service;
struct obs_module;
struct obs_fader;
struct obs_volmeter;

OBS输入源

对应结构体:obs_source_info

enum obs_source_type {
    OBS_SOURCE_TYPE_INPUT, 
    OBS_SOURCE_TYPE_FILTER, 
    OBS_SOURCE_TYPE_TRANSITION,
    OBS_SOURCE_TYPE_SCENE,
};

音频

struct obs_source_audio {
    const uint8_t *data[MAX_AV_PLANES];
    uint32_t frames;

    enum speaker_layout speakers;
    enum audio_format format;
    uint32_t samples_per_sec;

    uint64_t timestamp;
};

图像类型:

struct obs_core {
...
    obs_source_info_array_t source_types; //ALL
    obs_source_info_array_t input_types; //OBS_SOURCE_TYPE_INPUT
    obs_source_info_array_t filter_types;//OBS_SOURCE_TYPE_FILTER
    obs_source_info_array_t transition_types;//OBS_SOURCE_TYPE_TRANSITION
    ...
    }
struct obs_source {
    struct obs_context_data context;
    struct obs_source_info info;
    struct obs_weak_source *control;
...
}

图形渲染模块

obs_video_info

音频渲染输出设备

struct obs_audio_info {
    uint32_t samples_per_sec;
    enum speaker_layout speakers;
};

数据:

struct obs_audio_data {
    uint8_t *data[MAX_AV_PLANES];
    uint32_t frames;
    uint64_t timestamp;
};

推流输出

struct obs_output
struct obs_output_info

0 篇笔记 写笔记

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

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

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