Skip to content

tr69hostif 1.5.0 release changelog updates - #523

Closed
nhanasi wants to merge 4 commits into
mainfrom
release/1.5.0
Closed

tr69hostif 1.5.0 release changelog updates#523
nhanasi wants to merge 4 commits into
mainfrom
release/1.5.0

Conversation

@nhanasi

@nhanasi nhanasi commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

No description provided.

naveenkumarhanasi and others added 4 commits July 21, 2026 18:41
Tr69hostif release for Develop OTEL feature
#502)

* RDKEMW-19163:Migrate to Existing Thunder Plugin for libds Methods and Event Notification using OSDD.

Reason for change: Migrate  to Existing Thunder Plugin.
Test Procedure: refer RDKEMW-19163
Risks: Medium
Signed-off-by:gsanto722 <grandhi_santoshkumar@comcast.com>

* archive the changes

* Update Makefile.am

* update missing migaration code

* fix build error

* fix issue and formats

* Fix all issue

* fix build issue

* fix format issue

* fix displayinfo callsign

* added compiler flag

* fix build issue and cleanup

* disable libds include in rdke

* added loging for NOT_HANDEL API in RDK-e

* fix build issue with flag

* fix build issue

* address review comments

* add L1 and L2 test cases. remove unwanted AI files

* Updated L1 and L2 test cases

* fix the L1 and L2. cleanup data-model

* fix L1, L2 run

* fix L1 and L2 tests

* fix L1 and L2

* fix build issus

* fix build issue

* fix build issue with libds cleanup

* fix coverity issue

* Potential fix for pull request finding

Update document

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix high copilot issue

* fix code-coverage and L1, L2 issue

* fix code coverage

* fix HDMI coverage

* add HDMI L1 test cases

* fix HDMI L1 test cases error

* fix HDMI faile test case

* Add L1 cases to increase code and funcation coverage

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 4, 2026 14:58
@nhanasi
nhanasi requested a review from a team as a code owner August 4, 2026 14:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a Thunder (WPEFramework JSON-RPC) backed implementation path for STBService (and parts of DeviceInfo), wiring it through autotools conditionals, adding unit/functional coverage, and updating documentation/data-model/changelog to reflect the migration.

Changes:

  • Add --enable-thunder build option and conditionalize DS-HAL includes/libs vs Thunder-backed sources.
  • Implement Thunder-backed STBService component handlers (AudioOutput/SPDIF/HDMI/DisplayDevice/VideoOutput/VideoDecoder/Capabilities) plus supporting Thunder helper(s) and gtest stubs.
  • Add STBService Thunder L2 functional tests, a dedicated STBService Thunder gtest target, and related docs/troubleshooting updates.

