void CameraHardwareStub::initDefaultParameters() { CameraParameters p; p.setPreviewSize(176, 144); p.setPreviewFrameRate(15); p.setPreviewFormat("yuv422sp"); p.setPictureSize(kCannedJpegWidth, kCannedJpegHeight); p.setPictureFormat("jpeg"); if (setParameters(p) != NO_ERROR) { LOGE("Failed to set default parameters?!"); } }
void CameraHardware::initDefaultParameters() { CameraParameters p; p.setPreviewSize(160, 120); p.setPreviewFrameRate(15); p.setPreviewFormat("rgb565"); p.setPictureSize(640, 480); p.setPictureFormat("rgb565"); if (setParameters(p) != NO_ERROR) { LOGE("Failed to set default parameters?!"); } }
void CameraHardwareStub::initDefaultParameters() { CameraParameters p; p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, "320x240"); p.setPreviewSize(320, 240); p.setPreviewFrameRate(15); p.setPreviewFormat(CameraParameters::PIXEL_FORMAT_YUV420SP); p.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, "320x240"); p.setPictureSize(320, 240); p.setPictureFormat(CameraParameters::PIXEL_FORMAT_JPEG); if (setParameters(p) != NO_ERROR) { LOGE("Failed to set default parameters?!"); } }
NS_IMETHODIMP GonkCameraInputStream::Init(nsACString& aContentType, nsCaptureParams* aParams) { if (XRE_GetProcessType() != GeckoProcessType_Default) return NS_ERROR_NOT_IMPLEMENTED; mContentType = aContentType; mWidth = aParams->width; mHeight = aParams->height; mCamera = aParams->camera; PRUint32 maxNumCameras = getNumberOfCameras(); if (maxNumCameras == 0) return NS_ERROR_FAILURE; if (mCamera >= maxNumCameras) mCamera = 0; mHardware = CameraHardwareInterface::openCamera(mCamera); if (!mHardware) return NS_ERROR_FAILURE; mHardware->setCallbacks(NULL, GonkCameraInputStream::DataCallback, NULL, this); mHardware->enableMsgType(CAMERA_MSG_PREVIEW_FRAME); CameraParameters params = mHardware->getParameters(); printf_stderr("Preview format : %s\n", params.get(params.KEY_SUPPORTED_PREVIEW_FORMATS)); Vector<Size> previewSizes; params.getSupportedPreviewSizes(previewSizes); // find the available preview size closest to the requested size. PRUint32 minSizeDelta = PR_UINT32_MAX; PRUint32 bestWidth = mWidth; PRUint32 bestHeight = mHeight; for (PRUint32 i = 0; i < previewSizes.size(); i++) { Size size = previewSizes[i]; PRUint32 delta = abs(size.width * size.height - mWidth * mHeight); if (delta < minSizeDelta) { minSizeDelta = delta; bestWidth = size.width; bestHeight = size.height; } } mWidth = bestWidth; mHeight = bestHeight; params.setPreviewSize(mWidth, mHeight); // try to set preferred image format params.setPreviewFormat("yuv420p"); params.setPreviewFrameRate(mFps); mHardware->setParameters(params); params = mHardware->getParameters(); mFps = params.getPreviewFrameRate(); mIs420p = !strcmp(params.getPreviewFormat(), "yuv420p"); mHardware->startPreview(); mClosed = false; return NS_OK; }