void obs_encoder_set_video(obs_encoder_t encoder, video_t video) { const struct video_output_info *voi; if (!video || !encoder || encoder->info.type != OBS_ENCODER_VIDEO) return; voi = video_output_getinfo(video); encoder->media = video; encoder->timebase_num = voi->fps_den; encoder->timebase_den = voi->fps_num; }
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); }
bool obs_get_video_info(struct obs_video_info *ovi) { struct obs_core_video *video = &obs->video; const struct video_output_info *info; if (!obs || !video->graphics) return false; info = video_output_getinfo(video->video); memset(ovi, 0, sizeof(struct obs_video_info)); ovi->base_width = video->base_width; ovi->base_height = video->base_height; ovi->output_width = info->width; ovi->output_height = info->height; ovi->output_format = info->format; ovi->fps_num = info->fps_num; ovi->fps_den = info->fps_den; return true; }