0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00

vo_sdl: avoid copying just for taking screenshots

Use reference counting instead.
This commit is contained in:
wm4 2012-12-31 17:12:38 +01:00
parent bd6470ec6a
commit dd89c542e3

View File

@ -450,8 +450,6 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
return -1;
}
vc->ssmpi = mp_image_alloc(format, width, height);
resize(vo, d_width, d_height);
SDL_DisableScreenSaver();
@ -899,6 +897,8 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
mp_image_copy(texmpi, mpi);
SDL_UnlockTexture(vc->tex);
mp_image_setrefp(&vc->ssmpi, mpi);
}
SDL_Rect src, dst;
@ -920,8 +920,6 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
SDL_SetTextureColorMod(vc->tex, color_mod, color_mod, color_mod);
SDL_RenderCopy(vc->renderer, vc->tex, &src, &dst);
}
if (mpi)
mp_image_copy(vc->ssmpi, mpi);
}
static void update_screeninfo(struct vo *vo)
@ -942,7 +940,7 @@ static void update_screeninfo(struct vo *vo)
static struct mp_image *get_screenshot(struct vo *vo)
{
struct priv *vc = vo->priv;
return mp_image_new_copy(vc->ssmpi);
return vc->ssmpi ? mp_image_new_ref(vc->ssmpi) : NULL;
}
static struct mp_image *get_window_screenshot(struct vo *vo)