LCOV - code coverage report
Current view: top level - media/server/gstplayer/source/tasks/generic - SetImmediateOutput.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 87.0 % 23 20
Test Date: 2026-10-23 12:56:16 Functions: 100.0 % 3 3

            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 2024 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              : #include "SetImmediateOutput.h"
      21              : #include "RialtoServerLogging.h"
      22              : #include "TypeConverters.h"
      23              : 
      24              : namespace firebolt::rialto::server::tasks::generic
      25              : {
      26            3 : SetImmediateOutput::SetImmediateOutput(GenericPlayerContext &context, IGstGenericPlayerPrivate &player,
      27            3 :                                        const MediaSourceType &type, bool immediateOutput)
      28            3 :     : m_context{context}, m_player(player), m_type{type}, m_immediateOutput{immediateOutput}
      29              : {
      30            3 :     RIALTO_SERVER_LOG_DEBUG("Constructing SetImmediateOutput");
      31              : }
      32              : 
      33            4 : SetImmediateOutput::~SetImmediateOutput()
      34              : {
      35            3 :     RIALTO_SERVER_LOG_DEBUG("SetImmediateOutput finished");
      36            4 : }
      37              : 
      38            2 : void SetImmediateOutput::execute() const
      39              : {
      40            2 :     RIALTO_SERVER_LOG_DEBUG("Executing SetImmediateOutput for %s source", common::convertMediaSourceType(m_type));
      41              : 
      42            2 :     if (m_type == MediaSourceType::AUDIO)
      43              :     {
      44            1 :         m_context.pendingLowLatencyForAudioDecoder = m_immediateOutput;
      45            1 :         m_context.pendingLowLatencyForAudioSink = m_immediateOutput;
      46              : 
      47            1 :         if (m_context.pipeline)
      48              :         {
      49            1 :             m_player.setLowLatencyAudioDecoder();
      50            1 :             m_player.setLowLatencyAudioSink();
      51              :         }
      52              :         else
      53              :         {
      54            0 :             RIALTO_SERVER_LOG_DEBUG("Pending immediate-output: pipeline is NULL");
      55            0 :             return;
      56              :         }
      57              :     }
      58            1 :     else if (m_type == MediaSourceType::VIDEO)
      59              :     {
      60            1 :         m_context.pendingImmediateOutputForVideo = m_immediateOutput;
      61            1 :         if (m_context.pipeline)
      62              :         {
      63            1 :             m_player.setImmediateOutput();
      64              :         }
      65            1 :         return;
      66              :     }
      67              :     else
      68              :     {
      69            0 :         RIALTO_SERVER_LOG_ERROR("SetImmediateOutput not currently supported for source type %s",
      70              :                                 common::convertMediaSourceType(m_type));
      71              :     }
      72              : }
      73              : } // namespace firebolt::rialto::server::tasks::generic
        

Generated by: LCOV version 2.0-1