ffplay: fix -x and -y options when only one of them is used

Previously if only -y was used then nothing happened, if only -x then zero
window height was set which is undefined in SDL and caused a black window.

From now on if only one dimension is set we calculate the other based on
size/aspect of the shown content.

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2018-11-24 23:09:24 +01:00
parent 9a39c5449f
commit 418c90faac
1 changed files with 7 additions and 8 deletions

View File

@ -1322,7 +1322,11 @@ static void sigterm_handler(int sig)
static void set_default_window_size(int width, int height, AVRational sar) static void set_default_window_size(int width, int height, AVRational sar)
{ {
SDL_Rect rect; SDL_Rect rect;
calculate_display_rect(&rect, 0, 0, INT_MAX, height, width, height, sar); int max_width = screen_width ? screen_width : INT_MAX;
int max_height = screen_height ? screen_height : INT_MAX;
if (max_width == INT_MAX && max_height == INT_MAX)
max_height = height;
calculate_display_rect(&rect, 0, 0, max_width, max_height, width, height, sar);
default_width = rect.w; default_width = rect.w;
default_height = rect.h; default_height = rect.h;
} }
@ -1331,13 +1335,8 @@ static int video_open(VideoState *is)
{ {
int w,h; int w,h;
if (screen_width) { w = screen_width ? screen_width : default_width;
w = screen_width; h = screen_height ? screen_height : default_height;
h = screen_height;
} else {
w = default_width;
h = default_height;
}
if (!window_title) if (!window_title)
window_title = input_filename; window_title = input_filename;