From 86d634eeabafc1a790d13fe082efc6e38f37e067 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 20 Jul 2014 17:49:09 -0700 Subject: [PATCH] Check for valid sizes when initializing video --- obs/window-basic-main.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 83aca7360..6a0944680 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -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);