qdutils: Support Get/Set of UBWC CR Stats metadata

CRs-Fixed: 2073410

Change-Id: I133307d63d301a24af183b18a330eb160459c805
diff --git a/libqdutils/qdMetaData.cpp b/libqdutils/qdMetaData.cpp
index e5a4826..857b710 100644
--- a/libqdutils/qdMetaData.cpp
+++ b/libqdutils/qdMetaData.cpp
@@ -125,6 +125,14 @@
             data->color = *((ColorMetaData *)param);
 #endif
             break;
+        case SET_UBWC_CR_STATS_INFO: {
+             struct UBWCStats* stats = (struct UBWCStats*)param;
+             int numelems = sizeof(data->ubwcCRStats) / sizeof(struct UBWCStats);
+             for (int i = 0; i < numelems; i++) {
+                  data->ubwcCRStats[i] = stats[i];
+             }
+              break;
+          }
         default:
             ALOGE("Unknown paramType %d", paramType);
             break;
@@ -171,6 +179,8 @@
     int ret = -EINVAL;
     if (data == nullptr)
         return ret;
+    if (param == nullptr)
+        return ret;
 
     switch (paramType) {
         case GET_PP_PARAM_INTERLACED:
@@ -247,6 +257,16 @@
             }
 #endif
             break;
+        case GET_UBWC_CR_STATS_INFO:
+            if (data->operation & SET_UBWC_CR_STATS_INFO) {
+                struct UBWCStats* stats = (struct UBWCStats*)param;
+                int numelems = sizeof(data->ubwcCRStats) / sizeof(struct UBWCStats);
+                for (int i = 0; i < numelems; i++) {
+                    stats[i] = data->ubwcCRStats[i];
+                }
+                ret = 0;
+            }
+            break;
         default:
             ALOGE("Unknown paramType %d", paramType);
             break;