static MUINT32 u4Capture_Cmd(int argc, char** argv) { MUINT32 u4Mode = ACDK_SCENARIO_ID_CAMERA_PREVIEW; MUINT32 u4EnableMsg = 0x8; //jpeg only MUINT32 u4Rot = 0; MUINT32 u4ShotCnt = 1; u4CapCnt = 0; if (argc == 1) { u4Mode = atoi(argv[0]); } else if (argc == 3) { u4Mode = atoi(argv[0]); g_u4Width = atoi(argv[1]); g_u4Height = atoi(argv[2]); } else if (argc == 4) { u4Mode = atoi(argv[0]); g_u4Width = atoi(argv[1]); g_u4Height = atoi(argv[2]); sscanf( argv[3],"%x", &u4EnableMsg); } else if (argc == 5) { u4Mode = atoi(argv[0]); g_u4Width = atoi(argv[1]); g_u4Height = atoi(argv[2]); sscanf( argv[3],"%x", &u4EnableMsg); u4Rot = atoi(argv[4]); } else if (argc == 6) { u4Mode = atoi(argv[0]); g_u4Width = atoi(argv[1]); g_u4Height = atoi(argv[2]); sscanf( argv[3],"%x", &u4EnableMsg); u4Rot = atoi(argv[4]); u4ShotCnt = atoi(argv[5]); } MUINT32 cmd = SENSOR_CMD_GET_SENSOR_PRV_RANGE; if (u4Mode == 0) { cmd = SENSOR_CMD_GET_SENSOR_PRV_RANGE; } else if (1 == u4Mode) { cmd = SENSOR_CMD_GET_SENSOR_FULL_RANGE; } g_pSensorHal->sendCommand(SENSOR_DEV_MAIN, cmd, (int)&g_u4SensorWidth, (int)&g_u4SensorHeight, 0 ); printf("sensor width:%d, height:%d\n", g_u4SensorWidth, g_u4SensorHeight); printf("capture width:%d, height:%d\n, mode:%d, image:%x, count:%d\n", g_u4Width, g_u4Height, u4Mode, u4EnableMsg, u4ShotCnt); ISingleShot *pSingleShot = ISingleShot::createInstance(eShotMode_NormalShot, "testshot"); // pSingleShot->init(); // pSingleShot->enableDataMsg(u4EnableMsg ); // set buffer // #if ALLOCA_MEM allocateMem(u4EnableMsg); // pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_BAYER, g_rRawBufInfo); pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_YUV, g_rYuvBufInfo); pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_POSTVIEW, g_rPostViewBufInfo); pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_JPEG, g_rJpegBufInfo); #endif // shot param ShotParam rShotParam(eImgFmt_YV16, //yuv format g_u4Width, //picutre width g_u4Height, //picture height u4Rot * 90, //picutre rotation 0, //picutre flip eImgFmt_I420, //postview format 640, //postview width 480, //postview height 0, //postview rotation 0, //postview flip 100 //zoom ); // jpeg param JpegParam rJpegParam(ThumbnailParam(160, 120, 100, MTRUE), 90, //Quality MTRUE //isSOI ); // thumbnail param ThumbnailParam rThumbnailParam(160, // thumbnail width 120, // thumbnail height 100, // quality MTRUE // isSOI ); // sensor param SensorParam rSensorParam(SENSOR_DEV_MAIN, //Device ID u4Mode, //Scenaio 10, //bit depth MTRUE, //bypass delay MFALSE //bypass scenario ); // pSingleShot->setCallbacks(fgCamShotNotifyCb, fgCamShotDataCb, NULL); // pSingleShot->setShotParam(rShotParam); // pSingleShot->setJpegParam(rJpegParam); // // for (MUINT32 i = 0 ; i < u4ShotCnt; i++) { pSingleShot->startOne(rSensorParam); u4CapCnt++; } // pSingleShot->uninit(); // pSingleShot->destroyInstance(); return 0; }
static MUINT32 u4Capture_Cmd(int argc, char** argv) { MUINT32 u4Transform; switch(g_u4Rot) { case 0: u4Transform = 0; break; case 1: u4Transform = eTransform_ROT_90; break; case 2: u4Transform = eTransform_ROT_180; break; case 3: u4Transform = eTransform_ROT_270; break; default: u4Transform = 0; break; } ISingleShot *pSingleShot = ISingleShot::createInstance(eShotMode_NormalShot, "testshot"); // pSingleShot->init(); // pSingleShot->enableDataMsg( g_u4EnableMsg ); // set buffer // // register buffer allocateMem(g_u4RegisterDataMsg); // // if( g_u4RegisterDataMsg & ECamShot_BUF_TYPE_RAW ) pSingleShot->registerImageBuffer(ECamShot_BUF_TYPE_RAW, g_ImgBufRaw.get()); if( g_u4RegisterDataMsg & ECamShot_BUF_TYPE_YUV ) pSingleShot->registerImageBuffer(ECamShot_BUF_TYPE_YUV, g_ImgBufYuv.get()); if( g_u4RegisterDataMsg & ECamShot_BUF_TYPE_POSTVIEW ) pSingleShot->registerImageBuffer(ECamShot_BUF_TYPE_POSTVIEW, g_ImgBufPostview.get()); if( g_u4RegisterDataMsg & ECamShot_BUF_TYPE_JPEG ) pSingleShot->registerImageBuffer(ECamShot_BUF_TYPE_JPEG, g_ImgBufJpeg.get()); // pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_YUV, g_rYuvBufInfo); // pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_POSTVIEW, g_rPostViewBufInfo); // pSingleShot->registerImgBufInfo(ECamShot_BUF_TYPE_JPEG, g_rJpegBufInfo); // shot param ShotParam rShotParam(eImgFmt_YUY2, //yuv format g_u4Width, //picutre width g_u4Height, //picture height u4Transform, //picutre transform eImgFmt_YV12, //postview format 800, //postview width 480, //postview height 0, //postview transform 100 //zoom ); // jpeg param JpegParam rJpegParam(ThumbnailParam(160, 128, 100, MTRUE), 90, //Quality MTRUE //isSOI ); // thumbnail param ThumbnailParam rThumbnailParam(160, // thumbnail width 128, // thumbnail height 100, // quality MTRUE // isSOI ); // sensor param SensorParam rSensorParam( g_sensorIdx, //open ID g_u4Mode == 0 ? SENSOR_SCENARIO_ID_NORMAL_PREVIEW : SENSOR_SCENARIO_ID_NORMAL_CAPTURE, //Scenaio 10, //bit depth MFALSE, //bypass delay MFALSE, //bypass scenario u4RawType //rawType ); // update sensor's size if( g_u4Mode == 0 ) // preview { g_u4SensorWidth = g_pSensorInfo[g_sensorIdx].previewWidth; g_u4SensorHeight = g_pSensorInfo[g_sensorIdx].previewHeight; } else if( g_u4Mode == 1 )//capture { g_u4SensorWidth = g_pSensorInfo[g_sensorIdx].captureWidth; g_u4SensorHeight = g_pSensorInfo[g_sensorIdx].captureHeight; } // pSingleShot->setCallbacks(fgCamShotNotifyCb, fgCamShotDataCb, NULL); // pSingleShot->setShotParam(rShotParam); // pSingleShot->setJpegParam(rJpegParam); // // u4CapCnt = 0; for (MUINT32 i = 0 ; i < g_u4ShotCnt; i++) { printf("startOne count(0x%x)+\n", i); pSingleShot->startOne(rSensorParam); printf("startOne count(0x%x)-\n", i); u4CapCnt++; } // pSingleShot->uninit(); // pSingleShot->destroyInstance(); freeMem(); return 0; }