sdl: lock YUV overlay before clearing

The pixels pointer is not valid otherwise and leads to a segfault.
This commit is contained in:
jSTE0 2022-02-28 23:00:22 +00:00
parent a8b4c53d77
commit 66ef1764f0

View file

@ -101,11 +101,13 @@ int plat_sdl_change_video_mode(int w, int h, int force)
|| plat_target.vout_method == vout_mode_overlay2x) {
int W = plat_target.vout_method == vout_mode_overlay2x && w == 320 ? 2*w : w;
plat_sdl_overlay = SDL_CreateYUVOverlay(W, h, SDL_UYVY_OVERLAY, plat_sdl_screen);
if (plat_sdl_overlay != NULL) {
if (plat_sdl_overlay != NULL && SDL_LockYUVOverlay(plat_sdl_overlay) == 0) {
if ((long)plat_sdl_overlay->pixels[0] & 3)
fprintf(stderr, "warning: overlay pointer is unaligned\n");
plat_sdl_overlay_clear();
SDL_UnlockYUVOverlay(plat_sdl_overlay);
}
else {
fprintf(stderr, "warning: could not create overlay.\n");