Check for valid sizes when initializing video

This commit is contained in:
jp9000 2014-07-20 17:49:09 -07:00
parent 778cc2b318
commit 86d634eeab

View file

@ -1196,6 +1196,27 @@ void OBSBasic::SetService(obs_service_t newService)
}
}
static inline int AttemptToResetVideo(struct obs_video_info *ovi)
{
int ret = obs_reset_video(ovi);
if (ret == OBS_VIDEO_INVALID_PARAM) {
struct obs_video_info new_params = *ovi;
if (new_params.window_width == 0)
new_params.window_width = 512;
if (new_params.window_height == 0)
new_params.window_height = 512;
new_params.output_width = new_params.window_width;
new_params.output_height = new_params.window_height;
new_params.base_width = new_params.window_width;
new_params.base_height = new_params.window_height;
ret = obs_reset_video(&new_params);
}
return ret;
}
int OBSBasic::ResetVideo()
{
struct obs_video_info ovi;
@ -1225,7 +1246,7 @@ int OBSBasic::ResetVideo()
ovi.window_width = size.width();
ovi.window_height = size.height();
ret = obs_reset_video(&ovi);
ret = AttemptToResetVideo(&ovi);
if (ret == OBS_VIDEO_SUCCESS)
obs_add_draw_callback(OBSBasic::RenderMain, this);