diff --git a/libqdmetadata/qdMetaData.cpp b/libqdmetadata/qdMetaData.cpp
index 4635540..3cbafb7 100644
--- a/libqdmetadata/qdMetaData.cpp
+++ b/libqdmetadata/qdMetaData.cpp
@@ -140,6 +140,20 @@
                     sizeof(data->graphics_metadata.data));
              break;
         }
+        case SET_CVP_METADATA: {
+             struct CVPMetadata *cvpMetadata = (struct CVPMetadata *)param;
+             if (cvpMetadata->size < CVP_METADATA_SIZE) {
+                 data->cvpMetadata.size = cvpMetadata->size;
+                 memcpy(data->cvpMetadata.payload, cvpMetadata->payload,
+                        cvpMetadata->size);
+             } else {
+                 data->operation &= ~(paramType);
+                 ALOGE("%s: cvp metadata length %d is more than max size %d",
+                     __func__, cvpMetadata->size, CVP_METADATA_SIZE);
+                 return -EINVAL;
+             }
+             break;
+        }
         default:
             ALOGE("Unknown paramType %d", paramType);
             break;
@@ -167,6 +181,9 @@
         case SET_VIDEO_PERF_MODE:
             data->isVideoPerfMode = 0;
             break;
+        case SET_CVP_METADATA:
+            data->cvpMetadata.size = 0;
+            break;
         default:
             ALOGE("Unknown paramType %d", paramType);
             break;
@@ -287,6 +304,18 @@
                 ret = 0;
             }
             break;
+        case GET_CVP_METADATA:
+            if (data->operation & SET_CVP_METADATA) {
+                struct CVPMetadata *cvpMetadata = (struct CVPMetadata *)param;
+                cvpMetadata->size = 0;
+                if (data->cvpMetadata.size < CVP_METADATA_SIZE) {
+                    cvpMetadata->size = data->cvpMetadata.size;
+                    memcpy(cvpMetadata->payload, data->cvpMetadata.payload,
+                           data->cvpMetadata.size);
+                    ret = 0;
+                }
+            }
+            break;
         default:
             ALOGE("Unknown paramType %d", paramType);
             break;
diff --git a/libqdmetadata/qdMetaData.h b/libqdmetadata/qdMetaData.h
index ad2a2a9..b98384f 100644
--- a/libqdmetadata/qdMetaData.h
+++ b/libqdmetadata/qdMetaData.h
@@ -38,6 +38,7 @@
 
 #define MAX_UBWC_STATS_LENGTH 32
 #define GRAPHICS_METADATA_SIZE 4096
+#define CVP_METADATA_SIZE 1024
 
 enum ColorSpace_t{
     ITU_R_601,
@@ -105,6 +106,11 @@
     uint32_t data[GRAPHICS_METADATA_SIZE];
 } GraphicsMetadata;
 
+typedef struct CVPMetadata {
+    uint32_t size; /* payload size in bytes */
+    uint8_t payload[CVP_METADATA_SIZE];
+} CVPMetadata;
+
 struct MetaData_t {
     int32_t operation;
     int32_t interlaced;
@@ -148,6 +154,11 @@
     /* Populated and used by adreno during buffer size calculation.
      * Set only for RGB formats. */
     GraphicsMetadata graphics_metadata;
+    /*
+     * Producer (camera) will set cvp metadata and consumer (video) will
+     * use it. The format of metadata is known to producer and consumer.
+     */
+    CVPMetadata cvpMetadata;
 };
 
 enum DispParamType {
@@ -167,6 +178,7 @@
     SET_IGC                    = 0x2000,
     SET_SINGLE_BUFFER_MODE     = 0x4000,
     SET_S3D_COMP               = 0x8000,
+    SET_CVP_METADATA           = 0x00010000,
 };
 
 enum DispFetchParamType {
@@ -186,6 +198,7 @@
     GET_IGC                   = 0x2000,
     GET_SINGLE_BUFFER_MODE    = 0x4000,
     GET_S3D_COMP              = 0x8000,
+    GET_CVP_METADATA          = 0x00010000,
 };
 
 struct private_handle_t;
