Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AampConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ static const ConfigLookupEntryBool mConfigLookupTableBool[AAMPCONFIG_BOOL_COUNT]
{false,"useMatchingBaseUrl",eAAMPConfig_MatchBaseUrl,false},
{false,"wifiCurlHeader",eAAMPConfig_WifiCurlHeader,false},
{false,"enableSeekableRange",eAAMPConfig_EnableSeekRange,false},
{false,"enableLiveLatencyCorrection",eAAMPConfig_EnableLiveLatencyCorrection,true},
{false,"enableLiveLatencyCorrection",eAAMPConfig_EnableLiveLatencyRateCorrection,true},
{true,"dashParallelFragDownload",eAAMPConfig_DashParallelFragDownload,false},
{false,"persistBitrateOverSeek",eAAMPConfig_PersistentBitRateOverSeek,true},
{true,"setLicenseCaching",eAAMPConfig_SetLicenseCaching,false},
Expand Down
2 changes: 1 addition & 1 deletion AampConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ typedef enum
eAAMPConfig_MatchBaseUrl, /**< Enable host of main url will be matched with host of base url*/
eAAMPConfig_WifiCurlHeader,
eAAMPConfig_EnableSeekRange, /**< Enable seekable range reporting via progress events */
eAAMPConfig_EnableLiveLatencyCorrection, /**< Enable the live latency (drift) correction by adjusting the playback speed */
eAAMPConfig_EnableLiveLatencyRateCorrection, /**< Enable the live latency (drift) correction by adjusting the playback speed (renamed from eAAMPConfig_EnableLiveLatencyCorrection) */
eAAMPConfig_DashParallelFragDownload, /**< Enable dash fragment parallel download*/
eAAMPConfig_PersistentBitRateOverSeek, /**< ABR profile persistence during Seek/Trickplay/Audio switching*/
eAAMPConfig_SetLicenseCaching, /**< License caching*/
Expand Down
5 changes: 3 additions & 2 deletions aampgstplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ static void HandleBufferingTimeoutCb(bool isBufferingTimeoutConditionMet, bool i
if(isRateCorrectionDefaultOnPlaying)
{
// Setting first fractional rate as DEFAULT_INITIAL_RATE_CORRECTION_SPEED right away on PLAYING to avoid audio drop
if (aamp->mConfig->IsConfigSet(eAAMPConfig_EnableLiveLatencyCorrection) && aamp->IsLive())
if (aamp->mConfig->IsConfigSet(eAAMPConfig_EnableLiveLatencyRateCorrection) && aamp->IsLive())
{
AAMPLOG_WARN("Setting first fractional rate %.6f right after moving to PLAYING", DEFAULT_INITIAL_RATE_CORRECTION_SPEED);
_this->SetPlayBackRate(DEFAULT_INITIAL_RATE_CORRECTION_SPEED);
Expand Down Expand Up @@ -840,10 +840,11 @@ void AAMPGstPlayer::Configure(StreamOutputFormat format, StreamOutputFormat audi
PipelinePriority = envVal ? atoi(envVal) : -1;

bool FirstFrameFlag = aamp->IsFirstVideoFrameDisplayedRequired();
bool isLiveRateCorrection = aamp->mConfig->IsConfigSet(eAAMPConfig_EnableLiveLatencyRateCorrection) && aamp->IsLive();
/*Configure and create the pipeline*/
playerInstance->ConfigurePipeline(static_cast<int>(format),static_cast<int>(audioFormat),static_cast<int>(subFormat),
bESChangeStatus,setReadyAfterPipelineCreation,
isSubEnable, trackId, rate, PIPELINE_NAME, PipelinePriority, FirstFrameFlag, aamp->GetManifestUrl().c_str());
isSubEnable, trackId, rate, PIPELINE_NAME, PipelinePriority, FirstFrameFlag, aamp->GetManifestUrl().c_str(), isLiveRateCorrection);
AAMPLOG_TRACE("exiting AAMPGstPlayer");
StartMonitorAvTimer();
}
Expand Down
39 changes: 23 additions & 16 deletions middleware/InterfacePlayerRDK.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,10 +282,14 @@ static void DecorateGstBufferWithDrmMetadata(GstBuffer *buffer, const MediaDrmMe
* @param rate Bitrate.
* @param pipelineName Pipeline name.
* @param PipelinePriority Pipeline priority.
* @param FirstFrameFlag Whether the first-frame callback is required.
* @param manifestUrl URL of the manifest used to configure stream setup.
* @param enableLiveLatency Whether to enable live-latency mode in the
* RialtoSink streams-info context (passed as enable-live-latency).
*/
void InterfacePlayerRDK::ConfigurePipeline(int format, int audioFormat, int subFormat,
bool bESChangeStatus, bool setReadyAfterPipelineCreation,
bool isSubEnable, int32_t trackId, gint rate, const char *pipelineName, int PipelinePriority, bool FirstFrameFlag, std::string manifestUrl)
bool isSubEnable, int32_t trackId, gint rate, const char *pipelineName, int PipelinePriority, bool FirstFrameFlag, std::string manifestUrl, bool enableLiveLatency)
{
mFirstFrameRequired = FirstFrameFlag;
GstStreamOutputFormat gstFormat = static_cast<GstStreamOutputFormat>(format);
Expand Down Expand Up @@ -471,6 +475,24 @@ void InterfacePlayerRDK::ConfigurePipeline(int format, int audioFormat, int subF
MW_LOG_WARN("Couldn't get video-sink");
}
}

if (interfacePlayerPriv->gstPrivateContext->usingRialtoSink)
{
MW_LOG_INFO("RialtoSink subtitle_sink = %p ",interfacePlayerPriv->gstPrivateContext->subtitle_sink);
GstContext *context = gst_context_new("streams-info", false);
GstStructure *contextStructure = gst_context_writable_structure(context);
if( !interfacePlayerPriv->gstPrivateContext->subtitle_sink ) MW_LOG_WARN( "subtitle_sink==NULL" );
gst_structure_set(
contextStructure,
"video-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->video_sink)?0x1u:0x0u,
"audio-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->audio_sink)?0x1u:0x0u,
"text-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->subtitle_sink)?0x1u:0x0u,
"enable-live-latency", G_TYPE_BOOLEAN, (gboolean)enableLiveLatency,
NULL );
gst_element_set_context(GST_ELEMENT(interfacePlayerPriv->gstPrivateContext->pipeline), context);
gst_context_unref(context);
}

if (interfacePlayerPriv->gstPrivateContext->pauseOnStartPlayback && GST_NORMAL_PLAY_RATE == interfacePlayerPriv->gstPrivateContext->rate)
{
MW_LOG_INFO("Setting state to GST_STATE_PAUSED - pause on playback enabled");
Expand Down Expand Up @@ -510,21 +532,6 @@ void InterfacePlayerRDK::ConfigurePipeline(int format, int audioFormat, int subF
interfacePlayerPriv->gstPrivateContext->numberOfVideoBuffersSent = 0;
interfacePlayerPriv->gstPrivateContext->decodeErrorMsgTimeMS = 0;
interfacePlayerPriv->gstPrivateContext->decodeErrorCBCount = 0;
if (interfacePlayerPriv->gstPrivateContext->usingRialtoSink)
{
MW_LOG_INFO("RialtoSink subtitle_sink = %p ",interfacePlayerPriv->gstPrivateContext->subtitle_sink);
GstContext *context = gst_context_new("streams-info", false);
GstStructure *contextStructure = gst_context_writable_structure(context);
if( !interfacePlayerPriv->gstPrivateContext->subtitle_sink ) MW_LOG_WARN( "subtitle_sink==NULL" );
gst_structure_set(
contextStructure,
"video-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->video_sink)?0x1u:0x0u,
"audio-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->audio_sink)?0x1u:0x0u,
"text-streams", G_TYPE_UINT, (interfacePlayerPriv->gstPrivateContext->subtitle_sink)?0x1u:0x0u,
nullptr );
gst_element_set_context(GST_ELEMENT(interfacePlayerPriv->gstPrivateContext->pipeline), context);
gst_context_unref(context);
}
}

/**
Expand Down
6 changes: 5 additions & 1 deletion middleware/InterfacePlayerRDK.h
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,12 @@ class InterfacePlayerRDK
* @param rate Bitrate.
* @param pipelineName Pipeline name.
* @param PipelinePriority Pipeline priority.
* @param FirstFrameFlag Whether the first-frame callback is required.
* @param url URL of the manifest used to configure stream setup.
* @param enableLiveLatency Whether to enable live-latency mode in the
* RialtoSink streams-info context. Defaults to false.
*/
void ConfigurePipeline(int, int, int, bool, bool, bool, int32_t, gint, const char *, int, bool, std::string url);
void ConfigurePipeline(int, int, int, bool, bool, bool, int32_t, gint, const char *, int, bool, std::string url, bool enableLiveLatency = false);
/**
* @brief Enables or disables pausing on playback start.
* @param enable True to enable pausing, false to disable.
Expand Down
2 changes: 1 addition & 1 deletion middleware/playerLogManager/PlayerLogManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ void logprintf(MW_LogLevel logLevelIndex, const char* func, int line, const char
ethanLogLevel = ETHAN_LOG_MILESTONE;
break;
}
format_ptr[format_bytes-1] = 0x00; // strip explicit newline, since Ethen logger will add one and we don't want it doubled
format_ptr[format_bytes-1] = 0x00; // strip explicit newline, since Ethan logger will add one and we don't want it doubled
vethanlog(ethanLogLevel,NULL,NULL,-1,format_ptr, args);
}
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ class GstPlayerTests : public ::testing::Test
GST_FORMAT_SUBTITLE_WEBVTT,
setup->bESChangeStatus,
setup->setReadyAfterPipelineCreation,
false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

ASSERT_TRUE(bus_sync_func != nullptr);
ASSERT_TRUE(bus_message_func != nullptr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ TEST_F(PauseOnPlaybackTests, EnteredPausedSteHandler_ConfigurePauseOnPlayback)
// Enable PauseOnPlayback
mInterfaceGstPlayer->SetPauseOnStartPlayback(true);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);
}

// Test configuration of pipeline with PauseOnPlayback not enabled
Expand Down Expand Up @@ -176,7 +176,7 @@ TEST_F(PauseOnPlaybackTests, EnteredPausedSteHandler_ConfigureNormalPlayback)
EXPECT_CALL(*g_mockGStreamer, gst_element_set_state(&gst_element_pipeline, GST_STATE_PLAYING))
.WillOnce(Return(GST_STATE_CHANGE_SUCCESS));

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);
}

// Test bus_message callback when PauseOnPlayback has been enabled, and sink
Expand Down Expand Up @@ -236,7 +236,7 @@ TEST_F(PauseOnPlaybackTests, bus_messsage_FrameStepPropertyAvailable)

mInterfaceGstPlayer->SetPauseOnStartPlayback(true);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

ASSERT_TRUE(bus_sync_func != nullptr);
ASSERT_TRUE(bus_message_func != nullptr);
Expand Down Expand Up @@ -338,7 +338,7 @@ TEST_F(PauseOnPlaybackTests, bus_message_FrameStepPropertyNotAvailable)

mInterfaceGstPlayer->SetPauseOnStartPlayback(true);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_VIDEO_ES_H264, GST_FORMAT_AUDIO_ES_AAC, GST_FORMAT_SUBTITLE_WEBVTT, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

ASSERT_TRUE(bus_sync_func != nullptr);
ASSERT_TRUE(bus_message_func != nullptr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ TEST_F(InterfacePlayerTests, ConfigurePipeline_WithWesterosAndRealtoSink)
mPlayerConfigParams->useRialtoSink = true;
EXPECT_EQ(mPlayerContext->usingRialtoSink, false);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_INVALID, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_INVALID, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);
EXPECT_EQ(mPlayerContext->using_westerossink, true);
EXPECT_EQ(mPlayerContext->usingRialtoSink, true);

Expand All @@ -137,7 +137,7 @@ TEST_F(InterfacePlayerTests, ConfigurePipeline_WithWesterosAndRealtoSink)
TEST_F(InterfacePlayerTests, ConfigurePipeline_WithSubtitlesEnabled)
{
g_mockGStreamer = nullptr;
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_INVALID, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, true, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_INVALID, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, true, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

EXPECT_EQ(mPlayerContext->stream[eGST_MEDIATYPE_SUBTITLE].format, GST_FORMAT_INVALID);
}
Expand All @@ -148,7 +148,7 @@ TEST_F(InterfacePlayerTests, ConfigurePipeline_WithBufferingEnabled)
mPlayerContext->buffering_enabled = true;
mPlayerContext->rate = GST_NORMAL_PLAY_RATE;

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_MPEGTS, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_MPEGTS, GST_FORMAT_INVALID, GST_FORMAT_INVALID, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

EXPECT_EQ(mPlayerContext->buffering_in_progress, true);
EXPECT_EQ(mPlayerContext->buffering_target_state, GST_STATE_PLAYING);
Expand All @@ -163,7 +163,7 @@ TEST_F(InterfacePlayerTests, ConfigurePipeline_StreamConfiguration)

EXPECT_EQ(mPlayerContext->NumberOfTracks, 0);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_ISO_BMFF, GST_FORMAT_AUDIO_ES_AC3, GST_FORMAT_SUBTITLE_MP4, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_ISO_BMFF, GST_FORMAT_AUDIO_ES_AC3, GST_FORMAT_SUBTITLE_MP4, false, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

EXPECT_EQ(mPlayerContext->NumberOfTracks, 2);
EXPECT_EQ(cbResponse, 5); //callback was called
Expand All @@ -178,7 +178,7 @@ TEST_F(InterfacePlayerTests, ConfigurePipeline_ESChange)

EXPECT_EQ(mPlayerContext->NumberOfTracks, 0);

mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_ISO_BMFF, GST_FORMAT_AUDIO_ES_AC3, GST_FORMAT_SUBTITLE_MP4, true, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest");
mInterfaceGstPlayer->ConfigurePipeline(GST_FORMAT_ISO_BMFF, GST_FORMAT_AUDIO_ES_AC3, GST_FORMAT_SUBTITLE_MP4, true, false, false, 0, GST_NORMAL_PLAY_RATE, "testPipeline", 0, false, "testManifest", false);

EXPECT_EQ(mPlayerContext->NumberOfTracks, 1);
EXPECT_EQ(cbResponse, 5);
Expand Down
18 changes: 9 additions & 9 deletions priv_aamp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2423,7 +2423,7 @@ void PrivateInstanceAAMP::StartRateCorrectionWorkerThread(void)
try
{
bool newTune = IsNewTune();
bool enabled = ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection);
bool enabled = ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection);
/** Spawn the rate Correction thread if it is live, new tune, thread not started yet, and rate correction enabled **/
if(IsLive() && newTune && !mRateCorrectionThread.joinable() && enabled )
{
Expand All @@ -2444,7 +2444,7 @@ void PrivateInstanceAAMP::StartRateCorrectionWorkerThread(void)
*/
void PrivateInstanceAAMP::RateCorrectionWorkerThread(void)
{
if(ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection))
if(ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection))
{
int latencyMonitorInterval = GETCONFIGVALUE_PRIV(eAAMPConfig_LatencyMonitorIntervalMs);
double normalPlaybackRate = GETCONFIGVALUE_PRIV(eAAMPConfig_NormalLatencyCorrectionPlaybackRate);
Expand Down Expand Up @@ -2565,8 +2565,8 @@ void PrivateInstanceAAMP::RateCorrectionWorkerThread(void)
}
else
{
AAMPLOG_WARN("Rate Correction Ignored Due to Rate Correction disabled from config; EnableLiveLatencyCorrection [%d]",
ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection));
AAMPLOG_WARN("Rate Correction Ignored Due to Rate Correction disabled from config; EnableLiveLatencyRateCorrection [%d]",
ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection));
}
}

