encoder/ffmpeg: Don't use hardware encoding for unsupported formats

This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2020-10-06 15:35:06 +02:00
parent 6bc1a6b870
commit daa4a385d7

View file

@ -95,7 +95,8 @@ ffmpeg_instance::ffmpeg_instance(obs_data_t* settings, obs_encoder_t* self, bool
if (is_hw) { if (is_hw) {
// Abort if user specified manual override. // Abort if user specified manual override.
if ((static_cast<AVPixelFormat>(obs_data_get_int(settings, KEY_FFMPEG_COLORFORMAT)) != AV_PIX_FMT_NONE) if ((static_cast<AVPixelFormat>(obs_data_get_int(settings, KEY_FFMPEG_COLORFORMAT)) != AV_PIX_FMT_NONE)
|| (obs_data_get_int(settings, KEY_FFMPEG_GPU) != -1) || (obs_encoder_scaling_enabled(_self))) { || (obs_data_get_int(settings, KEY_FFMPEG_GPU) != -1) || (obs_encoder_scaling_enabled(_self))
|| (video_output_get_info(obs_encoder_video(_self))->format != VIDEO_FORMAT_NV12)) {
throw std::runtime_error( throw std::runtime_error(
"Selected settings prevent the use of hardware encoding, falling back to software."); "Selected settings prevent the use of hardware encoding, falling back to software.");
} }