Reviewed changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
test/functional-tests/tests/tr69hostif_stbservice_thunder.py New L2 functional coverage for Thunder-migrated STBService TR-181 parameters.
src/Makefile.am Adjust link flags and gate DS-HAL libs behind Thunder conditional.
src/hostif/src/hostIf_utils.cpp Add scalar-bool Thunder JSON-RPC result extractor helper.
src/hostif/profiles/STBService/Makefile.am Select Thunder vs DS implementations and set USE_THUNDER_CLIENT for STBService.
src/hostif/profiles/STBService/gtest/thunder_plugin_stub.cpp New Thunder invocation stubs + utility stubs to support STBService Thunder gtests.
src/hostif/profiles/STBService/gtest/Makefile.am New STBService Thunder-focused gtest target build rules.
src/hostif/profiles/STBService/docs/thunder-migration-mapping.md New mapping doc for DS→Thunder method/field relationships and gaps.
src/hostif/profiles/STBService/docs/README.md Update STBService docs to describe mixed DS/Thunder state and migration notes.
src/hostif/profiles/STBService/Components_VideoOutput.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_VideoOutput_Thunder.cpp New Thunder-backed VideoOutput implementation.
src/hostif/profiles/STBService/Components_VideoDecoder.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_VideoDecoder_Thunder.cpp New Thunder-backed VideoDecoder implementation.
src/hostif/profiles/STBService/Components_SPDIF.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_SPDIF_Thunder.cpp New Thunder-backed SPDIF implementation.
src/hostif/profiles/STBService/Components_HDMI.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_HDMI_Thunder.cpp New Thunder-backed HDMI implementation.
src/hostif/profiles/STBService/Components_DisplayDevice.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_DisplayDevice_Thunder.cpp New Thunder-backed DisplayDevice implementation (incl. EDID handling).
src/hostif/profiles/STBService/Components_AudioOutput.h Gate DS HAL includes/fields and add Thunder-specific state (port name).
src/hostif/profiles/STBService/Components_AudioOutput_Thunder.cpp New Thunder-backed AudioOutput implementation.
src/hostif/profiles/STBService/Capabilities_Thunder.cpp New Thunder-backed Capabilities implementation.
src/hostif/profiles/DeviceInfo/Makefile.am Gate DS-HAL link libs behind Thunder conditional and set USE_THUNDER_CLIENT.
src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp Add Thunder paths for CPU temp and some RFC-related audio settings.
src/hostif/parodusClient/waldb/data-model/data-model-tv.xml Remove/adjust TR-181 parameters related to HEVC capability subtree.
src/hostif/parodusClient/waldb/data-model/data-model-generic.xml Remove/adjust STBService parameter definitions to match new behavior/coverage.
src/hostif/parodusClient/pal/mock-parodus/Makefile.am Remove DS-HAL link libs from mock parodus build.
src/hostif/include/hostIf_utils.h Declare new scalar-bool Thunder extraction helper.
src/hostif/handlers/src/hostIf_rbus_Dml_Provider.cpp Remove unused exception includes.
src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp Skip DS Manager init/deinit in Thunder mode; add logging indicating backend.
src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp Remove DS-related includes.
src/hostif/handlers/src/gtest/Makefile.am Force Thunder mode in handlers gtest build and switch STBService sources to Thunder.
src/hostif/handlers/Makefile.am Gate DS include paths/libs behind Thunder conditional; define USE_THUNDER_CLIENT.
src/configure.ac Add STBService gtest Makefile to generated outputs.
run_ut.sh Add STBService Thunder gtest build/run and extend coverage extraction/removal.
run_l2.sh Add execution of new STBService Thunder L2 functional test file.
docs/troubleshooting/common-errors.md Add troubleshooting guidance for Thunder method-not-found and instance drift.
cov_build.sh Enable Thunder option in coverage build path and adjust flags.
configure.ac Add --enable-thunder option + WITH_THUNDER_CLIENT automake conditional.
CHANGELOG.md Add 1.5.0 section and update 1.4.9 section details.

Comment on lines +92 to +112
int hostIf_STBServiceDisplayDevice::getStatus(HOSTIF_MsgData_t *stMsgData, bool *pChanged)
{
bool connected = false;
if (!invokeThunderPluginMethodAndExtractBoolField(THUNDER_DI_CONNECTED, "{}", "isconnected", connected))
{
RDK_LOG(RDK_LOG_WARN, LOG_TR69HOSTIF, "[%s] DisplayInfo.1.connected failed, returning Absent\n", __FUNCTION__);
// On failure, default to Absent
connected = false;
}
const char *status = connected ? "Present" : "Absent";
strncpy(stMsgData->paramValue, status, PARAM_LEN);
stMsgData->paramValue[PARAM_LEN - 1] = '\0';
stMsgData->paramtype = hostIf_StringType;
stMsgData->paramLen = strlen(status);
if (bCalledDisplayDeviceStatus && pChanged && strcmp(backupDisplayDeviceStatus, stMsgData->paramValue))
*pChanged = true;
bCalledDisplayDeviceStatus = true;
strncpy(backupDisplayDeviceStatus, stMsgData->paramValue, sizeof(backupDisplayDeviceStatus) - 1);
backupDisplayDeviceStatus[sizeof(backupDisplayDeviceStatus) - 1] = '\0';
return OK;
}
}
}

void hostIf_STBServiceVideoOutput::getLock() { g_mutex_init(&m_mutex); g_mutex_lock(&m_mutex); }
}
}

void hostIf_STBServiceHDMI::getLock() { g_mutex_init(&m_mutex); g_mutex_lock(&m_mutex); }
}
}

void hostIf_STBServiceVideoDecoder::getLock() { g_mutex_init(&m_mutex); g_mutex_lock(&m_mutex); }
Comment on lines +150 to +154
void hostIf_STBServiceAudioInterface::getLock()
{
g_mutex_init(&hostIf_STBServiceAudioInterface::m_mutex);
g_mutex_lock(&hostIf_STBServiceAudioInterface::m_mutex);
}
Comment on lines +192 to +213
int hostIf_STBServiceVideoOutput::getStatus(HOSTIF_MsgData_t *stMsgData, bool *pChanged)
{
bool isConnected = false;

if (!invokeThunderPluginMethodAndExtractBoolField(THUNDER_DI_CONNECTED, "{}", "isconnected", isConnected))
{
RDK_LOG(RDK_LOG_WARN, LOG_TR69HOSTIF, "[%s] DisplayInfo.1.connected failed, returning Disabled\n", __FUNCTION__);
// On failure, default to Disabled
isConnected = false;
}
const char *status = isConnected ? ENABLED_STRING : DISABLED_STRING;
strncpy(stMsgData->paramValue, status, PARAM_LEN);
stMsgData->paramValue[PARAM_LEN - 1] = '\0';
stMsgData->paramtype = hostIf_StringType;
stMsgData->paramLen = strlen(status);
if (bCalledVideoOutputStatus && pChanged && strcmp(backupVideoOutputStatus, stMsgData->paramValue))
*pChanged = true;
bCalledVideoOutputStatus = true;
strncpy(backupVideoOutputStatus, stMsgData->paramValue, sizeof(backupVideoOutputStatus) - 1);
backupVideoOutputStatus[sizeof(backupVideoOutputStatus) - 1] = '\0';
return OK;
}
Comment thread run_ut.sh
Comment on lines +45 to +47
# Force Thunder mode for production builds
CONFIGURE_THUNDER_OPT="--enable-thunder=yes"