Expand Down Expand Up @@ -2758,7 +2758,7 @@ void PrivateInstanceAAMP::MonitorProgress(bool sync, bool beginningOfStream)
{
currentRate = mLatencyMonitor->GetCurrentRate();
}
else if (!mAampLLDashServiceData.lowLatencyMode && ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection) )
else if (!mAampLLDashServiceData.lowLatencyMode && ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection) )
{
currentRate = mCorrectionRate;
}
Expand Down Expand Up @@ -3811,7 +3811,7 @@ bool PrivateInstanceAAMP::ProcessPendingDiscontinuity()
mpStreamAbstractionAAMP->ResetESChangeStatus();
mpStreamAbstractionAAMP->ReSetPipelineFlushStatus();

bool isRateCorrectionEnabled = ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection);
bool isRateCorrectionEnabled = ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection);
int disableRateCorrectionTimeInSeconds = GETCONFIGVALUE_PRIV(eAAMPConfig_RateCorrectionDelay);
if( disableRateCorrectionTimeInSeconds > 0 && isRateCorrectionEnabled )
{
Expand Down Expand Up @@ -6406,7 +6406,7 @@ void PrivateInstanceAAMP::TuneHelper(TuneType tuneType, bool seekWhilePaused)
mMediaFormat = eMEDIAFORMAT_HLS_MP4;
}

