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); locked = video_output_lock_frame(video->video, &output_frame, count, input_frame->timestamp); if (locked) { if (video->gpu_conversion) { set_gpu_converted_data(video, &output_frame, input_frame, info); } else if (format_is_yuv(info->format)) { convert_frame(&output_frame, input_frame, info); } else { copy_rgbx_frame(&output_frame, input_frame, info); } video_output_unlock_frame(video->video); } }
static inline void output_video_data(struct obs_core_video *video, struct video_data *frame, int cur_texture) { const struct video_output_info *info; info = video_output_getinfo(video->video); if (video->gpu_conversion) { if (!set_gpu_converted_data(video, frame, cur_texture)) return; } else if (format_is_yuv(info->format)) { if (!convert_frame(video, frame, info, cur_texture)) return; } video_output_swap_frame(video->video, frame); }