Comment on lines +248 to +256
void putValue(HOSTIF_MsgData_t *stMsgData, const std::string &value)
{
if (!stMsgData)
return;
strncpy(stMsgData->paramValue, value.c_str(), TR69HOSTIFMGR_MAX_PARAM_LEN - 1);
stMsgData->paramValue[TR69HOSTIFMGR_MAX_PARAM_LEN - 1] = '\0';
stMsgData->paramtype = hostIf_StringType;
stMsgData->paramLen = static_cast<int>(value.size());
}
| `Components_AudioOutput` | `device::AudioOutputPort`, `device::Host::getAudioOutputPorts()` | `org.rdk.DisplaySettings` | `getSupportedAudioPorts`→`supportedAudioPorts`; `getEnableAudioPort`→`enable` / `setEnableAudioPort`; `getMuted`→`muted` / `setMuted`; `getVolumeLevel`→`volumeLevel` / `setVolumeLevel`; `getAudioEncoding`→`audioEncoding` / `setAudioEncoding`; `getAudioFormat`→`audioFormat`; `getSoundMode`→`soundMode` / `setSoundMode`; `getAudioCompression`→`compressionLevel` / `setAudioCompression`; `getDialogEnhancement`→`dialogEnhancementlevel` / `setDialogEnhancement` |
| `Components_SPDIF` | `device::AudioOutputPort`, SPDIF-specific port selection | `org.rdk.DisplaySettings` | `getSupportedAudioPorts`→`supportedAudioPorts` (SPDIF filter); `getEnableAudioPort`→`enable` / `setEnableAudioPort`; `getAudioEncoding`→`audioEncoding` / `setAudioEncoding` (PCM=ForcePCM, non-PCM=passthrough); `getAudioDelay`→`audioDelay` |
| `Components_HDMI` | `device::VideoOutputPort`, resolution control via DS HAL | `org.rdk.DisplaySettings` | `getSupportedVideoDisplays`→`supportedVideoDisplays` (port discovery); `getCurrentResolution`→`resolution` / `setCurrentResolution`; enable/disable: `getEnableAudioPort`-style on video port using `getVideoPortStatusInfo`→`isConnected`; `getDefaultResolution`→`defaultResolution` |
| `Components_DisplayDevice` | `device::VideoOutputPort` display capabilities | `org.rdk.DisplayInfo` | `DisplayInfo.1.displayinfo`→`connected`, `width`, `height`, `hdrtype`, `hdcpprotection`; `DisplayInfo.1.connected`→bool; `DisplayInfo.1.width` / `DisplayInfo.1.height` (pixel resolution for SupportedResolutions/PreferredResolution strings). EDID fields (`EEDID`, `X_COMCAST-COM_EDID`, `EDID_BYTES`) have no Thunder equivalent — guard with `#if 0` |
Comment thread CHANGELOG.md
Comment on lines +7 to +11
#### [1.5.0](https://github.com/rdkcentral/tr69hostif/compare/1.4.9...1.5.0)

- update license year and doxygen comment [`#521`](https://github.com/rdkcentral/tr69hostif/pull/521)
- RDKEMW-19163:Migrate to Existing Thunder Plugin for libds Methods and… [`#502`](https://github.com/rdkcentral/tr69hostif/pull/502)
- Merge tag '1.4.9' into develop [`34bc947`](https://github.com/rdkcentral/tr69hostif/commit/34bc9478d193ee19f3728dc423b75561a0f83f5a)
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Code Coverage Summary

                                        Total:|74.2%  9594|90.4% 659|    -    0

@nhanasi nhanasi closed this Aug 4, 2026
@nhanasi
nhanasi deleted the release/1.5.0 branch August 4, 2026 15:40
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants