summaryrefslogtreecommitdiffstats
path: root/video/out/vo_sdl.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-01-24 22:56:02 +0100
committerwm4 <wm4@nowhere>2015-01-24 23:16:27 +0100
commit28582322207bb962553505f0c25268f4b786287d (patch)
tree8c9611a9161f48338701fc506646aaedd8c1a491 /video/out/vo_sdl.c
parent047788e3b1354562f99ce8dacdba1972ad990d03 (diff)
downloadmpv-28582322207bb962553505f0c25268f4b786287d.tar.bz2
mpv-28582322207bb962553505f0c25268f4b786287d.tar.xz
vo: simplify VOs by adding generic screenshot support
At the time screenshot support was added, images weren't refcounted yet, so screenshots required specialized implementations in the VOs. But now we can handle these things much simpler. Also see commit 5bb24980. If there are VOs in the future which can't do this (e.g. they need to write to the image passed to vo_driver->draw_image), this still could be disabled on a per-VO basis etc., so we lose no potential performance advantages.
Diffstat (limited to 'video/out/vo_sdl.c')
-rw-r--r--video/out/vo_sdl.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/video/out/vo_sdl.c b/video/out/vo_sdl.c
index 9b7605643a..9a06f2e3c4 100644
--- a/video/out/vo_sdl.c
+++ b/video/out/vo_sdl.c
@@ -172,7 +172,6 @@ struct priv {
SDL_Texture *tex;
int tex_swapped;
struct mp_image_params params;
- mp_image_t *ssmpi;
struct mp_rect src_rect;
struct mp_rect dst_rect;
struct mp_osd_res osd_res;
@@ -638,7 +637,6 @@ static void uninit(struct vo *vo)
{
struct priv *vc = vo->priv;
destroy_renderer(vo);
- talloc_free(vc->ssmpi);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
talloc_free(vc);
}
@@ -913,9 +911,6 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
mp_image_copy(&texmpi, mpi);
SDL_UnlockTexture(vc->tex);
-
- talloc_free(vc->ssmpi);
- vc->ssmpi = mpi;
}
SDL_Rect src, dst;
@@ -941,12 +936,6 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
draw_osd(vo);
}
-static struct mp_image *get_screenshot(struct vo *vo)
-{
- struct priv *vc = vo->priv;
- return vc->ssmpi ? mp_image_new_ref(vc->ssmpi) : NULL;
-}
-
static struct mp_image *get_window_screenshot(struct vo *vo)
{
struct priv *vc = vo->priv;
@@ -1018,9 +1007,6 @@ static int control(struct vo *vo, uint32_t request, void *data)
struct voctrl_get_equalizer_args *args = data;
return get_eq(vo, args->name, args->valueptr);
}
- case VOCTRL_SCREENSHOT:
- *(struct mp_image **)data = get_screenshot(vo);
- return true;
case VOCTRL_SCREENSHOT_WIN:
*(struct mp_image **)data = get_window_screenshot(vo);
return true;