int UVCPreview::prepare_preview(uvc_stream_ctrl_t *ctrl) { uvc_error_t result; ENTER(); result = uvc_get_stream_ctrl_format_size_fps(mDeviceHandle, ctrl, !requestMode ? UVC_FRAME_FORMAT_YUYV : UVC_FRAME_FORMAT_MJPEG, requestWidth, requestHeight, 1, 30 ); LOGE("[EYEDEA] result_1:[%d]", result); if (LIKELY(!result)) { #if LOCAL_DEBUG uvc_print_stream_ctrl(ctrl, stderr); #endif uvc_frame_desc_t *frame_desc; result = uvc_get_frame_desc(mDeviceHandle, ctrl, &frame_desc); LOGE("[EYEDEA] result_2:[%d]", result); if (LIKELY(!result)) { frameWidth = frame_desc->wWidth; frameHeight = frame_desc->wHeight; LOGI("frameSize=(%d,%d)@%s", frameWidth, frameHeight, (!requestMode ? "YUYV" : "MJPEG")); pthread_mutex_lock(&preview_mutex); if (LIKELY(mPreviewWindow)) { ANativeWindow_setBuffersGeometry(mPreviewWindow, frameWidth, frameHeight, previewFormat); } pthread_mutex_unlock(&preview_mutex); } else { frameWidth = requestWidth; frameHeight = requestHeight; } frameMode = requestMode; frameBytes = frameWidth * frameHeight * (!requestMode ? 2 : 4); previewBytes = frameWidth * frameHeight * PREVIEW_PIXEL_BYTES; } else { LOGE("could not negotiate with camera:err=%d", result); } RETURN(result, int); }
int UVCPreview::prepare_preview(uvc_stream_ctrl_t *ctrl) { uvc_error_t result; ENTER(); result = uvc_get_stream_ctrl_format_size(mDeviceHandle, ctrl, UVC_FRAME_FORMAT_YUYV, requestWidth, requestHeight, requestFps ); if (LIKELY(!result)) { #if LOCAL_DEBUG uvc_print_stream_ctrl(ctrl, stderr); #endif uvc_frame_desc_t *frame_desc; result = uvc_get_frame_desc(mDeviceHandle, ctrl, &frame_desc); if (LIKELY(!result)) { frameWidth = frame_desc->wWidth; frameHeight = frame_desc->wHeight; #if LOCAL_DEBUG LOGI("frameSize=(%d,%d)", frameWidth, frameHeight); #endif pthread_mutex_lock(&preview_mutex); if (LIKELY(mPreviewWindow)) { ANativeWindow_setBuffersGeometry(mPreviewWindow, frameWidth, frameHeight, previewFormat); } pthread_mutex_unlock(&preview_mutex); } else { frameWidth = requestWidth; frameHeight = requestHeight; } frameBytes = frameWidth * frameHeight * 2; // YUYV previewBytes = frameWidth * frameHeight * PREVIEW_PIXEL_BYTES; } else { LOGE("could not negotiate with camera:err=%d", result); } RETURN(result, int); }