summaryrefslogtreecommitdiffstats
path: root/camera/AppCallbackNotifier.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Camera: Implement build without neonDaniel Levin2015-02-031-5/+27
| | | | | | | | | | | | - Added macro ARCH_ARM_HAVE_NEON in armv7-a-neon arch - Implemented software conversion NV12 -> NV21 and NV12 -> YV12 - Made non aligned frame conversion YUYV -> NV12 and UYVY -> NV12 to be generic in neonless build Change-Id: I118dcb394999f937e83fd07882a090034cb1de89 Signed-off-by: Daniel Levin <dendy@ti.com>
* CameraHAL: Make graphic buffer locking conditionalAndriy Chepurnyy2012-11-261-3/+52
| | | | | | | | | | This mechanism is added to support components where locking mechanism is handled on DOMX layer. As example is using ducati decoder with buffers allocated via ANativeWindowDisplayAdapter. Change-Id: I33ae0f0766473a6d8e85699c31dcad9345b4df70 Signed-off-by: Andriy Chepurnyy <x0155536@ti.com>
* camera: Copy and crop only raw framesEmilian Peev2012-11-261-1/+2
| | | | | | | | | | | - AppCallbackNotifier was trying to copy and crop compressed image frames during reprocessing. This might lead to arithmetic faults when the frame fields are not fully initialized as in the case of compressed images. Change-Id: Ic7d6eb71aee546d7f5619075a6070a861ebcacb0 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* camera: Common functions for size calculation and image formatTyler Luu2012-11-261-49/+6
| | | | | | | | | | | | Use common functions for calculating buffer size and getting image format constant since they are used in several places in CameraHal. The common functions are implemented as static functions in the CameraHal class. Change-Id: I242435ebcdebea0bc9a7452a5dc38e3f96f5be11 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com> Signed-off-by: Daniel Levin <dendy@ti.com>
* camera: Add function to send cropped nv12 callbackTyler Luu2012-11-261-6/+56
| | | | | | | | | | Add functionality in AppCallbackNotifier to send cropped NV12 raw frame callback. We hit this when doing NV12 capture or reprocess with LDC/NSF. Change-Id: I72d0322a267fd2aecfeb7daebb312e571d955a52 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
* Merge "CameraHal: Implementation for CAF status callbacks" into jb-migrationDaniel Levin2012-07-251-13/+31
|\ | | | | | | | | Change-Id: Ib1a12a16fd0fb2457c2ff9793b3628dbae31c992 Signed-off-by: Daniel Levin <dendy@ti.com>
| * CameraHal: Implementation for CAF status callbacksTyler Luu2012-02-011-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Remove internal handling of CAMERA_MSG_FOCUS. Before we were enabling CAMERA_MSG_FOCUS only when application calls autoFocus(). No longer needed since the CAMERA_MSG_FOCUS can come just during preview now. 2. Add handling of unregistered focus callbacks. Since OMXCamera will send callbacks even when we are not waiting for one, add some handling. Signed-off-by: Tyler Luu <tluu@ti.com> Change-Id: I457e67b33b2561dd0b1ce3863ce807a8c27f79f6 Conflicts: camera/OMXCameraAdapter/OMXFocus.cpp
| * CameraHal: Fix timing issue with focus msg disableTyler Luu2012-02-011-2/+2
| | | | | | | | | | | | | | | | | | | | Disable focus message before sending notification because client can immediately call focus again after receiving notification and before we get a chance to disable the message. This will result in the focus notificiation for the subsequent focus call to be missed. Change-Id: I1367cdcebe490c32251e992b87ada3edf6b28036 Signed-off-by: Tyler Luu <tluu@ti.com>
| * CameraHAL: Prevent deadlock in AppCallbackNotifier::stop()Tyler Luu2011-12-021-22/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a small chance that a stopPreview call can come from CameraService right around the same time Encoder thread will send a data callback for the video snapshot. Currently, we are waiting for the encoder thread to join in AppCallbackNofier:: stop(), so we could deadlock if CameraService locks in lockIfMessageWanted for the video snapshot. Instead of waiting for Encoder thread to join, we can make cancel() block until Encoder thread is done canceling the encode. After cancel() returns, we can free up the cookies that we passed to it, so Encoder thread does not need to call the callback function to AppCallbackNotifier. Change-Id: Ib453d49d91077925b143c812d43a7d1b782c181c Signed-off-by: Iliyan Malchev <malchev@google.com>
| * CameraHAL: Exit Appcallback thread immediately.Akwasi Boateng2011-12-011-1/+2
| | | | | | | | | | | | | | | | | | Allow appcallback thread to exit immediately when exit command is processed. Signed-off-by: Akwasi Boateng <akwasi.boateng@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com> Change-Id: I83db309cf973e1ce9494c855430897a0c41704d8
| * CameraHAL: Avoids a possible deadlock in AppCallbackNotifierAkwasi Boateng2011-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 'disableMsgType()' was querying CameraHal for enabled message types through 'msgTypeEnabled()'. This method will lock 'mLock' in CameraHal. On the other hand 'takePicture()' inside CameraHal will also lock 'mLock' before execution. If preview callbacks are enabled before image capture, then 'takePicture()' will call AppCallbackNotifier's 'disableMsgType()', which will try to lock 'mLock' again. Solution, a query to CameraHal for enabled message types is not needed inside 'disableMsgType()' because the passed argument 'msgType' already contains all the needed information. Signed-off-by: Emilian Peev <epeev@mm-sol.com> Signed-off-by: Akwasi Boateng <akwasi.boateng@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com> Change-Id: Ia4b7634ce21b8243f08d9124823c77e6bde84a8d
* | Fixed some OMAP_ENHANCEMENT macrosDaniel Levin2012-07-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to build Camera HAL with OMAP_ENHANCEMENT, but without burst capture and CPCAM, appropriate code blocks should be wrapped with OMAP_ENHANCEMENT_BURST_CAPTURE and OMAP_ENHANCEMENT_CPCAM. Change-Id: Id3291b1443ea7ef8ed2a1f482a1fdb6cf2be46de Signed-off-by: Daniel Levin <dendy@ti.com> CameraHAL: Added OMAP_ENHANCEMENT_BURST_CAPTURE Change-Id: I7f220a92484030d99738b4cdc123257e5511c5f8 Signed-off-by: Daniel Levin <dendy@ti.com>
* | CameraHAL: Moved Camera HAL sources out of namespace androidDaniel Levin2012-07-251-77/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Extends pixel format YUV422i-uyvy for video snapshot.Saravanan Solaiyappan2012-07-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | [Comment] Ducati camera always gives CbYCrY(uyvy) pixel format for YUV422I. But CameraParameters class only supports YUV422-yuyv (YCbYCr). This patch adds the YUV422-uyvy pixel format and updates the jpeg encoder for video snapshot capture. This also adds the support for jpeg encoding from YUV422i-yuyv pixel format. This will be used in V4L/USB camera capture. Change-Id: I564bd00d1a12efba1490190926efa30441298181 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
* | camera: add exp/gain preview metadataTyler Luu2012-07-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add ability to send current preview exposure time and analog gain to application. Preview metadata implementation is extended to support photometry data along with face detection data. Depends on Change-Id Ia4fcfbeb: camera: Add Exp./Gain preview metadata Change-Id: I3a4c7548d0e98f3a8c29e305fd746f0241cb45e4 Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
* | CameraHal: Handles preview and snapshot buffers separatelyEmilian Peev2012-07-251-2/+15
| | | | | | | | | | | | | | | | | | | | - Hal should differentiate between preview and snapshot frames. The camera client can expect postview callbacks even if the preview frame notifications are internally disabled during image capture. Change-Id: I5ab7ecf51860989bf983e4dc116f6816ee57e8f7 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHal: Add support for YUY2 preview callbacksEmilian Peev2012-07-251-0/+43
| | | | | | | | | | | | | | | | | | | | | | - The currently used Gralloc buffers for preview are limited to only NV12 pixelformat. In order to support this type of preview callbacks, CameraHal will internally convert from NV12 to YUY2. Change-Id: I879e32d4b2142bdd0a1f89fe7c5496d250039b73 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHAL: Aligns UV planes during YV12 preview callbacksEmilian Peev2012-07-251-5/+32
| | | | | | | | | | | | | | | | - UV planes stride should be multiple of 16. The buffer size should also be updated accordingly. Change-Id: If436801fbb2750523a3207878f611c8094667367 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHal: Fix for YV12 camera callbacksEmilian Peev2012-07-251-2/+3
| | | | | | | | | | | | | | | | - 'mPreviewPixelFormat' was being set incorrectly for YV12 case. Change-Id: I80acc5cd721d317fac9525bdb734fe2e70df85bf Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHAL: Fixed video snapshot crashDmytro Vasylenko2012-07-251-1/+1
| | | | | | | | | | | | | | Crash was accured when passing invalid pointer to gEncoderQueue. Change-Id: I9ca3b2b6282724c226a4f3ba922f93f5a60815f9 Signed-off-by: Dmytro Vasylenko <x0178436@ti.com>
* | camera: add reprocess() functionalityTyler Luu2012-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation for reprocess state change sequence should look like this: preview->loaded_reprocess->loaded_reprocess_capture-> reprocess Reprocess uses takePicture call to send output buffers to camera adapter and to signal start reprocess. Change-Id: I98a7ccd32778760603e9c367ab3cd4ef30fab8dc Signed-off-by: Tyler Luu <tluu@ti.com>
* | CameraHal: Add function to get token to send to rpmsgTyler Luu2012-07-251-1/+1
| | | | | | | | | | | | | | | | | | Adding helper function to get token (handle, fd, etc.) to send to rpmsg based on buffer type Change-Id: Idcd7b7b290e94f64ab39ee855dc2820c3da5b560 Signed-off-by: David Schleef <ds@ti.com> Signed-off-by: Tyler Luu <tluu@ti.com>
* | CameraHal: Add CameraBuffer (major refactoring)Tyler Luu2012-07-251-40/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Save size for preview callbacksDaniel Levin2012-07-251-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In case application is changing preview size in the middle of preview running, this size will be saved to port parameters and applied at next preview restart. AppCallbackNotifier should not use this port size for preview frame conversion. It should take preview size used at preview start stage, when callback memory was creating. Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I1943c1bd37a31ccfc6a536ea7b37039bec15f066
* | CameraHal: Reduces camera related log printsEmilian Peev2012-07-251-1/+1
| | | | | | | | | | | | | | | | Changes certain prints from LOGE to LOGD to avoid log spam from CameraHAL. Change-Id: I7a2f222fe540aa9277bfef795b155176c331be1f Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHal: Implementation for CAF status callbacksPavel Nedev2012-07-251-12/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Author: Tyler Luu <tluu@ti.com> 1. Remove internal handling of CAMERA_MSG_FOCUS. Before we were enabling CAMERA_MSG_FOCUS only when application calls autoFocus(). No longer needed since the CAMERA_MSG_FOCUS can come just during preview now. 2. Add handling of unregistered focus callbacks. Since OMXCamera will send callbacks even when we are not waiting for one, add some handling. Change-Id: I70842a0b8f004873d728ff178ae3a4db12060a7c Signed-off-by: Tyler Luu <tluu@ti.com>
* | CameraHAL: Fixed sending video frame in non metadata modeDaniel Levin2012-07-251-2/+2
| | | | | | | | | | | | | | | | | | Fixed attempt to reassign camera_memory_t data pointer instead of copy buffer handle value into it. Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: Idd3f0d2eda2ba1814261891643b395979c5b2f76
* | CameraHAL: Fixed unlocking recording mutexDaniel Levin2012-07-251-3/+1
| | | | | | | | | | | | | | | | | | Ensure that mRecordingLock will be unlocked while handling VIDEO_FRAME_SYNC frame. Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I5d44c1f0fc654889145ecc93545779de1c2d6d78
* | CameraHAL: Fixed launching Jpeg EncoderDaniel Levin2012-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | Encoder instance should be added to the gEncoderQueue before running the thread. Otherwise Encoder callback has chance to be triggered without gEncoderQueue hash map populated. Signed-off-by: Daniel Levin <dendy@ti.com> Signed-off-by: Vicky Martinez-DeFrain <a0869710@ti.com> Change-Id: Iabfef2ada3c4bd7e4e26405c75ce0d4a171b9d30
* | CameraHAL: Fixed accessing deallocated preview memoryDaniel Levin2012-07-251-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case stop preview is called while current preview callback is active deallocated camera_memory_t handle will be passed to CameraService's preview callback. This patch adds scope to guard preview data callback with mLock mutex, blocking the stop preview body. This is a valid case only for preview frame types by CameraService design, because it contains deadlock protection between stop preview and data callback: 1. In CameraService::Client::stopPreview() there is an explicit call disableMsgType(CAMERA_MSG_PREVIEW_FRAME) before stopping preview in Camera HAL. 2. In CameraService::Client::dataCallback(), dataCallbackTimestamp() and notifyCallback() there is an explicit check for message type: if (!client->lockIfMessageWanted(msgType)) return; All other frame types are still not deadlock-protected and Camera HAL must release internal lock before sending them to CameraService. Signed-off-by: Daniel Levin <dendy@ti.com> Signed-off-by: Vicky Martinez-DeFrain <a0869710@ti.com> Change-Id: I76658b88a50261efca1eec1ec95bc793457acf13
* | CameraHAL: Fixed UV pointer calculation for video framesDaniel Levin2012-07-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | In case video size does not match preview size separate Gralloc buffers will be allocated using ION. NV12 preview frames will be explicitly resized using 3rd party library. This patch fixes calculation of UV pointer used for writing resized NV12 frame into. Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I34336afa4c4c2c8af025d7eead73773c27332041
* | CameraHal: Fixes a possible race cond. and subsequent freezeEmilian Peev2012-07-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The notification thread in 'AppCallbackNotifier' will check for pending messages in 'mEventQ' and call 'notifyEvent()' when data is available. On the other hand 'notifyEvent()' will lock 'mLock' and read the incoming events from 'mEventQ'. It is possible for the client to call 'cancelAutoFocus()' between the check for messages in the notification thread and the lock in 'notifyEvent()' effectively flushing all messages in 'mEventQ'. In this case 'notifyEvent()' will try to read the incoming data block and with it also block 'mLock'. This sequence will cause the camera client to freeze in the following calls as well. Solution is to check 'mEventQ' for pending messages inside 'notifyEvent()' after 'mLock' is acquired and before trying to retrieve any data. Change-Id: I92b5e8e3c2be9bd4985d2ae511eedc7eed957241 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHAL : Propogate no memory error to MediaserverPrasanna Kumar M.R2012-07-251-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | During Video Rotation use cases, we encounter TILER Out of memory scenario. This error is not propogated to mediaserver and hence the Memory is not freed. This patch allows us to communiate this error which inturn results in restarting mediaserver and Camera can be reused again. Change-Id: Iea2340f1ab89d0eff73360c6aa59e951d6dcf735 Signed-off-by: Sathya Prakash M R <a0393677@ti.com> Signed-off-by: Prasanna Kumar M R <x0118059@ti.com>
* | CameraHal: Prevent deadlock in AppCallbackNotifier::stop()Tyler Luu2012-07-251-22/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a small chance that a stopPreview call can come from CameraService right around the same time Encoder thread will send a data callback for the video snapshot. Currently, we are waiting for the encoder thread to join in AppCallbackNofier:: stop(), so we could deadlock if CameraService locks in lockIfMessageWanted for the video snapshot. Instead of waiting for Encoder thread to join, we can make cancel() block until Encoder thread is done canceling the encode. After cancel() returns, we can free up the cookies that we passed to it, so Encoder thread does not need to call the callback function to AppCallbackNotifier. Change-Id: I93e21aefc968be810028fa672928fe9e18dff7e4
* | Exit Appcallback thread immediately.Akwasi Boateng2012-07-251-1/+2
| | | | | | | | | | | | | | | | Allow appcallback thread to exit immediately when exit command is processed. Change-Id: I9806b5cb00606b79b2773b0f222207cc2faaaac6 Signed-off-by: Akwasi Boateng <akwasi.boateng@ti.com>
* | CameraHAL: Fixed uninitialized variablesDaniel Levin2012-07-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Missing mPreviewing flag initialization together with absent checking for AppCallbackNotifier::startPreviewCallbacks() error code caused random crashes. 2. Missing mRecording flag initialization was causing random crashes after first CameraHal::startRecording() call. 3. Missing mNotifierState variable caused AppCallbackNotifier::start() error randomly from initial CameraHal::initialize() call that lead to returning error when opening Camera instance. Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I9379facfd0ec9a077706cf06bfe55f55b19be020
* | CameraHal: Fix timing issue with focus msg disableTyler Luu2012-07-251-2/+2
| | | | | | | | | | | | | | | | | | | | Disable focus message before sending notification because client can immediately call focus again after receiving notification and before we get a chance to disable the message. This will result in the focus notificiation for the subsequent focus call to be missed. Change-Id: I1367cdcebe490c32251e992b87ada3edf6b28036 Signed-off-by: Tyler Luu <tluu@ti.com>
* | CameraHAL: Improved debug loggingDaniel Levin2012-07-251-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Assign string constant for pixel formatTyler Luu2012-07-251-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | In appcallbacknotifier, use the string constant instead savings return from CameraParameters::get. The return value from CameraParameters::get is from the String8 memory pool which can be invalidated by other String8 commands. Never save these pointers expecting to use them at a later time!!!!! Change-Id: Ib62ff582ff1989b3f5dc9a9333cf7ffc1fe55c41 Signed-off-by: Tyler Luu <tluu@ti.com> Signed-off-by: Emilian Peev <epeev@mm-sol.com>
* | CameraHAL: RAW + JPEG supportx01180642012-07-251-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds functionality for saving both JPEG and respective RAW buffer. This is done by enabling the video port( to receive RAW ), and sent data to camera_test via RawCallback. NOTE: The raw size is defined by mRawWidth and mRawHight. They set the RAW resolution, which must be the native resolution of the sensor. Signed-off-by: Georgi Georgiev <x0154504@ti.com> Rebase. Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Signed-off-by: Jean Johnson <a0271255@ti.com> Change-Id: Ie8cb62e86829fafc6cd3dc303830b40dbeb39cb6
* | CameraHal: Corrects video snapshot thumbnail buffer size calculationEmilian Peev2012-07-251-20/+27
| | | | | | | | | | | | | | | | | | | | | | | | - The assumption that the output buffer size of the thumbnail will never be bigger that the input preview buffer size is not always correct. - Fixes an instability with video snapshot, when doing recording with SQCIF. Signed-off-by: Emilian Peev <epeev@mm-sol.com> Signed-off-by: Jean Johnson <a0271255@ti.com> Change-Id: I9e2129be01b62b95270b146d67e19785ef0aec23
* | CameraHAL: Fixed build with verbosity enabledDaniel Levin2012-07-251-1/+1
| | | | | | | | | | | | | | Signed-off-by: Daniel Levin <x0155538@ti.com> Signed-off-by: Jean Johnson <a0271255@ti.com> Change-Id: Ie705b1073e37ae90923d9e19683490dabb8ada26
* | CameraHal: Avoids a possible deadlock in AppCallbackNotifierEmilian Peev2012-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 'disableMsgType()' was querying CameraHal for enabled message types through 'msgTypeEnabled()'. This method will lock 'mLock' in CameraHal. On the other hand 'takePicture()' inside CameraHal will also lock 'mLock' before execution. If preview callbacks are enabled before image capture, then 'takePicture()' will call AppCallbackNotifier's 'disableMsgType()', which will try to lock 'mLock' again. Solution, a query to CameraHal for enabled message types is not needed inside 'disableMsgType()' because the passed argument 'msgType' already contains all the needed information. Signed-off-by: Emilian Peev <epeev@mm-sol.com> Change-Id: Ia4b7634ce21b8243f08d9124823c77e6bde84a8d
* | CameraHAL: Add OMAP_ENHANCEMENT around BURST modeDan Murphy2012-07-251-0/+6
| | | | | | | | | | | | | | | | | | Since the value CAMERA_MSG_COMPRESSED_BURST_IMAGE is wrapped with the OMAP_ENHANCEMENT flag the useage should be wrapped as well so builds without the OMAP_ENHANCEMENT flags will not fail Change-Id: I8e36d0f052624590257e5360822841c45132dcdd Signed-off-by: Dan Murphy <dmurphy@ti.com>
* | CameraHAL: Re-enable burst support Signed-off-by: Emilian Peev ↵Emilian Peev2012-07-251-6/+2
|/ | | | | | <epeev@mm-sol.com> Signed-off-by: Vicky Martinez-DeFrain <a0869710@ti.com> Change-Id: I3f5aa35b07ee2735ffd6c0d0539ba8f4a8ed790d
* CameraHAL: Enable LDCNSF for Video snapshotMilen Mitkov2011-11-301-2/+14
| | | | | | | | | Enables LDCNSF for Video snapshot, also adds start_offset and right_crop fields to the JPEG encoder wrapper, because the image with LDCNSF has artifacts on top and right. Change-Id: I1011252e3f8068083f9d057b7763b7f79c59a75d Signed-off-by: Milen Mitkov <mmitkov@mm-sol.com>
* CameraHAL: clean up logsIliyan Malchev2011-11-171-1/+1
| | | | | | | | | | -- introduce CAMHAL_LOGI so that we don't have to dump informational messages as LOGE -- convert some verbose messages to CAMHAL_LOGDB -- convert most frequent non-error log messages to CAMHAL_LOGI Change-Id: I8afc24aa17da2c157b7b37300a79b4cde81f87e5 Signed-off-by: Iliyan Malchev <malchev@google.com>
* videosnapshot memory corruption fixes.Akwasi Boateng2011-11-111-1/+6
| | | | | | | | | | | | 1. Fixes memory corruption of dst buffer in nv21_to_yuv() convertion 2. Free malloced row_tmp buffer 3. Free params string in Appcallback Change-Id: I2179f1158f6e72cca0f7e5c815b1cb576bfa925e Signed-off-by: Akwasi Boateng <akwasi.boateng@ti.com> related-to-bug: 5601247
* CameraHAL: Clear events queue fix, clear command queue on exitSundar Raman2011-11-101-3/+1
| | | | | | | | | | | | | | | Fix 2/3 for b/5593964. 1. The events queue wasn't being cleared correctly inside OMXCameraAdapter as some items were being removed while the index was being formulated based on the original size 2. The command queue should be cleared before posting the EXIT message for the OMX adapter threads so as not to process those messages since we are exiting Change-Id: I0a5eaceb3d1504fee05b064ebb5fe888e129ad44 Signed-off-by: Sundar Raman <sunds@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com>
* CameraHAL: Fixes for ANR and a setParameter issueSundar Raman2011-11-101-15/+27
| | | | | | | | | | | | | | | Fix 1/3 for b/5593964. 1. Ensure we don't race with stopImageCapture when stopPreview is called 2. Signal the shutter callback correctly 3. Do not crash the media server if focus APIs and image capture returns error Still go ahead and perform de-init 4. Replace setParameter from CameraHAl to AppCallbackNotifier with getParameter when needed. Change-Id: I2b2745827d227a8d7927ce1611a84c29129e8891 Signed-off-by: Sundar Raman <sunds@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com>