diff -rupNB /home/anshuman/tmp/ver1.5/av_capture/application/ipnc/multimedia/av_server/src/video/videoCaptureThr.c /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/application/ipnc/multimedia/av_server/src/video/videoCaptureThr.c
--- /home/anshuman/tmp/ver1.5/av_capture/application/ipnc/multimedia/av_server/src/video/videoCaptureThr.c	2009-11-11 11:56:52.000000000 +0530
+++ /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/application/ipnc/multimedia/av_server/src/video/videoCaptureThr.c	2010-08-31 17:53:16.000000000 +0530
@@ -361,7 +361,8 @@ int VIDEO_captureTskRunDdrIn()
       pBufHeader->offsetV   = gVIDEO_ctrl.captureStream[streamId].captureOutOffsetV;
     }
 
-    reszPrm.inType = DRV_DATA_FORMAT_RAW;
+    reszPrm.inType = DRV_DATA_FORMAT_YUV422; //For enabling YUV422 mode input
+	//reszPrm.inType = DRV_DATA_FORMAT_RAW;
     reszPrm.inVirtAddr = pRawBufInfo->virtAddr;
     reszPrm.inPhysAddr = pRawBufInfo->physAddr;
     reszPrm.inStartX = 0;
diff -rupNB /home/anshuman/tmp/ver1.5/av_capture/framework/drv/usermod/src/drv_ipipe.c /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/framework/drv/usermod/src/drv_ipipe.c
--- /home/anshuman/tmp/ver1.5/av_capture/framework/drv/usermod/src/drv_ipipe.c	2009-11-11 11:57:38.000000000 +0530
+++ /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/framework/drv/usermod/src/drv_ipipe.c	2010-08-31 18:02:08.000000000 +0530
@@ -745,8 +745,9 @@ int DRV_ipipeRszSetParams()
   gDRV_ipipeObj.rszInConfig.wenUseEnable       = FALSE;
   gDRV_ipipeObj.rszInConfig.passThruEnable     = FALSE;
   gDRV_ipipeObj.rszInConfig.passThruInFormat   = 0;
+//  gDRV_ipipeObj.rszInConfig.inputDataPath      = CSL_RSZ_INPUT_DATA_PATH_IPIPE;
+  gDRV_ipipeObj.rszInConfig.inputDataPath      = CSL_RSZ_INPUT_DATA_PATH_IPIPEIF; // Not needed when input is YUV422 mode
 
-  gDRV_ipipeObj.rszInConfig.inputDataPath      = CSL_RSZ_INPUT_DATA_PATH_IPIPE;
 
   gDRV_ipipeObj.rszInConfig.chormaFormatType   = CSL_RSZ_CHROMA_FORMAT_422;
   gDRV_ipipeObj.rszInConfig.yuv420Color        = 0;
diff -rupNB /home/anshuman/tmp/ver1.5/av_capture/framework/drv/usermod/src/drv_isif.c /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/framework/drv/usermod/src/drv_isif.c
--- /home/anshuman/tmp/ver1.5/av_capture/framework/drv/usermod/src/drv_isif.c	2009-11-11 11:57:38.000000000 +0530
+++ /home/anshuman/tmp/YUV_input_mode_IPNC/av_capture/framework/drv/usermod/src/drv_isif.c	2010-08-31 18:17:08.000000000 +0530
@@ -277,6 +277,7 @@ int DRV_isifSetParams()
   CSL_CcdcSdramOutConfig     sdrOutConfig;
   CSL_CcdcDpcmConfig         dpcmConfig;
   CSL_CcdcVdIntConfig        vdIntConfig;
+  CSL_CcdcRec656Config       rec656Config; //Adding this to enable REC656 mode. By default it is off
 
   CSL_IpipeifVpifIsifInConfig isifInConfig;
   CSL_IpipeifH3aConfig        h3aConfig;
@@ -295,7 +296,7 @@ int DRV_isifSetParams()
 
   inDataConfig.hLpfEnable         = gDRV_isifObj.pImgsIsifConfig->ccdcParams.hLpfEnable;
   inDataConfig.inDataMsbPosition  = gDRV_isifObj.pImgsIsifConfig->ccdcParams.inDataMsbPosition;
-  inDataConfig.inDataType         = CSL_CCDC_IN_DATA_TYPE_RAW;
+  inDataConfig.inDataType         = CSL_CCDC_IN_DATA_TYPE_YUV8; // CSL_CCDC_IN_DATA_TYPE_RAW; - //Changing to support YUV8 bit mode
   inDataConfig.dataPolarity       = CSL_CCDC_DATA_POLARITY_NO_CHANGE;
   inDataConfig.yPos               = CSL_CCDC_Y_POS_ODD;
 
