overlay/copybit: Set Color Space for MDP to configure CSC matrix

Set Color Space for MDP (Overlay & Blit) to configure CSC matrix
correctly.

Change-Id: Ie1cada971d43339f334c061591fa848d8bb2385d
diff --git a/libcopybit/copybit.cpp b/libcopybit/copybit.cpp
index 84d7620..2302d64 100644
--- a/libcopybit/copybit.cpp
+++ b/libcopybit/copybit.cpp
@@ -37,6 +37,7 @@
 
 #include "gralloc_priv.h"
 #include "software_converter.h"
+#include <qdMetaData.h>
 
 #define DEBUG_MDP_ERRORS 1
 
@@ -504,6 +505,13 @@
                 flags |=  MDP_BLIT_NON_CACHED;
             }
 
+            // Set Color Space for MDP to configure CSC matrix
+            req->color_space = ITU_R_601;
+            MetaData_t *metadata = (MetaData_t *)src_hnd->base_metadata;
+            if (metadata && (metadata->operation & UPDATE_COLOR_SPACE)) {
+                req->color_space = metadata->colorSpace;
+            }
+
             set_infos(ctx, req, flags);
             set_image(&req->dst, dst);
             set_image(&req->src, src);
diff --git a/liboverlay/overlayMdp.cpp b/liboverlay/overlayMdp.cpp
index ddc40ee..b8bb33e 100644
--- a/liboverlay/overlayMdp.cpp
+++ b/liboverlay/overlayMdp.cpp
@@ -218,6 +218,13 @@
 
 bool MdpCtrl::setVisualParams(const MetaData_t& data) {
     ALOGD_IF(0, "In %s: data.operation = %d", __FUNCTION__, data.operation);
+
+    // Set Color Space for MDP to configure CSC matrix
+    mOVInfo.color_space = ITU_R_601;
+    if (data.operation & UPDATE_COLOR_SPACE) {
+        mOVInfo.color_space = data.colorSpace;
+    }
+
 #ifdef USES_POST_PROCESSING
     bool needUpdate = false;
     /* calculate the data */