From f2e3c103b7d8ea739ac70bd923bcf9ab4bdb2466 Mon Sep 17 00:00:00 2001 From: Aleksandar Kokinovic Date: Mon, 6 Apr 2026 18:01:49 +0200 Subject: [PATCH 1/3] Telemetry integration Summary: Integrating telemetry T2 markers into Rialto Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-16516 --- cmake/Findtelemetry.cmake | 39 +++++ logging/CMakeLists.txt | 45 +++++- logging/include/RialtoLogging.h | 1 + logging/include/RialtoTelemetry.h | 93 +++++++++++ .../common/include/RialtoClientLogging.h | 1 + media/client/ipc/source/ControlIpc.cpp | 18 +++ media/client/ipc/source/IpcClient.cpp | 4 + .../ipc/source/MediaKeysCapabilitiesIpc.cpp | 24 +++ media/client/ipc/source/MediaKeysIpc.cpp | 27 ++++ .../source/MediaPipelineCapabilitiesIpc.cpp | 23 +++ media/client/ipc/source/MediaPipelineIpc.cpp | 151 ++++++++++++++++++ media/client/ipc/source/WebAudioPlayerIpc.cpp | 42 +++++ media/client/main/source/ClientController.cpp | 7 + media/client/main/source/MediaKeys.cpp | 6 + .../main/source/MediaKeysCapabilities.cpp | 8 + .../main/source/MediaPipelineCapabilities.cpp | 9 ++ .../MediaKeysCapabilitiesModuleService.cpp | 8 + .../ipc/source/MediaKeysModuleService.cpp | 8 + .../main/source/MediaKeysCapabilities.cpp | 8 + media/server/service/source/main.cpp | 2 + .../ipc/ipcModuleBase/IpcModuleBase.cpp | 5 +- 21 files changed, 521 insertions(+), 8 deletions(-) create mode 100644 cmake/Findtelemetry.cmake create mode 100644 logging/include/RialtoTelemetry.h diff --git a/cmake/Findtelemetry.cmake b/cmake/Findtelemetry.cmake new file mode 100644 index 000000000..dff59ae0b --- /dev/null +++ b/cmake/Findtelemetry.cmake @@ -0,0 +1,39 @@ +# +# If not stated otherwise in this file or this component's LICENSE file the +# following copyright and licenses apply: +# +# Copyright 2026 Sky UK +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +if(NOT NATIVE_BUILD) + find_path(TELEMETRY_INCLUDE_DIR NAMES telemetry_busmessage_sender.h) + find_library(TELEMETRY_LIBRARY NAMES telemetry_msgsender) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(TELEMETRY DEFAULT_MSG TELEMETRY_LIBRARY TELEMETRY_INCLUDE_DIR) + + mark_as_advanced(TELEMETRY_INCLUDE_DIR TELEMETRY_LIBRARY) + + if(TELEMETRY_FOUND) + set(TELEMETRY_LIBRARIES ${TELEMETRY_LIBRARY}) + set(TELEMETRY_INCLUDE_DIRS ${TELEMETRY_INCLUDE_DIR}) + else() + set(TELEMETRY_LIBRARIES "") + set(TELEMETRY_INCLUDE_DIRS "") + endif() +else() + set(TELEMETRY_INCLUDE_DIRS "") + set(TELEMETRY_LIBRARIES "") +endif() diff --git a/logging/CMakeLists.txt b/logging/CMakeLists.txt index 2c0751238..607b0e67e 100644 --- a/logging/CMakeLists.txt +++ b/logging/CMakeLists.txt @@ -19,6 +19,7 @@ set(RialtoLogging_HEADERS include/RialtoLogging.h + include/RialtoTelemetry.h ) set(RialtoLogging_SOURCES @@ -34,10 +35,28 @@ set(RialtoLogging_INCLUDES ) add_library(RialtoLogging STATIC ${RialtoLogging_HEADERS} ${RialtoLogging_SOURCES}) -target_include_directories(RialtoLogging PUBLIC "$") -set_target_properties(RialtoLogging PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF) -set_target_properties(RialtoLogging PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_include_directories(RialtoLogging PUBLIC + "$" +) +# Telemetry support +if(CMAKE_TELEMETRY_2_0_REQUIRED) + message(STATUS "Telemetry 2.0 support enabled") + target_compile_definitions(RialtoLogging PUBLIC RIALTO_TELEMETRY_SUPPORT=1) + target_include_directories(RialtoLogging PUBLIC ${TELEMETRY_INCLUDE_DIRS}) + target_link_libraries(RialtoLogging PUBLIC ${TELEMETRY_LIBRARIES}) +else() + message(STATUS "Telemetry support disabled (stub mode)") +endif() + +set_target_properties(RialtoLogging PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + POSITION_INDEPENDENT_CODE ON +) + +# EthanLog support find_package(EthanLog) if (EthanLog_FOUND AND RIALTO_ENABLE_ETHAN_LOG) message(STATUS "EthanLog is enabled") @@ -45,9 +64,21 @@ if (EthanLog_FOUND AND RIALTO_ENABLE_ETHAN_LOG) target_include_directories(RialtoEthanLog PUBLIC "$") target_compile_definitions(RialtoEthanLog PRIVATE USE_ETHANLOG) target_link_libraries(RialtoEthanLog PUBLIC EthanLog::EthanLog) - set_target_properties(RialtoEthanLog PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF) - set_target_properties(RialtoEthanLog PROPERTIES POSITION_INDEPENDENT_CODE ON) -else () + if(CMAKE_TELEMETRY_2_0_REQUIRED) + message(STATUS "Telemetry 2.0 support enabled") + target_compile_definitions(RialtoLogging PUBLIC RIALTO_TELEMETRY_SUPPORT=1) + target_include_directories(RialtoLogging PUBLIC ${TELEMETRY_INCLUDE_DIRS}) + target_link_libraries(RialtoLogging PUBLIC ${TELEMETRY_LIBRARIES}) + else() + message(STATUS "Telemetry support disabled (stub mode)") + endif() + set_target_properties(RialtoEthanLog PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + POSITION_INDEPENDENT_CODE ON + ) +else() message(STATUS "EthanLog is disabled") add_library(RialtoEthanLog ALIAS RialtoLogging) -endif () +endif() diff --git a/logging/include/RialtoLogging.h b/logging/include/RialtoLogging.h index ca97a228a..1054bb6c4 100644 --- a/logging/include/RialtoLogging.h +++ b/logging/include/RialtoLogging.h @@ -25,6 +25,7 @@ extern "C" { #endif +#include "RialtoTelemetry.h" #include #include diff --git a/logging/include/RialtoTelemetry.h b/logging/include/RialtoTelemetry.h new file mode 100644 index 000000000..11884d8f5 --- /dev/null +++ b/logging/include/RialtoTelemetry.h @@ -0,0 +1,93 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2026 Sky UK + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef RIALTO_TELEMETRY_H_ +#define RIALTO_TELEMETRY_H_ + +#ifdef RIALTO_TELEMETRY_SUPPORT +#include +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifdef RIALTO_TELEMETRY_SUPPORT + +#define TELEMETRY_INIT(component) \ + do \ + { \ + t2_init(reinterpret_cast(component)); \ + } while (0) + +#define TELEMETRY_UNINIT() \ + do \ + { \ + t2_uninit(); \ + } while (0) + +#define TELEMETRY_EVENT_STRING(marker, value) \ + do \ + { \ + t2_event_s(reinterpret_cast(marker), reinterpret_cast(value)); \ + } while (0) + +#define TELEMETRY_EVENT_FLOAT(marker, value) \ + do \ + { \ + t2_event_f(reinterpret_cast(marker), static_cast(value)); \ + } while (0) + +#define TELEMETRY_EVENT_INT(marker, value) \ + do \ + { \ + t2_event_d(reinterpret_cast(marker), static_cast(value)); \ + } while (0) + +#else /* stub implementation if telemetry not enabled */ + +#define TELEMETRY_INIT(component) \ + do \ + { \ + } while (0) +#define TELEMETRY_UNINIT() \ + do \ + { \ + } while (0) +#define TELEMETRY_EVENT_STRING(m, v) \ + do \ + { \ + } while (0) +#define TELEMETRY_EVENT_FLOAT(m, v) \ + do \ + { \ + } while (0) +#define TELEMETRY_EVENT_INT(m, v) \ + do \ + { \ + } while (0) + +#endif /* RIALTO_TELEMETRY_SUPPORT */ + +#ifdef __cplusplus +} +#endif + +#endif /* RIALTO_TELEMETRY_H_ */ diff --git a/media/client/common/include/RialtoClientLogging.h b/media/client/common/include/RialtoClientLogging.h index 2ca75f2a2..528f4f005 100644 --- a/media/client/common/include/RialtoClientLogging.h +++ b/media/client/common/include/RialtoClientLogging.h @@ -21,6 +21,7 @@ #define RIALTO_CLIENT_LOGGING_H_ #include "RialtoLogging.h" +#include #ifdef __cplusplus extern "C" diff --git a/media/client/ipc/source/ControlIpc.cpp b/media/client/ipc/source/ControlIpc.cpp index 54f68c0e4..53fcc3857 100644 --- a/media/client/ipc/source/ControlIpc.cpp +++ b/media/client/ipc/source/ControlIpc.cpp @@ -115,6 +115,10 @@ bool ControlIpc::getSharedMemory(int32_t &fd, uint32_t &size) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get the shared memory due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get the shared memory due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - ControllIpc", telemetryBuff); return false; } @@ -152,6 +156,10 @@ bool ControlIpc::registerClient() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to register client due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to register client due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - ControllIpc", telemetryBuff); return false; } @@ -181,6 +189,13 @@ bool ControlIpc::registerClient() RIALTO_CLIENT_LOG_ERROR("Server and Client proto schema versions are not compatible. Server schema version: " "%s, Client schema version: %s", kServerSchemaVersion.str().c_str(), kCurrentSchemaVersion.str().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Server and Client proto schema versions are not compatible. Server schema version: " + "%s, Client schema version: %s", + kServerSchemaVersion.str().c_str(), kCurrentSchemaVersion.str().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - ControllIpc", telemetryBuff); + return false; } @@ -260,6 +275,9 @@ void ControlIpc::onPing(const std::shared_ptr &even if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to ack due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to ack due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - ControllIpc", telemetryBuff); } } }; // namespace firebolt::rialto::client diff --git a/media/client/ipc/source/IpcClient.cpp b/media/client/ipc/source/IpcClient.cpp index 57f2f5c60..55d9d08a0 100644 --- a/media/client/ipc/source/IpcClient.cpp +++ b/media/client/ipc/source/IpcClient.cpp @@ -159,6 +159,10 @@ void IpcClient::processIpcThread() if (!m_disconnecting) { RIALTO_CLIENT_LOG_ERROR("The ipc channel unexpectedly disconnected, destroying the channel"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "The ipc channel unexpectedly disconnected, destroying the channel"); + TELEMETRY_EVENT_STRING("Rialto Client - IpcClient", telemetryBuff); // Safe to destroy the ipc objects in the ipc thread as the client has already disconnected. // This ensures the channel is destructed and that all ongoing ipc calls are unblocked. diff --git a/media/client/ipc/source/MediaKeysCapabilitiesIpc.cpp b/media/client/ipc/source/MediaKeysCapabilitiesIpc.cpp index 4227f3848..d167b7027 100644 --- a/media/client/ipc/source/MediaKeysCapabilitiesIpc.cpp +++ b/media/client/ipc/source/MediaKeysCapabilitiesIpc.cpp @@ -36,6 +36,10 @@ std::shared_ptr IMediaKeysCapabilitiesIpcFacto catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys capabilities ipc factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities ipc factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); } return factory; @@ -58,6 +62,10 @@ std::shared_ptr MediaKeysCapabilitiesIpcFactory::getMedi catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys capabilities ipc, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities ipc, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); } MediaKeysCapabilitiesIpcFactory::m_mediaKeysCapabilitiesIpc = mediaKeysCapabilitiesIpc; @@ -115,6 +123,10 @@ std::vector MediaKeysCapabilitiesIpc::getSupportedKeySystems() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get supported key systems due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get supported key systems due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); return {}; } @@ -144,6 +156,10 @@ bool MediaKeysCapabilitiesIpc::supportsKeySystem(const std::string &keySystem) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to supports key system due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to support key systems due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); return false; } @@ -175,6 +191,10 @@ bool MediaKeysCapabilitiesIpc::getSupportedKeySystemVersion(const std::string &k { RIALTO_CLIENT_LOG_ERROR("failed to get supported key system version due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get supported key system versions due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); return false; } version = response.version(); @@ -207,6 +227,10 @@ bool MediaKeysCapabilitiesIpc::isServerCertificateSupported(const std::string &k { RIALTO_CLIENT_LOG_ERROR("failed to check if server certificate is supported due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to check if server certificate is supported due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesIpc", telemetryBuff); return false; } diff --git a/media/client/ipc/source/MediaKeysIpc.cpp b/media/client/ipc/source/MediaKeysIpc.cpp index 761566218..4a80143b7 100644 --- a/media/client/ipc/source/MediaKeysIpc.cpp +++ b/media/client/ipc/source/MediaKeysIpc.cpp @@ -141,6 +141,10 @@ std::shared_ptr IMediaKeysIpcFactory::createFactory() catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys ipc factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys ipc factory, reason: %s", + e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); } return factory; @@ -158,6 +162,9 @@ std::unique_ptr MediaKeysIpcFactory::createMediaKeysIpc(const std::s catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys ipc, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys ipc, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); } return mediaKeysIpc; @@ -257,6 +264,10 @@ bool MediaKeysIpc::createMediaKeys(const std::string &keySystem) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to create media keys due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create media keys due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); return false; } @@ -288,6 +299,10 @@ void MediaKeysIpc::destroyMediaKeys() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to destroy media keys due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to destroy media keys due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); } } @@ -327,6 +342,10 @@ bool MediaKeysIpc::containsKey(int32_t keySessionId, const std::vector if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("containsKey failed due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "containsKey failed due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); return false; } @@ -910,12 +929,20 @@ MediaKeysIpc::getMediaKeyErrorStatusFromResponse(const std::string methodName, if (controller->Failed()) { RIALTO_CLIENT_LOG_ERROR("%s failed due to '%s'", methodName.c_str(), controller->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "%s failed due to '%s'", methodName.c_str(), + controller->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); return MediaKeyErrorStatus::FAIL; } MediaKeyErrorStatus returnStatus = convertMediaKeyErrorStatus(status); if (MediaKeyErrorStatus::OK != returnStatus) { RIALTO_CLIENT_LOG_ERROR("%s failed due to MediaKeyErrorStatus '%s'", methodName.c_str(), toString(returnStatus)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "%s failed due to MediaKeyErrorStatus '%s'", methodName.c_str(), + toString(returnStatus)); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysIpc", telemetryBuff); return returnStatus; } diff --git a/media/client/ipc/source/MediaPipelineCapabilitiesIpc.cpp b/media/client/ipc/source/MediaPipelineCapabilitiesIpc.cpp index 68843ee9a..ba57f8d8f 100644 --- a/media/client/ipc/source/MediaPipelineCapabilitiesIpc.cpp +++ b/media/client/ipc/source/MediaPipelineCapabilitiesIpc.cpp @@ -16,6 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include #include "MediaPipelineCapabilitiesIpc.h" #include "RialtoClientLogging.h" @@ -34,6 +35,10 @@ std::shared_ptr IMediaPipelineCapabilities catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media pipeline capabilities ipc factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media pipeline capabilities ipc factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); } return factory; @@ -51,6 +56,10 @@ std::unique_ptr MediaPipelineCapabilitiesIpcFactory: catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media pipeline capabilities ipc, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media pipeline capabilities ipc, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); } return mediaPipelineCapabilitiesIpc; @@ -108,6 +117,10 @@ std::vector MediaPipelineCapabilitiesIpc::getSupportedMimeTypes(Med if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get supported mime types due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get supported mime types due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); return {}; } @@ -138,6 +151,10 @@ bool MediaPipelineCapabilitiesIpc::isMimeTypeSupported(const std::string &mimeTy { RIALTO_CLIENT_LOG_ERROR("failed to check if mime type '%s' is supported due to '%s'", mimeType.c_str(), ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to check if mime type '%s' is supported due to '%s'", + mimeType.c_str(), ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); return false; } @@ -171,6 +188,9 @@ std::vector MediaPipelineCapabilitiesIpc::getSupportedProperties(Me if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); return std::vector{}; } @@ -198,6 +218,9 @@ bool MediaPipelineCapabilitiesIpc::isVideoMaster(bool &isVideoMaster) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilitiesIpc", telemetryBuff); return false; } diff --git a/media/client/ipc/source/MediaPipelineIpc.cpp b/media/client/ipc/source/MediaPipelineIpc.cpp index ff1b09847..c722f46a1 100644 --- a/media/client/ipc/source/MediaPipelineIpc.cpp +++ b/media/client/ipc/source/MediaPipelineIpc.cpp @@ -209,6 +209,10 @@ bool MediaPipelineIpc::load(MediaType type, const std::string &mimeType, const s if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to load media due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to load media due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -245,6 +249,10 @@ bool MediaPipelineIpc::attachSource(const std::unique_ptrFailed()) { RIALTO_CLIENT_LOG_ERROR("failed to attach source due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to attach source due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -278,6 +286,10 @@ bool MediaPipelineIpc::removeSource(int32_t sourceId) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to remove source due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to remove source due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -308,6 +320,10 @@ bool MediaPipelineIpc::allSourcesAttached() { RIALTO_CLIENT_LOG_ERROR("failed to notify about all sources attached due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to notify about all sources attached due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -342,6 +358,10 @@ bool MediaPipelineIpc::setVideoWindow(uint32_t x, uint32_t y, uint32_t width, ui if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set the video window due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set the video window due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -372,6 +392,9 @@ bool MediaPipelineIpc::play(bool &async) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to play due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to play due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -404,6 +427,9 @@ bool MediaPipelineIpc::pause() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to pause due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to pause due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -434,6 +460,9 @@ bool MediaPipelineIpc::stop() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to stop due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to stop due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -467,6 +496,9 @@ bool MediaPipelineIpc::haveData(MediaSourceStatus status, uint32_t numFrames, ui if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to stop due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to stop due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -498,6 +530,10 @@ bool MediaPipelineIpc::setPosition(int64_t position) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set position due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set position due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -528,6 +564,10 @@ bool MediaPipelineIpc::getPosition(int64_t &position) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get position due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get position due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -561,6 +601,10 @@ bool MediaPipelineIpc::setImmediateOutput(int32_t sourceId, bool immediateOutput if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set immediate-output due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set immediate-output due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -592,6 +636,10 @@ bool MediaPipelineIpc::getImmediateOutput(int32_t sourceId, bool &immediateOutpu if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get immediate-output due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get immediate-output due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } else @@ -627,6 +675,10 @@ bool MediaPipelineIpc::getStats(int32_t sourceId, uint64_t &renderedFrames, uint if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get stats due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get stats due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -660,6 +712,10 @@ bool MediaPipelineIpc::setPlaybackRate(double rate) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set playback rate due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set playback rate due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -689,6 +745,10 @@ bool MediaPipelineIpc::renderFrame() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to render frame due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to render frame due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -722,6 +782,10 @@ bool MediaPipelineIpc::setVolume(double targetVolume, uint32_t volumeDuration, E if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set volume due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set volume due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -752,6 +816,10 @@ bool MediaPipelineIpc::getVolume(double &volume) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get volume due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get volume due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } volume = response.volume(); @@ -785,6 +853,10 @@ bool MediaPipelineIpc::setMute(int32_t sourceId, bool mute) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set mute due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set mute due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -816,6 +888,10 @@ bool MediaPipelineIpc::getMute(std::int32_t sourceId, bool &mute) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get mute due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get mute due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -849,6 +925,10 @@ bool MediaPipelineIpc::setTextTrackIdentifier(const std::string &textTrackIdenti if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set text track identifier due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set text track identifier due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -879,6 +959,10 @@ bool MediaPipelineIpc::getTextTrackIdentifier(std::string &textTrackIdentifier) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get mute due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get mute due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -911,6 +995,10 @@ bool MediaPipelineIpc::setLowLatency(bool lowLatency) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set low-latency due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set low-latency due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -942,6 +1030,10 @@ bool MediaPipelineIpc::setSync(bool sync) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set sync due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set sync due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -972,6 +1064,10 @@ bool MediaPipelineIpc::getSync(bool &sync) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get sync due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get sync due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1005,6 +1101,10 @@ bool MediaPipelineIpc::setSyncOff(bool syncOff) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set sync-off due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set sync-off due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1037,6 +1137,10 @@ bool MediaPipelineIpc::setStreamSyncMode(int32_t sourceId, int32_t streamSyncMod if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set stream-sync-mode due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set stream-sync-mode due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1067,6 +1171,10 @@ bool MediaPipelineIpc::getStreamSyncMode(int32_t &streamSyncMode) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get stream-sync-mode due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get stream-sync-mode due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1101,6 +1209,9 @@ bool MediaPipelineIpc::flush(int32_t sourceId, bool resetTime, bool &async) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to flush due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to flush due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1140,6 +1251,10 @@ bool MediaPipelineIpc::setSourcePosition(int32_t sourceId, int64_t position, boo if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set source position due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set source position due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1172,6 +1287,10 @@ bool MediaPipelineIpc::setSubtitleOffset(int32_t sourceId, int64_t position) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set subtitle offset due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set subtitle offset due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1206,6 +1325,10 @@ bool MediaPipelineIpc::processAudioGap(int64_t position, uint32_t duration, int6 if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to process audio gap due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to process audio gap due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1237,6 +1360,10 @@ bool MediaPipelineIpc::setBufferingLimit(uint32_t limitBufferingMs) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set buffering limit due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set buffering limit due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1267,6 +1394,10 @@ bool MediaPipelineIpc::getBufferingLimit(uint32_t &limitBufferingMs) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get buffering limit due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get buffering limit due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1300,6 +1431,10 @@ bool MediaPipelineIpc::setUseBuffering(bool useBuffering) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to set use buffering due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set use buffering due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1330,6 +1465,10 @@ bool MediaPipelineIpc::getUseBuffering(bool &useBuffering) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to get use buffering due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get use buffering due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1368,6 +1507,10 @@ bool MediaPipelineIpc::switchSource(const std::unique_ptrFailed()) { RIALTO_CLIENT_LOG_ERROR("failed to attach source due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to attach source due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1566,6 +1709,10 @@ bool MediaPipelineIpc::createSession(const VideoRequirements &videoRequirements) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to create session due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create session due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); return false; } @@ -1597,6 +1744,10 @@ void MediaPipelineIpc::destroySession() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("failed to destroy session due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to destroy session due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineIpc", telemetryBuff); } } diff --git a/media/client/ipc/source/WebAudioPlayerIpc.cpp b/media/client/ipc/source/WebAudioPlayerIpc.cpp index d4fafa1c6..f5894fb21 100644 --- a/media/client/ipc/source/WebAudioPlayerIpc.cpp +++ b/media/client/ipc/source/WebAudioPlayerIpc.cpp @@ -178,6 +178,9 @@ bool WebAudioPlayerIpc::play() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to play due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to play due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -207,6 +210,9 @@ bool WebAudioPlayerIpc::pause() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to pause due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to pause due to '%s'", ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -236,6 +242,10 @@ bool WebAudioPlayerIpc::setEos() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to set eos due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set eos due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -272,6 +282,10 @@ bool WebAudioPlayerIpc::getBufferAvailable(uint32_t &availableFrames, if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to get buffer available due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get buffer available due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -307,6 +321,10 @@ bool WebAudioPlayerIpc::getBufferDelay(uint32_t &delayFrames) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to get buffer delay source due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get buffer delay source due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -340,6 +358,10 @@ bool WebAudioPlayerIpc::writeBuffer(const uint32_t numberOfFrames) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to write to the buffer due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to write to the buffer due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -369,6 +391,10 @@ bool WebAudioPlayerIpc::getDeviceInfo(uint32_t &preferredFrames, uint32_t &maxim if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to get device info source due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get device info source due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -403,6 +429,10 @@ bool WebAudioPlayerIpc::setVolume(double volume) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to set volume due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to set volume due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -432,6 +462,10 @@ bool WebAudioPlayerIpc::getVolume(double &volume) if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to get volume due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get volume due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -476,6 +510,10 @@ bool WebAudioPlayerIpc::createWebAudioPlayer(const std::string &audioMimeType, c if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to create web audio player due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create web audio player due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); return false; } @@ -507,6 +545,10 @@ void WebAudioPlayerIpc::destroyWebAudioPlayer() if (ipcController->Failed()) { RIALTO_CLIENT_LOG_ERROR("Failed to destroy web audio player due to '%s'", ipcController->ErrorText().c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to destroy web audio player due to '%s'", + ipcController->ErrorText().c_str()); + TELEMETRY_EVENT_STRING("Rialto Client - WebAudioPlayerIpc", telemetryBuff); } } diff --git a/media/client/main/source/ClientController.cpp b/media/client/main/source/ClientController.cpp index 5f9fe6b6f..ce678b15d 100644 --- a/media/client/main/source/ClientController.cpp +++ b/media/client/main/source/ClientController.cpp @@ -20,6 +20,7 @@ #include "ClientController.h" #include "RialtoClientLogging.h" #include "SharedMemoryHandle.h" +#include #include #include #include @@ -174,6 +175,9 @@ try if (!m_controlIpc->getSharedMemory(shmFd, shmBufferLen)) { RIALTO_CLIENT_LOG_ERROR("Failed to get the shared memory"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to get the shared memory"); + TELEMETRY_EVENT_STRING("Rialto Client - ClientController", telemetryBuff); return false; } m_shmHandle = std::make_shared(shmFd, shmBufferLen); @@ -216,6 +220,9 @@ void ClientController::notifyApplicationState(ApplicationState state) if (!initSharedMemory()) { RIALTO_CLIENT_LOG_ERROR("Could not initalise the shared memory"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Could not initalise the shared memory"); + TELEMETRY_EVENT_STRING("Rialto Client - ClientController", telemetryBuff); return; } // Inform clients after memory initialisation diff --git a/media/client/main/source/MediaKeys.cpp b/media/client/main/source/MediaKeys.cpp index 4d5afa337..45a303777 100644 --- a/media/client/main/source/MediaKeys.cpp +++ b/media/client/main/source/MediaKeys.cpp @@ -44,6 +44,9 @@ std::shared_ptr IMediaKeysFactory::createFactory() catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeys", telemetryBuff); } return factory; @@ -70,6 +73,9 @@ MediaKeysFactory::createMediaKeys(const std::string &keySystem, catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeys", telemetryBuff); } return mediaKeys; diff --git a/media/client/main/source/MediaKeysCapabilities.cpp b/media/client/main/source/MediaKeysCapabilities.cpp index 7ed7bc997..32af9fc55 100644 --- a/media/client/main/source/MediaKeysCapabilities.cpp +++ b/media/client/main/source/MediaKeysCapabilities.cpp @@ -39,6 +39,10 @@ std::shared_ptr IMediaKeysCapabilitiesFactory::cr catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys capabilities factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilities", telemetryBuff); } return factory; @@ -61,6 +65,10 @@ std::shared_ptr MediaKeysCapabilitiesFactory::getMediaKe catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media keys capabilities, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys capabilities, reason: %s", + e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilities", telemetryBuff); } MediaKeysCapabilitiesFactory::m_mediaKeysCapabilities = mediaKeysCapabilities; diff --git a/media/client/main/source/MediaPipelineCapabilities.cpp b/media/client/main/source/MediaPipelineCapabilities.cpp index fdafd2c67..f4ff28e4c 100644 --- a/media/client/main/source/MediaPipelineCapabilities.cpp +++ b/media/client/main/source/MediaPipelineCapabilities.cpp @@ -22,6 +22,7 @@ #include "IMediaPipelineCapabilitiesIpcFactory.h" #include "MediaPipelineCapabilities.h" #include "RialtoClientLogging.h" +#include namespace firebolt::rialto { @@ -36,6 +37,10 @@ std::shared_ptr IMediaPipelineCapabilitiesFac catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media pipeline capabilities factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media pipeline capabilities factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilities", telemetryBuff); } return factory; @@ -52,6 +57,10 @@ std::unique_ptr MediaPipelineCapabilitiesFactory::cr catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the media pipeline capabilities, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media pipeline capabilities, reason: %s", + e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaPipelineCapabilities", telemetryBuff); } return mediaPipelineCapabilities; diff --git a/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp b/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp index b33a2bdf4..9b85589ba 100644 --- a/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp +++ b/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp @@ -39,6 +39,10 @@ std::shared_ptr IMediaKeysCapabiliti { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys capabilities module service factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities module service factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesModuleService", telemetryBuff); } return factory; @@ -56,6 +60,10 @@ MediaKeysCapabilitiesModuleServiceFactory::create(service::ICdmService &cdmServi catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys capabilities module service, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities module service, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilitiesModuleService", telemetryBuff); } return mediaKeysCapabilitiesModule; diff --git a/media/server/ipc/source/MediaKeysModuleService.cpp b/media/server/ipc/source/MediaKeysModuleService.cpp index 6f69d69dd..75f4ae8bb 100644 --- a/media/server/ipc/source/MediaKeysModuleService.cpp +++ b/media/server/ipc/source/MediaKeysModuleService.cpp @@ -131,6 +131,10 @@ std::shared_ptr IMediaKeysModuleServiceFactory:: catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys module service factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys module service factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysModuleService", telemetryBuff); } return factory; @@ -147,6 +151,10 @@ std::shared_ptr MediaKeysModuleServiceFactory::create(s catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys module service, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys module service, reason: %s", + e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysModuleService", telemetryBuff); } return mediaKeysModule; diff --git a/media/server/main/source/MediaKeysCapabilities.cpp b/media/server/main/source/MediaKeysCapabilities.cpp index b22836fb5..b62bf86b5 100644 --- a/media/server/main/source/MediaKeysCapabilities.cpp +++ b/media/server/main/source/MediaKeysCapabilities.cpp @@ -65,6 +65,10 @@ std::shared_ptr IMediaKeysCapabilitiesFactory::cr catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys capabilities factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys capabilities factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilities", telemetryBuff); } return factory; @@ -82,6 +86,10 @@ std::shared_ptr MediaKeysCapabilitiesFactory::getMediaKe catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys capabilities, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), "Failed to create the media keys capabilities, reason: %s", + e.what()); + TELEMETRY_EVENT_STRING("Rialto Client - MediaKeysCapabilities", telemetryBuff); } return mediaKeysCapabilities; diff --git a/media/server/service/source/main.cpp b/media/server/service/source/main.cpp index 94c7e5138..8babad306 100644 --- a/media/server/service/source/main.cpp +++ b/media/server/service/source/main.cpp @@ -23,6 +23,7 @@ #include "IApplicationSessionServer.h" #include "IGstInitialiser.h" #include "RialtoServerLogging.h" +#include "RialtoTelemetry.h" // NOLINT(build/filename_format) @@ -47,6 +48,7 @@ int main(int argc, char *argv[]) RIALTO_SERVER_LOG_WARN("Failed to get git commit ID!"); } + TELEMETRY_INIT("rialto-server"); firebolt::rialto::server::IGstInitialiser::instance().initialise(&argc, &argv); auto appSessionServer = diff --git a/tests/unittests/media/client/ipc/ipcModuleBase/IpcModuleBase.cpp b/tests/unittests/media/client/ipc/ipcModuleBase/IpcModuleBase.cpp index 367367c1b..2c682060e 100644 --- a/tests/unittests/media/client/ipc/ipcModuleBase/IpcModuleBase.cpp +++ b/tests/unittests/media/client/ipc/ipcModuleBase/IpcModuleBase.cpp @@ -86,7 +86,10 @@ void IpcModuleBase::expectIpcApiCallFailure() EXPECT_CALL(*m_blockingClosureMock, wait()).RetiresOnSaturation(); EXPECT_CALL(*m_controllerMock, Failed()).WillOnce(Return(true)).RetiresOnSaturation(); - EXPECT_CALL(*m_controllerMock, ErrorText()).WillOnce(Return("Failed for some reason...")).RetiresOnSaturation(); + EXPECT_CALL(*m_controllerMock, ErrorText()) + .Times(2) + .WillRepeatedly(Return("Failed for some reason...")) + .RetiresOnSaturation(); } void IpcModuleBase::expectIpcApiCallDisconnected() From d966ba46c62b3c887042b630b44c165c7bdbca1e Mon Sep 17 00:00:00 2001 From: Aleksandar Kokinovic Date: Thu, 9 Apr 2026 18:14:39 +0200 Subject: [PATCH 2/3] Telemetry markers for Server Manager Summary: Integrating telemetry T2 markers into Rialto Server Manager Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-16519 --- .../common/source/HealthcheckService.cpp | 5 ++++ .../common/source/SessionServerAppManager.cpp | 29 +++++++++++++++++++ serverManager/ipc/source/Client.cpp | 5 ++++ 3 files changed, 39 insertions(+) diff --git a/serverManager/common/source/HealthcheckService.cpp b/serverManager/common/source/HealthcheckService.cpp index 6a478a64d..9720fc789 100644 --- a/serverManager/common/source/HealthcheckService.cpp +++ b/serverManager/common/source/HealthcheckService.cpp @@ -141,6 +141,11 @@ void HealthcheckService::handleError(int serverId) { RIALTO_SERVER_MANAGER_LOG_WARN( "Max num of failed pings reached for server with id: %d. Starting recovery action", serverId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Max num of failed pings reached for server with id: %d. Starting recovery action", serverId); + TELEMETRY_EVENT_STRING("Rialto Server Manager - HealthcheckService", telemetryBuff); + failedPingsNum = 0; m_sessionServerAppManager.restartServer(serverId); } diff --git a/serverManager/common/source/SessionServerAppManager.cpp b/serverManager/common/source/SessionServerAppManager.cpp index 08b465973..881cb7b37 100644 --- a/serverManager/common/source/SessionServerAppManager.cpp +++ b/serverManager/common/source/SessionServerAppManager.cpp @@ -240,6 +240,10 @@ bool SessionServerAppManager::connectSessionServer(const std::shared_ptrcreateClient(kSessionServer->getServerId(), kSessionServer->getAppManagementSocketName())) @@ -247,6 +251,12 @@ bool SessionServerAppManager::connectSessionServer(const std::shared_ptrgetServerId()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to establish RialtoServerManager - RialtoSessionServer connection for " + "session server with id: %d", + kSessionServer->getServerId()); + TELEMETRY_EVENT_STRING("Rialto Server Manager - SessionServerAppManager", telemetryBuff); kSessionServer->kill(); if (m_healthcheckService) { @@ -307,6 +317,11 @@ bool SessionServerAppManager::changeSessionServerState(const std::string &appNam { RIALTO_SERVER_MANAGER_LOG_ERROR("Change state of %s to %s failed - session server not found.", appName.c_str(), toString(newState)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Change state of %s to %s failed - session server not found.", appName.c_str(), + toString(newState)); + TELEMETRY_EVENT_STRING("Rialto Server Manager - SessionServerAppManager", telemetryBuff); return false; } sessionServer->setExpectedState(newState); @@ -317,6 +332,10 @@ bool SessionServerAppManager::changeSessionServerState(const std::string &appNam if (!m_ipcController->performSetState(sessionServer->getServerId(), newState)) { RIALTO_SERVER_MANAGER_LOG_ERROR("Change state of %s to %s failed.", appName.c_str(), toString(newState)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Change state of %s to %s failed.", appName.c_str(), toString(newState)); + TELEMETRY_EVENT_STRING("Rialto Server Manager - SessionServerAppManager", telemetryBuff); handleStateChangeFailure(sessionServer, newState); return false; } @@ -501,6 +520,11 @@ bool SessionServerAppManager::configureSessionServerWithSocketName(const std::sh { RIALTO_SERVER_MANAGER_LOG_ERROR("Configuration of server with id %d failed - ipc error.", kSessionServer->getServerId()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Configuration of server with id %d failed - ipc error.", + kSessionServer->getServerId()); + TELEMETRY_EVENT_STRING("Rialto Server Manager - SessionServerAppManager", telemetryBuff); return false; } RIALTO_SERVER_MANAGER_LOG_INFO("Configuration of server with id %d succeeded.", kSessionServer->getServerId()); @@ -522,6 +546,11 @@ bool SessionServerAppManager::configureSessionServerWithSocketFd(const std::shar { RIALTO_SERVER_MANAGER_LOG_ERROR("Configuration of server with id %d failed - ipc error.", kSessionServer->getServerId()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Configuration of server with id %d failed - ipc error.", + kSessionServer->getServerId()); + TELEMETRY_EVENT_STRING("Rialto Server Manager - SessionServerAppManager", telemetryBuff); return false; } RIALTO_SERVER_MANAGER_LOG_INFO("Configuration of server with id %d succeeded.", kSessionServer->getServerId()); diff --git a/serverManager/ipc/source/Client.cpp b/serverManager/ipc/source/Client.cpp index c11c0693c..1567f9f73 100644 --- a/serverManager/ipc/source/Client.cpp +++ b/serverManager/ipc/source/Client.cpp @@ -334,6 +334,11 @@ void Client::onDisconnected() const } RIALTO_SERVER_MANAGER_LOG_WARN("Connection to serverId: %d broken, server probably crashed. Starting recovery", m_serverId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Connection to serverId: %d broken, server probably crashed. Starting recovery", + m_serverId); + TELEMETRY_EVENT_STRING("Rialto Server Manager - Client", telemetryBuff); m_sessionServerAppManager->restartServer(m_serverId); } From f0f75b34a1b34c12b9d9e387a495f9af1a1e6091 Mon Sep 17 00:00:00 2001 From: Aleksandar Kokinovic Date: Tue, 14 Apr 2026 11:08:34 +0200 Subject: [PATCH 3/3] Telemetry markers for Rialto Server Summary: Integrating telemetry T2 markers into Rialto Server Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-16518 --- media/client/ipc/source/WebAudioPlayerIpc.cpp | 8 + media/client/main/source/WebAudioPlayer.cpp | 8 + .../gstplayer/source/GstGenericPlayer.cpp | 16 ++ .../gstplayer/source/GstWebAudioPlayer.cpp | 12 ++ .../source/tasks/generic/AttachSamples.cpp | 8 + .../source/tasks/generic/AttachSource.cpp | 4 + .../source/tasks/generic/HandleBusMessage.cpp | 5 + .../generic/ReadShmDataAndAttachSamples.cpp | 8 + .../source/tasks/generic/SetPosition.cpp | 12 ++ .../tasks/generic/SetSourcePosition.cpp | 9 + .../source/tasks/generic/SwitchSource.cpp | 4 + .../tasks/webAudio/HandleBusMessage.cpp | 5 + .../source/ApplicationManagementServer.cpp | 8 + .../ipc/source/ControlModuleService.cpp | 8 + .../MediaKeysCapabilitiesModuleService.cpp | 16 ++ .../ipc/source/MediaKeysModuleService.cpp | 12 ++ ...MediaPipelineCapabilitiesModuleService.cpp | 16 ++ .../ipc/source/MediaPipelineModuleService.cpp | 8 + .../ipc/source/ServerManagerModuleService.cpp | 4 + .../ipc/source/SessionManagementServer.cpp | 20 +++ .../source/WebAudioPlayerModuleService.cpp | 16 ++ media/server/main/source/DataReaderV2.cpp | 8 + media/server/main/source/MediaKeySession.cpp | 40 +++++ .../main/source/MediaKeysServerInternal.cpp | 84 ++++++++++ .../source/MediaPipelineServerInternal.cpp | 16 ++ .../server/main/source/SharedMemoryBuffer.cpp | 4 + .../server/main/source/TextTrackAccessor.cpp | 58 +++++++ media/server/main/source/TextTrackSession.cpp | 4 + .../source/WebAudioPlayerServerInternal.cpp | 28 ++++ media/server/service/source/CdmService.cpp | 113 +++++++++++++ .../service/source/MediaPipelineService.cpp | 156 ++++++++++++++++++ .../service/source/SessionServerManager.cpp | 32 ++++ .../service/source/WebAudioPlayerService.cpp | 44 +++++ 33 files changed, 794 insertions(+) diff --git a/media/client/ipc/source/WebAudioPlayerIpc.cpp b/media/client/ipc/source/WebAudioPlayerIpc.cpp index f5894fb21..9561e5d2e 100644 --- a/media/client/ipc/source/WebAudioPlayerIpc.cpp +++ b/media/client/ipc/source/WebAudioPlayerIpc.cpp @@ -36,6 +36,10 @@ std::shared_ptr IWebAudioPlayerIpcFactory::getFactory catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the web audio player ipc factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player ipc factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerIpc", telemetryBuff); } return factory; @@ -58,6 +62,10 @@ WebAudioPlayerIpcFactory::createWebAudioPlayerIpc(IWebAudioPlayerIpcClient *clie catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the web audio player ipc, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player ipc , reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerIpc", telemetryBuff); } return webAudioPlayerIpc; diff --git a/media/client/main/source/WebAudioPlayer.cpp b/media/client/main/source/WebAudioPlayer.cpp index 70c2b9293..7f45ece13 100644 --- a/media/client/main/source/WebAudioPlayer.cpp +++ b/media/client/main/source/WebAudioPlayer.cpp @@ -41,6 +41,10 @@ std::shared_ptr IWebAudioPlayerFactory::createFactory() catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the web audio player factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayer", telemetryBuff); } return factory; @@ -79,6 +83,10 @@ WebAudioPlayerFactory::createWebAudioPlayer(std::weak_ptr catch (const std::exception &e) { RIALTO_CLIENT_LOG_ERROR("Failed to create the web audio player, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayer", telemetryBuff); } return webAudioPlayer; diff --git a/media/server/gstplayer/source/GstGenericPlayer.cpp b/media/server/gstplayer/source/GstGenericPlayer.cpp index ef9e985b8..d5c2fc1a4 100644 --- a/media/server/gstplayer/source/GstGenericPlayer.cpp +++ b/media/server/gstplayer/source/GstGenericPlayer.cpp @@ -619,6 +619,10 @@ GstGenericPlayer::createAudioAttributes(const std::unique_ptraddProtectionMetadata(gstBuffer, data)) { RIALTO_SERVER_LOG_ERROR("Failed to add protection metadata"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to add protection metadata"); + TELEMETRY_EVENT_STRING("Rialto Server - GstGenericPlayer", telemetryBuff); if (keyId) { m_gstWrapper->gstBufferUnref(keyId); @@ -1698,6 +1706,10 @@ GstStateChangeReturn GstGenericPlayer::changePipelineState(GstState newState) if (!m_context.pipeline) { RIALTO_SERVER_LOG_ERROR("Change state failed - pipeline is nullptr"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Change state failed - pipeline is nullptr"); + TELEMETRY_EVENT_STRING("Rialto Server - GstGenericPlayer", telemetryBuff); if (m_gstPlayerClient) m_gstPlayerClient->notifyPlaybackState(PlaybackState::FAILURE); --m_ongoingStateChangesNumber; @@ -1708,6 +1720,10 @@ GstStateChangeReturn GstGenericPlayer::changePipelineState(GstState newState) if (result == GST_STATE_CHANGE_FAILURE) { RIALTO_SERVER_LOG_ERROR("Change state failed - Gstreamer returned an error"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Change state failed - Gstreamer returned an error"); + TELEMETRY_EVENT_STRING("Rialto Server - GstGenericPlayer", telemetryBuff); if (m_gstPlayerClient) m_gstPlayerClient->notifyPlaybackState(PlaybackState::FAILURE); } diff --git a/media/server/gstplayer/source/GstWebAudioPlayer.cpp b/media/server/gstplayer/source/GstWebAudioPlayer.cpp index 551730e15..9b1de7884 100644 --- a/media/server/gstplayer/source/GstWebAudioPlayer.cpp +++ b/media/server/gstplayer/source/GstWebAudioPlayer.cpp @@ -151,6 +151,10 @@ bool GstWebAudioPlayer::initWebAudioPipeline(const uint32_t priority) if (!m_context.pipeline) { RIALTO_SERVER_LOG_ERROR("Failed to create the webaudiopipeline"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the webaudiopipeline"); + TELEMETRY_EVENT_STRING("Rialto Server - GstWebAudioPlayer", telemetryBuff); return false; } @@ -161,6 +165,10 @@ bool GstWebAudioPlayer::initWebAudioPipeline(const uint32_t priority) if (!m_context.source) { RIALTO_SERVER_LOG_ERROR("Failed to create the appsrc"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the appsrc"); + TELEMETRY_EVENT_STRING("Rialto Server - GstWebAudioPlayer", telemetryBuff); return false; } m_gstWrapper->gstAppSrcSetMaxBytes(GST_APP_SRC(m_context.source), kMaxWebAudioBytes); @@ -439,6 +447,10 @@ bool GstWebAudioPlayer::changePipelineState(GstState newState) if (m_gstWrapper->gstElementSetState(m_context.pipeline, newState) == GST_STATE_CHANGE_FAILURE) { RIALTO_SERVER_LOG_ERROR("Change state failed - Gstreamer returned an error"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Change state failed - Gstreamer returned an error"); + TELEMETRY_EVENT_STRING("Rialto Server - GstWebAudioPlayer", telemetryBuff); if (m_gstPlayerClient) m_gstPlayerClient->notifyState(WebAudioPlayerState::FAILURE); return false; diff --git a/media/server/gstplayer/source/tasks/generic/AttachSamples.cpp b/media/server/gstplayer/source/tasks/generic/AttachSamples.cpp index a9049f44b..b69a3dcd6 100644 --- a/media/server/gstplayer/source/tasks/generic/AttachSamples.cpp +++ b/media/server/gstplayer/source/tasks/generic/AttachSamples.cpp @@ -49,6 +49,10 @@ AttachSamples::AttachSamples(GenericPlayerContext &context, { // Catching error, but continuing as best as we can RIALTO_SERVER_LOG_ERROR("Failed to get the video segment, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to get the video segment, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - AttachSamples", telemetryBuff); } } else if (mediaSegment->getType() == firebolt::rialto::MediaSourceType::AUDIO) @@ -69,6 +73,10 @@ AttachSamples::AttachSamples(GenericPlayerContext &context, { // Catching error, but continuing as best as we can RIALTO_SERVER_LOG_ERROR("Failed to get the audio segment, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to get the audio segment, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - AttachSamples", telemetryBuff); } } else if (mediaSegment->getType() == firebolt::rialto::MediaSourceType::SUBTITLE) diff --git a/media/server/gstplayer/source/tasks/generic/AttachSource.cpp b/media/server/gstplayer/source/tasks/generic/AttachSource.cpp index 8396a4d1b..d2790bce0 100644 --- a/media/server/gstplayer/source/tasks/generic/AttachSource.cpp +++ b/media/server/gstplayer/source/tasks/generic/AttachSource.cpp @@ -75,6 +75,10 @@ void AttachSource::addSource() const if (!caps) { RIALTO_SERVER_LOG_ERROR("Failed to create caps from media source"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create caps from media source"); + TELEMETRY_EVENT_STRING("Rialto Server - AttachSource", telemetryBuff); return; } gchar *capsStr = m_gstWrapper->gstCapsToString(caps); diff --git a/media/server/gstplayer/source/tasks/generic/HandleBusMessage.cpp b/media/server/gstplayer/source/tasks/generic/HandleBusMessage.cpp index 9bb55e116..0af6deae4 100644 --- a/media/server/gstplayer/source/tasks/generic/HandleBusMessage.cpp +++ b/media/server/gstplayer/source/tasks/generic/HandleBusMessage.cpp @@ -230,6 +230,11 @@ void HandleBusMessage::execute() const { RIALTO_SERVER_LOG_ERROR("Error from %s - %d: %s (%s)", GST_OBJECT_NAME(GST_MESSAGE_SRC(m_message)), err->code, err->message, debug); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Error from %s - %d: %s (%s)", GST_OBJECT_NAME(GST_MESSAGE_SRC(m_message)), + err->code, err->message, debug); + TELEMETRY_EVENT_STRING("Rialto Server - HandleBusMessage", telemetryBuff); m_gstPlayerClient->notifyPlaybackState(PlaybackState::FAILURE); } diff --git a/media/server/gstplayer/source/tasks/generic/ReadShmDataAndAttachSamples.cpp b/media/server/gstplayer/source/tasks/generic/ReadShmDataAndAttachSamples.cpp index 1df7213a7..1a307200c 100644 --- a/media/server/gstplayer/source/tasks/generic/ReadShmDataAndAttachSamples.cpp +++ b/media/server/gstplayer/source/tasks/generic/ReadShmDataAndAttachSamples.cpp @@ -67,6 +67,10 @@ void ReadShmDataAndAttachSamples::execute() const catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to get the video segment, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to get the video segment, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - ReadShmDataAndAttachSamples", telemetryBuff); } } else if (mediaSegment->getType() == firebolt::rialto::MediaSourceType::AUDIO) @@ -83,6 +87,10 @@ void ReadShmDataAndAttachSamples::execute() const catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to get the audio segment, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to get the audio segment, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - ReadShmDataAndAttachSamples", telemetryBuff); } } else if (mediaSegment->getType() == firebolt::rialto::MediaSourceType::SUBTITLE) diff --git a/media/server/gstplayer/source/tasks/generic/SetPosition.cpp b/media/server/gstplayer/source/tasks/generic/SetPosition.cpp index db485ddad..6a576c993 100644 --- a/media/server/gstplayer/source/tasks/generic/SetPosition.cpp +++ b/media/server/gstplayer/source/tasks/generic/SetPosition.cpp @@ -46,6 +46,10 @@ void SetPosition::execute() const if (!m_gstPlayerClient) { RIALTO_SERVER_LOG_ERROR("Seek failed - GstPlayerClient is NULL"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Seek failed - GstPlayerClient is NULL"); + TELEMETRY_EVENT_STRING("Rialto Server - SetPosition", telemetryBuff); return; } m_gstPlayerClient->notifyPlaybackState(PlaybackState::SEEKING); @@ -73,6 +77,10 @@ void SetPosition::execute() const if (!m_context.pipeline) { RIALTO_SERVER_LOG_ERROR("Seek failed - pipeline is null"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Seek failed - pipeline is null"); + TELEMETRY_EVENT_STRING("Rialto Server - SetPosition", telemetryBuff); m_gstPlayerClient->notifyPlaybackState(PlaybackState::FAILURE); return; } @@ -81,6 +89,10 @@ void SetPosition::execute() const GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) { RIALTO_SERVER_LOG_ERROR("Seek failed - gstreamer error"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Seek failed - gstreamer error"); + TELEMETRY_EVENT_STRING("Rialto Server - SetPosition", telemetryBuff); m_gstPlayerClient->notifyPlaybackState(PlaybackState::FAILURE); return; } diff --git a/media/server/gstplayer/source/tasks/generic/SetSourcePosition.cpp b/media/server/gstplayer/source/tasks/generic/SetSourcePosition.cpp index eddc9fad9..79f0c92e4 100644 --- a/media/server/gstplayer/source/tasks/generic/SetSourcePosition.cpp +++ b/media/server/gstplayer/source/tasks/generic/SetSourcePosition.cpp @@ -45,6 +45,10 @@ void SetSourcePosition::execute() const if (MediaSourceType::UNKNOWN == m_type) { RIALTO_SERVER_LOG_WARN("failed to set source position - source type is unknown"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set source position - source type is unknown"); + TELEMETRY_EVENT_STRING("Rialto Server - SetSourcePosition", telemetryBuff); return; } @@ -59,6 +63,11 @@ void SetSourcePosition::execute() const { RIALTO_SERVER_LOG_WARN("failed to set source position - %s source is NULL", common::convertMediaSourceType(m_type)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set source position - %s source is NULL", + common::convertMediaSourceType(m_type)); + TELEMETRY_EVENT_STRING("Rialto Server - SetSourcePosition", telemetryBuff); return; } diff --git a/media/server/gstplayer/source/tasks/generic/SwitchSource.cpp b/media/server/gstplayer/source/tasks/generic/SwitchSource.cpp index 22de55f5c..324a791b0 100644 --- a/media/server/gstplayer/source/tasks/generic/SwitchSource.cpp +++ b/media/server/gstplayer/source/tasks/generic/SwitchSource.cpp @@ -41,6 +41,10 @@ void SwitchSource::execute() const if (!m_player.reattachSource(m_source)) { RIALTO_SERVER_LOG_WARN("Switch audio source failed"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Switch audio source failed"); + TELEMETRY_EVENT_STRING("Rialto Server - SwitchSource", telemetryBuff); return; } RIALTO_SERVER_LOG_MIL("%s source switched", common::convertMediaSourceType(m_source->getType())); diff --git a/media/server/gstplayer/source/tasks/webAudio/HandleBusMessage.cpp b/media/server/gstplayer/source/tasks/webAudio/HandleBusMessage.cpp index 12de30447..228ac3f83 100644 --- a/media/server/gstplayer/source/tasks/webAudio/HandleBusMessage.cpp +++ b/media/server/gstplayer/source/tasks/webAudio/HandleBusMessage.cpp @@ -124,6 +124,11 @@ void HandleBusMessage::execute() const RIALTO_SERVER_LOG_ERROR("Error from %s - %d: %s (%s)", GST_OBJECT_NAME(GST_MESSAGE_SRC(m_message)), err->code, err->message, debug); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Error from %s - %d: %s (%s)", GST_OBJECT_NAME(GST_MESSAGE_SRC(m_message)), err->code, + err->message, debug); + TELEMETRY_EVENT_STRING("Rialto Server - HandleBusMessage", telemetryBuff); m_gstPlayerClient->notifyState(WebAudioPlayerState::FAILURE); m_glibWrapper->gFree(debug); diff --git a/media/server/ipc/source/ApplicationManagementServer.cpp b/media/server/ipc/source/ApplicationManagementServer.cpp index dd7db2272..5685f7420 100644 --- a/media/server/ipc/source/ApplicationManagementServer.cpp +++ b/media/server/ipc/source/ApplicationManagementServer.cpp @@ -68,6 +68,10 @@ bool ApplicationManagementServer::initialize(int socket) if (!m_ipcServer) { RIALTO_SERVER_LOG_ERROR("Failed to initialize ApplicationManagementServer - Ipc server instance is NULL"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize ApplicationManagementServer - Ipc server instance is NULL"); + TELEMETRY_EVENT_STRING("Rialto Server - ApplicationManagementServer", telemetryBuff); return false; } @@ -76,6 +80,10 @@ bool ApplicationManagementServer::initialize(int socket) if (!m_ipcClient) { RIALTO_SERVER_LOG_ERROR("Failed to initialize ApplicationManagementServer - Client is NULL"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize ApplicationManagementServer - Client is NULL"); + TELEMETRY_EVENT_STRING("Rialto Server - ApplicationManagementServer", telemetryBuff); return false; } m_ipcClient->exportService(m_service); diff --git a/media/server/ipc/source/ControlModuleService.cpp b/media/server/ipc/source/ControlModuleService.cpp index ca4695f26..098ccd30c 100644 --- a/media/server/ipc/source/ControlModuleService.cpp +++ b/media/server/ipc/source/ControlModuleService.cpp @@ -139,6 +139,10 @@ void ControlModuleService::registerClient(::google::protobuf::RpcController *con if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - ControlModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -154,6 +158,10 @@ void ControlModuleService::registerClient(::google::protobuf::RpcController *con if (!kCurrentSchemaVersion.isCompatible(kClientSchemaVersion)) { RIALTO_SERVER_LOG_ERROR("Server and client schema versions not compatible"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Server and client schema versions not compatible"); + TELEMETRY_EVENT_STRING("Rialto Server - ControlModuleService", telemetryBuff); controller->SetFailed("Server and client schema versions not compatible"); done->Run(); return; diff --git a/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp b/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp index 9b85589ba..876e09871 100644 --- a/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp +++ b/media/server/ipc/source/MediaKeysCapabilitiesModuleService.cpp @@ -96,6 +96,10 @@ void MediaKeysCapabilitiesModuleService::getSupportedKeySystems( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -120,6 +124,10 @@ void MediaKeysCapabilitiesModuleService::supportsKeySystem(::google::protobuf::R if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -138,6 +146,10 @@ void MediaKeysCapabilitiesModuleService::getSupportedKeySystemVersion( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -167,6 +179,10 @@ void MediaKeysCapabilitiesModuleService::isServerCertificateSupported( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/ipc/source/MediaKeysModuleService.cpp b/media/server/ipc/source/MediaKeysModuleService.cpp index 75f4ae8bb..50cc64e97 100644 --- a/media/server/ipc/source/MediaKeysModuleService.cpp +++ b/media/server/ipc/source/MediaKeysModuleService.cpp @@ -203,6 +203,10 @@ void MediaKeysModuleService::createMediaKeys(::google::protobuf::RpcController * if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -234,6 +238,10 @@ void MediaKeysModuleService::destroyMediaKeys(::google::protobuf::RpcController if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -276,6 +284,10 @@ void MediaKeysModuleService::createKeySession(::google::protobuf::RpcController if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/ipc/source/MediaPipelineCapabilitiesModuleService.cpp b/media/server/ipc/source/MediaPipelineCapabilitiesModuleService.cpp index efed009cc..46305fed4 100644 --- a/media/server/ipc/source/MediaPipelineCapabilitiesModuleService.cpp +++ b/media/server/ipc/source/MediaPipelineCapabilitiesModuleService.cpp @@ -88,6 +88,10 @@ void MediaPipelineCapabilitiesModuleService::getSupportedMimeTypes( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -113,6 +117,10 @@ void MediaPipelineCapabilitiesModuleService::isMimeTypeSupported( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -133,6 +141,10 @@ void MediaPipelineCapabilitiesModuleService::getSupportedProperties( if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -162,6 +174,10 @@ void MediaPipelineCapabilitiesModuleService::isVideoMaster(::google::protobuf::R if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineCapabilitiesModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/ipc/source/MediaPipelineModuleService.cpp b/media/server/ipc/source/MediaPipelineModuleService.cpp index 3853f6605..d87ef489d 100644 --- a/media/server/ipc/source/MediaPipelineModuleService.cpp +++ b/media/server/ipc/source/MediaPipelineModuleService.cpp @@ -332,6 +332,10 @@ void MediaPipelineModuleService::createSession(::google::protobuf::RpcController if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -366,6 +370,10 @@ void MediaPipelineModuleService::destroySession(::google::protobuf::RpcControlle if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/ipc/source/ServerManagerModuleService.cpp b/media/server/ipc/source/ServerManagerModuleService.cpp index 519c5b2d1..efe83a9d2 100644 --- a/media/server/ipc/source/ServerManagerModuleService.cpp +++ b/media/server/ipc/source/ServerManagerModuleService.cpp @@ -156,6 +156,10 @@ void ServerManagerModuleService::ping(::google::protobuf::RpcController *control if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - ServerManagerModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/ipc/source/SessionManagementServer.cpp b/media/server/ipc/source/SessionManagementServer.cpp index ab9954a92..dfd92747f 100644 --- a/media/server/ipc/source/SessionManagementServer.cpp +++ b/media/server/ipc/source/SessionManagementServer.cpp @@ -82,6 +82,10 @@ bool SessionManagementServer::initialize(const std::string &socketName, unsigned if (!m_ipcServer) { RIALTO_SERVER_LOG_ERROR("Failed to initialize SessionManagementServer - Ipc server instance is NULL"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize SessionManagementServer - Ipc server instance is NULL"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionManagementServer", telemetryBuff); return false; } @@ -93,6 +97,12 @@ bool SessionManagementServer::initialize(const std::string &socketName, unsigned RIALTO_SERVER_LOG_ERROR("Failed to initialize SessionManagementServer - can't add socket '%s' to the ipc " "server", socketName.c_str()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize SessionManagementServer - can't add socket '%s' to the ipc " + "server", + socketName.c_str()); + TELEMETRY_EVENT_STRING("Rialto Server - SessionManagementServer", telemetryBuff); return false; } @@ -110,6 +120,10 @@ bool SessionManagementServer::initialize(int32_t socketFd) if (!m_ipcServer) { RIALTO_SERVER_LOG_ERROR("Failed to initialize SessionManagementServer - Ipc server instance is NULL"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize SessionManagementServer - Ipc server instance is NULL"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionManagementServer", telemetryBuff); return false; } @@ -121,6 +135,12 @@ bool SessionManagementServer::initialize(int32_t socketFd) RIALTO_SERVER_LOG_ERROR("Failed to initialize SessionManagementServer - can't add socket fd %d to the ipc " "server", socketFd); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to initialize SessionManagementServer - can't add socket fd %d to the ipc " + "server", + socketFd); + TELEMETRY_EVENT_STRING("Rialto Server - SessionManagementServer", telemetryBuff); return false; } diff --git a/media/server/ipc/source/WebAudioPlayerModuleService.cpp b/media/server/ipc/source/WebAudioPlayerModuleService.cpp index 0e2d31270..cd689ac28 100644 --- a/media/server/ipc/source/WebAudioPlayerModuleService.cpp +++ b/media/server/ipc/source/WebAudioPlayerModuleService.cpp @@ -47,6 +47,10 @@ std::shared_ptr IWebAudioPlayerModuleServic catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the web audio player module service factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player module service factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerModuleService", telemetryBuff); } return factory; @@ -64,6 +68,10 @@ WebAudioPlayerModuleServiceFactory::create(service::IWebAudioPlayerService &webA catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the web audio player module service, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player module service, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerModuleService", telemetryBuff); } return webAudioPlayerModule; @@ -115,6 +123,10 @@ void WebAudioPlayerModuleService::createWebAudioPlayer(::google::protobuf::RpcCo if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; @@ -163,6 +175,10 @@ void WebAudioPlayerModuleService::destroyWebAudioPlayer(::google::protobuf::RpcC if (!ipcController) { RIALTO_SERVER_LOG_ERROR("ipc library provided incompatible controller object"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "ipc library provided incompatible controller object"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerModuleService", telemetryBuff); controller->SetFailed("ipc library provided incompatible controller object"); done->Run(); return; diff --git a/media/server/main/source/DataReaderV2.cpp b/media/server/main/source/DataReaderV2.cpp index 5659045f0..6760bef5d 100644 --- a/media/server/main/source/DataReaderV2.cpp +++ b/media/server/main/source/DataReaderV2.cpp @@ -222,12 +222,20 @@ IMediaPipeline::MediaSegmentVector DataReaderV2::readData() const if (!metadata.ParseFromArray(currentReadPosition, *metadataSize)) { RIALTO_SERVER_LOG_ERROR("Metadata parsing failed!"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Metadata parsing failed!"); + TELEMETRY_EVENT_STRING("Rialto Server - DataReaderV2", telemetryBuff); return IMediaPipeline::MediaSegmentVector{}; } auto newSegment{createSegment(metadata, m_mediaSourceType)}; if (!newSegment) { RIALTO_SERVER_LOG_ERROR("Segment parsing failed!"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Segment parsing failed!"); + TELEMETRY_EVENT_STRING("Rialto Server - DataReaderV2", telemetryBuff); return IMediaPipeline::MediaSegmentVector{}; } currentReadPosition += *metadataSize; diff --git a/media/server/main/source/MediaKeySession.cpp b/media/server/main/source/MediaKeySession.cpp index e6cc38355..34133a1b1 100644 --- a/media/server/main/source/MediaKeySession.cpp +++ b/media/server/main/source/MediaKeySession.cpp @@ -37,6 +37,10 @@ std::shared_ptr IMediaKeySessionFactory::createFactory( catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media key session factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media key session factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } return factory; @@ -56,6 +60,10 @@ MediaKeySessionFactory::createMediaKeySession(const std::string &keySystem, int3 catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media key session, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media key session factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } return mediaKeys; @@ -97,11 +105,19 @@ MediaKeySession::~MediaKeySession() if (MediaKeyErrorStatus::OK != closeKeySession()) { RIALTO_SERVER_LOG_ERROR("Failed to close the key session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to close the key session"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } } if (MediaKeyErrorStatus::OK != m_ocdmSession->destructSession()) { RIALTO_SERVER_LOG_ERROR("Failed to destruct the key session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to destruct the key session"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } } @@ -198,6 +214,10 @@ MediaKeyErrorStatus MediaKeySession::loadSession() if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to load the key session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to load the key session"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } if ((checkForOcdmErrors("loadSession")) && (MediaKeyErrorStatus::OK == status)) @@ -227,6 +247,10 @@ MediaKeyErrorStatus MediaKeySession::updateSession(const std::vector &r if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to update the key session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to update the key session"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } } @@ -246,6 +270,10 @@ MediaKeyErrorStatus MediaKeySession::decrypt(GstBuffer *encrypted, GstCaps *caps if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to decrypt buffer"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to decrypt buffer"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } if ((checkForOcdmErrors("decrypt")) && (MediaKeyErrorStatus::OK == status)) @@ -281,6 +309,10 @@ MediaKeyErrorStatus MediaKeySession::closeKeySession() if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to Close the key session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to close the key session"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } } m_isSessionClosed = (MediaKeyErrorStatus::OK == status); @@ -352,6 +384,10 @@ MediaKeyErrorStatus MediaKeySession::setDrmHeader(const std::vector &re if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to set drm header"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set drm header"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); } if ((checkForOcdmErrors("setDrmHeader")) && (MediaKeyErrorStatus::OK == status)) @@ -487,6 +523,10 @@ bool MediaKeySession::checkForOcdmErrors(const char *operationStr) if (m_ocdmError) { RIALTO_SERVER_LOG_ERROR("MediaKeySession received an onError callback, operation '%s' failed", operationStr); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "MediaKeySession received an onError callback, operation '%s' failed", operationStr); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeySession", telemetryBuff); error = true; } m_ongoingOcdmOperation = false; diff --git a/media/server/main/source/MediaKeysServerInternal.cpp b/media/server/main/source/MediaKeysServerInternal.cpp index 72240c3fc..578ab18e2 100644 --- a/media/server/main/source/MediaKeysServerInternal.cpp +++ b/media/server/main/source/MediaKeysServerInternal.cpp @@ -68,6 +68,10 @@ std::shared_ptr IMediaKeysServerInternalFactory catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); } return factory; @@ -93,6 +97,10 @@ MediaKeysServerInternalFactory::createMediaKeysServerInternal(const std::string catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the media keys, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the media keys, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); } return mediaKeys; @@ -173,6 +181,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::selectKeyIdInternal(int32_t keySess if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -180,6 +192,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::selectKeyIdInternal(int32_t keySess if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to select key id"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to select key id"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } @@ -203,6 +219,10 @@ bool MediaKeysServerInternal::containsKeyInternal(int32_t keySessionId, const st if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return false; } @@ -262,6 +282,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::generateRequestInternal(int32_t key if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -269,6 +293,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::generateRequestInternal(int32_t key if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to generate request for the key session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to generate request for the key session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } return status; @@ -291,6 +319,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::loadSessionInternal(int32_t keySess if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -298,6 +330,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::loadSessionInternal(int32_t keySess if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to load the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to load the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } return status; @@ -321,6 +357,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::updateSessionInternal(int32_t keySe if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -328,6 +368,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::updateSessionInternal(int32_t keySe if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to update the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to update the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } return status; @@ -351,6 +395,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::setDrmHeaderInternal(int32_t keySes if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -358,6 +406,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::setDrmHeaderInternal(int32_t keySes if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to set drm header"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set drm header"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } @@ -381,6 +433,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::closeKeySessionInternal(int32_t key if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -388,6 +444,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::closeKeySessionInternal(int32_t key if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to close the key session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to close the key session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } return status; @@ -410,6 +470,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::removeKeySessionInternal(int32_t ke if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -494,6 +558,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::getLastDrmErrorInternal(int32_t key if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -543,6 +611,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::releaseKeySessionInternal(int32_t k if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -556,6 +628,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::getCdmKeySessionIdInternal(int32_t if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -586,6 +662,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::decryptInternal(int32_t keySessionI if (sessionIter == m_mediaKeySessions.end()) { RIALTO_SERVER_LOG_ERROR("Failed to find the session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to find the session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return MediaKeyErrorStatus::BAD_SESSION_ID; } @@ -593,6 +673,10 @@ MediaKeyErrorStatus MediaKeysServerInternal::decryptInternal(int32_t keySessionI if (MediaKeyErrorStatus::OK != status) { RIALTO_SERVER_LOG_ERROR("Failed to decrypt buffer."); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to decrypt buffer."); + TELEMETRY_EVENT_STRING("Rialto Server - MediaKeysServerInternal", telemetryBuff); return status; } RIALTO_SERVER_LOG_INFO("Successfully decrypted buffer."); diff --git a/media/server/main/source/MediaPipelineServerInternal.cpp b/media/server/main/source/MediaPipelineServerInternal.cpp index 22fa5ca53..ccdf041f9 100644 --- a/media/server/main/source/MediaPipelineServerInternal.cpp +++ b/media/server/main/source/MediaPipelineServerInternal.cpp @@ -154,6 +154,10 @@ MediaPipelineServerInternal::MediaPipelineServerInternal( if (!m_shmBuffer->mapPartition(ISharedMemoryBuffer::MediaPlaybackType::GENERIC, m_sessionId)) { RIALTO_SERVER_LOG_ERROR("Unable to map shm partition"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Unable to map shm partition"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineServerInternal", telemetryBuff); } else { @@ -219,6 +223,10 @@ bool MediaPipelineServerInternal::loadInternal(MediaType type, const std::string if (!m_gstPlayer) { RIALTO_SERVER_LOG_ERROR("Failed to load gstreamer player"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to load gstreamer player"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineServerInternal", telemetryBuff); return false; } @@ -1181,6 +1189,10 @@ bool MediaPipelineServerInternal::setSourcePositionInternal(int32_t sourceId, in if (!m_gstPlayer) { RIALTO_SERVER_LOG_ERROR("Failed to set source position - Gstreamer player has not been loaded"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set source position - Gstreamer player has not been loaded"); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineServerInternal", telemetryBuff); return false; } auto sourceIter = std::find_if(m_attachedSources.begin(), m_attachedSources.end(), @@ -1188,6 +1200,10 @@ bool MediaPipelineServerInternal::setSourcePositionInternal(int32_t sourceId, in if (sourceIter == m_attachedSources.end()) { RIALTO_SERVER_LOG_ERROR("Failed to set source position - Source with id: %d not found", sourceId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set source position - Source with id: %d not found", sourceId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineServerInternal", telemetryBuff); return false; } diff --git a/media/server/main/source/SharedMemoryBuffer.cpp b/media/server/main/source/SharedMemoryBuffer.cpp index 93983796c..0ea7eec6a 100644 --- a/media/server/main/source/SharedMemoryBuffer.cpp +++ b/media/server/main/source/SharedMemoryBuffer.cpp @@ -164,6 +164,10 @@ SharedMemoryBuffer::SharedMemoryBuffer(unsigned numOfPlaybacks, unsigned numOfWe if (m_dataBufferFd == -1) { RIALTO_SERVER_LOG_ERROR("Shared Memory Buffer initialization failed"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Shared Memory Buffer initialization failed"); + TELEMETRY_EVENT_STRING("Rialto Server - SharedMemoryBuffer", telemetryBuff); throw std::runtime_error("Shared Memory Buffer initialization failed"); } } diff --git a/media/server/main/source/TextTrackAccessor.cpp b/media/server/main/source/TextTrackAccessor.cpp index f2c189e4c..e2fabe27e 100644 --- a/media/server/main/source/TextTrackAccessor.cpp +++ b/media/server/main/source/TextTrackAccessor.cpp @@ -55,6 +55,10 @@ TextTrackAccessor::TextTrackAccessor( if (!createTextTrackControlInterface()) { RIALTO_SERVER_LOG_ERROR("Failed to create TextTrack interfaces"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create TextTrack interfaces"); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); throw std::runtime_error("Failed to create TextTrack interfaces"); } } @@ -73,6 +77,11 @@ std::optional TextTrackAccessor::openSession(const std::string &displa RIALTO_SERVER_LOG_ERROR("Failed to create TextTrack session with display '%s'; error '%s'", displayName.c_str(), m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create TextTrack session with display '%s'; error '%s'", displayName.c_str(), + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return std::nullopt; } @@ -101,6 +110,11 @@ bool TextTrackAccessor::pause(uint32_t sessionId) RIALTO_SERVER_LOG_ERROR("Failed to pause TextTrack session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to pause TextTrack session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -115,6 +129,11 @@ bool TextTrackAccessor::play(uint32_t sessionId) RIALTO_SERVER_LOG_ERROR("Failed to resume TextTrack session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to resume TextTrack session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -131,6 +150,11 @@ bool TextTrackAccessor::mute(uint32_t sessionId, bool mute) RIALTO_SERVER_LOG_ERROR("Failed to mute TextTrack session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to mute TextTrack session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); } else { @@ -143,6 +167,11 @@ bool TextTrackAccessor::mute(uint32_t sessionId, bool mute) RIALTO_SERVER_LOG_ERROR("Failed to unmute TextTrack session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to unmute TextTrack session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); } return false; @@ -159,6 +188,11 @@ bool TextTrackAccessor::setPosition(uint32_t sessionId, uint64_t mediaTimestampM RIALTO_SERVER_LOG_ERROR("Failed to set position of TextTrack session %u to %" PRIu64 "; error %s", sessionId, mediaTimestampMs, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set position of TextTrack session %u to %" PRIu64 "; error %s", sessionId, + mediaTimestampMs, m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -193,6 +227,11 @@ bool TextTrackAccessor::sendData(uint32_t sessionId, const std::string &data, Da RIALTO_SERVER_LOG_ERROR("Failed to send data to TextTrack session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to send data to TextTrack session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -219,6 +258,10 @@ bool TextTrackAccessor::createTextTrackControlInterface() else { RIALTO_SERVER_LOG_ERROR("Failed to create TextTrack interface"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create TextTrack interfaces"); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); } } else @@ -247,6 +290,11 @@ bool TextTrackAccessor::setSessionWebVTTSelection(uint32_t sessionId) RIALTO_SERVER_LOG_ERROR("Failed to set WebVTT selection for session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set WebVTT selection for session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -261,6 +309,11 @@ bool TextTrackAccessor::setSessionTTMLSelection(uint32_t sessionId) RIALTO_SERVER_LOG_ERROR("Failed to set TTML selection for session %u; error %s", sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set TTML selection for session %u; error %s", sessionId, + m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } @@ -276,6 +329,11 @@ bool TextTrackAccessor::setSessionCCSelection(uint32_t sessionId, const std::str RIALTO_SERVER_LOG_ERROR("Failed to set CC selection service '%s' for session %u; error %s", service.c_str(), sessionId, m_thunderWrapper->errorToString(result)); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to set CC selection service '%s' for session %u; error %s", service.c_str(), + sessionId, m_thunderWrapper->errorToString(result)); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackAccessor", telemetryBuff); return false; } diff --git a/media/server/main/source/TextTrackSession.cpp b/media/server/main/source/TextTrackSession.cpp index 8b6980f34..bb96f7c04 100644 --- a/media/server/main/source/TextTrackSession.cpp +++ b/media/server/main/source/TextTrackSession.cpp @@ -49,6 +49,10 @@ TextTrackSession::TextTrackSession(const std::string &displayName, if (!sessionId) { RIALTO_SERVER_LOG_ERROR("Failed to create TextTrack session"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create TextTrack session"); + TELEMETRY_EVENT_STRING("Rialto Server - TextTrackSession", telemetryBuff); throw std::runtime_error("Failed to create TextTrack session"); } diff --git a/media/server/main/source/WebAudioPlayerServerInternal.cpp b/media/server/main/source/WebAudioPlayerServerInternal.cpp index 2ffaca29d..62af46563 100644 --- a/media/server/main/source/WebAudioPlayerServerInternal.cpp +++ b/media/server/main/source/WebAudioPlayerServerInternal.cpp @@ -50,6 +50,10 @@ std::shared_ptr IWebAudioPlayerServerInter catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the web audio player factory, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player factory, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); } return factory; @@ -82,6 +86,10 @@ std::unique_ptr WebAudioPlayerServerInternalFacto catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Failed to create the web audio player, reason: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to create the web audio player, reason: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); } return webAudioPlayer; @@ -141,6 +149,10 @@ bool WebAudioPlayerServerInternal::initWebAudioPlayerInternal( if (!m_shmBuffer->mapPartition(ISharedMemoryBuffer::MediaPlaybackType::WEB_AUDIO, m_shmId)) { RIALTO_SERVER_LOG_ERROR("Unable to map shm partition"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Unable to map shm partition"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); return false; } @@ -255,6 +267,10 @@ bool WebAudioPlayerServerInternal::getBufferAvailable(uint32_t &availableFrames, if (!webAudioShmInfo) { RIALTO_SERVER_LOG_ERROR("WebAudioShmInfo is null"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioShmInfo is null"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); return false; } @@ -284,6 +300,10 @@ bool WebAudioPlayerServerInternal::getBufferDelay(uint32_t &delayFrames) if (queuedFrames > std::numeric_limits::max()) { RIALTO_SERVER_LOG_ERROR("Queued frames are larger than the max uint32_t"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Queued frames are larger than the max uint32_t"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); } else { @@ -317,6 +337,10 @@ bool WebAudioPlayerServerInternal::writeBufferInternal(const uint32_t numberOfFr if (!m_expectWriteBuffer) { RIALTO_SERVER_LOG_ERROR("No getBufferAvailable to match with this writeBuffer call"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "No getBufferAvailable to match with this writeBuffer call"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); return false; } m_expectWriteBuffer = false; @@ -532,6 +556,10 @@ bool WebAudioPlayerServerInternal::initGstWebAudioPlayer(const std::string &audi if (!m_gstPlayer) { RIALTO_SERVER_LOG_ERROR("Failed to load gstreamer player"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to load gstreamer player"); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerServerInternal", telemetryBuff); return false; } diff --git a/media/server/service/source/CdmService.cpp b/media/server/service/source/CdmService.cpp index 01dbad6d4..ecd2d25cb 100644 --- a/media/server/service/source/CdmService.cpp +++ b/media/server/service/source/CdmService.cpp @@ -67,6 +67,11 @@ bool CdmService::createMediaKeys(int mediaKeysHandle, std::string keySystem) { RIALTO_SERVER_LOG_ERROR("Skip to create media keys handle: %d - Session Server in Inactive state", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Skip to create media keys handle: %d - Session Server in Inactive state", + mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return false; } @@ -75,12 +80,20 @@ bool CdmService::createMediaKeys(int mediaKeysHandle, std::string keySystem) if (m_mediaKeys.find(mediaKeysHandle) != m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d already exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d already exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return false; } m_mediaKeys.emplace(std::make_pair(mediaKeysHandle, m_mediaKeysFactory->createMediaKeysServerInternal(keySystem))); if (!m_mediaKeys.at(mediaKeysHandle)) { RIALTO_SERVER_LOG_ERROR("Could not create MediaKeys for media keys handle: %d", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Could not create MediaKeys for media keys handle: %d", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); m_mediaKeys.erase(mediaKeysHandle); return false; } @@ -100,6 +113,10 @@ bool CdmService::destroyMediaKeys(int mediaKeysHandle) if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return false; } for (auto it = m_sessionInfo.begin(); it != m_sessionInfo.end();) @@ -130,6 +147,10 @@ MediaKeyErrorStatus CdmService::createKeySession(int mediaKeysHandle, KeySession if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } @@ -160,6 +181,10 @@ MediaKeyErrorStatus CdmService::generateRequest(int mediaKeysHandle, int32_t key if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } if (LimitedDurationLicense::NOT_SPECIFIED != ldlState && m_sessionInfo.find(keySessionId) != m_sessionInfo.end()) @@ -178,6 +203,10 @@ MediaKeyErrorStatus CdmService::loadSession(int mediaKeysHandle, int32_t keySess if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->loadSession(keySessionId); @@ -193,6 +222,10 @@ MediaKeyErrorStatus CdmService::updateSession(int mediaKeysHandle, int32_t keySe if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->updateSession(keySessionId, responseData); @@ -207,6 +240,10 @@ MediaKeyErrorStatus CdmService::closeKeySession(int mediaKeysHandle, int32_t key if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } if (mediaKeysHandleIter->second.refCounter > 0) @@ -232,6 +269,10 @@ MediaKeyErrorStatus CdmService::removeKeySessionInternal(int mediaKeysHandle, in if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } @@ -257,6 +298,10 @@ MediaKeyErrorStatus CdmService::getCdmKeySessionId(int mediaKeysHandle, int32_t if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } @@ -273,6 +318,10 @@ bool CdmService::containsKey(int mediaKeysHandle, int32_t keySessionId, const st if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return false; } @@ -289,6 +338,10 @@ MediaKeyErrorStatus CdmService::setDrmHeader(int mediaKeysHandle, int32_t keySes if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } if (m_sessionInfo.find(keySessionId) != m_sessionInfo.end()) @@ -307,6 +360,10 @@ MediaKeyErrorStatus CdmService::deleteDrmStore(int mediaKeysHandle) if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->deleteDrmStore(); @@ -321,6 +378,10 @@ MediaKeyErrorStatus CdmService::deleteKeyStore(int mediaKeysHandle) if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } @@ -336,6 +397,10 @@ MediaKeyErrorStatus CdmService::getDrmStoreHash(int mediaKeysHandle, std::vector if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getDrmStoreHash(drmStoreHash); @@ -350,6 +415,10 @@ MediaKeyErrorStatus CdmService::getKeyStoreHash(int mediaKeysHandle, std::vector if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getKeyStoreHash(keyStoreHash); @@ -364,6 +433,10 @@ MediaKeyErrorStatus CdmService::getLdlSessionsLimit(int mediaKeysHandle, uint32_ if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getLdlSessionsLimit(ldlLimit); @@ -378,6 +451,10 @@ MediaKeyErrorStatus CdmService::getLastDrmError(int mediaKeysHandle, int32_t key if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getLastDrmError(keySessionId, errorCode); @@ -392,6 +469,10 @@ MediaKeyErrorStatus CdmService::getDrmTime(int mediaKeysHandle, uint64_t &drmTim if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getDrmTime(drmTime); @@ -406,6 +487,10 @@ MediaKeyErrorStatus CdmService::releaseKeySession(int mediaKeysHandle, int32_t k if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } if (mediaKeysHandleIter->second.refCounter > 0) @@ -504,6 +589,10 @@ MediaKeyErrorStatus CdmService::decrypt(int32_t keySessionId, GstBuffer *encrypt if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return m_mediaKeys[mediaKeysHandleIter->second.mediaKeysHandle]->decrypt(keySessionId, encrypted, caps); @@ -519,6 +608,10 @@ bool CdmService::isExtendedInterfaceUsed(int32_t keySessionId) if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return false; } return mediaKeysHandleIter->second.isExtendedInterfaceUsed; @@ -533,6 +626,10 @@ MediaKeyErrorStatus CdmService::selectKeyId(int32_t keySessionId, const std::vec if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } if (m_sessionInfo.find(keySessionId) != m_sessionInfo.end()) @@ -549,6 +646,10 @@ void CdmService::incrementSessionIdUsageCounter(int32_t keySessionId) if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return; } ++mediaKeysHandleIter->second.refCounter; @@ -561,6 +662,10 @@ void CdmService::decrementSessionIdUsageCounter(int32_t keySessionId) if (mediaKeysHandleIter == m_sessionInfo.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle for mksId: %d does not exists", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle for mksId: %d does not exists", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return; } if (mediaKeysHandleIter->second.refCounter > 0) @@ -576,6 +681,10 @@ void CdmService::decrementSessionIdUsageCounter(int32_t keySessionId) m_mediaKeys[mediaKeysHandleIter->second.mediaKeysHandle]->closeKeySession(keySessionId)) { RIALTO_SERVER_LOG_ERROR("Failed to close the key session %d", keySessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Failed to close the key session %d", keySessionId); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); } } if (mediaKeysHandleIter->second.shouldBeReleased) @@ -606,6 +715,10 @@ MediaKeyErrorStatus CdmService::getMetricSystemData(int mediaKeysHandle, std::ve if (mediaKeysIter == m_mediaKeys.end()) { RIALTO_SERVER_LOG_ERROR("Media keys handle: %d does not exists", mediaKeysHandle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Media keys handle: %d does not exists", mediaKeysHandle); + TELEMETRY_EVENT_STRING("Rialto Server - CdmService", telemetryBuff); return MediaKeyErrorStatus::FAIL; } return mediaKeysIter->second->getMetricSystemData(buffer); diff --git a/media/server/service/source/MediaPipelineService.cpp b/media/server/service/source/MediaPipelineService.cpp index e977c296f..8c2d3292d 100644 --- a/media/server/service/source/MediaPipelineService.cpp +++ b/media/server/service/source/MediaPipelineService.cpp @@ -70,6 +70,10 @@ bool MediaPipelineService::createSession(int sessionId, const std::shared_ptr(m_playbackService.getMaxPlaybacks())) { RIALTO_SERVER_LOG_ERROR("Unable to create a session with id: %d. Max session number reached.", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Unable to create a session with id: %d. Max session number reached.", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } if (m_mediaPipelines.find(sessionId) != m_mediaPipelines.end()) @@ -105,6 +109,10 @@ bool MediaPipelineService::destroySession(int sessionId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } m_mediaPipelines.erase(mediaPipelineIter); @@ -122,6 +130,10 @@ bool MediaPipelineService::load(int sessionId, MediaType type, const std::string if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->load(type, mimeType, url); @@ -136,6 +148,10 @@ bool MediaPipelineService::attachSource(int sessionId, const std::unique_ptrsecond->attachSource(source); @@ -150,6 +166,10 @@ bool MediaPipelineService::removeSource(int sessionId, std::int32_t sourceId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->removeSource(sourceId); @@ -164,6 +184,10 @@ bool MediaPipelineService::allSourcesAttached(int sessionId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->allSourcesAttached(); @@ -178,6 +202,10 @@ bool MediaPipelineService::play(int sessionId, bool &async) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->play(async); @@ -192,6 +220,10 @@ bool MediaPipelineService::pause(int sessionId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->pause(); @@ -206,6 +238,10 @@ bool MediaPipelineService::stop(int sessionId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->stop(); @@ -220,6 +256,10 @@ bool MediaPipelineService::setPlaybackRate(int sessionId, double rate) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setPlaybackRate(rate); @@ -234,6 +274,10 @@ bool MediaPipelineService::setPosition(int sessionId, std::int64_t position) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setPosition(position); @@ -248,6 +292,10 @@ bool MediaPipelineService::getPosition(int sessionId, std::int64_t &position) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getPosition(position); @@ -262,6 +310,10 @@ bool MediaPipelineService::setImmediateOutput(int sessionId, int32_t sourceId, b if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setImmediateOutput(sourceId, immediateOutput); @@ -276,6 +328,10 @@ bool MediaPipelineService::getImmediateOutput(int sessionId, int32_t sourceId, b if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getImmediateOutput(sourceId, immediateOutput); @@ -290,6 +346,10 @@ bool MediaPipelineService::getStats(int sessionId, int32_t sourceId, uint64_t &r if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getStats(sourceId, renderedFrames, droppedFrames); @@ -305,6 +365,10 @@ bool MediaPipelineService::setVideoWindow(int sessionId, std::uint32_t x, std::u if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setVideoWindow(x, y, width, height); @@ -320,6 +384,10 @@ bool MediaPipelineService::haveData(int sessionId, MediaSourceStatus status, std if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->haveData(status, numFrames, needDataRequestId); @@ -334,6 +402,10 @@ bool MediaPipelineService::renderFrame(int sessionId) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->renderFrame(); @@ -347,6 +419,10 @@ bool MediaPipelineService::setVolume(int sessionId, double targetVolume, uint32_ if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setVolume(targetVolume, volumeDuration, easeType); @@ -361,6 +437,10 @@ bool MediaPipelineService::getVolume(int sessionId, double &volume) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exists", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getVolume(volume); @@ -375,6 +455,10 @@ bool MediaPipelineService::setMute(int sessionId, std::int32_t sourceId, bool mu if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setMute(sourceId, mute); @@ -389,6 +473,10 @@ bool MediaPipelineService::getMute(int sessionId, std::int32_t sourceId, bool &m if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getMute(sourceId, mute); @@ -403,6 +491,10 @@ bool MediaPipelineService::setTextTrackIdentifier(int sessionId, const std::stri if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setTextTrackIdentifier(textTrackIdentifier); @@ -417,6 +509,10 @@ bool MediaPipelineService::getTextTrackIdentifier(int sessionId, std::string &te if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getTextTrackIdentifier(textTrackIdentifier); @@ -431,6 +527,10 @@ bool MediaPipelineService::setLowLatency(int sessionId, bool lowLatency) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setLowLatency(lowLatency); @@ -445,6 +545,10 @@ bool MediaPipelineService::setSync(int sessionId, bool sync) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setSync(sync); @@ -459,6 +563,10 @@ bool MediaPipelineService::getSync(int sessionId, bool &sync) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getSync(sync); @@ -473,6 +581,10 @@ bool MediaPipelineService::setSyncOff(int sessionId, bool syncOff) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setSyncOff(syncOff); @@ -487,6 +599,10 @@ bool MediaPipelineService::setStreamSyncMode(int sessionId, int32_t sourceId, in if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setStreamSyncMode(sourceId, streamSyncMode); @@ -501,6 +617,10 @@ bool MediaPipelineService::getStreamSyncMode(int sessionId, int32_t &streamSyncM if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getStreamSyncMode(streamSyncMode); @@ -515,6 +635,10 @@ bool MediaPipelineService::flush(int sessionId, std::int32_t sourceId, bool rese if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->flush(sourceId, resetTime, isAsync); @@ -530,6 +654,10 @@ bool MediaPipelineService::setSourcePosition(int sessionId, int32_t sourceId, in if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setSourcePosition(sourceId, position, resetTime, appliedRate, stopPosition); @@ -544,6 +672,10 @@ bool MediaPipelineService::setSubtitleOffset(int sessionId, int32_t sourceId, in if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setSubtitleOffset(sourceId, position); @@ -559,6 +691,10 @@ bool MediaPipelineService::processAudioGap(int sessionId, int64_t position, uint if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->processAudioGap(position, duration, discontinuityGap, audioAac); @@ -573,6 +709,10 @@ bool MediaPipelineService::setBufferingLimit(int sessionId, uint32_t limitBuffer if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setBufferingLimit(limitBufferingMs); @@ -587,6 +727,10 @@ bool MediaPipelineService::getBufferingLimit(int sessionId, uint32_t &limitBuffe if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getBufferingLimit(limitBufferingMs); @@ -601,6 +745,10 @@ bool MediaPipelineService::setUseBuffering(int sessionId, bool useBuffering) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->setUseBuffering(useBuffering); @@ -615,6 +763,10 @@ bool MediaPipelineService::getUseBuffering(int sessionId, bool &useBuffering) if (mediaPipelineIter == m_mediaPipelines.end()) { RIALTO_SERVER_LOG_ERROR("Session with id: %d does not exist", sessionId); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Session with id: %d does not exists", sessionId); + TELEMETRY_EVENT_STRING("Rialto Server - MediaPipelineService", telemetryBuff); return false; } return mediaPipelineIter->second->getUseBuffering(useBuffering); @@ -629,6 +781,10 @@ bool MediaPipelineService::switchSource(int sessionId, const std::unique_ptrsecond->switchSource(source); diff --git a/media/server/service/source/SessionServerManager.cpp b/media/server/service/source/SessionServerManager.cpp index b63a7752f..bae18df4e 100644 --- a/media/server/service/source/SessionServerManager.cpp +++ b/media/server/service/source/SessionServerManager.cpp @@ -69,17 +69,29 @@ try if (argc != 2) { RIALTO_SERVER_LOG_ERROR("Wrong number of arguments. Rialto Server Service will close now."); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Wrong number of arguments. Rialto Server Service will close now."); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } std::string socketStr{argv[1]}; if (!isNumber(socketStr)) { RIALTO_SERVER_LOG_ERROR("Rialto App Management socket is not a number."); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Rialto App Management socket is not a number."); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } if (!m_applicationManagementServer->initialize(std::stoi(socketStr))) { RIALTO_SERVER_LOG_ERROR("Initialization of Application Management server failed."); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Initialization of Application Management server failed."); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } m_applicationManagementServer->start(); @@ -88,6 +100,10 @@ try catch (const std::exception &e) { RIALTO_SERVER_LOG_ERROR("Exception caught during service initialization: %s", e.what()); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Exception caught during service initialization: %s", e.what()); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } @@ -113,6 +129,10 @@ bool SessionServerManager::configureIpc(const std::string &socketName, unsigned if (!m_sessionManagementServer->initialize(socketName, socketPermissions, socketOwner, socketGroup)) { RIALTO_SERVER_LOG_ERROR("configureIpc failed - SessionManagementServer failed to initialize"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "configureIpc failed - SessionManagementServer failed to initialize"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } return true; @@ -123,6 +143,10 @@ bool SessionServerManager::configureIpc(int32_t socketFd) if (!m_sessionManagementServer->initialize(socketFd)) { RIALTO_SERVER_LOG_ERROR("configureIpc failed - SessionManagementServer failed to initialize"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "configureIpc failed - SessionManagementServer failed to initialize"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } return true; @@ -200,11 +224,19 @@ bool SessionServerManager::switchToActive() if (!m_playbackService.switchToActive()) { RIALTO_SERVER_LOG_ERROR("Player service failed to switch to active state"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Player service failed to switch to active state"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); return false; } if (!m_cdmService.switchToActive()) { RIALTO_SERVER_LOG_ERROR("Cdm service failed to switch to active state"); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Cdm service failed to switch to active state"); + TELEMETRY_EVENT_STRING("Rialto Server - SessionServerManager", telemetryBuff); m_playbackService.switchToInactive(); return false; } diff --git a/media/server/service/source/WebAudioPlayerService.cpp b/media/server/service/source/WebAudioPlayerService.cpp index b3831e63e..79155d109 100644 --- a/media/server/service/source/WebAudioPlayerService.cpp +++ b/media/server/service/source/WebAudioPlayerService.cpp @@ -67,6 +67,10 @@ bool WebAudioPlayerService::createWebAudioPlayer(int handle, if (m_webAudioPlayers.size() == static_cast(m_playbackService.getMaxWebAudioPlayers())) { RIALTO_SERVER_LOG_ERROR("Unable to create WebAudioPlayer with id: %d. Max instance number reached.", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "Unable to create WebAudioPlayer with id: %d. Max instance number reached.", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } if (m_webAudioPlayers.find(handle) != m_webAudioPlayers.end()) @@ -104,6 +108,10 @@ bool WebAudioPlayerService::destroyWebAudioPlayer(int handle) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } m_webAudioPlayers.erase(webAudioPlayerIter); @@ -121,6 +129,10 @@ bool WebAudioPlayerService::play(int handle) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->play(); @@ -135,6 +147,10 @@ bool WebAudioPlayerService::pause(int handle) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->pause(); @@ -149,6 +165,10 @@ bool WebAudioPlayerService::setEos(int handle) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->setEos(); @@ -165,6 +185,10 @@ bool WebAudioPlayerService::getBufferAvailable(int handle, uint32_t &availableFr if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->getBufferAvailable(availableFrames, webAudioShmInfo); @@ -179,6 +203,10 @@ bool WebAudioPlayerService::getBufferDelay(int handle, uint32_t &delayFrames) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->getBufferDelay(delayFrames); @@ -193,6 +221,10 @@ bool WebAudioPlayerService::writeBuffer(int handle, const uint32_t numberOfFrame if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->writeBuffer(numberOfFrames, data); @@ -208,6 +240,10 @@ bool WebAudioPlayerService::getDeviceInfo(int handle, uint32_t &preferredFrames, if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->getDeviceInfo(preferredFrames, maximumFrames, supportDeferredPlay); @@ -222,6 +258,10 @@ bool WebAudioPlayerService::setVolume(int handle, double volume) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->setVolume(volume); @@ -236,6 +276,10 @@ bool WebAudioPlayerService::getVolume(int handle, double &volume) if (webAudioPlayerIter == m_webAudioPlayers.end()) { RIALTO_SERVER_LOG_ERROR("WebAudioPlayer with handle: %d does not exists", handle); + char telemetryBuff[128] = {0}; + snprintf(telemetryBuff, sizeof(telemetryBuff), + "WebAudioPlayer with handle: %d does not exists", handle); + TELEMETRY_EVENT_STRING("Rialto Server - WebAudioPlayerService", telemetryBuff); return false; } return webAudioPlayerIter->second->getVolume(volume);