[Libva] [PATCH] Fix the alpha mask at getting derive images

Víctor Manuel Jáquez Leal vjaquez at igalia.com
Fri Jun 3 10:48:09 UTC 2016


The alpha mask is set to 0x0 when getting derived images, regardless the
alpha channel in the RGB format. But,

When RGBx, the x means an alpha mask of 0x00000000
When RGBA, the A means an alpha mask of 0xff000000

This patch set the alpha mask correctly.

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez at igalia.com>
---
 src/i965_drv_video.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 0a337f4..cbfc081 100644
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -4351,14 +4351,12 @@ VAStatus i965_DeriveImage(VADriverContextP ctx,
             image->format.red_mask = 0x000000ff;
             image->format.green_mask = 0x0000ff00;
             image->format.blue_mask = 0x00ff0000;
-            image->format.alpha_mask = 0x00000000;
             break;
         case VA_FOURCC_BGRA:
         case VA_FOURCC_BGRX:
             image->format.red_mask = 0x00ff0000;
             image->format.green_mask = 0x0000ff00;
             image->format.blue_mask = 0x000000ff;
-            image->format.alpha_mask = 0x00000000;
             break;
         default:
             goto error;
@@ -4367,10 +4365,12 @@ VAStatus i965_DeriveImage(VADriverContextP ctx,
         switch (image->format.fourcc) {
         case VA_FOURCC_RGBA:
         case VA_FOURCC_BGRA:
+            image->format.alpha_mask = 0xff000000;
             image->format.depth = 32;
             break;
         case VA_FOURCC_RGBX:
         case VA_FOURCC_BGRX:
+            image->format.alpha_mask = 0x00000000;
             image->format.depth = 24;
             break;
         default:
-- 
2.8.1



More information about the Libva mailing list