Android CameraServer:Disconnect

Camera2ClientBase::disconnect()->detachDevice()close/disconnect/detachDevice的关系???Camera3Device::disconnectImpl()CameraDeviceClient::detachDevice()Camera2ClientBase::detachDevice()Camera3Device里HalInterface链接到如下:hardware/interfaces/camera/device/
摘要由CSDN通过智能技术生成

Camera2ClientBase::disconnect()
->detachDevice()

Camera2ClientBase

close/disconnect/detachDevice的关系???
Camera3Device::disconnectImpl()
CameraDeviceClient::detachDevice()
Camera2ClientBase::detachDevice()

Camera3Device里HalInterface链接到如下:
hardware/interfaces/camera/device/3.4/default/CameraDeviceSession.cpp

template <typename TClientBase>                                      
Camera2ClientBase<TClientBase>::~Camera2ClientBase() {
                                         
    ATRACE_CALL();                                      
                                      
    TClientBase::mDestructionStarted = true;                                      
                                      
    disconnect();                                                                                                                                                                                           
                                      
    ALOGI("Closed Camera %s. Client was: %s (PID %d, UID %u)",                                      
            TClientBase::mCameraIdStr.string(),                                      
            String8(TClientBase::mClientPackageName).string(),                                      
            mInitialClientPid, TClientBase::mClientUid);                                      
}   
status_t Camera3Device::waitUntilDrained() {
                                                                                                                                                                   
    ATRACE_CALL();                                                                                                                                                                                          
    Mutex::Autolock il(mInterfaceLock);                                                                                                                                                                     
    nsecs_t maxExpectedDuration = getExpectedInFlightDuration();                                                                                                                                            
    Mutex::Autolock l(mLock);                                                                                                                                                                               
                                                                                                                                                                                                            
    return waitUntilDrainedLocked(maxExpectedDuration);                                                               
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值