LCOV - code coverage report
Current view: top level - media/server/service/source - MediaPipelineMetricsClient.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 1 1
Test Date: 2026-09-11 17:36:12 Functions: 100.0 % 1 1

            Line data    Source code
       1              : /*
       2              :  * If not stated otherwise in this file or this component's LICENSE file the
       3              :  * following copyright and licenses apply:
       4              :  *
       5              :  * Copyright 2026 Sky UK
       6              :  *
       7              :  * Licensed under the Apache License, Version 2.0 (the "License");
       8              :  * you may not use this file except in compliance with the License.
       9              :  * You may obtain a copy of the License at
      10              :  *
      11              :  * http://www.apache.org/licenses/LICENSE-2.0
      12              :  *
      13              :  * Unless required by applicable law or agreed to in writing, software
      14              :  * distributed under the License is distributed on an "AS IS" BASIS,
      15              :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      16              :  * See the License for the specific language governing permissions and
      17              :  * limitations under the License.
      18              :  */
      19              : 
      20              : #ifndef FIREBOLT_RIALTO_SERVER_SERVICE_MEDIA_PIPELINE_METRICS_CLIENT_H_
      21              : #define FIREBOLT_RIALTO_SERVER_SERVICE_MEDIA_PIPELINE_METRICS_CLIENT_H_
      22              : 
      23              : #include "IMediaPipelineClient.h"
      24              : #include "IPrivateMetricsService.h"
      25              : #include <memory>
      26              : 
      27              : namespace firebolt::rialto::server::service
      28              : {
      29              : class MediaPipelineMetricsClient : public IMediaPipelineClient
      30              : {
      31              : public:
      32              :     MediaPipelineMetricsClient(int sessionId, const std::shared_ptr<IMediaPipelineClient> &client,
      33              :                                IPrivateMetricsService &metricsService);
      34           88 :     ~MediaPipelineMetricsClient() override = default;
      35              : 
      36              :     void notifyDuration(int64_t duration) override;
      37              :     void notifyPosition(int64_t position) override;
      38              :     void notifyNativeSize(uint32_t width, uint32_t height, double aspect) override;
      39              :     void notifyNetworkState(NetworkState state) override;
      40              :     void notifyPlaybackState(PlaybackState state) override;
      41              :     void notifyVideoData(bool hasData) override;
      42              :     void notifyAudioData(bool hasData) override;
      43              :     void notifyNeedMediaData(int32_t sourceId, size_t frameCount, uint32_t needDataRequestId,
      44              :                              const std::shared_ptr<MediaPlayerShmInfo> &shmInfo) override;
      45              :     void notifyCancelNeedMediaData(int32_t sourceId) override;
      46              :     void notifyQos(int32_t sourceId, const QosInfo &qosInfo) override;
      47              :     void notifyBufferUnderflow(int32_t sourceId) override;
      48              :     void notifyFirstFrameReceived(int32_t sourceId) override;
      49              :     void notifyPlaybackError(int32_t sourceId, PlaybackError error) override;
      50              :     void notifySourceFlushed(int32_t sourceId) override;
      51              :     void notifyPlaybackInfo(const PlaybackInfo &playbackInfo) override;
      52              : 
      53              : private:
      54              :     int m_sessionId;
      55              :     std::shared_ptr<IMediaPipelineClient> m_client;
      56              :     IPrivateMetricsService &m_metricsService;
      57              :     PlaybackState m_currentPlaybackState{PlaybackState::UNKNOWN};
      58              : };
      59              : } // namespace firebolt::rialto::server::service
      60              : 
      61              : #endif // FIREBOLT_RIALTO_SERVER_SERVICE_MEDIA_PIPELINE_METRICS_CLIENT_H_
        

Generated by: LCOV version 2.0-1