-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSocUtils.cpp
More file actions
137 lines (128 loc) · 3.5 KB
/
Copy pathSocUtils.cpp
File metadata and controls
137 lines (128 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
* If not stated otherwise in this file or this component's license file the
* following copyright and licenses apply:
*
* Copyright 2025 RDK Management
*
* 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.
*/
/**
* @file SocUtils.cpp
*/
#include "SocUtils.h"
#include "SocInterface.h"
#include "InterfacePlayerRDK.h"
#include <assert.h>
namespace SocUtils
{
static std::shared_ptr<SocInterface> GetSocInterface()
{
static std::shared_ptr<SocInterface> socInterface = SocInterface::CreateSocInterface();
return socInterface;
}
void Init()
{
(void)GetSocInterface();
}
/**
* @brief Checks if AppSrc should be used for progressive playback.
*
* This function queries the SOC interface to determine whether AppSrc
* should be used for handling progressive playback.
*
* @return true if AppSrc is used, false otherwise.
*/
bool UseAppSrcForProgressivePlayback( void )
{
return GetSocInterface()->UseAppSrc();
}
/**
* @brief Checks if Westeros sink is used.
*
* This function queries the SOC interface to determine whether the Westeros sink
* is enabled for rendering video.
*
* @return true if Westeros sink is used, false otherwise.
*/
bool UseWesterosSink( void )
{
return GetSocInterface()->UseWesterosSink();
}
/**
* @brief Determines if audio fragment synchronization is supported.
*
* Queries the SOC interface to check if audio fragment sync is supported.
*
* @return true if audio fragment sync is supported, false otherwise.
*/
bool IsAudioFragmentSyncSupported( void )
{
return GetSocInterface()->IsAudioFragmentSyncSupported();
}
/**
* @brief Checks if live latency correction is enabled.
*
* This function queries the SOC interface to determine whether live latency
* correction is enabled.
*
* @return true if live latency correction is enabled, false otherwise.
*/
bool EnableLiveLatencyCorrection( void )
{
return GetSocInterface()->EnableLiveLatencyCorrection();
}
/**
* @brief Retrieves the number of required queued frames.
*
* Queries the SOC interface to get the required number of frames
* that should be queued for smooth playback.
*
* @return The required number of queued frames.
*/
int RequiredQueuedFrames( void )
{
return GetSocInterface()->RequiredQueuedFrames();
}
/**
* @brief Checks if PTS (Presentation Timestamp) re-stamping is enabled.
*
* This function queries the SOC interface to determine whether
* PTS re-stamping is enabled.
*
* @return true if PTS re-stamping is enabled, false otherwise.
*/
bool EnablePTSRestamp(void)
{
return GetSocInterface()->EnablePTSRestamp();
}
/**
* @brief Resets segment event flags during trickplay transitions.
*
* Manages segment event tracking for trickplay scenarios without disrupting seekplay or advertisements.
*/
bool ResetNewSegmentEvent()
{
return GetSocInterface()->ResetNewSegmentEvent();
}
/**
* @brief Check if GST Subtec is enabled
*/
bool isGstSubtecEnabled()
{
#ifdef GST_SUBTEC_ENABLED
return true;
#else
return false;
#endif
}
}