diff --git a/libqdutils/qdMetaData.cpp b/libqdutils/qdMetaData.cpp
index 626f250..635e676 100644
--- a/libqdutils/qdMetaData.cpp
+++ b/libqdutils/qdMetaData.cpp
@@ -60,27 +60,9 @@
     MetaData_t *data = reinterpret_cast <MetaData_t *>(base);
     data->operation |= paramType;
     switch (paramType) {
-        case PP_PARAM_HSIC:
-            data->hsicData = *((HSICData_t *)param);
-            break;
-        case PP_PARAM_SHARPNESS:
-            data->sharpness = *((int32_t *)param);
-            break;
-        case PP_PARAM_VID_INTFC:
-            data->video_interface = *((int32_t *)param);
-            break;
         case PP_PARAM_INTERLACED:
             data->interlaced = *((int32_t *)param);
             break;
-        case PP_PARAM_IGC:
-            memcpy((void *)&data->igcData, param, sizeof(IGCData_t));
-            break;
-        case PP_PARAM_SHARP2:
-            data->Sharp2Data = *((Sharp2Data_t *)param);
-            break;
-        case PP_PARAM_TIMESTAMP:
-            data->timestamp = *((int64_t *)param);
-            break;
         case UPDATE_BUFFER_GEOMETRY:
             data->bufferDim = *((BufferDim_t *)param);
             break;
diff --git a/libqdutils/qdMetaData.h b/libqdutils/qdMetaData.h
index ef299f6..a927f75 100644
--- a/libqdutils/qdMetaData.h
+++ b/libqdutils/qdMetaData.h
@@ -34,8 +34,6 @@
 extern "C" {
 #endif
 
-#define MAX_IGC_LUT_ENTRIES 256
-
 enum ColorSpace_t{
     ITU_R_601,
     ITU_R_601_FR,
@@ -54,19 +52,6 @@
     float   contrast;
 };
 
-struct Sharp2Data_t {
-    int32_t strength;
-    uint32_t edge_thr;
-    uint32_t smooth_thr;
-    uint32_t noise_thr;
-};
-
-struct IGCData_t{
-    uint16_t c0[MAX_IGC_LUT_ENTRIES];
-    uint16_t c1[MAX_IGC_LUT_ENTRIES];
-    uint16_t c2[MAX_IGC_LUT_ENTRIES];
-};
-
 struct BufferDim_t {
     int32_t sliceWidth;
     int32_t sliceHeight;
@@ -76,12 +61,6 @@
     int32_t operation;
     int32_t interlaced;
     struct BufferDim_t bufferDim;
-    struct HSICData_t hsicData;
-    int32_t sharpness;
-    int32_t video_interface;
-    struct IGCData_t igcData;
-    struct Sharp2Data_t Sharp2Data;
-    int64_t timestamp;
     uint32_t refreshrate;
     enum ColorSpace_t colorSpace;
     enum IGC_t igc;
@@ -103,13 +82,13 @@
 };
 
 enum DispParamType {
-    PP_PARAM_HSIC       = 0x0001,
-    PP_PARAM_SHARPNESS  = 0x0002,
+    UNUSED0             = 0x0001,
+    UNUSED1             = 0x0002,
     PP_PARAM_INTERLACED = 0x0004,
-    PP_PARAM_VID_INTFC  = 0x0008,
-    PP_PARAM_IGC        = 0x0010,
-    PP_PARAM_SHARP2     = 0x0020,
-    PP_PARAM_TIMESTAMP  = 0x0040,
+    UNUSED2             = 0x0008,
+    UNUSED3             = 0x0010,
+    UNUSED4             = 0x0020,
+    UNUSED5             = 0x0040,
     UPDATE_BUFFER_GEOMETRY = 0x0080,
     UPDATE_REFRESH_RATE = 0x0100,
     UPDATE_COLOR_SPACE = 0x0200,
