From ffb52fd75656a5e2497376a0f41e876ca19baaf7 Mon Sep 17 00:00:00 2001 From: zhonglufu Date: Wed, 26 Jun 2024 16:32:10 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=86=E5=B8=83=E5=BC=8F=E7=9B=B8?= =?UTF-8?q?=E6=9C=BACFI=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhonglufu --- .../callback/dcamera_sink_callback_stub.cpp | 9 ++++- .../callback/dcamera_source_callback_stub.cpp | 15 +++++++- .../distributed_camera_sink_stub.cpp | 31 +++++++++++++++- .../dcamera_sink_data_process.cpp | 2 +- .../distributed_camera_source_service.cpp | 2 +- .../distributed_camera_source_stub.cpp | 17 ++++++++- .../dcamera_source_dev.cpp | 20 ++++++++-- .../dcamera_stream_data_process_producer.cpp | 4 +- .../base/ifeeding_smoother.cpp | 2 +- .../dcamera_source_capture_state.cpp | 31 +++++++++++++++- .../dcamera_source_config_stream_state.cpp | 37 ++++++++++++++++++- .../dcamera_source_init_state.cpp | 13 ++++++- .../dcamera_source_opened_state.cpp | 31 +++++++++++++++- .../dcamera_source_regist_state.cpp | 25 ++++++++++++- .../channel/src/dcamera_softbus_session.cpp | 17 ++++++--- .../src/pipeline/dcamera_pipeline_source.cpp | 2 +- .../decoder/decode_data_process.cpp | 2 +- .../decoder/decode_data_process_common.cpp | 4 +- 18 files changed, 228 insertions(+), 36 deletions(-) diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp index 8d32f64d..7944df7c 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp @@ -46,8 +46,13 @@ int32_t DCameraSinkCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel &d return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } - auto memberFunc = itFunc->second; - return (this->*memberFunc)(data, reply); + switch (code) { + case NOTIFY_RESOURCEINFO: + return OnNotifyResourceInfoInner(data, reply); + default: + break; + } + return DCAMERA_NOT_FOUND; } int32_t DCameraSinkCallbackStub::OnNotifyResourceInfoInner(MessageParcel &data, MessageParcel &reply) diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp index d7d5fa64..2318b15d 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp @@ -49,8 +49,19 @@ int32_t DCameraSourceCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } - auto memberFunc = itFunc->second; - return (this->*memberFunc)(data, reply); + switch (code) { + case NOTIFY_REG_RESULT: + return NotifyRegResultInner(data, reply); + case NOTIFY_UNREG_RESULT: + return NotifyUnregResultInner(data, reply); + case NOTIFY_STATE_CHANGED: + return OnHardwareStateChangedInner(data, reply); + case NOTIFY_DATASYNC_TRIGGER: + return OnDataSyncTriggerInner(data, reply); + default: + break; + } + return DCAMERA_NOT_FOUND; } int32_t DCameraSourceCallbackStub::NotifyRegResultInner(MessageParcel &data, MessageParcel &reply) diff --git a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp index 4c208ecd..dbbcefb3 100644 --- a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp +++ b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp @@ -78,8 +78,35 @@ int32_t DistributedCameraSinkStub::OnRemoteRequest(uint32_t code, MessageParcel return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } - auto memberFunc = itFunc->second; - return (this->*memberFunc)(data, reply); + switch (code) { + case static_cast(IDCameraSinkInterfaceCode::INIT_SINK): + return InitSinkInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::RELEASE_SINK): + return ReleaseSinkInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::SUBSCRIBE_LOCAL_HARDWARE): + return SubscribeLocalHardwareInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::UNSUBSCRIBE_LOCAL_HARDWARE): + return UnsubscribeLocalHardwareInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::STOP_CAPTURE): + return StopCaptureInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::CHANNEL_NEG): + return ChannelNegInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::GET_CAMERA_INFO): + return GetCameraInfoInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::OPEN_CHANNEL): + return OpenChannelInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::CLOSE_CHANNEL): + return CloseChannelInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::PAUSE_DISTRIBUTED_HARDWARE): + return PauseDistributedHardwareInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::RESUME_DISTRIBUTED_HARDWARE): + return ResumeDistributedHardwareInner(data, reply); + case static_cast(IDCameraSinkInterfaceCode::STOP_DISTRIBUTED_HARDWARE): + return StopDistributedHardwareInner(data, reply); + default: + break; + } + return DCAMERA_NOT_FOUND; } int32_t DistributedCameraSinkStub::InitSinkInner(MessageParcel &data, MessageParcel &reply) diff --git a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_data_process.cpp b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_data_process.cpp index ff5da5bb..c63985e1 100644 --- a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_data_process.cpp +++ b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_data_process.cpp @@ -49,7 +49,7 @@ DCameraSinkDataProcess::~DCameraSinkDataProcess() void DCameraSinkDataProcess::Init() { DHLOGI("DCameraSinkDataProcess Init dhId: %{public}s", GetAnonyString(dhId_).c_str()); - eventThread_ = std::thread(&DCameraSinkDataProcess::StartEventHandler, this); + eventThread_ = std::thread([this]() { this->StartEventHandler(); }); std::unique_lock lock(eventMutex_); eventCon_.wait(lock, [this] { return eventHandler_ != nullptr; diff --git a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp index c3eb3186..686964a6 100644 --- a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp +++ b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_service.cpp @@ -82,7 +82,7 @@ bool DistributedCameraSourceService::Init() listener_ = std::make_shared(); if (!isHicollieRunning_.load()) { isHicollieRunning_.store(true); - hicollieThread_ = std::thread(&DistributedCameraSourceService::StartHicollieThread, this); + hicollieThread_ = std::thread([this]() { this->StartHicollieThread(); }); } DHLOGI("DistributedCameraSourceService init success"); return true; diff --git a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp index e93b6e97..26a2c77f 100644 --- a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp +++ b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp @@ -65,8 +65,21 @@ int32_t DistributedCameraSourceStub::OnRemoteRequest(uint32_t code, MessageParce return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } - auto memberFunc = itFunc->second; - return (this->*memberFunc)(data, reply); + switch (code) { + case static_cast(IDCameraSourceInterfaceCode::INIT_SOURCE): + return InitSourceInner(data, reply); + case static_cast(IDCameraSourceInterfaceCode::RELEASE_SOURCE): + return ReleaseSourceInner(data, reply); + case static_cast(IDCameraSourceInterfaceCode::REGISTER_DISTRIBUTED_HARDWARE): + return RegisterDistributedHardwareInner(data, reply); + case static_cast(IDCameraSourceInterfaceCode::UNREGISTER_DISTRIBUTED_HARDWARE): + return UnregisterDistributedHardwareInner(data, reply); + case static_cast(IDCameraSourceInterfaceCode::CAMERA_NOTIFY): + return DCameraNotifyInner(data, reply); + default: + break; + } + return DCAMERA_NOT_FOUND; } int32_t DistributedCameraSourceStub::InitSourceInner(MessageParcel &data, MessageParcel &reply) diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp index ca1d5e04..597328b5 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp @@ -710,9 +710,23 @@ void DCameraSourceDev::NotifyResult(DCAMERA_EVENT eventType, DCameraSourceEvent& return; } - auto memberFunc = itFunc->second; - (this->*memberFunc)(eventType, event, result); - return; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + case DCAMERA_EVENT_UNREGIST: + NotifyRegisterResult(eventType, event, result); + break; + case DCAMERA_EVENT_OPEN: + case DCAMERA_EVENT_CLOSE: + case DCAMERA_EVENT_CONFIG_STREAMS: + case DCAMERA_EVENT_RELEASE_STREAMS: + case DCAMERA_EVENT_START_CAPTURE: + case DCAMERA_EVENT_STOP_CAPTURE: + case DCAMERA_EVENT_UPDATE_SETTINGS: + NotifyHalResult(eventType, event, result); + break; + default: + break; + } } void DCameraSourceDev::NotifyRegisterResult(DCAMERA_EVENT eventType, DCameraSourceEvent& event, int32_t result) diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_stream_data_process_producer.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_stream_data_process_producer.cpp index a9f9253d..68f48271 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_stream_data_process_producer.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_stream_data_process_producer.cpp @@ -62,7 +62,7 @@ void DCameraStreamDataProcessProducer::Start() } state_ = DCAMERA_PRODUCER_STATE_START; if (streamType_ == CONTINUOUS_FRAME) { - eventThread_ = std::thread(&DCameraStreamDataProcessProducer::StartEvent, this); + eventThread_ = std::thread([this]() { this->StartEvent(); }); std::unique_lock lock(eventMutex_); eventCon_.wait(lock, [this] { return eventHandler_ != nullptr; @@ -72,7 +72,7 @@ void DCameraStreamDataProcessProducer::Start() smoother_->RegisterListener(smootherListener_); smoother_->StartSmooth(); } else { - producerThread_ = std::thread(&DCameraStreamDataProcessProducer::LooperSnapShot, this); + producerThread_ = std::thread([this]() { this->LooperSnapShot(); }); } } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/feedingsmoother/base/ifeeding_smoother.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/feedingsmoother/base/ifeeding_smoother.cpp index 620db87f..1aeff239 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/feedingsmoother/base/ifeeding_smoother.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/feedingsmoother/base/ifeeding_smoother.cpp @@ -61,7 +61,7 @@ int32_t IFeedingSmoother::StartSmooth() } InitTimeStatistician(); PrepareSmooth(); - smoothThread_ = std::thread(&IFeedingSmoother::LooperSmooth, this); + smoothThread_ = std::thread([this]() { this->LooperSmooth(); }); return SMOOTH_SUCCESS; } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp index e908cca4..e63ef311 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp @@ -44,8 +44,35 @@ int32_t DCameraSourceCaptureState::Execute(std::shared_ptr& ca return DCAMERA_WRONG_STATE; } - auto memberFunc = itFunc->second; - int32_t ret = (this->*memberFunc)(camDev, event); + int32_t ret = DCAMERA_NOT_FOUND; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + ret = DoRegisterTask(camDev, event); + break; + case DCAMERA_EVENT_UNREGIST: + ret = DoUnregisterTask(camDev, event); + break; + case DCAMERA_EVENT_OPEN: + ret = DoOpenTask(camDev, event); + break; + case DCAMERA_EVENT_CLOSE: + ret = DoCloseTask(camDev, event); + break; + case DCAMERA_EVENT_START_CAPTURE: + ret = DoStartCaptureTask(camDev, event); + break; + case DCAMERA_EVENT_STOP_CAPTURE: + ret = DoStopCaptureTask(camDev, event); + break; + case DCAMERA_EVENT_UPDATE_SETTINGS: + ret = DoUpdateSettingsTask(camDev, event); + break; + case DCAMERA_EVENT_NOFIFY: + ret = DoEventNofityTask(camDev, event); + break; + default: + break; + } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceCaptureState execute %{public}d failed, ret: %{public}d", eventType, ret); } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp index 4a67d04e..4aa91fc7 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp @@ -46,8 +46,41 @@ int32_t DCameraSourceConfigStreamState::Execute(std::shared_ptrsecond; - int32_t ret = (this->*memberFunc)(camDev, event); + int32_t ret = DCAMERA_NOT_FOUND; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + ret = DoRegisterTask(camDev, event); + break; + case DCAMERA_EVENT_UNREGIST: + ret = DoUnregisterTask(camDev, event); + break; + case DCAMERA_EVENT_OPEN: + ret = DoOpenTask(camDev, event); + break; + case DCAMERA_EVENT_CLOSE: + ret = DoCloseTask(camDev, event); + break; + case DCAMERA_EVENT_CONFIG_STREAMS: + ret = DoConfigStreamsTask(camDev, event); + break; + case DCAMERA_EVENT_RELEASE_STREAMS: + ret = DoReleaseStreamsTask(camDev, event); + break; + case DCAMERA_EVENT_START_CAPTURE: + ret = DoStartCaptureTask(camDev, event); + break; + case DCAMERA_EVENT_STOP_CAPTURE: + ret = DoStopCaptureTask(camDev, event); + break; + case DCAMERA_EVENT_UPDATE_SETTINGS: + ret = DoUpdateSettingsTask(camDev, event); + break; + case DCAMERA_EVENT_NOFIFY: + ret = DoEventNofityTask(camDev, event); + break; + default: + break; + } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceConfigStreamState execute %{public}d failed, ret: %{public}d", eventType, ret); } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp index df4a5d5d..81f19e01 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp @@ -38,8 +38,17 @@ int32_t DCameraSourceInitState::Execute(std::shared_ptr& camDe return DCAMERA_WRONG_STATE; } - auto memberFunc = itFunc->second; - int32_t ret = (this->*memberFunc)(camDev, event); + int32_t ret = DCAMERA_NOT_FOUND; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + ret = DoRegisterTask(camDev, event); + break; + case DCAMERA_EVENT_UNREGIST: + ret = DoUnregisterTask(camDev, event); + break; + default: + break; + } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceInitState execute %{public}d failed, ret: %{public}d", eventType, ret); } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp index eae218e3..0c5e975a 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp @@ -44,8 +44,35 @@ int32_t DCameraSourceOpenedState::Execute(std::shared_ptr& cam return DCAMERA_WRONG_STATE; } - auto memberFunc = itFunc->second; - int32_t ret = (this->*memberFunc)(camDev, event); + int32_t ret = DCAMERA_NOT_FOUND; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + ret = DoRegisterTask(camDev, event); + break; + case DCAMERA_EVENT_UNREGIST: + ret = DoUnregisterTask(camDev, event); + break; + case DCAMERA_EVENT_OPEN: + ret = DoOpenTask(camDev, event); + break; + case DCAMERA_EVENT_CLOSE: + ret = DoCloseTask(camDev, event); + break; + case DCAMERA_EVENT_CONFIG_STREAMS: + ret = DoConfigStreamsTask(camDev, event); + break; + case DCAMERA_EVENT_RELEASE_STREAMS: + ret = DoReleaseStreamsTask(camDev, event); + break; + case DCAMERA_EVENT_UPDATE_SETTINGS: + ret = DoUpdateSettingsTask(camDev, event); + break; + case DCAMERA_EVENT_NOFIFY: + ret = DoEventNofityTask(camDev, event); + break; + default: + break; + } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceOpenedState execute %{public}d failed, ret: %{public}d", eventType, ret); } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp index 45329404..1970ada2 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp @@ -42,8 +42,29 @@ int32_t DCameraSourceRegistState::Execute(std::shared_ptr& cam return DCAMERA_WRONG_STATE; } - auto memberFunc = itFunc->second; - int32_t ret = (this->*memberFunc)(camDev, event); + int32_t ret = DCAMERA_NOT_FOUND; + switch (eventType) { + case DCAMERA_EVENT_REGIST: + ret = DoRegisterTask(camDev, event); + break; + case DCAMERA_EVENT_UNREGIST: + ret = DoUnregisterTask(camDev, event); + break; + case DCAMERA_EVENT_OPEN: + ret = DoOpenTask(camDev, event); + break; + case DCAMERA_EVENT_CLOSE: + ret = DoCloseTask(camDev, event); + break; + case DCAMERA_EVENT_NOFIFY: + ret = DoEventNofityTask(camDev, event); + break; + case DCAMERA_EVENT_GET_FULLCAPS: + ret = DoGetFullCaps(camDev, event); + break; + default: + break; + } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceRegistState execute %{public}d failed, ret: %{public}d", eventType, ret); } diff --git a/services/channel/src/dcamera_softbus_session.cpp b/services/channel/src/dcamera_softbus_session.cpp index 4f2d8deb..6d2329b8 100644 --- a/services/channel/src/dcamera_softbus_session.cpp +++ b/services/channel/src/dcamera_softbus_session.cpp @@ -296,11 +296,16 @@ int32_t DCameraSoftbusSession::SendData(DCameraSessionMode mode, std::shared_ptr return DCAMERA_NOT_FOUND; } auto memberFunc = itFunc->second; - if (mode == DCAMERA_SESSION_MODE_VIDEO) { - return (this->*memberFunc)(buffer); + switch (mode) { + case DCAMERA_SESSION_MODE_VIDEO: + return SendStream(buffer); + case DCAMERA_SESSION_MODE_CTRL: + case DCAMERA_SESSION_MODE_JPEG: + return UnPackSendData(buffer, memberFunc); + default: + break; } - - return UnPackSendData(buffer, memberFunc); + return DCAMERA_NOT_FOUND; } int32_t DCameraSoftbusSession::UnPackSendData(std::shared_ptr& buffer, DCameraSendFuc memberFunc) @@ -321,7 +326,7 @@ int32_t DCameraSoftbusSession::UnPackSendData(std::shared_ptr& buffe "peerSess: %{public}s", ret, mySessionName_.c_str(), peerSessionName_.c_str()); return ret; } - return (this->*memberFunc)(unpackData); + return SendBytes(unpackData); } uint32_t offset = 0; while (totalLen > offset) { @@ -339,7 +344,7 @@ int32_t DCameraSoftbusSession::UnPackSendData(std::shared_ptr& buffe "%{public}s", ret, mySessionName_.c_str(), peerSessionName_.c_str()); return ret; } - ret = (this->*memberFunc)(unpackData); + ret = SendBytes(unpackData); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusSession sendData failed, ret: %{public}d, sess: %{public}s peerSess: %{public}s", ret, mySessionName_.c_str(), peerSessionName_.c_str()); diff --git a/services/data_process/src/pipeline/dcamera_pipeline_source.cpp b/services/data_process/src/pipeline/dcamera_pipeline_source.cpp index f9a3366d..387f102a 100644 --- a/services/data_process/src/pipeline/dcamera_pipeline_source.cpp +++ b/services/data_process/src/pipeline/dcamera_pipeline_source.cpp @@ -84,7 +84,7 @@ bool DCameraPipelineSource::IsInRange(const VideoConfigParams& curConfig) void DCameraPipelineSource::InitDCameraPipEvent() { DHLOGD("Init source DCamera pipeline event to asynchronously process data."); - eventThread_ = std::thread(&DCameraPipelineSource::StartEventHandler, this); + eventThread_ = std::thread([this]() { this->StartEventHandler(); }); std::unique_lock lock(eventMutex_); eventCon_.wait(lock, [this] { return pipeEventHandler_ != nullptr; diff --git a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp index 7129d857..4e9cc926 100644 --- a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp +++ b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp @@ -95,7 +95,7 @@ bool DecodeDataProcess::IsConvertible(const VideoConfigParams& sourceConfig, con void DecodeDataProcess::InitCodecEvent() { DHLOGD("Init DecodeNode eventBus, and add handler for it."); - eventThread_ = std::thread(&DecodeDataProcess::StartEventHandler, this); + eventThread_ = std::thread([this]() { this->StartEventHandler(); }); std::unique_lock lock(eventMutex_); eventCon_.wait(lock, [this] { return decEventHandler_ != nullptr; diff --git a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process_common.cpp b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process_common.cpp index 8e4abf45..9fb3c124 100644 --- a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process_common.cpp +++ b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process_common.cpp @@ -95,7 +95,7 @@ bool DecodeDataProcess::IsConvertible(const VideoConfigParams& sourceConfig, con void DecodeDataProcess::InitCodecEvent() { DHLOGD("Init DecodeNode eventBus, and add handler for it."); - eventThread_ = std::thread(&DecodeDataProcess::StartEventHandler, this); + eventThread_ = std::thread([this]() { this->StartEventHandler(); }); std::unique_lock lock(eventMutex_); eventCon_.wait(lock, [this] { return decEventHandler_ != nullptr; @@ -238,7 +238,7 @@ int32_t DecodeDataProcess::SetDecoderOutputSurface() if (ret != GSERROR_OK || decodeConsumerSurface_ == nullptr) { DHLOGE("Set Usage failed."); } - + decodeSurfaceListener_ = new DecodeSurfaceListener(decodeConsumerSurface_, shared_from_this()); if (decodeConsumerSurface_->RegisterConsumerListener(decodeSurfaceListener_) != SURFACE_ERROR_OK) { -- Gitee From da6abac1e23afb92275ed1c5170d85767efdd575 Mon Sep 17 00:00:00 2001 From: zhonglufu Date: Fri, 28 Jun 2024 14:55:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=86=E5=B8=83=E5=BC=8F=E7=9B=B8?= =?UTF-8?q?=E6=9C=BACFI=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhonglufu --- .../src/callback/dcamera_sink_callback_stub.cpp | 7 ++----- .../src/callback/dcamera_source_callback_stub.cpp | 7 ++----- .../distributedcamera/distributed_camera_sink_stub.cpp | 7 ++----- .../distributed_camera_source_stub.cpp | 7 ++----- .../src/distributedcameramgr/dcamera_source_dev.cpp | 10 +++------- .../dcamerastate/dcamera_source_capture_state.cpp | 10 +++------- .../dcamera_source_config_stream_state.cpp | 10 +++------- .../dcamerastate/dcamera_source_init_state.cpp | 10 +++------- .../dcamerastate/dcamera_source_opened_state.cpp | 10 +++------- .../dcamerastate/dcamera_source_regist_state.cpp | 10 +++------- services/channel/src/dcamera_softbus_session.cpp | 2 +- 11 files changed, 27 insertions(+), 63 deletions(-) diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp index 7944df7c..2df1db9f 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback_stub.cpp @@ -41,16 +41,13 @@ int32_t DCameraSinkCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel &d DHLOGE("remoteDesc is invalid!"); return ERR_INVALID_DATA; } - auto itFunc = memberFuncMap_.find(code); - if (itFunc == memberFuncMap_.end()) { - return IPCObjectStub::OnRemoteRequest(code, data, reply, option); - } switch (code) { case NOTIFY_RESOURCEINFO: return OnNotifyResourceInfoInner(data, reply); default: - break; + DHLOGE("Invalid OnRemoteRequest code=%{public}d", code); + return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } return DCAMERA_NOT_FOUND; } diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp index 2318b15d..79b6b786 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/callback/dcamera_source_callback_stub.cpp @@ -44,10 +44,6 @@ int32_t DCameraSourceCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel DHLOGE("remoteDesc is invalid!"); return ERR_INVALID_DATA; } - auto itFunc = memberFuncMap_.find(code); - if (itFunc == memberFuncMap_.end()) { - return IPCObjectStub::OnRemoteRequest(code, data, reply, option); - } switch (code) { case NOTIFY_REG_RESULT: @@ -59,7 +55,8 @@ int32_t DCameraSourceCallbackStub::OnRemoteRequest(uint32_t code, MessageParcel case NOTIFY_DATASYNC_TRIGGER: return OnDataSyncTriggerInner(data, reply); default: - break; + DHLOGE("Invalid OnRemoteRequest code=%{public}d", code); + return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } return DCAMERA_NOT_FOUND; } diff --git a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp index dbbcefb3..be87cebd 100644 --- a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp +++ b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp @@ -73,10 +73,6 @@ int32_t DistributedCameraSinkStub::OnRemoteRequest(uint32_t code, MessageParcel DHLOGE("remoteDesc is invalid!"); return ERR_INVALID_DATA; } - auto itFunc = memberFuncMap_.find(code); - if (itFunc == memberFuncMap_.end()) { - return IPCObjectStub::OnRemoteRequest(code, data, reply, option); - } switch (code) { case static_cast(IDCameraSinkInterfaceCode::INIT_SINK): @@ -104,7 +100,8 @@ int32_t DistributedCameraSinkStub::OnRemoteRequest(uint32_t code, MessageParcel case static_cast(IDCameraSinkInterfaceCode::STOP_DISTRIBUTED_HARDWARE): return StopDistributedHardwareInner(data, reply); default: - break; + DHLOGE("Invalid OnRemoteRequest code=%{public}d", code); + return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } return DCAMERA_NOT_FOUND; } diff --git a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp index 26a2c77f..41b41e7a 100644 --- a/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp +++ b/services/cameraservice/sourceservice/src/distributedcamera/distributed_camera_source_stub.cpp @@ -60,10 +60,6 @@ int32_t DistributedCameraSourceStub::OnRemoteRequest(uint32_t code, MessageParce DHLOGE("remoteDesc is invalid!"); return ERR_INVALID_DATA; } - auto itFunc = memberFuncMap_.find(code); - if (itFunc == memberFuncMap_.end()) { - return IPCObjectStub::OnRemoteRequest(code, data, reply, option); - } switch (code) { case static_cast(IDCameraSourceInterfaceCode::INIT_SOURCE): @@ -77,7 +73,8 @@ int32_t DistributedCameraSourceStub::OnRemoteRequest(uint32_t code, MessageParce case static_cast(IDCameraSourceInterfaceCode::CAMERA_NOTIFY): return DCameraNotifyInner(data, reply); default: - break; + DHLOGE("Invalid OnRemoteRequest code=%{public}d", code); + return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } return DCAMERA_NOT_FOUND; } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp index 597328b5..e55a1f24 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp @@ -703,13 +703,7 @@ int32_t DCameraSourceDev::CameraEventNotify(std::shared_ptr& event void DCameraSourceDev::NotifyResult(DCAMERA_EVENT eventType, DCameraSourceEvent& event, int32_t result) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("Notify func map not find, execute %{public}d notify, devId: %{public}s dhId: %{public}s", eventType, - GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); - return; - } - + DHLOGI("Notify func map, execute %{public}d notify", eventType); switch (eventType) { case DCAMERA_EVENT_REGIST: case DCAMERA_EVENT_UNREGIST: @@ -725,6 +719,8 @@ void DCameraSourceDev::NotifyResult(DCAMERA_EVENT eventType, DCameraSourceEvent& NotifyHalResult(eventType, event, result); break; default: + DHLOGE("Notify func map not find, execute %{public}d notify, devId: %{public}s dhId: %{public}s", eventType, + GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); break; } } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp index e63ef311..cb79c556 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_capture_state.cpp @@ -38,12 +38,7 @@ DCameraSourceCaptureState::DCameraSourceCaptureState(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("DCameraSourceCaptureState execute %{public}d in wrong state", eventType); - return DCAMERA_WRONG_STATE; - } - + DHLOGI("DCameraSourceCaptureState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: @@ -71,7 +66,8 @@ int32_t DCameraSourceCaptureState::Execute(std::shared_ptr& ca ret = DoEventNofityTask(camDev, event); break; default: - break; + DHLOGE("DCameraSourceCaptureState execute %{public}d in wrong state", eventType); + return DCAMERA_WRONG_STATE; } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceCaptureState execute %{public}d failed, ret: %{public}d", eventType, ret); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp index 4aa91fc7..c76804ef 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_config_stream_state.cpp @@ -40,12 +40,7 @@ DCameraSourceConfigStreamState::DCameraSourceConfigStreamState(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("DCameraSourceConfigStreamState execute %{public}d in wrong state", eventType); - return DCAMERA_WRONG_STATE; - } - + DHLOGI("DCameraSourceConfigStreamState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: @@ -79,7 +74,8 @@ int32_t DCameraSourceConfigStreamState::Execute(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("DCameraSourceInitState execute %{public}d in wrong state", eventType); - return DCAMERA_WRONG_STATE; - } - + DHLOGE("DCameraSourceInitState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: @@ -47,7 +42,8 @@ int32_t DCameraSourceInitState::Execute(std::shared_ptr& camDe ret = DoUnregisterTask(camDev, event); break; default: - break; + DHLOGE("DCameraSourceInitState execute %{public}d in wrong state", eventType); + return DCAMERA_WRONG_STATE; } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceInitState execute %{public}d failed, ret: %{public}d", eventType, ret); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp index 0c5e975a..1703c3ed 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_opened_state.cpp @@ -38,12 +38,7 @@ DCameraSourceOpenedState::DCameraSourceOpenedState(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("DCameraSourceOpenedState execute %{public}d in wrong state", eventType); - return DCAMERA_WRONG_STATE; - } - + DHLOGI("DCameraSourceOpenedState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: @@ -71,7 +66,8 @@ int32_t DCameraSourceOpenedState::Execute(std::shared_ptr& cam ret = DoEventNofityTask(camDev, event); break; default: - break; + DHLOGE("DCameraSourceOpenedState execute %{public}d in wrong state", eventType); + return DCAMERA_WRONG_STATE; } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceOpenedState execute %{public}d failed, ret: %{public}d", eventType, ret); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp index 1970ada2..79d3d7ab 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_regist_state.cpp @@ -36,12 +36,7 @@ DCameraSourceRegistState::DCameraSourceRegistState(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - auto itFunc = memberFuncMap_.find(eventType); - if (itFunc == memberFuncMap_.end()) { - DHLOGE("DCameraSourceRegistState execute %{public}d in wrong state", eventType); - return DCAMERA_WRONG_STATE; - } - + DHLOGI("DCameraSourceRegistState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: @@ -63,7 +58,8 @@ int32_t DCameraSourceRegistState::Execute(std::shared_ptr& cam ret = DoGetFullCaps(camDev, event); break; default: - break; + DHLOGE("DCameraSourceRegistState execute %{public}d in wrong state", eventType); + return DCAMERA_WRONG_STATE; } if (ret != DCAMERA_OK) { DHLOGE("DCameraSourceRegistState execute %{public}d failed, ret: %{public}d", eventType, ret); diff --git a/services/channel/src/dcamera_softbus_session.cpp b/services/channel/src/dcamera_softbus_session.cpp index 6d2329b8..2f54df09 100644 --- a/services/channel/src/dcamera_softbus_session.cpp +++ b/services/channel/src/dcamera_softbus_session.cpp @@ -303,7 +303,7 @@ int32_t DCameraSoftbusSession::SendData(DCameraSessionMode mode, std::shared_ptr case DCAMERA_SESSION_MODE_JPEG: return UnPackSendData(buffer, memberFunc); default: - break; + return UnPackSendData(buffer, memberFunc); } return DCAMERA_NOT_FOUND; } -- Gitee From 0952adda34a31a3855dd8e33607dae1cdcc065a5 Mon Sep 17 00:00:00 2001 From: ZhongLufu Date: Fri, 28 Jun 2024 07:39:18 +0000 Subject: [PATCH 3/3] update dcamera_source_init_state.cpp. Signed-off-by: ZhongLufu --- .../dcamerastate/dcamera_source_init_state.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp index 913ebb5b..ca546074 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerastate/dcamera_source_init_state.cpp @@ -32,7 +32,7 @@ DCameraSourceInitState::DCameraSourceInitState(std::shared_ptr& camDev, DCAMERA_EVENT eventType, DCameraSourceEvent& event) { - DHLOGE("DCameraSourceInitState execute %{public}d", eventType); + DHLOGI("DCameraSourceInitState execute %{public}d", eventType); int32_t ret = DCAMERA_NOT_FOUND; switch (eventType) { case DCAMERA_EVENT_REGIST: -- Gitee