Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
4b88f4d
Rdk58255 delia68355 25q3 (#6310)
npoltorapavlo Jul 1, 2025
313fe1c
Delia 68280 delia 68254 25 q3 (#6312)
npoltorapavlo Jul 2, 2025
8caec04
RDKTV-37015: platfromSupport is missing from dimmingMode capabilities
anjuraveendran2024 Jul 2, 2025
1c7b01d
Merge branch 'rdkcentral:sprint/25Q3' into feature/RDKTV-37015
anjuraveendran2024 Jul 2, 2025
e06d18f
Merge pull request #6313 from anjuraveendran2024/feature/RDKTV-37015
utkarshece14 Jul 3, 2025
0ea0831
RDK-57375: wpe-2.46 integration
filipe-norte-red Jun 3, 2025
51f7ebe
RDK-56624: Set GST Quirks envs
asurdej-comcast Apr 3, 2025
7f5a552
Implemented authenticationCallback in WebKitImplementation in order t…
JackHowgateCC Apr 4, 2025
2233643
Change already merged to 25Q1, pulling into 25Q2
JackHowgateCC Apr 4, 2025
8f056c8
RDK-57915: Disable ICE Candidate Filtering by default
asurdej-comcast Jun 6, 2025
57c62cb
Merge pull request #6318 from asurdej-comcast/25Q3_cherry_picks
emutavchi Jul 4, 2025
a9287f6
Merge branch 'sprint/25Q3' into wpe-2.46-api-changes-25Q3
filipe-norte-red Jul 7, 2025
9a429cd
RDK-58380 : Avoid implicit cast of Core::JSON objects (#6314)
npoltorapavlo Jul 7, 2025
4d2d9fd
Update MaintenanceManager.cpp (#6317)
nhanasi Jul 7, 2025
d31262e
RDKTV-35677: Delay in Volume Level Status update on the panel (#6319)
Neethu379 Jul 8, 2025
8fbfbb2
RDK-57197: Analytics backend as ext dynamic lib (#6306) (#6325)
adrianM27 Jul 10, 2025
1c828a6
Merge branch 'sprint/25Q3' into wpe-2.46-api-changes-25Q3
emutavchi Jul 10, 2025
ef5a707
Merge pull request #6315 from filipe-norte-red/wpe-2.46-api-changes-25Q3
emutavchi Jul 10, 2025
ed407a0
RDK-58069: Dynamic management of HDR settings
asurdej-comcast Jul 8, 2025
feddce4
RDKTV-37375 : Unable to register event 'onDeviceMgtUpdateReceived'-xc…
vdinak240 Jul 11, 2025
fbece25
Merge branch 'sprint/25Q3' into hdr_settings_2
emutavchi Jul 11, 2025
7a29841
Merge pull request #6326 from asurdej-comcast/hdr_settings_2
emutavchi Jul 11, 2025
6808352
Reason For Change: platfromSupport is missing from getBacklightDimmin…
anjuraveendran2024 Jul 17, 2025
c6694a9
Merge branch 'rdkcentral:sprint/25Q3' into Feature_RDKTV-37015_BUG
anjuraveendran2024 Jul 17, 2025
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
35 changes: 35 additions & 0 deletions .github/workflows/ContentProtectionTests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: ContentProtection

on:
push:
paths:
- ContentProtection/**
- .github/workflows/*ContentProtection*.yml
pull_request:
paths:
- ContentProtection/**
- .github/workflows/*ContentProtection*.yml

jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- src: 'ContentProtection'
build: 'build/ContentProtection'
steps:
- uses: actions/checkout@v4
with:
path: ${{github.repository}}
- run: |
sudo apt update
sudo apt install -y cmake
- run: sh +x ${GITHUB_REPOSITORY}/.github/workflows/BuildThunder.sh
- run: |
cmake \
-S ${GITHUB_REPOSITORY}/${{ matrix.src }} \
-B ${{ matrix.build }} \
-DCMAKE_INSTALL_PREFIX="install" \
-DCMAKE_CXX_FLAGS="-Wall -Werror"
cmake --build ${{ matrix.build }} --target install
35 changes: 0 additions & 35 deletions .github/workflows/L2-ContentProtection.yml

This file was deleted.

14 changes: 14 additions & 0 deletions AVOutput/AVOutputTV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2016,6 +2016,10 @@ namespace Plugin {
returnResponse(false);
}

if (isPlatformSupport("DimmingMode") != 0) {
returnResponse(false);
}

if (getParamIndex("DimmingMode",inputInfo,indexInfo) == -1) {
LOGERR("%s: getParamIndex failed to get \n", __FUNCTION__);
returnResponse(false);
Expand Down Expand Up @@ -2072,6 +2076,10 @@ namespace Plugin {
returnResponse(false);
}

if (isPlatformSupport("DimmingMode") != 0) {
returnResponse(false);
}

if( !isCapablityCheckPassed( "DimmingMode" , inputInfo )) {
LOGERR("%s: CapablityCheck failed for DimmingMode\n", __FUNCTION__);
returnResponse(false);
Expand Down Expand Up @@ -2118,6 +2126,10 @@ namespace Plugin {
returnResponse(false);
}

if (isPlatformSupport("DimmingMode") != 0) {
returnResponse(false);
}

int retval= updateAVoutputTVParam("reset","DimmingMode", inputInfo,PQ_PARAM_DIMMINGMODE,dMode);

if(retval != 0 ) {
Expand Down Expand Up @@ -2171,6 +2183,8 @@ namespace Plugin {
returnResponse(false);
}
else {
response["platformSupport"] = (info.isPlatformSupportVector[0].compare("true") == 0) ? true : false;

for (index = 0; index < info.rangeVector.size(); index++) {
supportedDimmingModeArray.Add(info.rangeVector[index]);
}
Expand Down
2 changes: 1 addition & 1 deletion AVOutput/AVOutputTVHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2302,7 +2302,7 @@ namespace Plugin {

}

if ((param == "DolbyVisionMode") || (param == "Backlight") || (param == "CMS") || (param == "CustomWhiteBalance") || (param == "HDRMode") || (param == "BacklightControl")) {
if ((param == "DolbyVisionMode") || (param == "Backlight") || (param == "CMS") || (param == "CustomWhiteBalance") || (param == "HDRMode") || (param == "BacklightControl") || (param == "DimmingMode")) {
configString = param + ".platformsupport";
info.isPlatformSupport = inFile.Get<std::string>(configString);
printf(" platformsupport : %s\n",info.isPlatformSupport.c_str() );
Expand Down
2 changes: 1 addition & 1 deletion ContentProtection/ContentProtection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ namespace Plugin {
token);
if (ret != Core::ERROR_NONE) {
SYSLOG(Logging::Startup,
(_T("Couldn't create token: %d"), ret));
(_T("Couldn't create token: %" PRIu32), ret));
}
security->Release();
}
Expand Down
110 changes: 54 additions & 56 deletions ContentProtection/ContentProtection.h
Original file line number Diff line number Diff line change
Expand Up @@ -387,10 +387,8 @@ namespace Plugin {
override
{
uint32_t result;
Core::JSON::String jsonString;
jsonString.FromString(initData);
JsonObject out;
out.FromString(jsonString);
out.FromString(initData);
out["clientId"] = clientId;
out["keySystem"] = Core::JSON::EnumType<KeySystem>(keySystem)
.Data();
Expand All @@ -409,9 +407,7 @@ namespace Plugin {
: Core::ERROR_GENERAL;
} else {
sessionId = in["sessionId"].Number();
string inStr;
in.ToString(inStr);
response = Core::ToQuotedString('\"', inStr);
in.ToString(response);

_parent._sessionStorage.Set(sessionId,
{ clientId, appId, keySystem });
Expand Down Expand Up @@ -455,10 +451,8 @@ namespace Plugin {
}

uint32_t result;
Core::JSON::String jsonString;
jsonString.FromString(initData);
JsonObject out;
out.FromString(jsonString);
out.FromString(initData);
out["clientId"] = session.Value().ClientId;
out["sessionId"] = sessionId;
out["keySystem"] = Core::JSON::EnumType<KeySystem>(
Expand All @@ -479,9 +473,7 @@ namespace Plugin {
? status.Value()
: Core::ERROR_GENERAL;
} else {
string inStr;
in.ToString(inStr);
response = Core::ToQuotedString('\"', inStr);
in.ToString(response);
}
}
return result;
Expand Down Expand Up @@ -579,11 +571,11 @@ namespace Plugin {
Timeout, _T("onAddWatermark"),
[&](const OnAddWatermarkParams& params) {
_watermarkStorage.Set(
params.GraphicId,
{ params.SessionId,
params.AdjustVisibilityRequired,
params.GraphicImageBufferKey,
params.GraphicImageSize });
params.GraphicId.Value(),
{ params.SessionId.Value(),
params.AdjustVisibilityRequired.Value(),
params.GraphicImageBufferKey.Value(),
params.GraphicImageSize.Value() });

CreateWatermarkParams out;
out.Id = params.GraphicId;
Expand All @@ -595,7 +587,8 @@ namespace Plugin {
!= Core::ERROR_NONE)
|| !in["success"].Boolean()) {
TRACE(Trace::Error,
(_T("create %d failed"), params.GraphicId));
(_T("create %" PRIu32 " failed"),
params.GraphicId.Value()));
}
})
== Core::ERROR_NONE);
Expand All @@ -611,7 +604,8 @@ namespace Plugin {
!= Core::ERROR_NONE)
|| !in["success"].Boolean()) {
TRACE(Trace::Error,
(_T("delete %d failed"), params.GraphicId));
(_T("delete %" PRIu32 " failed"),
params.GraphicId.Value()));
}
})
== Core::ERROR_NONE);
Expand All @@ -620,7 +614,7 @@ namespace Plugin {
[&](const OnDisplayWatermarkParams& params) {
uint32_t result;
ShowWatermarkParams out;
out.Show = !params.HideWatermark;
out.Show = !params.HideWatermark.Value();
JsonObject in;
result = _watermark->Invoke<
ShowWatermarkParams, JsonObject>(
Expand All @@ -635,31 +629,33 @@ namespace Plugin {
Timeout, _T("onWatermarkSession"),
[&](const OnWatermarkSessionParams& params) {
auto session = _sessionStorage.Get(
params.SessionId);
params.SessionId.Value());
if (!session.IsSet()) {
return; // No such session
}
auto value = params.ConditionContext.Value();
WatermarkStatusChanged(
params.SessionId,
params.SessionId.Value(),
session.Value().AppId,
{ ((params.ConditionContext == 1)
{ ((value == 1)
? State::GRANTED
: ((params.ConditionContext == 2)
: ((value == 2)
? State::NOT_REQUIRED
: ((params.ConditionContext == 3)
: ((value == 3)
? State::DENIED
: State::FAILED))),
params.ConditionContext });
value });
})
== Core::ERROR_NONE);
ASSERT(_secManager->Subscribe<OnUpdateWatermarkParams>(
Timeout, _T("onUpdateWatermark"),
[&](const OnUpdateWatermarkParams& params) {
auto palette = _palettedImageDataStorage.Get(
params.GraphicId);
params.GraphicId.Value());
if (!palette.IsSet()) {
TRACE(Trace::Error,
(_T("no palette %d"), params.GraphicId));
(_T("no palette %" PRIu32),
params.GraphicId.Value()));
} else {
PaletteWatermarkParams out;
out.Id = params.GraphicId;
Expand All @@ -677,34 +673,34 @@ namespace Plugin {
!= Core::ERROR_NONE)
|| !in["success"].Boolean()) {
TRACE(Trace::Error,
(_T("modify %d failed"),
params.GraphicId));
(_T("modify %" PRIu32 " failed"),
params.GraphicId.Value()));
}
}
})
== Core::ERROR_NONE);
ASSERT(_watermark->Subscribe<OnWatermarkRequestStatusParams>(
Timeout, _T("onWatermarkRequestStatus"),
[&](const OnWatermarkRequestStatusParams& params) {
if (params.Type == "show") {
if (!params.Success) {
if (params.Type.Value() == "show") {
if (!params.Success.Value()) {
TRACE(Trace::Error, (_T("show failed")));
}
// Watermark plugin does not tell
// which call ended, can be any. Can't take this
// information as a response
} else if (!params.Success) {
} else if (!params.Success.Value()) {
auto watermark = _watermarkStorage
.Get(params.Id);
.Get(params.Id.Value());
if (watermark.IsSet()) {
TRACE(Trace::Error,
(_T("%s %d failed"),
(_T("%s %" PRIu32 " failed"),
params.Type.Value().c_str(),
params.Id));
params.Id.Value()));
}
} else if (params.Type == "create") {
} else if (params.Type.Value() == "create") {
auto watermark = _watermarkStorage
.Get(params.Id);
.Get(params.Id.Value());
if (watermark.IsSet()) {
UpdateWatermarkParams out;
out.Id = params.Id;
Expand All @@ -720,13 +716,13 @@ namespace Plugin {
!= Core::ERROR_NONE)
|| !in["success"].Boolean()) {
TRACE(Trace::Error,
(_T("update %d failed"),
params.Id));
(_T("update %" PRIu32 " failed"),
params.Id.Value()));
}
}
} else if (params.Type == "update") {
} else if (params.Type.Value() == "update") {
auto watermark = _watermarkStorage
.Get(params.Id);
.Get(params.Id.Value());
if (watermark.IsSet()
&& watermark.Value()
.AdjustVisibilityRequired) {
Expand All @@ -740,18 +736,20 @@ namespace Plugin {
_T("getPalettedWatermark"),
out, in)
!= Core::ERROR_NONE)
|| !in.ImageWidth || !in.ImageHeight) {
|| !in.ImageWidth.Value()
|| !in.ImageHeight.Value()) {
TRACE(Trace::Error,
(_T("get %d failed"), params.Id));
(_T("get %" PRIu32 " failed"),
params.Id.Value()));
} else {
_palettedImageDataStorage.Set(
params.Id,
{ in.ImageKey,
in.ImageWidth,
in.ImageHeight,
in.ClutKey,
in.ClutSize,
in.ClutType });
params.Id.Value(),
{ in.ImageKey.Value(),
in.ImageWidth.Value(),
in.ImageHeight.Value(),
in.ClutKey.Value(),
in.ClutSize.Value(),
in.ClutType.Value() });

LoadClutWatermarkParams out;
out.SessionId = watermark.Value()
Expand All @@ -765,8 +763,8 @@ namespace Plugin {
out.WatermarkWidth = in.ImageWidth;
out.WatermarkHeight = in.ImageHeight;
out.AspectRatio
= ((float)in.ImageWidth
/ (float)in.ImageHeight);
= ((float)in.ImageWidth.Value()
/ (float)in.ImageHeight.Value());
JsonObject in2;
if ((_secManager->Invoke<
LoadClutWatermarkParams,
Expand All @@ -777,8 +775,8 @@ namespace Plugin {
!= Core::ERROR_NONE)
|| !in2["success"].Boolean()) {
TRACE(Trace::Error,
(_T("load %d failed"),
params.Id));
(_T("load %" PRIu32 " failed"),
params.Id.Value()));
}
}
}
Expand All @@ -789,7 +787,7 @@ namespace Plugin {
Timeout, _T("onWatermarkRenderFailed"),
[&](const OnWatermarkRenderFailedParams& params) {
auto watermark = _watermarkStorage
.Get(params.Image);
.Get(params.Image.Value());
if (watermark.IsSet()) {
auto session = _sessionStorage.Get(
watermark.Value().SessionId);
Expand Down
Loading
Loading