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