if (ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyCorrection))
if (ISCONFIGSET_PRIV(eAAMPConfig_EnableLiveLatencyRateCorrection))
{
StartRateCorrectionWorkerThread();
}
Expand Down Expand Up @@ -6822,10 +6822,10 @@ void PrivateInstanceAAMP::Tune(const char *mainManifestUrl,
//temporary hack
if (strcasestr(mAppName.c_str(), "peacock"))
{
// Enable PTS Restamping
// Enable live latency rate correction, PTS Restamping and other app-specific configurations
if(SocUtils::EnableLiveLatencyCorrection())
{
SETCONFIGVALUE_PRIV(AAMP_DEFAULT_SETTING, eAAMPConfig_EnableLiveLatencyCorrection, true);
SETCONFIGVALUE_PRIV(AAMP_DEFAULT_SETTING, eAAMPConfig_EnableLiveLatencyRateCorrection, true);
}
SETCONFIGVALUE_PRIV(AAMP_DEFAULT_SETTING, eAAMPConfig_EnablePTSReStamp, SocUtils::EnablePTSRestamp());
SETCONFIGVALUE_PRIV(AAMP_DEFAULT_SETTING, eAAMPConfig_DisableWebVTT, true);
Expand Down
2 changes: 1 addition & 1 deletion simnet/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Network Persona Fitter (VPAAMP-129)
# Network Persona Fitter

Automatic generation of a simnet **network persona JSON** directly from a live AAMP
playback session — no external Python tool or post-processing step required.
Expand Down
10 changes: 9 additions & 1 deletion test/utests/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,15 @@ mkdir -p build
cd build

if [[ "$OSTYPE" == "darwin"* ]]; then
PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig:${AAMPDIR}/.libs/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DCOVERAGE_ENABLED=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RDKE_TEST_RUN=$rdke_build ../
# Resolve Homebrew OpenSSL pkgconfig dir (openssl@3 is the repo default).
# brew --prefix openssl resolves to openssl@3 on standard Homebrew setups.
_ssl_prefix=$(brew --prefix openssl@3 2>/dev/null)
if [[ ! -f "${_ssl_prefix}/lib/pkgconfig/openssl.pc" ]]; then
echo "ERROR: Could not find a Homebrew OpenSSL pkgconfig file."
echo "Please install it with: brew install openssl@3"
exit 1
fi
PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig:${AAMPDIR}/.libs/lib/pkgconfig:/usr/local/lib/pkgconfig:${_ssl_prefix}/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DCOVERAGE_ENABLED=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RDKE_TEST_RUN=$rdke_build ../
elif [[ "$OSTYPE" == "linux"* ]]; then
PKG_CONFIG_PATH=${AAMPDIR}/.libs/lib/pkgconfig cmake --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX=${AAMPDIR}/.libs -DCMAKE_PLATFORM_UBUNTU=1 -DCOVERAGE_ENABLED=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_LIBRARY_PATH=${AAMPDIR}/.libs/lib -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ -DCMAKE_RDKE_TEST_RUN=$rdke_build -S../ -B$PWD -G "Unix Makefiles"
export LD_LIBRARY_PATH=${AAMPDIR}/.libs/lib
Expand Down
Loading
Loading