diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index ff420cc6..3d431180 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1989,8 +1989,8 @@ bool CPhoneDevice::StartPushStreaming(IDevice::PHOTO_INFO& photoInfo, const std: } std::string ip = GetIpStr(photoInfo.ip); - VendorCtrl* vendorCtrl = MakeVendorCtrl(photoInfo.vendor, photoInfo.channel, ip, photoInfo.userName, photoInfo.password, netHandle, true); - if (vendorCtrl == NULL) + std::unique_ptr vendorCtrl (MakeVendorCtrl(photoInfo.vendor, photoInfo.channel, ip, photoInfo.userName, photoInfo.password, netHandle, true)); + if (!vendorCtrl) { XYLOG(XYLOG_SEVERITY_ERROR, "Vendor(%u) not Supported CH=%u PR=%X PHOTOID=%u", (uint32_t)photoInfo.vendor, (uint32_t)photoInfo.channel, (unsigned int)photoInfo.preset, photoInfo.photoId); TakePhotoCb(0, photoInfo, "", 0); @@ -2376,13 +2376,20 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector< osds.swap(mOsds); IDevice::PHOTO_INFO localPhotoInfo = mPhotoInfo; - std::thread t([localPhotoInfo, path, pThis, osds, powerCtrlPtr]() mutable - { - pThis->TakePhotoCb(1, localPhotoInfo, "", 0); - pThis->StartPushStreaming(localPhotoInfo, path, osds, powerCtrlPtr); - }); + if(mPhotoInfo.cameraType == CAM_TYPE_PLZ) + { + pThis->TakePhotoCb(1, localPhotoInfo, "", 0); + m_ptzController->AddPhotoCommand(localPhotoInfo, path, osds); + }else + { + std::thread t([localPhotoInfo, path, pThis, osds, powerCtrlPtr]() mutable + { + pThis->TakePhotoCb(1, localPhotoInfo, "", 0); + pThis->StartPushStreaming(localPhotoInfo, path, osds, powerCtrlPtr); + }); - t.detach(); + t.detach(); + } } else if (mPhotoInfo.mediaType == 1 && (mPhotoInfo.cameraType == CAM_TYPE_PLZ)) { diff --git a/app/src/main/cpp/PtzController.cpp b/app/src/main/cpp/PtzController.cpp index 463ed230..c59c53a6 100644 --- a/app/src/main/cpp/PtzController.cpp +++ b/app/src/main/cpp/PtzController.cpp @@ -353,6 +353,10 @@ void PtzController::PtzProc() } if(cmd.photoParams->mPhotoInfo.mediaType == 1) m_pPhoneDevice->TakeVideoWithNetCamera(cmd.photoParams->mPhotoInfo, cmd.photoParams->mPath, cmd.photoParams->mOsds, powerCtrl); + else if ((cmd.photoParams->mPhotoInfo.mediaType == XY_MEDIA_TYPE_STREAM || cmd.photoParams->mPhotoInfo.mediaType == XY_MEDIA_TYPE_STREAM_OFF)) + { + m_pPhoneDevice->StartPushStreaming(cmd.photoParams->mPhotoInfo, cmd.photoParams->mPath, cmd.photoParams->mOsds, powerCtrl); + } else m_pPhoneDevice->TakePhotoWithNetCamera(cmd.photoParams->mPhotoInfo, cmd.photoParams->mPath, cmd.photoParams->mOsds, powerCtrl); state = PTZS_IDLE; diff --git a/app/src/main/cpp/netcamera/VendorCtrl.cpp b/app/src/main/cpp/netcamera/VendorCtrl.cpp index 8d268a12..4552eb5b 100644 --- a/app/src/main/cpp/netcamera/VendorCtrl.cpp +++ b/app/src/main/cpp/netcamera/VendorCtrl.cpp @@ -10,7 +10,7 @@ VendorCtrl::VendorCtrl(const std::string& ip, const std::string& userName, const if (syncTime) { time_t ts = time(NULL); - UpdateTime(ts); +// UpdateTime(ts); } } std::string VendorCtrl::CvtJSONToString(const Json::Value& data)