cl: add option of DPC enable/disable in libxcam

  * add function interface for enable/disable dpc
  * add --enable-dpc in test-device-manager command
diff --git a/tests/test-device-manager.cpp b/tests/test-device-manager.cpp
index 317d599..197a80d 100644
--- a/tests/test-device-manager.cpp
+++ b/tests/test-device-manager.cpp
@@ -281,7 +281,8 @@
             "\t --enable-snr  enable simple noise reduction\n"
             "\t --enable-ee   enable YEENR\n"
             "\t --enable-bnr  enable bayer noise reduction\n"
-            "(e.g.: xxxx --hdr=xx --tnr=xx --tnr-level=xx --bilateral --enable-snr --enable-ee --enable-bnr)\n\n"
+            "\t --enable-dpc  enable defect pixel correction\n"
+            "(e.g.: xxxx --hdr=xx --tnr=xx --tnr-level=xx --bilateral --enable-snr --enable-ee --enable-bnr --enable-dpc)\n\n"
             , bin_name
             , DEFAULT_SAVE_FILE_NAME);
 }
@@ -316,6 +317,7 @@
     uint32_t tnr_type = CL_TNR_DISABLE;
     uint32_t denoise_type = 0;
     uint8_t tnr_level = 0;
+    bool dpc_type = false;
 
     const char *short_opts = "sca:n:m:f:d:pi:e:h";
     const struct option long_opts[] = {
@@ -326,6 +328,7 @@
         {"enable-snr", no_argument, NULL, 'S'},
         {"enable-ee", no_argument, NULL, 'E'},
         {"enable-bnr", no_argument, NULL, 'B'},
+        {"enable-dpc", no_argument, NULL, 'D'},
         {0, 0, 0, 0},
     };
 
@@ -427,6 +430,10 @@
             denoise_type |= XCAM_DENOISE_TYPE_BNR;
             break;
         }
+        case 'D': {
+            dpc_type = true;
+            break;
+        }
         case 'T': {
             if (!strcasecmp (optarg, "yuv"))
                 tnr_type = CL_TNR_TYPE_YUV;
@@ -550,6 +557,7 @@
     if (have_cl_processor) {
         cl_processor = new CL3aImageProcessor ();
         cl_processor->set_stats_callback(device_manager);
+        cl_processor->set_dpc(dpc_type);
         cl_processor->set_hdr (hdr_type);
         cl_processor->set_denoise (denoise_type);
         if (need_display) {