WIP: Feat/firebolt cpp entos upgrade - #155
Conversation
…boltAccessor Port player-interface Firebolt integration from the legacy firebolt-native-aamp-sdk to the new firebolt-entos-runtime-apis (firebolt-cpp-entos-ext Yocto recipe). Changes: - externals/CMakeLists.txt: find_package(FireboltAamp) -> find_package(FireboltEntOs) + find_package(FireboltTransport); remove -lFireboltSDK; link new cmake targets - externals/IFirebolt/FireboltInterface.h: include firebolt/entos/firebolt.h - externals/IFirebolt/FireboltInterface.cpp: IFireboltAampAccessor -> EntOs::IFireboltAccessor - externals/contentsecuritymanager/IFirebolt/ContentProtectionFirebolt.cpp: same migration - externals/rdk/IFirebolt/DeviceFireboltInterface.cpp: same migration
…DK v2 API - FireboltInterface.cpp: replace Initialize(json)+Connect(cb) with Connect(cfg,cb); remove mListenerId; Disconnect() takes no args - FireboltInterface.h: remove mListenerId member - DeviceFireboltInterface.cpp: Firebolt::Device -> Firebolt::EntOs::Device; ResolutionHandlerFirebolt uses Device::Resolution& (not std::string&)
There was a problem hiding this comment.
Pull request overview
This PR upgrades the Firebolt C++ SDK integration from the legacy fireboltaamp/Firebolt::IFireboltAampAccessor API to the new EntOs-based API (firebolt/entos/firebolt.h / Firebolt::EntOs::IFireboltAccessor). It touches the Firebolt interface bootstrap, the device-events interface, the content-protection interface, and the CMake build wiring.
Changes:
- Replace
IFireboltAampAccessorwithFirebolt::EntOs::IFireboltAccessorand update type references (Firebolt::Device::*→Firebolt::EntOs::Device::*, same forContentProtection), including aResolutiontype that is no longer astd::string. - Rework
CreateFireboltInstanceto use the newFirebolt::Configstruct + singleConnect(cfg, callback)call, removing the separateInitializestep and themListenerIdmember used by the previousDisconnect(id)API. - Update
externals/CMakeLists.txtto dropFireboltAampand link againstFireboltTransport+FireboltEntOsinstead, removing duplicate manual-lFireboltSDKappends.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| externals/IFirebolt/FireboltInterface.h | Switch header include to entos firebolt; remove now-unused mListenerId member. |
| externals/IFirebolt/FireboltInterface.cpp | Rewrite CreateFireboltInstance for new Connect(cfg, callback) API; update Disconnect and destructor to entos accessor. |
| externals/rdk/IFirebolt/DeviceFireboltInterface.cpp | Update device event handlers and accessor calls to Firebolt::EntOs::Device::* types; replace string resolution with Resolution struct. |
| externals/contentsecuritymanager/IFirebolt/ContentProtectionFirebolt.cpp | Update content-protection accessor and enum references to Firebolt::EntOs::ContentProtection::*. |
| externals/CMakeLists.txt | Replace FireboltAamp package/link with FireboltTransport + FireboltEntOs; drop redundant -lFireboltSDK appends. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…FireboltEntos.so)
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
externals/rdk/IFirebolt/DeviceFireboltInterface.cpp:269
videoResolution()is indexed at[0]/[1]without verifying the returned container has at least 2 elements. If the API returns an empty/short value, this will read out of bounds and can crash. Guard on the size and avoid repeatedvalue()calls.
auto curr_network = Firebolt::EntOs::IFireboltAccessor::Instance().DeviceInterface().videoResolution();
if(curr_network)
{
std::shared_ptr<PlayerExternalsRdkInterface> pInstance = PlayerExternalsRdkInterface::GetPlayerExternalsRdkInterfaceInstance();
width = curr_network.value()[0];
height = curr_network.value()[1];
pInstance->SetResolution(width, height);
MW_LOG_INFO("Updating resolution [%d][%d]", curr_network.value()[0], curr_network.value()[1]);
| static void ResolutionHandlerFirebolt(const Firebolt::EntOs::Device::Resolution& t_res) | ||
| { | ||
| int width = 1280; | ||
| int height = 720; | ||
|
|
||
| MW_LOG_INFO("Resolution: %s", t_res.c_str()); | ||
| MW_LOG_INFO("Resolution changed"); |
| if(CMAKE_USE_SECCLIENT OR CMAKE_USE_SECMANAGER) | ||
| find_package(FireboltAamp CONFIG REQUIRED) | ||
| target_link_libraries(playerfbinterface FireboltAamp::FireboltAamp) | ||
| find_package(FireboltTransport CONFIG REQUIRED) | ||
| find_package(FireboltEntos CONFIG REQUIRED) | ||
| target_link_libraries(playerfbinterface FireboltTransport::FireboltTransport FireboltEntos::FireboltEntos) | ||
| endif() |
| mIsConnected = false; | ||
| MW_LOG_ERR("CreateFireboltInstance url: %s", url.c_str()); | ||
| Firebolt::Error errorConnect = Firebolt::EntOs::IFireboltAccessor::Instance().Connect(cfg, callback); |
No description provided.