[vlc-commits] vout_macosx: slightly improve the resize behavior in a few corner cases ( refs #6427)

Felix Paul Kühne git at videolan.org
Fri Apr 6 13:10:23 CEST 2012


vlc/vlc-2.0 | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Fri Apr  6 13:09:12 2012 +0200| [8f9542684d5f55676da352fd705c55786d83ea95] | committer: Felix Paul Kühne

vout_macosx: slightly improve the resize behavior in a few corner cases (refs #6427)
(cherry picked from commit 25cf83bcace12d19b4980140037096a0b57bcd87)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.0.git/?a=commit;h=8f9542684d5f55676da352fd705c55786d83ea95
---

 modules/video_output/macosx.m |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m
index 683ac92..04a1bb0 100644
--- a/modules/video_output/macosx.m
+++ b/modules/video_output/macosx.m
@@ -405,9 +405,27 @@ static int Control (vout_display_t *vd, int query, va_list ap)
             }
             else
             {
+                const vout_display_cfg_t *cfg;
+                const video_format_t *source;
+                bool is_forced = false;
+
+                source = &vd->source;
                 cfg = (const vout_display_cfg_t*)va_arg (ap, const vout_display_cfg_t *);
-                i_width = cfg->display.width;
-                i_height = cfg->display.height;
+                is_forced = (bool)va_arg (ap, int);
+
+                if (query == VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
+                    && is_forced
+                    && (cfg->display.width  != vd->cfg->display.width
+                        ||cfg->display.height != vd->cfg->display.height)
+                    && vout_window_SetSize (sys->embed,
+                                            cfg->display.width,
+                                            cfg->display.height))
+                    return VLC_EGENERIC;
+
+                vout_display_place_t place;
+                vout_display_PlacePicture (&place, source, cfg, false);
+                i_width = place.width;
+                i_height = place.height;
             }
 
             /* Calculate the window's new size, if it is larger than our minimal size */



More information about the vlc-commits mailing list