summaryrefslogtreecommitdiff
authorjiyu.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)
commit4c85f2d36ea36955a6b6f580d67bac1d1537319c (patch)
treed2967848c93e319f13f86bd500b16caf517b979c
parent323ccec3a4700ff973385a75184168a605df59cc (diff)
downloadcamera-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
Diffstat
-rwxr-xr-xBaseCameraAdapter.cpp12
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: