summaryrefslogtreecommitdiff
authorsky.zhou <sky.zhou@droid04.amlogic.com>2011-12-24 05:23:12 (GMT)
committer sky.zhou <sky.zhou@droid04.amlogic.com>2011-12-24 05:23:12 (GMT)
commit1427a8397033e5f1963390d9051cf40c1e61663f (patch)
tree60db4d74de2186c2fb4b4b95def7e4131a76bc6f
parentc946f590487dc79f71546838f739e28e4937c18e (diff)
downloadcamera-1427a8397033e5f1963390d9051cf40c1e61663f.zip
camera-1427a8397033e5f1963390d9051cf40c1e61663f.tar.gz
camera-1427a8397033e5f1963390d9051cf40c1e61663f.tar.bz2
Revert "add protect when calling callback for preview thread"
This reverts commit c946f590487dc79f71546838f739e28e4937c18e.
Diffstat
-rwxr-xr-xBaseCameraAdapter.cpp60
1 files changed, 2 insertions, 58 deletions
diff --git a/BaseCameraAdapter.cpp b/BaseCameraAdapter.cpp
index 9a37b06..4303b6e 100755
--- a/BaseCameraAdapter.cpp
+++ b/BaseCameraAdapter.cpp
@@ -233,7 +233,7 @@ void BaseCameraAdapter::addFramePointers(void *frameBuf, void *buf)
frame->mYuv[1] = pBuf[1];
mFrameQueue.add(frameBuf, frame);
- CAMHAL_LOGDB("Adding Frame=0x%x Y=0x%x UV=0x%x", (uint32_t)frame->mBuffer, frame->mYuv[0], frame->mYuv[1]);
+ CAMHAL_LOGDB("Adding Frame=0x%x Y=0x%x UV=0x%x", frame->mBuffer, frame->mYuv[0], frame->mYuv[1]);
}
}
@@ -1231,11 +1231,6 @@ status_t BaseCameraAdapter::__sendFrameToSubscribers(CameraFrame* frame,
return -EINVAL;
}
- if(subscribers->size() == 0){
- CAMHAL_LOGDA("Invalid subscribers size of 0");
- return -EINVAL;
- }
-
if (refCount > subscribers->size()) {
CAMHAL_LOGEB("Invalid ref count for frame type: 0x%x", frameType);
return -EINVAL;
@@ -1246,57 +1241,6 @@ status_t BaseCameraAdapter::__sendFrameToSubscribers(CameraFrame* frame,
( uint32_t ) frame->mBuffer,
refCount);*/
- KeyedVector<uint32_t, uint32_t> subscribers_ref;
- for(uint32_t i = 0; i<subscribers->size();i++){
- subscribers_ref.add((int) subscribers->keyAt(i),0);
- }
- uint32_t k = 0;
- void* Cookie_ref = NULL;
- void* callback_ref = NULL;
- bool is_find = false;
- while(k<subscribers->size()){
- is_find = false;
- frame->mCookie = ( void * ) subscribers->keyAt(k);
- callback = (frame_callback) subscribers->valueAt(k);
-
- if ((!callback) ||(!frame->mCookie)){
- CAMHAL_LOGEB("callback not set for frame type: 0x%x, index:%d", frameType,k);
- k++;
- continue;
- }
-
- for(uint32_t i = 0; i<subscribers_ref.size();i++){
- if((frame->mCookie == ( void * ) subscribers_ref.keyAt(i))&&(subscribers_ref.valueAt(i) == 0)){
- subscribers_ref.replaceValueFor((uint32_t)frame->mCookie,1);
- //CAMHAL_LOGDB("Frame callbback is available, cookie:0x%x, callback:0x%x",(uint32_t)frame->mCookie,(uint32_t)callback);
- callback(frame);
- k = 0;
- is_find = true;
- break;
- }
- }
- if(is_find){
- k = 0;
- if(refCount>0){
- refCount--;
- }
- else{
- CAMHAL_LOGEB("ref count has reached 0!ref size:%d, cur size:%d",subscribers_ref.size(),subscribers->size());
- }
- }else{
- //CAMHAL_LOGDB("Frame callbback is unavailable for some reason, cookie:0x%x, callback:0x%x,index:%d",(uint32_t)frame->mCookie,(uint32_t)callback,k);
- k++;
- }
- }
-
- if(refCount){
- //CAMHAL_LOGDB("%d frame(s) need be returned for some error case!",refCount);
- for(k = 0;k<refCount;k++){
- returnFrame(frame->mBuffer, frameType);
- }
- }
- subscribers_ref.clear();
-#if 0
for ( unsigned int i = 0 ; i < refCount; i++ ) {
frame->mCookie = ( void * ) subscribers->keyAt(i);
callback = (frame_callback) subscribers->valueAt(i);
@@ -1305,9 +1249,9 @@ status_t BaseCameraAdapter::__sendFrameToSubscribers(CameraFrame* frame,
CAMHAL_LOGEB("callback not set for frame type: 0x%x", frameType);
return -EINVAL;
}
+
callback(frame);
}
-#endif
} else {
CAMHAL_LOGEA("Subscribers is null??");
return -EINVAL;