[FFmpeg-devel] [PATCH 2/2] ffplay: fix -x and -y options when only one of them is used

Marton Balint cus at passwd.hu
Sun Nov 25 01:37:38 EET 2018


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 at passwd.hu>
---
 fftools/ffplay.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index af72fbcc38..c5a4746ef4 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -1322,7 +1322,11 @@ static void sigterm_handler(int sig)
 static void set_default_window_size(int width, int height, AVRational sar)
 {
     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_height = rect.h;
 }
@@ -1331,13 +1335,8 @@ static int video_open(VideoState *is)
 {
     int w,h;
 
-    if (screen_width) {
-        w = screen_width;
-        h = screen_height;
-    } else {
-        w = default_width;
-        h = default_height;
-    }
+    w = screen_width ? screen_width : default_width;
+    h = screen_height ? screen_height : default_height;
 
     if (!window_title)
         window_title = input_filename;
-- 
2.16.4



More information about the ffmpeg-devel mailing list