summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-12-24 14:43:23 +0100
committerwm4 <wm4@nowhere>2015-12-24 14:43:23 +0100
commit6bec6ac55828495356e3498dc52294e28c38c3c1 (patch)
treeb4e3574ad564d40ac70a5516a22c7c31fd72faae /video
parent946bd52a1d1eb561ff8bb516ef6efcd02ca3ea1e (diff)
downloadmpv-6bec6ac55828495356e3498dc52294e28c38c3c1.tar.bz2
mpv-6bec6ac55828495356e3498dc52294e28c38c3c1.tar.xz
sub: better alpha blending when rendering to alpha surfaces
This actually treats destination alpha correctly, and gives much better results than before. I don't know if this is perfectly correct yet, though. Slight difference with vo_opengl behavior suggests it might not be. Note that this does not affect VOs with true alpha support. vo_opengl does not use this code at all, and does the alpha calculations in OpenGL instead.
Diffstat (limited to 'video')
-rw-r--r--video/fmt-conversion.c1
-rw-r--r--video/img_format.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/video/fmt-conversion.c b/video/fmt-conversion.c
index 6482f5429f..71cd044169 100644
--- a/video/fmt-conversion.c
+++ b/video/fmt-conversion.c
@@ -49,6 +49,7 @@ static const struct {
{IMGFMT_BGR4, AV_PIX_FMT_BGR4},
{IMGFMT_PAL8, AV_PIX_FMT_PAL8},
{IMGFMT_GBRP, AV_PIX_FMT_GBRP},
+ {IMGFMT_GBRAP, AV_PIX_FMT_GBRAP},
{IMGFMT_YUYV, AV_PIX_FMT_YUYV422},
{IMGFMT_UYVY, AV_PIX_FMT_UYVY422},
{IMGFMT_NV12, AV_PIX_FMT_NV12},
diff --git a/video/img_format.h b/video/img_format.h
index 0d8c699850..8788f86c35 100644
--- a/video/img_format.h
+++ b/video/img_format.h
@@ -197,6 +197,7 @@ enum mp_imgfmt {
// Planar RGB (planes are shuffled: plane 0 is G, etc.)
IMGFMT_GBRP,
+ IMGFMT_GBRAP,
// XYZ colorspace, similar organization to RGB48. Even though it says "12",
// the components are stored as 16 bit, with lower 4 bits set to 0.