void obs_output_set_video_encoder(obs_output_t *output, obs_encoder_t *encoder) { if (!output) return; if (output->video_encoder == encoder) return; if (encoder && encoder->info.type != OBS_ENCODER_VIDEO) return; obs_encoder_remove_output(output->video_encoder, output); obs_encoder_add_output(encoder, output); output->video_encoder = encoder; /* set the preferred resolution on the encoder */ if (output->scaled_width && output->scaled_height) obs_encoder_set_scaled_size(output->video_encoder, output->scaled_width, output->scaled_height); }
static inline void get_video_info(struct obs_encoder *encoder, struct video_scale_info *info) { const struct video_output_info *voi; voi = video_output_get_info(encoder->media); info->format = voi->format; info->colorspace = voi->colorspace; info->range = voi->range; info->width = obs_encoder_get_width(encoder); info->height = obs_encoder_get_height(encoder); if (encoder->info.get_video_info) encoder->info.get_video_info(encoder->context.data, info); if (info->width != voi->width || info->height != voi->height) obs_encoder_set_scaled_size(encoder, info->width, info->height); }
void obs_output_set_video_encoder(obs_output_t *output, obs_encoder_t *encoder) { if (!obs_output_valid(output, "obs_output_set_video_encoder")) return; if (encoder && encoder->info.type != OBS_ENCODER_VIDEO) { blog(LOG_WARNING, "obs_output_set_video_encoder: " "encoder passed is not a video encoder"); return; } if (output->video_encoder == encoder) return; obs_encoder_remove_output(output->video_encoder, output); obs_encoder_add_output(encoder, output); output->video_encoder = encoder; /* set the preferred resolution on the encoder */ if (output->scaled_width && output->scaled_height) obs_encoder_set_scaled_size(output->video_encoder, output->scaled_width, output->scaled_height); }
void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, uint32_t height) { if (!output || (output->info.flags & OBS_OUTPUT_VIDEO) == 0) return; if (output->active) { blog(LOG_WARNING, "output '%s': Cannot set the preferred " "resolution while the output is active", obs_output_get_name(output)); return; } output->scaled_width = width; output->scaled_height = height; if (output->info.flags & OBS_OUTPUT_ENCODED) { if (output->video_encoder) obs_encoder_set_scaled_size(output->video_encoder, width, height); } }