diff options
author | Sundar Raman <sunds@ti.com> | 2011-09-25 23:10:19 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-27 17:33:06 -0700 |
commit | b3fb1a45ce906ab0365f247caf596665ea0c9f39 (patch) | |
tree | d70eef52ead1e65ce2b2de3e07de073226cf61a2 /camera/inc/OMXCameraAdapter/OMXCameraAdapter.h | |
parent | 4af5978e0677b13118611721f265e2dbaba849ff (diff) | |
download | omap4xxx-omapzoom-b3fb1a45ce906ab0365f247caf596665ea0c9f39.tar.gz |
CameraHAL: Improved error handling inside the adapters
1. unlock and cancel buffers to ANativeWindow when freeBuffers is called
2. Free the omx handle and deinitialize DOMX when errors occur while
calling critical OMXCamera apis
3. Retry OMX_GetHandle if it fails to take care of error recovery
scenarios.
"Fixes b/5379663"
Change-Id: I4729fab40e6104dfa6660ba6f6b1a90f805c2f59
Signed-off-by: Sundar Raman <sunds@ti.com>
Diffstat (limited to 'camera/inc/OMXCameraAdapter/OMXCameraAdapter.h')
-rw-r--r-- | camera/inc/OMXCameraAdapter/OMXCameraAdapter.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h index 06d7d738..3435305f 100644 --- a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h +++ b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h @@ -46,6 +46,7 @@ extern "C" #include "timm_osal_semaphores.h" } + namespace android { #define Q16_OFFSET 16 @@ -372,6 +373,9 @@ public: OMX_ERRORTYPE OMXCameraAdapterFillBufferDone(OMX_IN OMX_HANDLETYPE hComponent, OMX_IN OMX_BUFFERHEADERTYPE* pBuffHeader); + + static OMX_ERRORTYPE OMXCameraGetHandle(OMX_HANDLETYPE *handle, OMX_PTR pAppData=NULL); + protected: //Parent class method implementation @@ -398,6 +402,8 @@ protected: private: + void performCleanupAfterError(); + status_t switchToLoaded(); OMXCameraPortParameters *getPortParams(CameraFrame::FrameType frameType); |