OBS源码分析output_video_data
/* 输出一帧数据到video的video_output的cache video 要输出的视频 input_frame 要输出的帧 */ static inline void output_video_data(struct obs_core_video *video, struct video_data *input_frame, int count) { const struct video_output_info *info; struct video_frame output_frame; bool locked; //得到要输出视频的基本信息 宽 高 时间 格式...等 info = video_output_get_info(video->video); //得到一个空闲的cache frame空闲的cache frame 把它的地址拷贝到output_frame中 locked = video_output_lock_frame(video->video, &output_frame, count, input_frame->timestamp); if (locked) { if (video->gpu_conversion) { //拷贝数据到output_frame 也就是空闲的cache frame中 set_gpu_converted_data(video, &output_frame, input_frame, info); } else { copy_rgbx_frame(&output_frame, input_frame, info); } //拷贝完成 发出信号 video_output_unlock_frame(video->video); } }
默认签名会自动显示在每篇博文之默认签名会自动显示在每篇博文之默认签名会自动显示在每篇博文之

浙公网安备 33010602011771号