[FFmpeg-cvslog] ffplay: force setting video mode on fullscreen toggle

Marton Balint git at videolan.org
Fri Dec 16 15:33:45 CET 2011


ffmpeg | branch: release/0.9 | Marton Balint <cus at passwd.hu> | Tue Dec 13 23:27:24 2011 +0100| [964d75735f6a4412437b3fc0ea9a0c5bb586811b] | committer: Michael Niedermayer

ffplay: force setting video mode on fullscreen toggle

Fixes ticket #736. Based on the patch by glangshaw.

Signed-off-by: Marton Balint <cus at passwd.hu>
(cherry picked from commit 9fb2b412585f94d4a74eb93598b0b1cc3482c189)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=964d75735f6a4412437b3fc0ea9a0c5bb586811b
---

 ffplay.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 6af3df3..04289df 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -922,7 +922,7 @@ static void do_exit(VideoState *is)
     exit(0);
 }
 
-static int video_open(VideoState *is){
+static int video_open(VideoState *is, int force_set_video_mode){
     int flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
     int w,h;
 
@@ -949,7 +949,7 @@ static int video_open(VideoState *is){
         h = 480;
     }
     if(screen && is->width == screen->w && screen->w == w
-       && is->height== screen->h && screen->h == h)
+       && is->height== screen->h && screen->h == h && !force_set_video_mode)
         return 0;
     screen = SDL_SetVideoMode(w, h, 0, flags);
     if (!screen) {
@@ -970,7 +970,7 @@ static int video_open(VideoState *is){
 static void video_display(VideoState *is)
 {
     if(!screen)
-        video_open(is);
+        video_open(is, 0);
     if (is->audio_st && is->show_mode != SHOW_MODE_VIDEO)
         video_audio_display(is);
     else if (is->video_st)
@@ -2784,7 +2784,7 @@ static void toggle_full_screen(VideoState *is)
         is->pictq[i].reallocate = 1;
     }
 #endif
-    video_open(is);
+    video_open(is, 1);
 }
 
 static void toggle_pause(VideoState *is)
@@ -2936,7 +2936,7 @@ static void event_loop(VideoState *cur_stream)
             do_exit(cur_stream);
             break;
         case FF_ALLOC_EVENT:
-            video_open(event.user.data1);
+            video_open(event.user.data1, 0);
             alloc_picture(event.user.data1);
             break;
         case FF_REFRESH_EVENT:



More information about the ffmpeg-cvslog mailing list