summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/video.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gpu/video.c')
-rw-r--r--video/out/gpu/video.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index 9d5df7c739..4d14eb8019 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -2357,9 +2357,11 @@ static void pass_convert_yuv(struct gl_video *p)
p->components = 3;
if (!p->has_alpha || p->opts.alpha_mode == ALPHA_NO) {
GLSL(color.a = 1.0;)
- } else { // alpha present in image
+ } else if (p->image_params.alpha == MP_ALPHA_PREMUL) {
p->components = 4;
- GLSL(color = vec4(color.rgb * color.a, color.a);)
+ } else {
+ p->components = 4;
+ GLSL(color = vec4(color.rgb * color.a, color.a);) // straight -> premul
}
}