int ExynosJpegBase::destroy(int iInBufs, int iOutBufs) { if (t_bFlagCreate == false) { return ERROR_JPEG_DEVICE_ALREADY_DESTROY; } if (t_iJpegFd > 0) { struct BUF_INFO stBufInfo; if (t_bFlagExcute) { t_v4l2StreamOff(t_iJpegFd, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE); t_v4l2StreamOff(t_iJpegFd, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); } if (t_bFlagExcute) { stBufInfo.numOfPlanes = iInBufs; stBufInfo.memory = V4L2_MEMORY_MMAP; stBufInfo.buf_type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; t_v4l2Reqbufs(t_iJpegFd, 0, &stBufInfo); stBufInfo.numOfPlanes = iOutBufs; stBufInfo.buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; t_v4l2Reqbufs(t_iJpegFd, 0, &stBufInfo); } close(t_iJpegFd); } t_iJpegFd = -1; t_bFlagCreate = false; return ERROR_NONE; }
int SecJpegEncoderHal::destroy(void) { if (t_bFlagCreate == false) { return ERROR_JPEG_DEVICE_ALREADY_DESTROY; } if (t_iJpegFd > 0) { struct BUF_INFO stBufInfo; int iRet = ERROR_NONE; if (t_bFlagExcute) { iRet = t_v4l2StreamOff(t_iJpegFd, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE); } if (t_bFlagExcute) { stBufInfo.numOfPlanes = t_iPlaneNum; stBufInfo.memory = V4L2_MEMORY_MMAP; stBufInfo.buf_type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; iRet = t_v4l2Reqbufs(t_iJpegFd, 0, &stBufInfo); stBufInfo.numOfPlanes = NUM_PLANES; stBufInfo.buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; iRet = t_v4l2Reqbufs(t_iJpegFd, 0, &stBufInfo); } iRet = close(t_iJpegFd); } t_iJpegFd = -1; t_bFlagCreate = false; return ERROR_NONE; }