On MS Windows, 'ffplay.exe -fs' does not start fullscreen. Behavior on linux is correct.

On Windows, the initial placement of the SDL screen triggers the SDL_VIDEORESIZE event. This executes the code in the event_loop which calls SDL_SetVideoMode with the SDL_RESIZEABLE bit set. On linux the resize event does not occur.

I can see an obvious flicker on my laptop as the initial fullscreen window is replaced by the normal window. I don't see it on my faster desktop system.

The fix is simple - don't execute SDL_SetVideoMode in the event_loop if is_full_screen is set.
Diff for ffplay version N-66289-gb76d613

diff original/ffplay.c fixed/ffplay.c
3469,3470c3469,3471
< screen = SDL_SetVideoMode(FFMIN(16383, event.resize.w), event.resize.h, 0, < SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL);
---
>                 if (!is_full_screen)
> screen = SDL_SetVideoMode(FFMIN(16383, event.resize.w), event.resize.h, 0, > SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL);

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to