@@ -307,7 +308,7 @@ int DRV_isifSetParams()
   miscConfig.sdramAddrInitTiggerSource      = CSL_CCDC_SDR_ADDR_INIT_DWEN;
   miscConfig.orWenIntExt                    = TRUE;
   miscConfig.fidLatchAtVdDisable            = FALSE;
-  miscConfig.ycInSwap                       = FALSE;
+  miscConfig.ycInSwap                       = TRUE; // FALSE; // Needed for YUV8 bit input mode
   miscConfig.ycOutSwap                      = FALSE;
 
   dfcLscOffsetConfig.hOffset                = gDRV_isifObj.imgsModeInfo.validStartX;
@@ -317,7 +318,13 @@ int DRV_isifSetParams()
   sdrOutConfig.outStartH            = gDRV_isifObj.imgsModeInfo.validStartX;
   sdrOutConfig.outStartV0           = gDRV_isifObj.imgsModeInfo.validStartY;
   sdrOutConfig.outStartV1           = gDRV_isifObj.imgsModeInfo.validStartY;
-  sdrOutConfig.outWidth             = gDRV_isifObj.imgsModeInfo.validWidth;
+//  sdrOutConfig.outWidth             = gDRV_isifObj.imgsModeInfo.validWidth;
+
+  if(inDataConfig.inDataType == CSL_CCDC_IN_DATA_TYPE_YUV8)
+    sdrOutConfig.outWidth             = gDRV_isifObj.imgsModeInfo.validWidth*2; // Needed to change the outWidth when YUV8 bit mode is selected
+  else
+    sdrOutConfig.outWidth             = gDRV_isifObj.imgsModeInfo.validWidth;
+
   sdrOutConfig.outHeight            = gDRV_isifObj.imgsModeInfo.validHeight;
   sdrOutConfig.culHEven             = 0xFF;
   sdrOutConfig.culHOdd              = 0xFF;
@@ -344,10 +351,14 @@ int DRV_isifSetParams()
   else
     sdrOutConfig.packMode             = CSL_CCDC_SDR_OUT_TYPE_16BITS_PER_PIXEL;
 
+  if(inDataConfig.inDataType == CSL_CCDC_IN_DATA_TYPE_YUV8)
+    sdrOutConfig.packMode             = CSL_CCDC_SDR_OUT_TYPE_8BITS_PER_PIXEL; 
+
   dpcmConfig.enable       = gDRV_isifObj.config.dpcmEnable;
   dpcmConfig.predictor    = CSL_CCDC_DPCM_PREDICTOR_1;
 
-  vdInt = ((Uint32)gDRV_isifObj.imgsModeInfo.sensorDataHeight-1);
+//  vdInt = ((Uint32)gDRV_isifObj.imgsModeInfo.sensorDataHeight-1);
+  vdInt = ((Uint32)gDRV_isifObj.imgsModeInfo.sensorDataHeight-32);
 
   vdIntConfig.vdInt0  = vdInt;
   vdIntConfig.vdInt1  = vdInt;
@@ -363,6 +374,10 @@ int DRV_isifSetParams()
     memcpy(gDRV_isifObj.lscOffsetTableVirtAddr, gDRV_isifObj.pImgsIsifConfig->ccdcParams.lscOffsetTable, IMAGE_TUNE_LSC_BUFFER_MAX);
   }
 
+  rec656Config.enable             = TRUE;
+  rec656Config.errorCorrectEnable = FALSE;
+  rec656Config.dataWidth          = CSL_CCDC_REC656_DATA_WIDTH_8BIT;
+
   setup.enable                    = FALSE;
   setup.sdramOutEnable            = FALSE;
   setup.bypassModuleIfNullConfig  = TRUE;
@@ -382,7 +397,8 @@ int DRV_isifSetParams()
   setup.sdramOutSizeConfig        = NULL;
   setup.sdramOutConfig            = &sdrOutConfig;
   setup.dpcmConfig                = &dpcmConfig;
-  setup.rec656Config              = NULL;
+  setup.rec656Config              = NULL; //Need to enable REC656 mode if the input device does so by uncommenting the following line
+  setup.rec656Config              = rec656Config;
   setup.flashConfig               = NULL;
   setup.vdIntConfig               = &vdIntConfig;
 
@@ -592,12 +608,12 @@ int DRV_isifTestMain(int argc, char **ar
   while(!gDRV_isifTestQuit && status==OSA_SOK)
     status = DRV_isifTestRun();
 
-  OSA_printf(" ISIF: Stoping ISIF.\n");
+  OSA_printf(" ISIF: Stopping ISIF.\n");
   DRV_isifOutEnable(FALSE);
   DRV_isifWaitInt(DRV_ISIF_INT_VD0, 2);
   DRV_isifEnable(FALSE);
 
-  OSA_printf(" ISIF: Stoping imager.\n");
+  OSA_printf(" ISIF: Stopping imager.\n");
   DRV_imgsEnable(FALSE);
 
   OSA_printf(" ISIF: Closing ISIF.\n");
