diff options
author | wm4 <wm4@nowhere> | 2014-05-22 20:55:05 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-05-24 16:54:54 +0200 |
commit | 55c3055784bed2ba7fff5131506f7f95b922fa46 (patch) | |
tree | 3c6acf160f90247774c0b28f685b1e315e4c346d /video | |
parent | 58fbe50d6888b958010e6048241a3ecf34d5d73b (diff) | |
download | mpv-55c3055784bed2ba7fff5131506f7f95b922fa46.tar.bz2 mpv-55c3055784bed2ba7fff5131506f7f95b922fa46.tar.xz |
vo_vdpau: always allocate the black pixel
black_pixel is an (apparently necessary) 1x1 black surface used for
clearing the screen. It was allocated in RGB mode only, but is sometimes
used in YUV mode too.
Diffstat (limited to 'video')
-rw-r--r-- | video/out/vo_vdpau.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c index d80f5dab48..877a3765bf 100644 --- a/video/out/vo_vdpau.c +++ b/video/out/vo_vdpau.c @@ -655,6 +655,12 @@ static int initialize_vdpau_objects(struct vo *vo) &vc->rgb_surfaces[n]); CHECK_VDP_ERROR(vo, "Allocating RGB surface"); } + } else { + if (create_vdp_mixer(vo, vc->vdp_chroma_type) < 0) + return -1; + } + + if (vc->black_pixel == VDP_INVALID_HANDLE) { vdp_st = vdp->output_surface_create(vc->vdp_device, OUTPUT_RGBA_FORMAT, 1, 1, &vc->black_pixel); CHECK_VDP_ERROR(vo, "Allocating clearing surface"); @@ -663,9 +669,6 @@ static int initialize_vdpau_objects(struct vo *vo) (const void*[]){data}, (uint32_t[]){4}, NULL); CHECK_VDP_ERROR(vo, "Initializing clearing surface"); - } else { - if (create_vdp_mixer(vo, vc->vdp_chroma_type) < 0) - return -1; } forget_frames(vo, false); |