diff --git a/tools/emulator/system/camera/Android.mk b/tools/emulator/system/camera/Android.mk index c51f6212e..61e1e830d 100755 --- a/tools/emulator/system/camera/Android.mk +++ b/tools/emulator/system/camera/Android.mk @@ -35,10 +35,9 @@ LOCAL_SHARED_LIBRARIES += \ libandroid_runtime \ LOCAL_C_INCLUDES += external/jpeg \ - external/skia/include/core/ \ - frameworks/native/include/media/hardware \ - frameworks/base/core/jni/android/graphics \ - $(call include-path-for, camera) + external/skia/include/core/ \ + frameworks/native/include/media/hardware \ + frameworks/base/core/jni/android/graphics LOCAL_SRC_FILES := \ EmulatedCameraHal.cpp \ @@ -54,10 +53,7 @@ LOCAL_SRC_FILES := \ PreviewWindow.cpp \ CallbackNotifier.cpp \ QemuClient.cpp \ - JpegCompressor.cpp \ - EmulatedCamera2.cpp \ - EmulatedFakeCamera2.cpp \ - EmulatedQemuCamera2.cpp + JpegCompressor.cpp ifeq ($(TARGET_PRODUCT),vbox_x86) LOCAL_MODULE := camera.vbox_x86 diff --git a/tools/emulator/system/camera/EmulatedCamera2.cpp b/tools/emulator/system/camera/EmulatedCamera2.cpp deleted file mode 100644 index ff78c712e..000000000 --- a/tools/emulator/system/camera/EmulatedCamera2.cpp +++ /dev/null @@ -1,530 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Contains implementation of a class EmulatedCamera that encapsulates - * functionality common to all version 2.0 emulated camera devices. Instances - * of this class (for each emulated camera) are created during the construction - * of the EmulatedCameraFactory instance. This class serves as an entry point - * for all camera API calls that defined by camera2_device_ops_t API. - */ - -#define LOG_NDEBUG 0 -#define LOG_TAG "EmulatedCamera2_Camera" -#include - -#include "EmulatedCamera2.h" -#include "system/camera_metadata.h" - -namespace android { - -/* Constructs EmulatedCamera2 instance. - * Param: - * cameraId - Zero based camera identifier, which is an index of the camera - * instance in camera factory's array. - * module - Emulated camera HAL module descriptor. - */ -EmulatedCamera2::EmulatedCamera2(int cameraId, - struct hw_module_t* module): - EmulatedBaseCamera(cameraId, - CAMERA_DEVICE_API_VERSION_2_0, - &common, - module) -{ - common.close = EmulatedCamera2::close; - ops = &sDeviceOps; - priv = this; - - mRequestQueueDstOps.notify_queue_not_empty = - EmulatedCamera2::request_queue_notify_queue_not_empty; - mRequestQueueDstOps.parent = this; - - mRequestQueueDstOps.notify_queue_not_empty = - EmulatedCamera2::reprocess_queue_notify_queue_not_empty; - mReprocessQueueDstOps.parent = this; - - mFrameQueueSrcOps.buffer_count = EmulatedCamera2::frame_queue_buffer_count; - mFrameQueueSrcOps.dequeue = EmulatedCamera2::frame_queue_dequeue; - mFrameQueueSrcOps.free = EmulatedCamera2::frame_queue_free; - mFrameQueueSrcOps.parent = this; - - mReprocessStreamOps.dequeue_buffer = - EmulatedCamera2::reprocess_stream_dequeue_buffer; - mReprocessStreamOps.enqueue_buffer = - EmulatedCamera2::reprocess_stream_enqueue_buffer; - mReprocessStreamOps.cancel_buffer = - EmulatedCamera2::reprocess_stream_cancel_buffer; - mReprocessStreamOps.set_buffer_count = - EmulatedCamera2::reprocess_stream_set_buffer_count; - mReprocessStreamOps.set_crop = EmulatedCamera2::reprocess_stream_set_crop; - mReprocessStreamOps.set_timestamp = - EmulatedCamera2::reprocess_stream_set_timestamp; - mReprocessStreamOps.set_usage = EmulatedCamera2::reprocess_stream_set_usage; - mReprocessStreamOps.set_swap_interval = - EmulatedCamera2::reprocess_stream_set_swap_interval; - mReprocessStreamOps.get_min_undequeued_buffer_count = - EmulatedCamera2::reprocess_stream_get_min_undequeued_buffer_count; - mReprocessStreamOps.lock_buffer = - EmulatedCamera2::reprocess_stream_lock_buffer; - mReprocessStreamOps.parent = this; - - mVendorTagOps.get_camera_vendor_section_name = - EmulatedCamera2::get_camera_vendor_section_name; - mVendorTagOps.get_camera_vendor_tag_name = - EmulatedCamera2::get_camera_vendor_tag_name; - mVendorTagOps.get_camera_vendor_tag_type = - EmulatedCamera2::get_camera_vendor_tag_type; - mVendorTagOps.parent = this; -} - -/* Destructs EmulatedCamera2 instance. */ -EmulatedCamera2::~EmulatedCamera2() { -} - -/**************************************************************************** - * Abstract API - ***************************************************************************/ - -/**************************************************************************** - * Public API - ***************************************************************************/ - -status_t EmulatedCamera2::Initialize() { - return NO_ERROR; -} - -/**************************************************************************** - * Camera API implementation - ***************************************************************************/ - -status_t EmulatedCamera2::connectCamera(hw_device_t** device) { - return NO_ERROR; -} - -status_t EmulatedCamera2::closeCamera() { - return NO_ERROR; -} - -status_t EmulatedCamera2::getCameraInfo(struct camera_info* info) { - - return EmulatedBaseCamera::getCameraInfo(info); -} - -/**************************************************************************** - * Camera API implementation. - * These methods are called from the camera API callback routines. - ***************************************************************************/ - -/** Request input queue */ - -int EmulatedCamera2::setRequestQueueSrcOps( - camera2_metadata_queue_src_ops *request_queue_src_ops) { - return NO_ERROR; -} - -int EmulatedCamera2::requestQueueNotifyNotEmpty() { - return NO_ERROR; -} - -/** Reprocessing input queue */ - -int EmulatedCamera2::setReprocessQueueSrcOps( - camera2_metadata_queue_src_ops *reprocess_queue_src_ops) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessQueueNotifyNotEmpty() { - return NO_ERROR; -} - -/** Frame output queue */ - -int EmulatedCamera2::setFrameQueueDstOps(camera2_metadata_queue_dst_ops *frame_queue_dst_ops) { - return NO_ERROR; -} - -int EmulatedCamera2::frameQueueBufferCount() { - return NO_ERROR; -} -int EmulatedCamera2::frameQueueDequeue(camera_metadata_t **buffer) { - return NO_ERROR; -} -int EmulatedCamera2::frameQueueFree(camera_metadata_t *old_buffer) { - return NO_ERROR; -} - -/** Notifications to application */ -int EmulatedCamera2::setNotifyCallback(camera2_notify_callback notify_cb) { - return NO_ERROR; -} - -/** Count of requests in flight */ -int EmulatedCamera2::getInProgressCount() { - return NO_ERROR; -} - -/** Cancel all captures in flight */ -int EmulatedCamera2::flushCapturesInProgress() { - return NO_ERROR; -} - -/** Reprocessing input stream management */ -int EmulatedCamera2::reprocessStreamDequeueBuffer(buffer_handle_t** buffer, - int *stride) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamEnqueueBuffer(buffer_handle_t* buffer) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamCancelBuffer(buffer_handle_t* buffer) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamSetBufferCount(int count) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamSetCrop(int left, int top, int right, int bottom) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamSetTimestamp(int64_t timestamp) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamSetUsage(int usage) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamSetSwapInterval(int interval) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamGetMinUndequeuedBufferCount(int *count) { - return NO_ERROR; -} - -int EmulatedCamera2::reprocessStreamLockBuffer(buffer_handle_t *buffer) { - return NO_ERROR; -} - -/** Output stream creation and management */ - -int EmulatedCamera2::getStreamSlotCount() { - return NO_ERROR; -} - -int EmulatedCamera2::allocateStream(uint32_t stream_slot, - uint32_t width, - uint32_t height, - int format, - camera2_stream_ops_t *stream_ops) { - return NO_ERROR; -} - -int EmulatedCamera2::releaseStream(uint32_t stream_slot) { - return NO_ERROR; -} - -/** Custom tag query methods */ - -const char* EmulatedCamera2::getVendorSectionName(uint32_t tag) { - return NULL; -} - -const char* EmulatedCamera2::getVendorTagName(uint32_t tag) { - return NULL; -} - -int EmulatedCamera2::getVendorTagType(uint32_t tag) { - return -1; -} - -/** Shutdown and debug methods */ - -int EmulatedCamera2::release() { - return NO_ERROR; -} - -int EmulatedCamera2::dump(int fd) { - return NO_ERROR; -} - -/**************************************************************************** - * Private API. - ***************************************************************************/ - -/**************************************************************************** - * Camera API callbacks as defined by camera2_device_ops structure. See - * hardware/libhardware/include/hardware/camera2.h for information on each - * of these callbacks. Implemented in this class, these callbacks simply - * dispatch the call into an instance of EmulatedCamera2 class defined by the - * 'camera_device2' parameter. - ***************************************************************************/ - -int EmulatedCamera2::set_request_queue_src_ops(struct camera2_device *d, - camera2_metadata_queue_src_ops *queue_src_ops) { - EmulatedCamera2* ec = static_cast(d); - return ec->setRequestQueueSrcOps(queue_src_ops); -} - -int EmulatedCamera2::get_request_queue_dst_ops(struct camera2_device *d, - camera2_metadata_queue_dst_ops **queue_dst_ops) { - EmulatedCamera2* ec = static_cast(d); - *queue_dst_ops = static_cast( - &ec->mRequestQueueDstOps); - return NO_ERROR; -} - -int EmulatedCamera2::request_queue_notify_queue_not_empty( - camera2_metadata_queue_dst_ops *q) { - EmulatedCamera2* ec = static_cast(q)->parent; - return ec->requestQueueNotifyNotEmpty(); -} - -int EmulatedCamera2::set_reprocess_queue_src_ops(struct camera2_device *d, - camera2_metadata_queue_src_ops *queue_src_ops) { - EmulatedCamera2* ec = static_cast(d); - return ec->setReprocessQueueSrcOps(queue_src_ops); -} - -int EmulatedCamera2::get_reprocess_queue_dst_ops(struct camera2_device *d, - camera2_metadata_queue_dst_ops **queue_dst_ops) { - EmulatedCamera2* ec = static_cast(d); - *queue_dst_ops = static_cast( - &ec->mReprocessQueueDstOps); - return NO_ERROR; -} - -int EmulatedCamera2::reprocess_queue_notify_queue_not_empty( - camera2_metadata_queue_dst_ops *q) { - EmulatedCamera2* ec = static_cast(q)->parent; - return ec->reprocessQueueNotifyNotEmpty(); -} - -int EmulatedCamera2::set_frame_queue_dst_ops(struct camera2_device *d, - camera2_metadata_queue_dst_ops *queue_dst_ops) { - EmulatedCamera2* ec = static_cast(d); - return ec->setFrameQueueDstOps(queue_dst_ops); -} - -int EmulatedCamera2::get_frame_queue_src_ops(struct camera2_device *d, - camera2_metadata_queue_src_ops **queue_src_ops) { - EmulatedCamera2* ec = static_cast(d); - *queue_src_ops = static_cast( - &ec->mFrameQueueSrcOps); - return NO_ERROR; -} - -int EmulatedCamera2::frame_queue_buffer_count(camera2_metadata_queue_src_ops *q) { - EmulatedCamera2 *ec = static_cast(q)->parent; - return ec->frameQueueBufferCount(); -} - -int EmulatedCamera2::frame_queue_dequeue(camera2_metadata_queue_src_ops *q, - camera_metadata_t **buffer) { - EmulatedCamera2 *ec = static_cast(q)->parent; - return ec->frameQueueDequeue(buffer); -} - -int EmulatedCamera2::frame_queue_free(camera2_metadata_queue_src_ops *q, - camera_metadata_t *old_buffer) { - EmulatedCamera2 *ec = static_cast(q)->parent; - return ec->frameQueueFree(old_buffer); -} - -int EmulatedCamera2::set_notify_callback(struct camera2_device *d, - camera2_notify_callback notify_cb) { - EmulatedCamera2* ec = static_cast(d); - return ec->setNotifyCallback(notify_cb); -} - -int EmulatedCamera2::get_in_progress_count(struct camera2_device *d) { - EmulatedCamera2* ec = static_cast(d); - return ec->getInProgressCount(); -} - -int EmulatedCamera2::flush_captures_in_progress(struct camera2_device *d) { - EmulatedCamera2* ec = static_cast(d); - return ec->flushCapturesInProgress(); -} - -int EmulatedCamera2::get_reprocess_stream_ops(camera2_device_t *d, - camera2_stream_ops **stream) { - EmulatedCamera2* ec = static_cast(d); - *stream = static_cast(&ec->mReprocessStreamOps); - return NO_ERROR; -} - -int EmulatedCamera2::reprocess_stream_dequeue_buffer(camera2_stream_ops *s, - buffer_handle_t** buffer, int *stride) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamDequeueBuffer(buffer, stride); -} - -int EmulatedCamera2::reprocess_stream_enqueue_buffer(camera2_stream_ops *s, - buffer_handle_t* buffer) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamEnqueueBuffer(buffer); -} - -int EmulatedCamera2::reprocess_stream_cancel_buffer(camera2_stream_ops *s, - buffer_handle_t* buffer) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamCancelBuffer(buffer); -} - -int EmulatedCamera2::reprocess_stream_set_buffer_count(camera2_stream_ops *s, - int count) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamSetBufferCount(count); -} - -int EmulatedCamera2::reprocess_stream_set_crop(camera2_stream_ops *s, - int left, int top, int right, int bottom) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamSetCrop(left, top, right, bottom); -} - -int EmulatedCamera2::reprocess_stream_set_timestamp(camera2_stream_ops *s, - int64_t timestamp) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamSetTimestamp(timestamp); -} - -int EmulatedCamera2::reprocess_stream_set_usage(camera2_stream_ops *s, - int usage) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamSetUsage(usage); -} - -int EmulatedCamera2::reprocess_stream_set_swap_interval(camera2_stream_ops *s, - int interval) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamSetSwapInterval(interval); -} - -int EmulatedCamera2::reprocess_stream_get_min_undequeued_buffer_count( - const camera2_stream_ops *s, - int *count) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamGetMinUndequeuedBufferCount(count); -} - -int EmulatedCamera2::reprocess_stream_lock_buffer(camera2_stream_ops *s, - buffer_handle_t* buffer) { - EmulatedCamera2* ec = static_cast(s)->parent; - return ec->reprocessStreamLockBuffer(buffer); -} - -int EmulatedCamera2::get_stream_slot_count(struct camera2_device *d) { - EmulatedCamera2* ec = - static_cast(d); - return ec->getStreamSlotCount(); -} - -int EmulatedCamera2::allocate_stream(struct camera2_device *d, - uint32_t stream_slot, - uint32_t width, - uint32_t height, - int format, - camera2_stream_ops_t *stream_ops) { - EmulatedCamera2* ec = - static_cast(d); - return ec->allocateStream(stream_slot, width, height, format, stream_ops); -} - -int EmulatedCamera2::release_stream(struct camera2_device *d, - uint32_t stream_slot) { - EmulatedCamera2* ec = - static_cast(d); - return ec->releaseStream(stream_slot); -} - -void EmulatedCamera2::release(struct camera2_device *d) { - EmulatedCamera2* ec = - static_cast(d); - ec->release(); -} - -int EmulatedCamera2::dump(struct camera2_device *d, int fd) { - EmulatedCamera2* ec = - static_cast(d); - return ec->dump(fd); -} - -int EmulatedCamera2::close(struct hw_device_t* device) { - EmulatedCamera2* ec = - static_cast( - reinterpret_cast(device) ); - if (ec == NULL) { - ALOGE("%s: Unexpected NULL camera2 device", __FUNCTION__); - return -EINVAL; - } - return ec->closeCamera(); -} - -int EmulatedCamera2::get_metadata_vendor_tag_ops(struct camera2_device *d, - vendor_tag_query_ops_t **ops) { - EmulatedCamera2* ec = static_cast(d); - *ops = static_cast( - &ec->mVendorTagOps); - return NO_ERROR; -} - -const char* EmulatedCamera2::get_camera_vendor_section_name( - const vendor_tag_query_ops_t *v, - uint32_t tag) { - EmulatedCamera2* ec = static_cast(v)->parent; - return ec->getVendorSectionName(tag); -} - -const char* EmulatedCamera2::get_camera_vendor_tag_name( - const vendor_tag_query_ops_t *v, - uint32_t tag) { - EmulatedCamera2* ec = static_cast(v)->parent; - return ec->getVendorTagName(tag); -} - -int EmulatedCamera2::get_camera_vendor_tag_type( - const vendor_tag_query_ops_t *v, - uint32_t tag) { - EmulatedCamera2* ec = static_cast(v)->parent; - return ec->getVendorTagType(tag); -} - -camera2_device_ops_t EmulatedCamera2::sDeviceOps = { - EmulatedCamera2::set_request_queue_src_ops, - EmulatedCamera2::get_request_queue_dst_ops, - EmulatedCamera2::set_reprocess_queue_src_ops, - EmulatedCamera2::get_reprocess_queue_dst_ops, - EmulatedCamera2::set_frame_queue_dst_ops, - EmulatedCamera2::get_frame_queue_src_ops, - EmulatedCamera2::set_notify_callback, - EmulatedCamera2::get_in_progress_count, - EmulatedCamera2::flush_captures_in_progress, - EmulatedCamera2::get_reprocess_stream_ops, - EmulatedCamera2::get_stream_slot_count, - EmulatedCamera2::allocate_stream, - EmulatedCamera2::release_stream, - EmulatedCamera2::get_metadata_vendor_tag_ops, - EmulatedCamera2::release, - EmulatedCamera2::dump -}; - -}; /* namespace android */ diff --git a/tools/emulator/system/camera/EmulatedCamera2.h b/tools/emulator/system/camera/EmulatedCamera2.h deleted file mode 100644 index e8a8083f8..000000000 --- a/tools/emulator/system/camera/EmulatedCamera2.h +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef HW_EMULATOR_CAMERA_EMULATED_CAMERA2_H -#define HW_EMULATOR_CAMERA_EMULATED_CAMERA2_H - -/* - * Contains declaration of a class EmulatedCamera that encapsulates - * functionality common to all version 2.0 emulated camera devices. Instances - * of this class (for each emulated camera) are created during the construction - * of the EmulatedCameraFactory instance. This class serves as an entry point - * for all camera API calls that defined by camera2_device_ops_t API. - */ - -#include "hardware/camera2.h" -#include "system/camera_metadata.h" -#include "EmulatedBaseCamera.h" - -namespace android { - -/* Encapsulates functionality common to all version 2.0 emulated camera devices - * - * Note that EmulatedCameraFactory instantiates object of this class just once, - * when EmulatedCameraFactory instance gets constructed. Connection to / - * disconnection from the actual camera device is handled by calls to - * connectDevice(), and closeCamera() methods of this class that are invoked in - * response to hw_module_methods_t::open, and camera_device::close callbacks. - */ -class EmulatedCamera2 : public camera2_device, public EmulatedBaseCamera { -public: - /* Constructs EmulatedCamera2 instance. - * Param: - * cameraId - Zero based camera identifier, which is an index of the camera - * instance in camera factory's array. - * module - Emulated camera HAL module descriptor. - */ - EmulatedCamera2(int cameraId, - struct hw_module_t* module); - - /* Destructs EmulatedCamera2 instance. */ - virtual ~EmulatedCamera2(); - - /**************************************************************************** - * Abstract API - ***************************************************************************/ - -public: - - /**************************************************************************** - * Public API - ***************************************************************************/ - -public: - virtual status_t Initialize(); - - /**************************************************************************** - * Camera API implementation - ***************************************************************************/ - -public: - virtual status_t connectCamera(hw_device_t** device); - - virtual status_t closeCamera(); - - virtual status_t getCameraInfo(struct camera_info* info); - - /**************************************************************************** - * Camera API implementation. - * These methods are called from the camera API callback routines. - ***************************************************************************/ - -protected: - /** Request input queue */ - - int setRequestQueueSrcOps( - camera2_metadata_queue_src_ops *request_queue_src_ops); - - int requestQueueNotifyNotEmpty(); - - /** Reprocessing input queue */ - - int setReprocessQueueSrcOps( - camera2_metadata_queue_src_ops *reprocess_queue_src_ops); - - int reprocessQueueNotifyNotEmpty(); - - /** Frame output queue */ - - int setFrameQueueDstOps(camera2_metadata_queue_dst_ops *frame_queue_dst_ops); - - int frameQueueBufferCount(); - int frameQueueDequeue(camera_metadata_t **buffer); - int frameQueueFree(camera_metadata_t *old_buffer); - - /** Notifications to application */ - int setNotifyCallback(camera2_notify_callback notify_cb); - - /** Count of requests in flight */ - int getInProgressCount(); - - /** Cancel all captures in flight */ - int flushCapturesInProgress(); - - /** Reprocessing input stream management */ - int reprocessStreamDequeueBuffer(buffer_handle_t** buffer, - int *stride); - - int reprocessStreamEnqueueBuffer(buffer_handle_t* buffer); - - int reprocessStreamCancelBuffer(buffer_handle_t* buffer); - - int reprocessStreamSetBufferCount(int count); - - int reprocessStreamSetCrop(int left, int top, int right, int bottom); - - int reprocessStreamSetTimestamp(int64_t timestamp); - - int reprocessStreamSetUsage(int usage); - - int reprocessStreamSetSwapInterval(int interval); - - int reprocessStreamGetMinUndequeuedBufferCount(int *count); - - int reprocessStreamLockBuffer(buffer_handle_t *buffer); - - /** Output stream creation and management */ - - int getStreamSlotCount(); - - int allocateStream(uint32_t stream_slot, - uint32_t width, - uint32_t height, - int format, - camera2_stream_ops_t *stream_ops); - - int releaseStream(uint32_t stream_slot); - - /** Custom tag definitions */ - const char* getVendorSectionName(uint32_t tag); - const char* getVendorTagName(uint32_t tag); - int getVendorTagType(uint32_t tag); - - /** Shutdown and debug methods */ - - int release(); - - int dump(int fd); - - int close(); - - /**************************************************************************** - * Camera API callbacks as defined by camera2_device_ops structure. See - * hardware/libhardware/include/hardware/camera2.h for information on each - * of these callbacks. Implemented in this class, these callbacks simply - * dispatch the call into an instance of EmulatedCamera2 class defined in the - * 'camera_device2' parameter. - ***************************************************************************/ - -private: - /** Input request queue */ - static int set_request_queue_src_ops(camera2_device_t *, - camera2_metadata_queue_src_ops *queue_src_ops); - static int get_request_queue_dst_ops(camera2_device_t *, - camera2_metadata_queue_dst_ops **queue_dst_ops); - // for get_request_queue_dst_ops - static int request_queue_notify_queue_not_empty( - camera2_metadata_queue_dst_ops *); - - /** Input reprocess queue */ - static int set_reprocess_queue_src_ops(camera2_device_t *, - camera2_metadata_queue_src_ops *reprocess_queue_src_ops); - static int get_reprocess_queue_dst_ops(camera2_device_t *, - camera2_metadata_queue_dst_ops **queue_dst_ops); - // for reprocess_queue_dst_ops - static int reprocess_queue_notify_queue_not_empty( - camera2_metadata_queue_dst_ops *); - - /** Output frame queue */ - static int set_frame_queue_dst_ops(camera2_device_t *, - camera2_metadata_queue_dst_ops *queue_dst_ops); - static int get_frame_queue_src_ops(camera2_device_t *, - camera2_metadata_queue_src_ops **queue_src_ops); - // for get_frame_queue_src_ops - static int frame_queue_buffer_count(camera2_metadata_queue_src_ops *); - static int frame_queue_dequeue(camera2_metadata_queue_src_ops *, - camera_metadata_t **buffer); - static int frame_queue_free(camera2_metadata_queue_src_ops *, - camera_metadata_t *old_buffer); - - /** Notifications to application */ - static int set_notify_callback(camera2_device_t *, - camera2_notify_callback notify_cb); - - /** In-progress request management */ - static int get_in_progress_count(camera2_device_t *); - - static int flush_captures_in_progress(camera2_device_t *); - - /** Input reprocessing stream */ - static int get_reprocess_stream_ops(camera2_device_t *, - camera2_stream_ops_t **stream); - // for get_reprocess_stream_ops - static int reprocess_stream_dequeue_buffer(camera2_stream_ops *, - buffer_handle_t** buffer, int *stride); - static int reprocess_stream_enqueue_buffer(camera2_stream_ops *, - buffer_handle_t* buffer); - static int reprocess_stream_cancel_buffer(camera2_stream_ops *, - buffer_handle_t* buffer); - static int reprocess_stream_set_buffer_count(camera2_stream_ops *, - int count); - static int reprocess_stream_set_crop(camera2_stream_ops *, - int left, int top, int right, int bottom); - static int reprocess_stream_set_timestamp(camera2_stream_ops *, - int64_t timestamp); - static int reprocess_stream_set_usage(camera2_stream_ops *, - int usage); - static int reprocess_stream_set_swap_interval(camera2_stream_ops *, - int interval); - static int reprocess_stream_get_min_undequeued_buffer_count( - const camera2_stream_ops *, - int *count); - static int reprocess_stream_lock_buffer(camera2_stream_ops *, - buffer_handle_t* buffer); - - /** Output stream allocation and management */ - - static int get_stream_slot_count(camera2_device_t *); - - static int allocate_stream(camera2_device_t *, - uint32_t stream_slot, - uint32_t width, - uint32_t height, - int format, - camera2_stream_ops_t *stream_ops); - - static int release_stream(camera2_device_t *, - uint32_t stream_slot); - - static void release(camera2_device_t *); - - /** Vendor metadata registration */ - - static int get_metadata_vendor_tag_ops(camera2_device_t *, - vendor_tag_query_ops_t **ops); - // for get_metadata_vendor_tag_ops - static const char* get_camera_vendor_section_name( - const vendor_tag_query_ops_t *, - uint32_t tag); - static const char* get_camera_vendor_tag_name( - const vendor_tag_query_ops_t *, - uint32_t tag); - static int get_camera_vendor_tag_type( - const vendor_tag_query_ops_t *, - uint32_t tag); - - static int dump(camera2_device_t *, int fd); - - static int close(struct hw_device_t* device); - - /**************************************************************************** - * Data members - ***************************************************************************/ - - private: - static camera2_device_ops_t sDeviceOps; - - struct QueueDstOps : public camera2_metadata_queue_dst_ops { - EmulatedCamera2 *parent; - }; - - struct QueueSrcOps : public camera2_metadata_queue_src_ops { - EmulatedCamera2 *parent; - }; - - struct StreamOps : public camera2_stream_ops { - EmulatedCamera2 *parent; - }; - - struct TagOps : public vendor_tag_query_ops { - EmulatedCamera2 *parent; - }; - - QueueDstOps mRequestQueueDstOps; - QueueDstOps mReprocessQueueDstOps; - QueueSrcOps mFrameQueueSrcOps; - StreamOps mReprocessStreamOps; - TagOps mVendorTagOps; -}; - -}; /* namespace android */ - -#endif /* HW_EMULATOR_CAMERA_EMULATED_CAMERA2_H */ diff --git a/tools/emulator/system/camera/EmulatedCameraFactory.cpp b/tools/emulator/system/camera/EmulatedCameraFactory.cpp index 2960751da..fbb05b5bd 100755 --- a/tools/emulator/system/camera/EmulatedCameraFactory.cpp +++ b/tools/emulator/system/camera/EmulatedCameraFactory.cpp @@ -25,7 +25,6 @@ #include #include "EmulatedQemuCamera.h" #include "EmulatedFakeCamera.h" -#include "EmulatedFakeCamera2.h" #include "EmulatedCameraFactory.h" extern camera_module_t HAL_MODULE_INFO_SYM; @@ -67,27 +66,13 @@ EmulatedCameraFactory::EmulatedCameraFactory() __FUNCTION__, mEmulatedCameraNum); return; } - memset(mEmulatedCameras, 0, - (mEmulatedCameraNum + 1) * sizeof(EmulatedBaseCamera*)); + memset(mEmulatedCameras, 0, (mEmulatedCameraNum + 1) * sizeof(EmulatedCamera*)); } /* Create, and initialize the fake camera */ - switch (getBackCameraHalVersion()) { - case 1: - mEmulatedCameras[camera_id] = - new EmulatedFakeCamera(camera_id, false, &HAL_MODULE_INFO_SYM.common); - break; - case 2: - mEmulatedCameras[camera_id] = - new EmulatedFakeCamera2(camera_id, false, &HAL_MODULE_INFO_SYM.common); - break; - default: - ALOGE("%s: Unknown back camera hal version requested: %d", __FUNCTION__, - getBackCameraHalVersion()); - } + mEmulatedCameras[camera_id] = + new EmulatedFakeCamera(camera_id, true, &HAL_MODULE_INFO_SYM.common); if (mEmulatedCameras[camera_id] != NULL) { - ALOGV("%s: Back camera device version is %d", __FUNCTION__, - getBackCameraHalVersion()); if (mEmulatedCameras[camera_id]->Initialize() != NO_ERROR) { delete mEmulatedCameras[camera_id]; mEmulatedCameras--; @@ -113,27 +98,13 @@ EmulatedCameraFactory::EmulatedCameraFactory() __FUNCTION__, mEmulatedCameraNum); return; } - memset(mEmulatedCameras, 0, - mEmulatedCameraNum * sizeof(EmulatedBaseCamera*)); + memset(mEmulatedCameras, 0, mEmulatedCameraNum * sizeof(EmulatedCamera*)); } /* Create, and initialize the fake camera */ - switch (getFrontCameraHalVersion()) { - case 1: - mEmulatedCameras[camera_id] = - new EmulatedFakeCamera(camera_id, false, &HAL_MODULE_INFO_SYM.common); - break; - case 2: - mEmulatedCameras[camera_id] = - new EmulatedFakeCamera2(camera_id, false, &HAL_MODULE_INFO_SYM.common); - break; - default: - ALOGE("%s: Unknown front camera hal version requested: %d", __FUNCTION__, - getFrontCameraHalVersion()); - } + mEmulatedCameras[camera_id] = + new EmulatedFakeCamera(camera_id, false, &HAL_MODULE_INFO_SYM.common); if (mEmulatedCameras[camera_id] != NULL) { - ALOGV("%s: Front camera device version is %d", __FUNCTION__, - getFrontCameraHalVersion()); if (mEmulatedCameras[camera_id]->Initialize() != NO_ERROR) { delete mEmulatedCameras[camera_id]; mEmulatedCameras--; @@ -377,23 +348,6 @@ bool EmulatedCameraFactory::isBackFakeCameraEmulationOn() } } -int EmulatedCameraFactory::getBackCameraHalVersion() -{ - /* Defined by 'qemu.sf.back_camera_hal_version' boot property: if the - * property doesn't exist, it is assumed to be 1. */ - char prop[PROPERTY_VALUE_MAX]; - if (property_get("qemu.sf.back_camera_hal", prop, NULL) > 0) { - char *prop_end = prop; - int val = strtol(prop, &prop_end, 10); - if (*prop_end == '\0') { - return val; - } - // Badly formatted property, should just be a number - ALOGE("qemu.sf.back_camera_hal is not a number: %s", prop); - } - return 1; -} - bool EmulatedCameraFactory::isFrontFakeCameraEmulationOn() { /* Defined by 'qemu.sf.fake_camera' boot property: if property exist, and @@ -408,23 +362,6 @@ bool EmulatedCameraFactory::isFrontFakeCameraEmulationOn() } } -int EmulatedCameraFactory::getFrontCameraHalVersion() -{ - /* Defined by 'qemu.sf.front_camera_hal_version' boot property: if the - * property doesn't exist, it is assumed to be 1. */ - char prop[PROPERTY_VALUE_MAX]; - if (property_get("qemu.sf.front_camera_hal", prop, NULL) > 0) { - char *prop_end = prop; - int val = strtol(prop, &prop_end, 10); - if (*prop_end == '\0') { - return val; - } - // Badly formatted property, should just be a number - ALOGE("qemu.sf.front_camera_hal is not a number: %s", prop); - } - return 1; -} - /******************************************************************************** * Initializer for the static member structure. *******************************************************************************/ diff --git a/tools/emulator/system/camera/EmulatedCameraFactory.h b/tools/emulator/system/camera/EmulatedCameraFactory.h index 123e73550..7e3d4b262 100755 --- a/tools/emulator/system/camera/EmulatedCameraFactory.h +++ b/tools/emulator/system/camera/EmulatedCameraFactory.h @@ -134,15 +134,9 @@ private: /* Checks if fake camera emulation is on for the camera facing back. */ bool isBackFakeCameraEmulationOn(); - /* Gets camera device version number to use for back camera emulation */ - int getBackCameraHalVersion(); - /* Checks if fake camera emulation is on for the camera facing front. */ bool isFrontFakeCameraEmulationOn(); - /* Gets camera device version number to use for front camera emulation */ - int getFrontCameraHalVersion(); - /**************************************************************************** * Data members. ***************************************************************************/ diff --git a/tools/emulator/system/camera/EmulatedFakeCamera2.cpp b/tools/emulator/system/camera/EmulatedFakeCamera2.cpp deleted file mode 100644 index aa622446f..000000000 --- a/tools/emulator/system/camera/EmulatedFakeCamera2.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Contains implementation of a class EmulatedFakeCamera2 that encapsulates - * functionality of an advanced fake camera. - */ - -#define LOG_NDEBUG 0 -#define LOG_TAG "EmulatedCamera_FakeCamera2" -#include -#include -#include "EmulatedFakeCamera2.h" -#include "EmulatedCameraFactory.h" - -namespace android { - -EmulatedFakeCamera2::EmulatedFakeCamera2(int cameraId, - bool facingBack, - struct hw_module_t* module) - : EmulatedCamera2(cameraId,module), - mFacingBack(facingBack) -{ - ALOGD("Constructing emulated fake camera 2 facing %s", - facingBack ? "back" : "front"); -} - -EmulatedFakeCamera2::~EmulatedFakeCamera2() -{ -} - -/**************************************************************************** - * Public API overrides - ***************************************************************************/ - -status_t EmulatedFakeCamera2::Initialize() -{ - return NO_ERROR; -} - -}; /* namespace android */ diff --git a/tools/emulator/system/camera/EmulatedFakeCamera2.h b/tools/emulator/system/camera/EmulatedFakeCamera2.h deleted file mode 100644 index 89b12d3da..000000000 --- a/tools/emulator/system/camera/EmulatedFakeCamera2.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA2_H -#define HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA2_H - -/* - * Contains declaration of a class EmulatedFakeCamera2 that encapsulates - * functionality of a fake camera that implements version 2 of the camera device - * interface. - */ - -#include "EmulatedCamera2.h" - -namespace android { - -/* Encapsulates functionality of an advanced fake camera. This camera contains - * a simple simulation of a scene, sensor, and image processing pipeline. - */ -class EmulatedFakeCamera2 : public EmulatedCamera2 { -public: - /* Constructs EmulatedFakeCamera instance. */ - EmulatedFakeCamera2(int cameraId, bool facingBack, struct hw_module_t* module); - - /* Destructs EmulatedFakeCamera instance. */ - ~EmulatedFakeCamera2(); - - /**************************************************************************** - * EmulatedCamera2 virtual overrides. - ***************************************************************************/ - -public: - /* Initializes EmulatedFakeCamera2 instance. */ - status_t Initialize(); - - /**************************************************************************** - * EmulatedCamera abstract API implementation. - ***************************************************************************/ - -protected: - - /**************************************************************************** - * Data memebers. - ***************************************************************************/ - -protected: - /* Facing back (true) or front (false) switch. */ - bool mFacingBack; - -}; - -}; /* namespace android */ - -#endif /* HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA2_H */ diff --git a/tools/emulator/system/camera/EmulatedQemuCamera2.cpp b/tools/emulator/system/camera/EmulatedQemuCamera2.cpp deleted file mode 100644 index 2c94f0e31..000000000 --- a/tools/emulator/system/camera/EmulatedQemuCamera2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Contains implementation of a class EmulatedQemuCamera2 that encapsulates - * functionality of a host webcam with further processing to simulate the - * capabilities of a v2 camera device. - */ - -#define LOG_NDEBUG 0 -#define LOG_TAG "EmulatedCamera_QemuCamera2" -#include -#include -#include "EmulatedQemuCamera2.h" -#include "EmulatedCameraFactory.h" - -namespace android { - -EmulatedQemuCamera2::EmulatedQemuCamera2(int cameraId, - bool facingBack, - struct hw_module_t* module) - : EmulatedCamera2(cameraId,module), - mFacingBack(facingBack) -{ - ALOGD("Constructing emulated qemu camera 2 facing %s", - facingBack ? "back" : "front"); -} - -EmulatedQemuCamera2::~EmulatedQemuCamera2() -{ -} - -/**************************************************************************** - * Public API overrides - ***************************************************************************/ - -status_t EmulatedQemuCamera2::Initialize() -{ - return NO_ERROR; -} - -}; /* namespace android */ diff --git a/tools/emulator/system/camera/EmulatedQemuCamera2.h b/tools/emulator/system/camera/EmulatedQemuCamera2.h deleted file mode 100644 index 520ccce89..000000000 --- a/tools/emulator/system/camera/EmulatedQemuCamera2.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA2_H -#define HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA2_H - -/* - * Contains declaration of a class EmulatedQemuCamera2 that encapsulates - * functionality of a host webcam with added processing to implement version 2 - * of the camera device interface. - */ - -#include "EmulatedCamera2.h" - -namespace android { - -/* Encapsulates functionality of an advanced fake camera based on real host camera data. - */ -class EmulatedQemuCamera2 : public EmulatedCamera2 { -public: - /* Constructs EmulatedFakeCamera instance. */ - EmulatedQemuCamera2(int cameraId, bool facingBack, struct hw_module_t* module); - - /* Destructs EmulatedFakeCamera instance. */ - ~EmulatedQemuCamera2(); - - /**************************************************************************** - * EmulatedCamera2 virtual overrides. - ***************************************************************************/ - -public: - /* Initializes EmulatedQemuCamera2 instance. */ - status_t Initialize(); - - /**************************************************************************** - * EmulatedCamera abstract API implementation. - ***************************************************************************/ - -protected: - - /**************************************************************************** - * Data memebers. - ***************************************************************************/ - -protected: - /* Facing back (true) or front (false) switch. */ - bool mFacingBack; - -}; - -}; /* namespace android */ - -#endif /* HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA2_H */