summaryrefslogtreecommitdiffstats
path: root/camera/V4LCameraAdapter
Commit message (Collapse)AuthorAgeFilesLines
* CameraHAL: Fixed Image capture when using V4L cameraAndriy Chepurnyy2015-02-031-22/+77
| | | | | | | | | | | - Added correct stop of the preview thread when doing image capture - Added WA that propose ability to skip some frames count if case of use buggy camera driver that do distortions of first frames after stream on Change-Id: I49b7708f4596499142bface731fbccd43cac6ec7 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* CameraHal: Correctly set preview framerateAndriy Chepurnyy2015-02-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Camera API supports 2 mechanisms that used to set FPS : setPreviewFpsRange and setPreviewFrameRate HAL should correctly handle situation when only one of that call were made. CameraHAL should not modify fps range or fps that was set by client, but it should inform camera adpter somehow what exactly was modified and what value should be used for configuration of preview port. So therefore new paramter KEY_PREVIEW_FRAME_RATE_RANGE was added. Now it will be used by camera adapters for preview configuration and camera hal will be capable for value of this parameter. Possible situations: 1) User had changed FPS range and HAL will use it for fps port value (don't care about changed or not const FPS). 2) User had changed single FPS and had not changed FPS range - will be applyed single FPS value to port. 3) Both FPS range and const FPS are unchanged - FPS range will be applied to port. This patch also fixed several CTS tests from android.media.cts.MediaRecorderTest : testRecorderCamera, testRecorderVideo, testSetMaxFileSize. Change-Id: I31badcdc62a1a33474cb8e0e893f50378e9f6114 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* CameraHal: Correctly set H264 stream mode using K3.4 and laterAndriy Chepurnyy2015-02-031-2/+1
| | | | | | | | Since in Kernel 3.4 now defined V4L2_PIX_FMT_H264 - we will use it to enable H264 stream mode in V4LCameraAdapter. Change-Id: I963131f5d740d60815bdca99e5a8b0cdc17ab161 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* V4L Camera: HACK add fake zoom supportAndriy Chepurnyy2012-11-261-0/+6
| | | | | Change-Id: I705149d5ce274671385e9f465c0fd3b556d4c7ee Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* CameraHAL: Correctly set frame length for preview data callbacksAndriy Chepurnyy2012-11-262-4/+12
| | | | | | | | This patch fix preview data callbacks for V4LCameraAdapter, when used HW MJPEG Decoder. Change-Id: I8994549f4706a2a704fc5e1eb30c4c3afd987d3f Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* CameraHal: Add support of HW MJPEG decoder in CameraHALAndriy Chepurnyy2012-11-261-133/+341
| | | | | | | | | | | | | | | | | Tis patch adds Ducati decoder support on CameraHAL level. - Added FrameDecoder - that used as base class for hw/sw decoders. - SwFrameDecoder - class that capable for sw MJPEG decoding - OmxFrameDecoder - class that capable for hardware MJPEG/H264 decoding (using Ducati decoder) - FrameDecoder is now used generic interface for decoder in V4l camera adapter - Added ability to change video stream type for V4L camera. Change-Id: Ia632cb0e202752b05a6994acc90c7f10ee851a34 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* CameraHAL: Synchronize public interface of V4LCameraAdapter.Andriy Chepurnyy2012-11-261-3/+24
| | | | | | Synchronize public interface of V4LCameraAdapter. Change-Id: I5670151a69a58cd7db4e2eda401b3aac7bef18cb
* CameraHAL : Added fps handling for V4L camerasAndriy Chepurnyy2012-11-262-31/+45
| | | | | | | | - Added FRAMERATE_RANGE_SUPPORTED parameter fill. Also added dynamic fps change handling. Change-Id: I8752987dd51301d1022081f7bd633cd425b866e4 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* Revert "Revert "CameraHal: V4LCameraAdapter: Add support for MJPEG""Andriy Chepurnyy2012-11-262-44/+97
| | | | This reverts commit 6520993a1f2c3f4c2c73f79a6949c4ef565cf74c.
* USBCAMERA: Enable fps print.Saravanan Solaiyappan2012-11-261-1/+1
| | | | | | | This patch enables the FPS information print. Change-Id: I9f679dba10bdb5100c79436929f1da474233f185 Signed-off-by: Saravanan Solaiyappan <saravanan.s@ti.com>
* Revert "CameraHal: V4LCameraAdapter: Add support for MJPEG"Saravanan Solaiyappan2012-11-262-97/+44
| | | | | | | This reverts commit c02cd8fb7a0b8c9f8bb1f065f5cb086c802a7088. Change-Id: I70433150f7f5384a28ba9c05ab2dec80d7398da5 Signed-off-by: Saravanan Solaiyappan <saravanan.s@ti.com>
* CameraHal: Init capture reference count logic to derived adaptersTyler Luu2012-11-261-0/+11
| | | | | | | | | | | | | - Moving initializing for capture reference count to derived adapters since useBuffers call for capture is going to called queuing shots as well. - This patch needs to include V4L adapter before merging on mainline. Change-Id: Ifc4986a68173234ec636ef943b62009f7df1e041 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
* CameraHal: V4LCameraAdapter: Add support for MJPEGAnu Sundararajan2012-11-262-44/+97
| | | | | | | | | | | | USBCameras support higher resolutions(above VGA) in MJPEG format only. V4LCameraAdapter has been modified to use MJPEG as the default pixel format. The incoming jpeg frames are decoded(into NV12) using libjpeg and then sent for rendering. Change-Id: Ie7f62abd7a7fad3bc1f01e048fe8f17f67890301 Signed-off-by: Saravanan Solaiyappan <saravanan.s@ti.com> Signed-off-by: Andriy Chepurnyy <x0155536@ti.com> Signed-off-by: Anu Sundararajan <sanuradha@ti.com>
* V4LCameraAdapter: switch to non-blocking V4L APINikita Borodikhin2012-11-261-2/+15
| | | | | | | | | It is impossible to use some V4L devices (e.g. uvc) using blocking API. In order to avoid deadlocks while recording video we have to use non-blocking dequeue in a loop. Change-Id: I7d41170c188b412a0a06553ab64ae53eb56ba3af Signed-off-by: Nikita Borodikhin <nikita.borodikhin@ti.com>
* V4LCameraAdapter: sync interface with BaseCameraAdapterNikita Borodikhin2012-11-261-10/+6
| | | | | | | | | | This fixes a problem introduced in commit e9bf3ac2. Instead of specialized method getPictureBufferSize base classes stub is being always. That led to allocating zero-length snapshot data buffer and failure to get snapshot. Change-Id: I36585d7801a788c19be753e2fdbe0f2d056509d9 Signed-off-by: Nikita Borodikhin <nikita.borodikhin@ti.com>
* CameraHAL: Moved Camera HAL sources out of namespace androidDaniel Levin2012-07-252-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | C++ namespace android:: is reserved for base Google Android types to avoid current and further conflicts with 3rd party code. Having TI Camera HAL under namespace android:: violates this rule, adding potential conflicts. This patch moves libtiutils and Camera HAL code out of namespace android:: to custom local namespaces. Putting camera code under namespace android and 'using namespace android' is not allowed anymore. All C++ Android types should have android:: namespace prefix explicitly. Next namespaces added: - Ti:: - placeholder for all custom code - Ti::Utils:: - common utility helper library - Ti::Camera:: - Camera HAL code Also added Ti::status_t as typedef for android::status_t. Change-Id: Ie8cc00d6d6bd4e8a8ddf089421010c370ee40ebe Signed-off-by: Daniel Levin <dendy@ti.com>
* CameraHAL: Portability changesDaniel Levin2012-07-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 1. Moved common definitions to Global.h header: - CAMHAL_LOG* macros (also added CAMHAL_LOGI and CAMHAL_LOGW) - CAMHAL_ASSERT* macros - CAMHAL_UNUSED macro 2. Renamed NV12_resize.c to NV12_resize.cpp 3. Added common math functions into UtilsGlobal.h header: - min(a, b) - returns min of a and b - max(a, b) - returns max of a and b - bound(min, a, max) - return nearest value to a in scope [min..max] - floor(a) - round a to lower integer - round(a) - round a to nearest integer 4. Portability: - Fixed LOG* macros to use appropriate CAMHAL_LOG* wrappers. - Reworked the Android.mk to include proper directories depending on current pastry. Change-Id: I6fbd1ee02d8af2195b91cc357ddcf554fe77f495 Signed-off-by: Daniel Levin <dendy@ti.com>
* CameraHAL: Use capture data from CameraAdapterVladimir Petrov2012-07-251-3/+12
| | | | | | | | | | | 1. Change getPictureBufferSize call to give back more data about the capture buffer that we need to allocate. 2. Use the data from getPictureBufferSize to allocate the buffer. Change-Id: I23bac42eedb9b6852eca24c207c474f3dbecced1 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
* cameraHAL: V4LCameraAdapter: few bug fixes.Saravanan Solaiyappan2012-07-251-1/+6
| | | | | | | | | This patch adds few more properties in to capabilities. Eventhough these properties are unsupported by USB camera, it fixes some issues with the usb camera usecases. Change-Id: I01753e5c781472bd45f1f2669db3dc46c4e291ee Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* CameraHAL: V4LCameraAdapter: Optimization in color conversion.Saravanan Solaiyappan2012-07-251-31/+98
| | | | | | | | | | | | This patch optimize the color convertion by copying the NV12 converted frame directly in preview buffer (Tiler memory). This avoids one additional memory copy in the existing implementation. This patch also include the PPM calculation for the color conversion per frame (Average of 30 frames) and placed under PPM_PER_FRAME_CONVERSION macro. Change-Id: I5332050047c2b611d1093322c0a18f1b4e057d17 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* CameraHAL: V4LCameraAdapter: catch v4lInitMmap errorSergio Aguirre2012-07-251-1/+5
| | | | | Change-Id: I6c7d57f816a03336157b6e3b4ea5f246ec1671dd Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
* CameraHAL: V4LCameraAdapter: Catch getCaps error properlySergio Aguirre2012-07-251-1/+6
| | | | | Change-Id: Iada3006b091a297505903063319077f0f5b9662e Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
* CameraHAL: V4LCameraAdapter: Take queueable buffer count properlySergio Aguirre2012-07-251-3/+6
| | | | | Change-Id: Ibae272f0a8580688e84f25ea7f87bc8f8c704726 Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
* CameraHAL: V4LCameraAdapter: Enable Video record.Saravanan Solaiyappan2012-07-252-69/+70
| | | | | | | | | | | [Comment] This patch enables the basic video preview and record with USB camera. [DR] OMAPS00267530 Change-Id: I1f0e7eebe91515384ba02b3de1ed51cbb9bed818 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* V4LCameraAdapter: Neon conversion from yuv422i to NV12.Saravanan Solaiyappan2012-07-251-19/+49
| | | | | | | | This patch converts the prview frames from yuv422i to NV12 using neon instructions. Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Change-Id: Id30e27d860057063a12aa96187f6da297903660a
* CameraHal: V4LCapabilities: Fixes for OMAPCamera to start previewDimitar Borisov2012-07-251-5/+24
| | | | | | | | - Added some of the not supported modes in capabilities. - Some minor issues fixes. Change-Id: I44fa53ec2bbb35ea688006b940d660989aeb29a6 Signed-off-by: Dimitar Borisov <x0152684@ti.com>
* CameraHAL: V4LCameraAdapter: Enable Image capture.Saravanan Solaiyappan2012-07-252-32/+376
| | | | | | | | | | | | [Comment] This patch enables the basic Image capture with USB camera. [DR] OMAPS00267530 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Change-Id: Ib8119a4514d3eb102cf4ee4d147c790ccc1bdd76
* CameraHAL: V4LCameraAdapter: Enable 30fps preview alwaysSaravanan Solaiyappan2012-07-252-166/+309
| | | | | | | | | | | | | | [Comment] This patch contains the following changes: 1. Finds the best preview resolution which supports 30fps and populates that resolution through capabilities. 2. Enables printing the FPS value when the below property is set. setprop debug.camera.showfps 1 3. Adds some wrapper routines for v4l ioctl. Change-Id: I7971ba42f83087bd85bd955374e568735d735426 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* CameraHal: Add CameraBuffer (major refactoring)Tyler Luu2012-07-251-10/+9
| | | | | | | | | | | | | | | | | | | | | | Add a CameraBuffer type, which contains information corresponding to an internal CameraHal buffer - how it was allocated, relevant handles, and any internal data to be associated with the buffer, such as metadata, OMX indexes, current state. The simplest possible refactoring was done to convert the void * used for exchanging buffer information into the 'opaque' field in the CameraBuffer structure. A few hacks were added to minimize the size of the refactoring, these will be cleaned up in upcoming commits. Adding a private structure for buffers eliminates the need for a lot of KeyedVectors that are currently in use. Most of these were left in place, and will be refactored into the CameraBuffer structure later. The pAppPrivate field of OMX_BUFFERHEADERTYPE was used to eliminate another KeyedVector. Change-Id: I147ad971e4cdc03b2c445b5fba81d0ba83bc5fb3 Signed-off-by: David Schleef <ds@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com> Signed-off-by: Tyler Luu <tluu@ti.com>
* CameraHAL: V4LCameraAdapter: adding capabilitiesSaravanan Solaiyappan2012-07-252-37/+334
| | | | | | | | | | | | | [Comment] Detects the v4l video devices exists or not while camera service querying capabilities at bootup. Also adds capabilities scanning of v4l camera devices. [DR] - Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Change-Id: I861ec5d99d3b85c31cad6d89aecfb27114e95894
* CameraHAL: V4LCameraAdapter co-exists with OMXCameraAdapterSaravanan Solaiyappan2012-07-251-15/+43
| | | | | | | | | | | | | | | | | | | | | [Comment] Build flag is enabled to build both V4L and OMX adapters. Individual adapters can also be choosen for build by setting the appropriate build flag OMAP4_CAMERA_HAL_USES. The camera index will be in the following order while querying the capabilities during bootup: 0 - Primary camera 1 - Secondary camera 2 - USB camera If only USBcamera is connected, the camera index will be 0. [DR] - Change-Id: Ie7165f97b860c13aaa3ad71c8cc12d34baba4cbf Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* CameraHAL: V4LCameraAdapter: Enables USB camera basic preview.Saravanan Solaiyappan2012-07-251-52/+151
| | | | | | | | | | | | | | [Comment] This pach enables the usb camera preview via V4L camera adapter in ICS. The following change needs to be done in camera/Android.mk file to build the V4L camera adapter. OMAP4_CAMERA_HAL_USES:= USB [DR] - Change-Id: I314649e0bbe52978a28296e1f9da20f176171d7d Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* CameraHAL: Improved debug loggingDaniel Levin2012-07-251-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0. Renamed DEBUG_LOG macro to CAMERAHAL_DEBUG and moved it from CameraHal.h into Android.mk. To enable debug logging next variable should be put into $AFS/buildspec.mk: TI_CAMERAHAL_DEBUG_ENABLED := 1 To enable verbose debug logging next variable should be put into $AFS/buildspec.mk: TI_CAMERAHAL_VERBOSE_DEBUG_ENABLED := 1 1. CAMHAL_LOG*A and CAMHAL_LOG*B macros have been united into single CAMHAL_LOG* macro that accepts both variants. 2. Rewritten LOG_FUNCTION_NAME/LOG_FUNCTION_NAME_EXIT macros. Now they do operate on internal FunctionLogger class instance that does function enter/exit logging in constructor/destructor. If LOG_FUNCTION_NAME is used then LOG_FUNCTION_NAME_EXIT can be skipped in source code, in this case destructor will correctly print function exit entry. 3. Added optional printing message timestamps. To enable timestamp printing next variable should be put into $AFS/buildspec.mk: TI_CAMERAHAL_DEBUG_TIMESTAMPS := 1 4. Moved LOG_TAG macro definition from all CameraHAL sources to Android.mk. 5. Added printing message thread ids. 6. Added printing per thread call stack indentation to visualize call hierarchy. 7. Added CAMHAL_ASSERT(condition) and CAMHAL_ASSERT_X(condition,description) macros to assert conditions at runtime and abort process on failure. 8. Added CAMHAL_UNUSED(x) to mark unused variables which are not mistakes. 9. Added next variables to enable debug logging for MessageQueue, that should be put into $AFS/buildspec.mk: TI_UTILS_MESSAGE_QUEUE_DEBUG_ENABLED := 1 TI_UTILS_MESSAGE_QUEUE_DEBUG_FUNCTION_NAMES := 1 Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I8ebea607199de621860ada6dfcab9164ba85674a
* CameraHal: Allow only certain number of instancesTyler Luu2011-10-071-14/+10
| | | | | | | | | | | | | | | | | 1) Protect against simultaneous access to camera_device_open 2) Set a value of MAX_SIMUL_CAMERAS_SUPPORTED to dictate number of simultaneous cameras that can be open at once. Set to 1 for now in this patch. Return error if more is requested. 3) Change OMXCameraAdapter to allocate new instance for each factory create call. 4) Add lock to capabalities factory function in OMXCameraAdapter to protected against multiple OMXCamera GetHandles... b/5401791 b/5404200 b/5405235 Change-Id: I179d493f8070d228877ebfac637047978afc7d55 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com>
* initial commitIliyan Malchev2011-08-081-0/+615
Change-Id: I8f7a7eeece0e516efa486b77e9d97805c0e65d3e Signed-off-by: Iliyan Malchev <malchev@google.com>