ICamDevice* ICamDevice:: createInstance( int32_t const i4DevOpenId, CamDevInfo const& rDevInfo, hw_device_t const& hwdevice, hw_module_t const*const hwmodule ) { MY_LOGI("+ tid(%d) i4DevOpenID(%d), eDevID(%d)", gettid(), i4DevOpenId, rDevInfo.eDevID); // ICamDevice* pdev = NULL; // switch ( rDevInfo.eDevID ) { case eDevId_AtvSensor: { String8 const name("AtvSensor"); pdev = new CamDevice( name, i4DevOpenId, rDevInfo, ICamAdapter::createInstance(name, i4DevOpenId, rDevInfo) ); } break; case eDevId_ImgSensor: default: { String8 const name("ImgSensor"); pdev = new CamDevice( name, i4DevOpenId, rDevInfo, ICamAdapter::createInstance(name, i4DevOpenId, rDevInfo) ); } break; } // if ( pdev != 0 ) { pdev->incStrong(pdev); // hw_device_t* hwdev = pdev->get_hw_device(); *hwdev = hwdevice; hwdev->module = const_cast<hw_module_t*>(hwmodule); // if ( ! pdev->init() ) { MY_LOGE("fail to initialize a newly-created instance"); pdev->uninit(); pdev = NULL; } } // MY_LOGI("- created instance=%p", &(*pdev)); return pdev; }
MBOOL Mhal_facebeauty:: onCmd_capture() { MBOOL ret = MFALSE; sem_init(&semFBthread, 0, 0); pthread_create(&threadFB, NULL, FBCapture, NULL); sem_wait(&semFBthread); ret = createFBJpegImg(mpSource,mu4W_yuv,mu4H_yuv,0); if ( ! ret ) { goto lbExit; } //------------------ Sava test ----------------// #ifdef BanchMark char szFileName[100]; MUINT32 FDInfo[100]={0}; MUINT32* htable=(MUINT32*)msFaceBeautyResultInfo.PCAHTable; int i=0; for(i=0;i<FBmetadata.number_of_faces;i++) { FDInfo[i*4] = FBmetadata.faces[i].rect[0]; FDInfo[i*4+1] = FBmetadata.faces[i].rect[1]; FDInfo[i*4+2] = FBmetadata.faces[i].rect[2]-FBmetadata.faces[i].rect[0]; FDInfo[i*4+3] = MTKPoseInfo[i].rip_dir; MY_LOGI("[FACEINFO] x %d y %d w %d",FBmetadata.faces[i].rect[0],FBmetadata.faces[i].rect[1],FBmetadata.faces[i].rect[2]); } ::sprintf(szFileName, "/sdcard/DCIM/Camera/%s_H_%d_%d.txt", "FDinfo", *htable,capturecount); saveBufToFile(szFileName, (MUINT8*)&FDInfo, 100 * 4); MY_LOGI("[FACEINFO] Save File done"); #endif //------------------ Sava test ----------------// // Force to handle done even if there is any error before. //to do handleCaptureDone(); ret = MTRUE; lbExit: releaseBufs(); pthread_join(threadFB, NULL); CPTLog(Event_FcaeBeautyShot, CPTFlagEnd); CPTLog(Event_FBShot_Utility, CPTFlagEnd); #if (FB_PROFILE_CAPTURE) DbgTmr.print("FBProfiling:: Done"); #endif return ret; }
void SfDelegate::OnReceivedRedirect( net::URLRequest *request, const GURL &new_url, bool *defer_redirect) { #ifndef ANDROID_DEFAULT_CODE const char *uri =NULL; uri = new_url.spec().c_str(); MY_LOGI(StringPrintf("OnReceivedRedirect,original_url=%s ",request->original_url().spec().c_str()).c_str()); MY_LOGI(StringPrintf("OnReceivedRedirect, new_url=%s", new_url.spec().c_str()).c_str()); MY_LOGI(StringPrintf("OnReceivedRedirect,defer_redirect=%d",*defer_redirect).c_str()); mOwner->OnReceivedRedirect( uri); #else MY_LOGV("OnReceivedRedirect"); #endif }
void SfDelegate::OnResponseStarted(net::URLRequest *request) { if (request->status().status() != net::URLRequestStatus::SUCCESS) { MY_LOGI(StringPrintf( "Request failed with status %d and os_error %d", request->status().status(), request->status().os_error()).c_str()); delete mURLRequest; mURLRequest = NULL; mOwner->onConnectionFailed(ERROR_IO); return; } else if (mRangeRequested && request->GetResponseCode() != 206) { MY_LOGI(StringPrintf( "We requested a content range, but server didn't " "support that. (responded with %d)", request->GetResponseCode()).c_str()); delete mURLRequest; mURLRequest = NULL; mOwner->onConnectionFailed(-EPIPE); return; } else if ((request->GetResponseCode() / 100) != 2) { MY_LOGI(StringPrintf( "Server responded with http status %d", request->GetResponseCode()).c_str()); delete mURLRequest; mURLRequest = NULL; mOwner->onConnectionFailed(ERROR_IO); return; } MY_LOGV("OnResponseStarted"); std::string headers; request->GetAllResponseHeaders(&headers); MY_LOGV(StringPrintf("response headers: %s", headers.c_str()).c_str()); std::string contentType; request->GetResponseHeaderByName("Content-Type", &contentType); mOwner->onConnectionEstablished( request->GetExpectedContentSize(), contentType.c_str()); }
MBOOL Mhal_facebeauty:: doCapture() { MBOOL ret = MFALSE; CPTLog(Event_FBShot_Utility, CPTFlagStart); //MINT8 TargetColor = NSCamCustom::get_FB_ColorTarget(); //MINT8 BlurLevel = NSCamCustom::get_FB_BlurLevel(); MINT8 TargetColor =0; MINT8 BlurLevel =4; ret = // () Request Buffers. requestBufs() && InitialAlgorithm(mu4W_yuv, mu4H_yuv, BlurLevel, TargetColor) && createFullFrame(mpSource) && STEP1(mpSource, mu4W_yuv, mu4H_yuv, mpBlurImg, mpAmap, (void*) &msFaceBeautyResultInfo) && STEP2(mpSource, mu4W_yuv, mu4H_yuv,mpAmap, &FBmetadata,(void*) &msFaceBeautyResultInfo) && STEP3(mpAmap,(void*) &msFaceBeautyResultInfo) && STEP4(mpSource, mu4W_yuv, mu4H_yuv, mpBlurImg, mpAmap, (void*) &msFaceBeautyResultInfo) && STEP5(mpSource, mu4W_yuv, mu4H_yuv, mpAmap, (void*) &msFaceBeautyResultInfo) && STEP6(mpSource, mu4W_yuv, mu4H_yuv, mpBlurImg, (void*) &msFaceBeautyResultInfo) ; if ( ! ret ) { MY_LOGI("[FBCapture] Capture fail \n"); } sem_post(&semFBthread); return ret; }
void SfDelegate::onInitiateConnection( const GURL &url, const KeyedVector<String8, String8> *extra, off64_t offset) { CHECK(mURLRequest == NULL); mURLRequest = new net::URLRequest(url, this); mAtEOS = false; mRangeRequested = false; #ifndef ANDROID_DEFAULT_CODE if (offset != 0 || extra != NULL || !gCustomizeHeaders.empty()) { #else if (offset != 0 || extra != NULL) { #endif net::HttpRequestHeaders headers = mURLRequest->extra_request_headers(); if (offset != 0) { headers.AddHeaderFromString( StringPrintf("Range: bytes=%lld-", offset).c_str()); mRangeRequested = true; } if (extra != NULL) { for (size_t i = 0; i < extra->size(); ++i) { AString s; s.append(extra->keyAt(i).string()); s.append(": "); s.append(extra->valueAt(i).string()); headers.AddHeaderFromString(s.c_str()); } } #ifndef ANDROID_DEFAULT_CODE if (!gCustomizeHeaders.empty()) { MY_LOGI(StringPrintf("Customize headers, %s", gCustomizeHeaders.c_str()).c_str()); headers.AddHeaderFromString(gCustomizeHeaders.c_str()); } #endif mURLRequest->SetExtraRequestHeaders(headers); } mURLRequest->set_context(gReqContext); mURLRequest->Start(); } void SfDelegate::initiateDisconnect() { MessageLoop *loop = gNetworkThread->message_loop(); loop->PostTask( FROM_HERE, NewRunnableFunction( &SfDelegate::OnInitiateDisconnectWrapper, this)); }
uint32_t ParamsManager:: getVHdr() const { RWLock::AutoRLock _lock(mRWLock); char const* p = mParameters.get(MtkCameraParameters::KEY_VIDEO_HDR); char const* pMode = mParameters.get(MtkCameraParameters::KEY_VIDEO_HDR_MODE); if(!p) { MY_LOGI("No KEY_VIDEO_HDR"); return 0; } if(!pMode) { MY_LOGI("No KEY_VIDEO_HDR_MODE"); return 0; } //> check vhdr mode if(::strcmp(p, MtkCameraParameters::OFF) == 0) { return 0; } else { if(::strcmp(pMode, MtkCameraParameters::VIDEO_HDR_MODE_IVHDR) == 0) { return 1; } else if(::strcmp(pMode, MtkCameraParameters::VIDEO_HDR_MODE_MVHDR) == 0) { return 2; } else { MY_LOGE("wrong mode(%s)",pMode); return 0; } } }
void SfDelegate::setProxy(const char *proxy, int port) { std::string host = proxy; std::string list = ""; MY_LOGI(StringPrintf("setProxy:host=%s,port=%d",host.c_str() ,port).c_str()); gProxyConfigService.get()->UpdateProxySettings(host,list); }
MBOOL SImager:: setFlip(MUINT32 const u4Flip) { FUNCTION_LOG_START; MY_LOGI("u4Flip = 0x%x", u4Flip); mTargetImgInfo.u4Flip = u4Flip; FUNCTION_LOG_END; // return MTRUE; }
MBOOL SImager:: setROI(Rect const rROI) { FUNCTION_LOG_START; MY_LOGI("roi (x, y, w, h) = (%d, %d, %d, %d)", rROI.x, rROI.y, rROI.w, rROI.h); mTargetImgInfo.rROI = rROI; FUNCTION_LOG_END; // return MTRUE; }
MBOOL SImager:: setFormat(EImageFormat const eFormat) { FUNCTION_LOG_START; MY_LOGI("format = 0x%x", eFormat); mTargetImgInfo.eImgFmt = eFormat; FUNCTION_LOG_END; // return MTRUE; }
MBOOL SImager:: setResize(MUINT32 const u4Width, MUINT32 const u4Height) { FUNCTION_LOG_START; MY_LOGI("size (w, h) = (%d, %d)", u4Width, u4Height); mTargetImgInfo.u4ImgWidth = u4Width; mTargetImgInfo.u4ImgHeight = u4Height; FUNCTION_LOG_END; // return MTRUE; }
MBOOL SImager:: setRotation(MUINT32 const u4Ratation) { FUNCTION_LOG_START; MY_LOGI("rotation = %d", u4Ratation); mTargetImgInfo.u4Rotation = u4Ratation; FUNCTION_LOG_END; // return MTRUE; }
MBOOL SImager:: setEncodeParam(MUINT32 const & u4IsSOI, MUINT32 const & u4Quality) { FUNCTION_LOG_START; MY_LOGI("enc param (SOI, Quality) = (%d, %d)", u4IsSOI, u4Quality); mTargetImgInfo.u4IsSOI = u4IsSOI; mTargetImgInfo.u4Quality = u4Quality; FUNCTION_LOG_END; // return MTRUE; }
bool ParamsManager::getCShotIndicator() const { RWLock::AutoRLock _lock(mRWLock); char const *p = mParameters.get(MtkCameraParameters::KEY_CSHOT_INDICATOR); if(!p) { MY_LOGI("No KEY_CSHOT_INDICATOR"); return false; } return (::strcmp(p, CameraParameters::TRUE) != 0 ) ? false : true; }
MBOOL SImager:: setStrideAlign(MUINT32 const u4StrideAlign[3]) { FUNCTION_LOG_START; MY_LOGI("stride align = (%d, %d, %d)", u4StrideAlign[0], u4StrideAlign[1], u4StrideAlign[2]); mu4StrideAlign[0] = u4StrideAlign[0]; mu4StrideAlign[1] = u4StrideAlign[1]; mu4StrideAlign[2] = u4StrideAlign[2]; return MTRUE; FUNCTION_LOG_END; }
bool querySensorInfo(int32_t const i4OpenId, String8& rs8SensorName, uint32_t& ru4SensorType, int32_t& ri4SensorFacing) { if ( i4OpenId == 0xFF ) { rs8SensorName = DLSYM_MODULE_NAME_COMMON_SENSOR_ATV; ru4SensorType = NSSensorType::eSensorType_YUV; ri4SensorFacing = 0; MY_LOGW("ATV sensor...return true"); return true; } #if '1'!=MTKCAM_HAVE_SENSOR_HAL //++++++++++++++++++++++++++++++++++++++++++ // #warning "[FIXME] querySensorInfo()" MY_LOGI("not use MTKCAM_HAVE_SENSOR_HAL"); rs8SensorName = "No_Sensor_Hal"; ru4SensorType = NSSensorType::eSensorType_RAW; return true; // #else //MTKCAM_HAVE_SENSOR_HAL //.......................................... // bool ret = false; NSCam::IHalSensorList *pSensorHalList = NSCam::IHalSensorList::get(); if (pSensorHalList == NULL) { MY_LOGE("pSensorHalList::get fail"); pSensorHalList = NULL; return false; } // ri4SensorFacing = pSensorHalList->queryFacingDirection(i4OpenId); rs8SensorName = pSensorHalList->queryDriverName(i4OpenId); switch ( pSensorHalList->queryType(i4OpenId) ) { case NSCam::NSSensorType::eYUV: ru4SensorType = NSSensorType::eSensorType_YUV; break; case NSCam::NSSensorType::eRAW: default: ru4SensorType = NSSensorType::eSensorType_RAW; break; } MY_LOGD("[OpenId:%d] type:%d <%s>", i4OpenId, ru4SensorType, rs8SensorName.string()); // ret = true; lbExit: return ret; // #endif //MTKCAM_HAVE_SENSOR_HAL //------------------------------------------ }
bool ParamsManager:: getPDAFSupported() const { RWLock::AutoRLock _lock(mRWLock); char const* p = mParameters.get(MtkCameraParameters::KEY_PDAF); // if ( ! p ) { MY_LOGI("No KEY_PDAF"); return false; } // return ( ::strcmp(p, CameraParameters::TRUE) != 0 ) ? false : true; }
bool ParamsManager:: getVideoStabilization() const { RWLock::AutoRLock _lock(mRWLock); char const* p = mParameters.get(CameraParameters::KEY_VIDEO_STABILIZATION); // if ( ! p ) { MY_LOGI("No KEY_VIDEO_STABILIZATION"); return false; } // return ( ::strcmp(p, CameraParameters::TRUE) != 0 ) ? false : true; }
bool ParamsManager:: getVideoSnapshotSupport() const { RWLock::AutoRLock _lock(mRWLock); char const* p = mParameters.get(CameraParameters::KEY_VIDEO_SNAPSHOT_SUPPORTED); // if ( ! p ) { MY_LOGI("No KEY_VIDEO_SNAPSHOT_SUPPORTED"); return false; } // return ( ::strcmp(p, CameraParameters::TRUE) != 0 ) ? false : true; }
bool ParamsManager:: getRecordingHint() const { RWLock::AutoRLock _lock(mRWLock); char const* p = mParameters.get(CameraParameters::KEY_RECORDING_HINT); // if ( ! p ) { MY_LOGI("No KEY_RECORDING_HINT"); return false; } // return ( ::strcmp(p, CameraParameters::TRUE) != 0 ) ? false : true; }
void SfDelegate::OnReadCompleted(net::URLRequest *request, int bytes_read) { if (bytes_read == -1) { MY_LOGI(StringPrintf( "OnReadCompleted, read failed, status %d", request->status().status()).c_str()); mOwner->onReadCompleted(ERROR_IO); return; } MY_LOGV(StringPrintf("OnReadCompleted, read %d bytes", bytes_read).c_str()); if (bytes_read < 0) { MY_LOGI(StringPrintf( "Read failed w/ status %d\n", request->status().status()).c_str()); mOwner->onReadCompleted(ERROR_IO); return; } else if (bytes_read == 0) { mAtEOS = true; mOwner->onReadCompleted(mNumBytesRead); return; } CHECK_GT(bytes_read, 0); CHECK_LE(mNumBytesRead + bytes_read, mNumBytesTotal); memcpy((uint8_t *)mDataDestination + mNumBytesRead, mReadBuffer->data(), bytes_read); mNumBytesRead += bytes_read; readMore(request); }
void SfNetLog::AddEntry( EventType type, const base::TimeTicks &time, const Source &source, EventPhase phase, EventParameters *params) { #if 0 MY_LOGI(StringPrintf( "AddEntry time=%s type=%s source=%s phase=%s\n", TickCountToString(time).c_str(), EventTypeToString(type), SourceTypeToString(source.type), EventPhaseToString(phase)).c_str()); #endif }
void BaseCamAdapter:: unsubscribeMsgType(int32_t const msgType, void* cookie) { MY_LOGI( "+ tid(%d), (msgType, cookie)=(0x%x, %p) " "mvFrameObservers.size(%d)", ::gettid(), msgType, cookie, mvFrameObservers.size() ); // RWLock::AutoWLock _l(mRWLockFrameNotifier); // // Now we just support one-shot setting for only one message. switch (msgType) { case CAMERA_MSG_PREVIEW_FRAME | CAMERA_MSG_POSTVIEW_FRAME: case CAMERA_MSG_PREVIEW_FRAME: case CAMERA_MSG_POSTVIEW_FRAME: mvFrameObservers.removeItem(cookie); break; case CAMERA_MSG_ALL_MSGS: mvFrameObservers.removeItem(cookie); break; default: MY_LOGE("Unsupported type(%x).", msgType); break; } // MY_LOGI( "- tid(%d), (msgType, cookie)=(0x%x, %p) " "mvFrameObservers.size(%d)", ::gettid(), msgType, cookie, mvFrameObservers.size() ); }
void SfDelegate::readMore(net::URLRequest *request) { while (mNumBytesRead < mNumBytesTotal) { size_t copy = mNumBytesTotal - mNumBytesRead; if (copy > mReadBuffer->size()) { copy = mReadBuffer->size(); } int n; if (request->Read(mReadBuffer, copy, &n)) { MY_LOGV(StringPrintf("Read %d bytes directly.", n).c_str()); CHECK_LE((size_t)n, copy); memcpy((uint8_t *)mDataDestination + mNumBytesRead, mReadBuffer->data(), n); mNumBytesRead += n; if (n == 0) { mAtEOS = true; break; } } else { MY_LOGV("readMore pending read"); if (request->status().status() != net::URLRequestStatus::IO_PENDING) { MY_LOGI(StringPrintf( "Direct read failed w/ status %d\n", request->status().status()).c_str()); mOwner->onReadCompleted(ERROR_IO); return; } return; } } mOwner->onReadCompleted(mNumBytesRead); }
bool Mhal_facebeauty:: onCreate(MtkCameraFaceMetadata* FaceInfo) { MBOOL ret = MFALSE; MINT32 ec = 0; MY_LOGD("[facebeauty init] FBFaceInfo adr 0x%x FBFaceInfo num %d \n",(MUINT32)FaceInfo->faces,FaceInfo->number_of_faces); FBmetadata.faces=(MtkCameraFace *)FBFaceInfo; FBmetadata.posInfo=(MtkFaceInfo *)MTKPoseInfo; FBmetadata.number_of_faces = FaceInfo->number_of_faces; for(int i=0;i<FaceInfo->number_of_faces;i++) { FBmetadata.faces[i].rect[0] = ((FaceInfo->faces[i].rect[0] + 1000) * FBFDWidth) / 2000; FBmetadata.faces[i].rect[1] = ((FaceInfo->faces[i].rect[1] + 1000) * FBFDHeight) / 2000; FBmetadata.faces[i].rect[2] = ((FaceInfo->faces[i].rect[2] + 1000) * FBFDWidth) / 2000; FBmetadata.faces[i].rect[3] = ((FaceInfo->faces[i].rect[3] + 1000) * FBFDHeight) / 2000; FBmetadata.posInfo[i].rop_dir = FaceInfo->posInfo[i].rop_dir; FBmetadata.posInfo[i].rip_dir = FaceInfo->posInfo[i].rip_dir; int face_size = FBmetadata.faces[i].rect[2] - FBmetadata.faces[i].rect[0]; if(face_size >= 30) { int zoom_size; zoom_size = face_size/15; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= FBFDWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= FBFDHeight-1)) { zoom_size = face_size/12; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= FBFDWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= FBFDHeight-1)) { zoom_size = face_size/10; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= FBFDWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= FBFDHeight-1)) { zoom_size = face_size/8; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= FBFDWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= FBFDHeight-1)) { zoom_size = face_size/7; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= FBFDWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= FBFDHeight-1)) { ; } else { zoom_size = face_size/8; } } else { zoom_size = face_size/10; } } else { zoom_size = face_size/12; } } else { zoom_size = face_size/15; } FBmetadata.faces[i].rect[0] -= zoom_size; FBmetadata.faces[i].rect[1] -= zoom_size; FBmetadata.faces[i].rect[2] += zoom_size; FBmetadata.faces[i].rect[3] += zoom_size; } } MY_LOGI("[facebeauty init] After FBFaceInfo num %d left %d top %d right %d button %d pose %d \n",i,FBmetadata.faces[i].rect[0],FBmetadata.faces[i].rect[1],FBmetadata.faces[i].rect[2],FBmetadata.faces[i].rect[3],MTKPoseInfo[i].rip_dir); } mpIMemDrv = IMemDrv::createInstance(); if (mpIMemDrv == NULL) { MY_LOGE("g_pIMemDrv is NULL \n"); return 0; } mpFb = halFACEBEAUTIFYBase::createInstance(HAL_FACEBEAUTY_OBJ_SW); if ( ! mpFb ) { MY_LOGE("[init] NULL mpFb \n"); goto lbExit; } mpFbObj = this; mpFb->CANCEL = MFALSE; ret = MTRUE; lbExit: if ( ! ret ) { onDestroy(); } MY_LOGD("[init] rc(%d) \n", ret); return ret; }
void SfRequestContext::initStreamingInfo() { #ifdef CUSTOM_UASTRING_FROM_PROPERTY char value[MAX_VALUE_LEN]; if (0 < custom_get_string(MODULE_HTTP_STREAMING, USER_AGENT, value, NULL)) { mUserAgent = value; } else { mUserAgent = ""; mUserAgent.append("stagefright/1.2 (Linux;Android "); char prop[PROPERTY_VALUE_MAX]; property_get("ro.build.version.release", prop, "Unknown"); mUserAgent.append(prop); mUserAgent.append(")"); } mWapProfile = ""; memset(value, 0, sizeof(value)); if (0 < custom_get_string(MODULE_HTTP_STREAMING, UAPROF_URL, value, NULL)) { mWapProfile = value; gCustomizeHeaders = StringPrintf("x-wap-profile: %s", mWapProfile.c_str()); MY_LOGI(gCustomizeHeaders.c_str()); } #else //#ifdef CUSTOM_UASTRING_FROM_PROPERTY #ifdef STR_HTTP_USER_AGENT mUserAgent = STR_HTTP_USER_AGENT; #else mUserAgent = ""; mUserAgent.append("stagefright/1.2 (Linux;Android "); char value[PROPERTY_VALUE_MAX]; property_get("ro.build.version.release", value, "Unknown"); mUserAgent.append(value); mUserAgent.append(")"); #endif #ifdef STR_HTTP_WAP_PROFILE mWapProfile = STR_HTTP_WAP_PROFILE; if (mWapProfile != "") { gCustomizeHeaders = StringPrintf("x-wap-profile: %s", mWapProfile.c_str()); MY_LOGI(gCustomizeHeaders.c_str()); } #else mWapProfile = ""; #endif #endif //#ifdef CUSTOM_UASTRING_FROM_PROPERTY MY_LOGI(StringPrintf("http user agent: %s", mUserAgent.c_str()).c_str()); MY_LOGI(StringPrintf("http wap profile: %s", mWapProfile.c_str()).c_str()); #if 0 //loading from cfg file const char filename[] = STREAMING_CFG_PATH; FILE *pFile = fopen(filename, "r"); bool bValidCfg = false; if (pFile != NULL) { char szString[STREAMING_CFG_MAX_LENGTH]; char* szName = NULL; char* szValue = NULL; MY_LOGI(StringPrintf("loading streaming cfg: %s", filename).c_str()); while (fgets(szString, STREAMING_CFG_MAX_LENGTH, pFile) != NULL) { szName = strtok(szString, "="); szValue = strtok(NULL, "\r\n"); MY_LOGI(StringPrintf("\t\t%s = %s", szName, szValue).c_str()); //load user-agent if (!strcmp(szName, "User-Agent")) { mUserAgent = szValue; bValidCfg = true; } else if (!strcmp(szName, "x-wap-profile")) { //load x-wap-profile mWapProfile = szValue; } } fclose(pFile); } else { MY_LOGI(StringPrintf("\t\tstreaming config file %s not found", filename).c_str()); } #endif }
void SfDelegate::OnResponseStarted(net::URLRequest *request) { if (request->status().status() != net::URLRequestStatus::SUCCESS) { MY_LOGI(StringPrintf( "Request failed with status %d and os_error %d", request->status().status(), request->status().os_error()).c_str()); delete mURLRequest; mURLRequest = NULL; mOwner->onConnectionFailed(ERROR_IO); return; #ifndef ANDROID_DEFAULT_CODE//Listen.apk, server return 200 when we request partial content } else if (mRangeRequested && request->GetResponseCode() != 206 && request->GetResponseCode() != 200) { #else } else if (mRangeRequested && request->GetResponseCode() != 206) { #endif MY_LOGI(StringPrintf( "We requested a content range, but server didn't " "support that. (responded with %d)", request->GetResponseCode()).c_str()); delete mURLRequest; mURLRequest = NULL; mOwner->onConnectionFailed(-EPIPE); return; } else if ((request->GetResponseCode() / 100) != 2) { MY_LOGI(StringPrintf( "Server responded with http status %d", request->GetResponseCode()).c_str()); #ifndef ANDROID_DEFAULT_CODE bool bResNotFound = false; if ((request->GetResponseCode() == 404) || (request->GetResponseCode() == 410)){ bResNotFound = true; } #endif delete mURLRequest; mURLRequest = NULL; #ifndef ANDROID_DEFAULT_CODE //if the ResponseCode is 404, notify that it's our_of_range mOwner->onConnectionFailed(bResNotFound ? ERROR_OUT_OF_RANGE : ERROR_IO); #else mOwner->onConnectionFailed(ERROR_IO); #endif return; } MY_LOGV("OnResponseStarted"); std::string headers; request->GetAllResponseHeaders(&headers); MY_LOGV(StringPrintf("response headers: %s", headers.c_str()).c_str()); std::string contentType; request->GetResponseHeaderByName("Content-Type", &contentType); #ifndef ANDROID_DEFAULT_CODE MY_LOGI(StringPrintf("contentType org=%s", contentType.c_str()).c_str()); size_t pos = contentType.find(';'); if (pos != std::string::npos) contentType.erase(pos);//Remove parameters from content type MY_LOGI(StringPrintf("contentType now=%s", contentType.c_str()).c_str()); #endif mOwner->onConnectionEstablished( request->GetExpectedContentSize(), contentType.c_str()); }
status_t ParamsManager:: setParameters(CameraParameters const& params) { IParamsManager::showParameters(params.flatten()); // status_t status = OK; bool bIsSceneChanged = false; Size oldPrvSize, tmpPrvSize, newPrvSize; Size oldPicSize, newPicSize; // // (1) Check to see if new parameters are valid or not. if ( OK != (status = checkParams(params)) ) { MY_LOGE("checkParams() return %d", status); return status; } // (2) Check to see if Scene Changes or not. MY_LOGD("%d: +", getOpenId()); RWLock::AutoWLock _lock(mRWLock); MY_LOGD("AutoWLock"); // char const*const pOldScene = mParameters.get(CameraParameters::KEY_SCENE_MODE); char const*const pNewScene = params.get(CameraParameters::KEY_SCENE_MODE); if ( 0 != ::strcmp(pOldScene, pNewScene) ) { // scene mode has changed MY_LOGD("Scene change: %s -> %s", pOldScene, pNewScene); bIsSceneChanged = true; } // // (3.1) Check to see if Preview Size Changes or not. Get old preview size mParameters.getPreviewSize(&oldPrvSize.width, &oldPrvSize.height); params.getPreviewSize(&tmpPrvSize.width, &tmpPrvSize.height); // (3.2) Get old&new picture size mParameters.getPictureSize(&oldPicSize.width, &oldPicSize.height); params.getPictureSize(&newPicSize.width, &newPicSize.height); // (4) Update Parameter mParameters = params; if ( bIsSceneChanged ) { if ( ! updateSceneAndParams() ) { status = BAD_VALUE; } } // (5) Update Parameter: preview size updatePreviewSize(); // (6) Update FOV according to picture size MY_LOGI("picSZ(%d,%d)->(%d,%d)",oldPicSize.width,oldPicSize.height,newPicSize.width,newPicSize.height); if(oldPicSize.width != newPicSize.width || oldPicSize.height != newPicSize.height) { updateFov(newPicSize); } // (3.2) Check to see if Preview Size Changes or not. Get new preview size mParameters.getPreviewSize(&newPrvSize.width, &newPrvSize.height); if ( oldPrvSize.width != newPrvSize.width || oldPrvSize.height != newPrvSize.height ) { MY_LOGD( "Preview Size change: %dx%d/%dx%d -> (%dx%d)", oldPrvSize.width, oldPrvSize.height, tmpPrvSize.width, tmpPrvSize.height, newPrvSize.width, newPrvSize.height ); } // MY_LOGD("-"); return status; }
MBOOL Mhal_facebeauty:: onCmd_capture() { MBOOL ret = MFALSE; MINT32 g_BufWidth; MINT32 g_BufHeight; if((mShotParam.mi4PostviewWidth*3) == (mShotParam.mi4PostviewHeight*4)) { g_BufWidth = 320; g_BufHeight = 240; } else if((mShotParam.mi4PostviewWidth*9) == (mShotParam.mi4PostviewHeight*16)) { g_BufWidth = 320; g_BufHeight = 180; } else if((mShotParam.mi4PostviewWidth*3) == (mShotParam.mi4PostviewHeight*5)) { g_BufWidth = 320; g_BufHeight = 192; } else { g_BufWidth = 320; if(mShotParam.mi4PostviewWidth != 0) g_BufHeight = 320 * mShotParam.mi4PostviewHeight/mShotParam.mi4PostviewWidth; else g_BufHeight = 180; } MY_LOGD("[onCmd_capture] Postview %dx%d -> Buf %dx%d\n",mShotParam.mi4PostviewWidth, mShotParam.mi4PostviewHeight, g_BufWidth, g_BufHeight); for(int i=0;i<FBmetadata.number_of_faces;i++) { FBmetadata.faces[i].rect[0] = ((FBmetadata.faces[i].rect[0] + 1000) * g_BufWidth) / 2000; FBmetadata.faces[i].rect[1] = ((FBmetadata.faces[i].rect[1] + 1000) * g_BufHeight) / 2000; FBmetadata.faces[i].rect[2] = ((FBmetadata.faces[i].rect[2] + 1000) * g_BufWidth) / 2000; FBmetadata.faces[i].rect[3] = ((FBmetadata.faces[i].rect[3] + 1000) * g_BufHeight) / 2000; int face_size = FBmetadata.faces[i].rect[2] - FBmetadata.faces[i].rect[0]; if(face_size >= 30) { int zoom_size; zoom_size = face_size/15; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= g_BufWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= g_BufHeight-1)) { zoom_size = face_size/12; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= g_BufWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= g_BufHeight-1)) { zoom_size = face_size/10; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= g_BufWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= g_BufHeight-1)) { zoom_size = face_size/8; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= g_BufWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= g_BufHeight-1)) { zoom_size = face_size/7; if( (FBmetadata.faces[i].rect[0] - zoom_size >= 0) && (FBmetadata.faces[i].rect[1] - zoom_size >= 0) && (FBmetadata.faces[i].rect[2] + zoom_size <= g_BufWidth -1) && (FBmetadata.faces[i].rect[3] + zoom_size <= g_BufHeight-1)) { ; } else { zoom_size = face_size/8; } } else { zoom_size = face_size/10; } } else { zoom_size = face_size/12; } } else { zoom_size = face_size/15; } FBmetadata.faces[i].rect[0] -= zoom_size; FBmetadata.faces[i].rect[1] -= zoom_size; FBmetadata.faces[i].rect[2] += zoom_size; FBmetadata.faces[i].rect[3] += zoom_size; } } MY_LOGI("[onCmd_capture] After FBFaceInfo num %d left %d top %d right %d button %d pose %d \n",i,FBmetadata.faces[i].rect[0],FBmetadata.faces[i].rect[1],FBmetadata.faces[i].rect[2],FBmetadata.faces[i].rect[3],MTKPoseInfo[i].rip_dir); } sem_init(&semMemoryDone, 0, 0); sem_init(&semFBthread, 0, 0); pthread_create(&threadFB, NULL, FBCapture, NULL); sem_init(&semUtilitythread, 0, 0); pthread_create(&threadUtility, NULL, FBUtility, NULL); sem_wait(&semFBthread); ret = createFBJpegImg(mpSource,mu4W_yuv,mu4H_yuv,0); if ( ! ret ) { goto lbExit; } //------------------ Sava test ----------------// #ifdef BanchMark char szFileName[100]; MUINT32 FDInfo[100]={0}; MUINT32* htable=(MUINT32*)msFaceBeautyResultInfo.PCAHTable; int i=0; for(i=0;i<FBmetadata.number_of_faces;i++) { FDInfo[i*4] = FBmetadata.faces[i].rect[0]; FDInfo[i*4+1] = FBmetadata.faces[i].rect[1]; FDInfo[i*4+2] = FBmetadata.faces[i].rect[2]-FBmetadata.faces[i].rect[0]; FDInfo[i*4+3] = MTKPoseInfo[i].rip_dir; MY_LOGI("[FACEINFO] x %d y %d w %d",FBmetadata.faces[i].rect[0],FBmetadata.faces[i].rect[1],FBmetadata.faces[i].rect[2]); } ::sprintf(szFileName, "/sdcard/DCIM/Camera/%s_H_%d_%d.txt", "FDinfo", *htable,capturecount); saveBufToFile(szFileName, (MUINT8*)&FDInfo, 100 * 4); MY_LOGI("[FACEINFO] Save File done"); #endif //------------------ Sava test ----------------// // Force to handle done even if there is any error before. //to do handleCaptureDone(); ret = MTRUE; lbExit: releaseBufs(); pthread_join(threadFB, NULL); UtilityStatus = 0; sem_post(&semUtilitythread); pthread_join(threadUtility, NULL); CPTLog(Event_FcaeBeautyShot, CPTFlagEnd); CPTLog(Event_FBShot_Utility, CPTFlagEnd); #if (FB_PROFILE_CAPTURE) DbgTmr.print("FBProfiling:: Done"); #endif return ret; }