author | jiyu.yang <jiyu.yang@amlogic.com> | 2013-04-25 07:20:38 (GMT) |
---|---|---|
committer | brian.zhu <brian.zhu@amlogic.com> | 2013-05-03 06:59:05 (GMT) |
commit | 4c85f2d36ea36955a6b6f580d67bac1d1537319c (patch) | |
tree | d2967848c93e319f13f86bd500b16caf517b979c | |
parent | 323ccec3a4700ff973385a75184168a605df59cc (diff) | |
download | camera-4c85f2d36ea36955a6b6f580d67bac1d1537319c.zip camera-4c85f2d36ea36955a6b6f580d67bac1d1537319c.tar.gz camera-4c85f2d36ea36955a6b6f580d67bac1d1537319c.tar.bz2 |
PD #72803: add protect for stop recording
same as PD #66953, this bug is usually happened when use
this command in GMS verification.
run cts -c android.mediastress.cts.MediaRecorderStressTest
-m testStressRecordVideoAndPlayback
-rwxr-xr-x | BaseCameraAdapter.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/BaseCameraAdapter.cpp b/BaseCameraAdapter.cpp index 8558ff8..c358599 100755 --- a/BaseCameraAdapter.cpp +++ b/BaseCameraAdapter.cpp @@ -1273,8 +1273,8 @@ status_t BaseCameraAdapter::__sendFrameToSubscribers(CameraFrame* frame, if (NULL != subscribers) { refCount = getFrameRefCount(frame->mBuffer, frameType); - if (refCount == 0) { - CAMHAL_LOGDA("Invalid ref count of 0"); + if (refCount <= 0) { + CAMHAL_LOGDB("Invalid refCount=%d", refCount); return -EINVAL; } @@ -1450,8 +1450,12 @@ int BaseCameraAdapter::getFrameRefCount(void* frameBuf, CameraFrame::FrameType f break; case CameraFrame::VIDEO_FRAME_SYNC: { - Mutex::Autolock lock(mVideoBufferLock); - res = mVideoBuffersAvailable.valueFor( ( unsigned int ) frameBuf ); + Mutex::Autolock lock(mVideoBufferLock); + if(mVideoBuffersAvailable.size()>0){ + res = mVideoBuffersAvailable.valueFor( (unsigned int)frameBuf ); + }else{ + CAMHAL_LOGDA("mVideoBuffersAvailable is empty\n"); + } } break; default: |