Skip to content

Commit a99ff6e

Browse files
slkanthiarjunbinu
authored andcommitted
Get/set/reset for AISuperResolution
1 parent e682acf commit a99ff6e

File tree

2 files changed

+111
-28
lines changed

2 files changed

+111
-28
lines changed

AVOutput/AVOutputTV.cpp

Lines changed: 103 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,11 @@ namespace Plugin {
414414
registerMethod("getAISuperResolutionCaps", &AVOutputTV::getAISuperResolutionCaps, this);
415415
registerMethod("getMEMCCaps", &AVOutputTV::getMEMCCaps, this);
416416

417+
registerMethod("getAISuperResolution", &AVOutputTV::getAISuperResolution, this);
418+
registerMethod("setAISuperResolution", &AVOutputTV::setAISuperResolution, this);
419+
registerMethod("resetAISuperResolution", &AVOutputTV::resetAISuperResolution, this);
420+
421+
417422
LOGINFO("Exit\n");
418423
}
419424

@@ -547,8 +552,6 @@ namespace Plugin {
547552

548553
bool AVOutputTV::getPQParamV2(const JsonObject& parameters,
549554
const std::string& paramName,
550-
tvContextCaps_t*& capStore,
551-
int& maxCap,
552555
tvPQParameterIndex_t paramType,
553556
int& outValue)
554557
{
@@ -579,7 +582,7 @@ namespace Plugin {
579582
return false;
580583
}
581584

582-
bool AVOutputTV::setPQParamV2(const JsonObject& parameters, const std::string& paramName,
585+
bool AVOutputTV::applyPictureSetting(const JsonObject& parameters, const std::string& paramName,
583586
tvPQParameterIndex_t pqType, tvSetFunction halSetter, int maxCap)
584587
{
585588
LOGINFO("Entry: %s\n", paramName.c_str());
@@ -1316,6 +1319,83 @@ namespace Plugin {
13161319
}
13171320
}
13181321

1322+
uint32_t AVOutputTV::resetAISuperResolution(const JsonObject& parameters, JsonObject& response)
1323+
{
1324+
returnResponse(false);
1325+
}
1326+
1327+
uint32_t AVOutputTV::getAISuperResolution(const JsonObject& parameters, JsonObject& response)
1328+
{
1329+
LOGINFO("Entry");
1330+
int aiSuperResolution = 0;
1331+
bool success = getPQParamV2(parameters,
1332+
"AISuperResolution",
1333+
PQ_PARAM_AI_SUPER_RESOLUTION,
1334+
aiSuperResolution);
1335+
if (success) {
1336+
response["AISuperResolution"] = aiSuperResolution;
1337+
}
1338+
returnResponse(success);
1339+
}
1340+
1341+
uint32_t AVOutputTV::setAISuperResolution(const JsonObject& parameters, JsonObject& response)
1342+
{
1343+
LOGINFO("Entry");
1344+
std::string value;
1345+
int aiSuperResolution;
1346+
tvError_t ret = tvERROR_NONE;
1347+
1348+
value = parameters.HasLabel("AISuperResolution") ? parameters["AISuperResolution"].String() : "";
1349+
returnIfParamNotFound(parameters, "AISuperResolution");
1350+
aiSuperResolution = std::stoi(value);
1351+
1352+
// Validate the aiSuperResolution value
1353+
if (aiSuperResolution < 0 || aiSuperResolution > m_maxAISuperResolution)
1354+
{
1355+
LOGERR("Input value %d is out of range for aiSuperResolution", aiSuperResolution);
1356+
returnResponse(false);
1357+
}
1358+
1359+
tvVideoSrcType_t currentSrc = VIDEO_SOURCE_IP;
1360+
tvVideoFormatType_t currentFmt = VIDEO_FORMAT_SDR;
1361+
tvPQModeIndex_t currentPQMode = PQ_MODE_STANDARD;
1362+
GetCurrentVideoSource(&currentSrc);
1363+
GetCurrentVideoFormat(&currentFmt);
1364+
if (currentFmt == VIDEO_FORMAT_NONE)
1365+
currentFmt = VIDEO_FORMAT_SDR;
1366+
char picMode[PIC_MODE_NAME_MAX]={0};
1367+
if(!getCurrentPictureMode(picMode)) {
1368+
LOGERR("Failed to get the Current picture mode\n");
1369+
}
1370+
else {
1371+
std::string local = picMode;
1372+
currentPQMode = static_cast<tvPQModeIndex_t>(getPictureModeIndex(local));
1373+
}
1374+
LOGINFO("currentPQMode %d, currentFmt %d, currentSrc %d ",currentPQMode, currentFmt, currentSrc);
1375+
// Call HAL setter for AISuperResolution
1376+
if (isSetRequiredForParam("AISuperResolution", parameters)) {
1377+
//ret = SetAISuperResolution(currentSrc, currentPQMode, currentFmt, aiSuperResolution);
1378+
ret = tvERROR_NONE;
1379+
}
1380+
if(ret != tvERROR_NONE)
1381+
{
1382+
LOGERR("Failed to set AISuperResolution\n");
1383+
returnResponse(false);
1384+
}
1385+
else
1386+
{
1387+
// Update the TV parameter
1388+
int retval = updateAVoutputTVParamV2("set", "AISuperResolution", parameters, PQ_PARAM_AI_SUPER_RESOLUTION, aiSuperResolution);
1389+
if (retval != 0)
1390+
{
1391+
LOGERR("Failed to Save AISuperResolution to ssm_data\n");
1392+
returnResponse(false);
1393+
}
1394+
LOGINFO("Exit : AISuperResolution successful to value: %d\n", aiSuperResolution);
1395+
returnResponse(true);
1396+
}
1397+
}
1398+
13191399
uint32_t AVOutputTV::getBacklight(const JsonObject& parameters, JsonObject& response)
13201400
{
13211401
LOGINFO("Entry");
@@ -1354,7 +1434,7 @@ namespace Plugin {
13541434
{
13551435
int backlight = 0;
13561436
bool success = getPQParamV2(parameters,
1357-
"Backlight", m_backlightCaps, m_maxBacklight,
1437+
"Backlight",
13581438
PQ_PARAM_BACKLIGHT,
13591439
backlight);
13601440
if (success) {
@@ -1419,12 +1499,13 @@ namespace Plugin {
14191499
}
14201500
else
14211501
{
1422-
bool success = setPQParamV2(parameters, "Backlight", PQ_PARAM_BACKLIGHT, SetBacklight, m_maxBacklight);
1502+
bool success = applyPictureSetting(parameters, "Backlight", PQ_PARAM_BACKLIGHT, SetBacklight, m_maxBacklight);
14231503
returnResponse(success);
14241504
}
14251505

14261506
}
1427-
bool AVOutputTV::resetPQParamV2(const JsonObject& parameters,
1507+
1508+
bool AVOutputTV::resetPictureParamToDefault(const JsonObject& parameters,
14281509
const std::string& paramName,
14291510
tvPQParameterIndex_t pqIndex,
14301511
tvSetFunction halSetter)
@@ -1529,7 +1610,7 @@ namespace Plugin {
15291610
}
15301611
else
15311612
{
1532-
bool success= resetPQParamV2(parameters, "Backlight", PQ_PARAM_BACKLIGHT, SetBacklight);
1613+
bool success= resetPictureParamToDefault(parameters, "Backlight", PQ_PARAM_BACKLIGHT, SetBacklight);
15331614
returnResponse(success);
15341615
}
15351616
}
@@ -1613,7 +1694,7 @@ namespace Plugin {
16131694
{
16141695
int brightness = 0;
16151696
bool success = getPQParamV2(parameters,
1616-
"Brightness", m_brightnessCaps, m_maxBrightness,
1697+
"Brightness",
16171698
PQ_PARAM_BRIGHTNESS,
16181699
brightness);
16191700
if (success) {
@@ -1673,7 +1754,7 @@ namespace Plugin {
16731754
}
16741755
else
16751756
{
1676-
bool success = setPQParamV2(parameters, "Brightness", PQ_PARAM_BRIGHTNESS, SetBrightness, m_maxBrightness);
1757+
bool success = applyPictureSetting(parameters, "Brightness", PQ_PARAM_BRIGHTNESS, SetBrightness, m_maxBrightness);
16771758
returnResponse(success);
16781759
}
16791760
}
@@ -1734,7 +1815,7 @@ namespace Plugin {
17341815
}
17351816
else
17361817
{
1737-
bool success = resetPQParamV2(parameters, "Brightness", PQ_PARAM_BRIGHTNESS, SetBrightness);
1818+
bool success = resetPictureParamToDefault(parameters, "Brightness", PQ_PARAM_BRIGHTNESS, SetBrightness);
17381819
returnResponse(success);
17391820
}
17401821
}
@@ -1817,7 +1898,7 @@ namespace Plugin {
18171898
{
18181899
int contrast = 0;
18191900
bool success = getPQParamV2(parameters,
1820-
"Contrast", m_contrastCaps, m_maxContrast,
1901+
"Contrast",
18211902
PQ_PARAM_CONTRAST,
18221903
contrast);
18231904
if (success) {
@@ -1878,7 +1959,7 @@ namespace Plugin {
18781959
}
18791960
else
18801961
{
1881-
bool success = setPQParamV2(parameters, "Contrast", PQ_PARAM_CONTRAST, SetContrast, m_maxContrast);
1962+
bool success = applyPictureSetting(parameters, "Contrast", PQ_PARAM_CONTRAST, SetContrast, m_maxContrast);
18821963
returnResponse(success);
18831964
}
18841965
}
@@ -1938,7 +2019,7 @@ namespace Plugin {
19382019
}
19392020
else
19402021
{
1941-
bool success= resetPQParamV2(parameters, "Contrast", PQ_PARAM_CONTRAST, SetContrast);
2022+
bool success= resetPictureParamToDefault(parameters, "Contrast", PQ_PARAM_CONTRAST, SetContrast);
19422023
returnResponse(success);
19432024

19442025
}
@@ -2023,7 +2104,7 @@ namespace Plugin {
20232104
{
20242105
int saturation = 0;
20252106
bool success = getPQParamV2(parameters,
2026-
"saturation", m_saturationCaps, m_maxSaturation,
2107+
"saturation",
20272108
PQ_PARAM_SATURATION,
20282109
saturation);
20292110
if (success) {
@@ -2084,7 +2165,7 @@ namespace Plugin {
20842165
}
20852166
else
20862167
{
2087-
bool success = setPQParamV2(parameters, "Saturation", PQ_PARAM_SATURATION, SetSaturation, m_maxSaturation);
2168+
bool success = applyPictureSetting(parameters, "Saturation", PQ_PARAM_SATURATION, SetSaturation, m_maxSaturation);
20882169
returnResponse(success);
20892170
}
20902171
}
@@ -2143,7 +2224,7 @@ namespace Plugin {
21432224
}
21442225
else
21452226
{
2146-
bool success= resetPQParamV2(parameters, "Saturation", PQ_PARAM_SATURATION, SetSaturation);
2227+
bool success= resetPictureParamToDefault(parameters, "Saturation", PQ_PARAM_SATURATION, SetSaturation);
21472228
returnResponse(success);
21482229

21492230
}
@@ -2229,7 +2310,7 @@ namespace Plugin {
22292310
{
22302311
int sharpness = 0;
22312312
bool success = getPQParamV2(parameters,
2232-
"Sharpness", m_sharpnessCaps, m_maxSharpness,
2313+
"Sharpness",
22332314
PQ_PARAM_SHARPNESS,
22342315
sharpness);
22352316
if (success) {
@@ -2290,7 +2371,7 @@ namespace Plugin {
22902371
}
22912372
else
22922373
{
2293-
bool success = setPQParamV2(parameters, "Sharpness", PQ_PARAM_SHARPNESS, SetSharpness, m_maxSharpness);
2374+
bool success = applyPictureSetting(parameters, "Sharpness", PQ_PARAM_SHARPNESS, SetSharpness, m_maxSharpness);
22942375
returnResponse(success);
22952376
}
22962377
}
@@ -2350,7 +2431,7 @@ namespace Plugin {
23502431
}
23512432
else
23522433
{
2353-
bool success= resetPQParamV2(parameters, "Sharpness", PQ_PARAM_SHARPNESS, SetSharpness);
2434+
bool success= resetPictureParamToDefault(parameters, "Sharpness", PQ_PARAM_SHARPNESS, SetSharpness);
23542435
returnResponse(success);
23552436

23562437
}
@@ -2436,7 +2517,7 @@ namespace Plugin {
24362517
{
24372518
int hue = 0;
24382519
bool success = getPQParamV2(parameters,
2439-
"Hue", m_hueCaps, m_maxHue,
2520+
"Hue",
24402521
PQ_PARAM_HUE,
24412522
hue);
24422523
if (success) {
@@ -2497,7 +2578,7 @@ namespace Plugin {
24972578
}
24982579
else
24992580
{
2500-
bool success = setPQParamV2(parameters, "Hue", PQ_PARAM_HUE, SetHue, m_maxHue);
2581+
bool success = applyPictureSetting(parameters, "Hue", PQ_PARAM_HUE, SetHue, m_maxHue);
25012582
returnResponse(success);
25022583
}
25032584
}
@@ -2557,7 +2638,7 @@ namespace Plugin {
25572638
}
25582639
else
25592640
{
2560-
bool success= resetPQParamV2(parameters, "Hue", PQ_PARAM_HUE, SetHue);
2641+
bool success= resetPictureParamToDefault(parameters, "Hue", PQ_PARAM_HUE, SetHue);
25612642
returnResponse(success);
25622643

25632644
}

AVOutput/AVOutputTV.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ class AVOutputTV : public AVOutputBase {
218218
DECLARE_JSON_RPC_METHOD(getDigitalNoiseReduction)
219219
DECLARE_JSON_RPC_METHOD(getAISuperResolution)
220220
DECLARE_JSON_RPC_METHOD(getMEMC)
221+
DECLARE_JSON_RPC_METHOD(getAISuperResolution)
222+
221223

222224
/*Get Capability API's*/
223225
DECLARE_JSON_RPC_METHOD(getBacklightCaps)
@@ -290,8 +292,9 @@ class AVOutputTV : public AVOutputBase {
290292
DECLARE_JSON_RPC_METHOD(setLocalContrastEnhancement)
291293
DECLARE_JSON_RPC_METHOD(setMPEGNoiseReduction)
292294
DECLARE_JSON_RPC_METHOD(setDigitalNoiseReduction)
293-
DECLARE_JSON_RPC_METHOD(setAISuperResolution)
294295
DECLARE_JSON_RPC_METHOD(setMEMC)
296+
DECLARE_JSON_RPC_METHOD(setAISuperResolution)
297+
295298

296299
/*Reset API's*/
297300
DECLARE_JSON_RPC_METHOD(resetBacklight)
@@ -315,8 +318,9 @@ class AVOutputTV : public AVOutputBase {
315318
DECLARE_JSON_RPC_METHOD(resetLocalContrastEnhancement)
316319
DECLARE_JSON_RPC_METHOD(resetMPEGNoiseReduction)
317320
DECLARE_JSON_RPC_METHOD(resetDigitalNoiseReduction)
318-
DECLARE_JSON_RPC_METHOD(resetAISuperResolution)
319321
DECLARE_JSON_RPC_METHOD(resetMEMC)
322+
DECLARE_JSON_RPC_METHOD(resetAISuperResolution)
323+
320324

321325
private:
322326

@@ -487,18 +491,16 @@ class AVOutputTV : public AVOutputBase {
487491
int updateAVoutputTVParamV2(std::string action, std::string tr181ParamName,
488492
const JsonObject& parameters, tvPQParameterIndex_t pqParamIndex, int level);
489493
std::vector<tvConfigContext_t> getValidContextsFromParameters(const JsonObject& parameters,const std::string& tr181ParamName );
490-
bool resetPQParamV2(const JsonObject& parameters,
494+
bool resetPictureParamToDefault(const JsonObject& parameters,
491495
const std::string& paramName,
492496
tvPQParameterIndex_t pqIndex,
493497
tvSetFunction halSetter);
494498
tvConfigContext_t getValidContextFromGetParameters(const JsonObject& parameters, const std::string& paramName);
495499
bool getPQParamV2(const JsonObject& parameters,
496500
const std::string& paramName,
497-
tvContextCaps_t*& capStore,
498-
int& maxCap,
499501
tvPQParameterIndex_t paramType,
500502
int& outValue);
501-
bool setPQParamV2(const JsonObject& parameters, const std::string& paramName,
503+
bool applyPictureSetting(const JsonObject& parameters, const std::string& paramName,
502504
tvPQParameterIndex_t pqType, tvSetFunction halSetter, int maxCap);
503505
bool setPictureModeV2(const JsonObject& parameters);
504506
bool getBacklightDimmingModeV2(const JsonObject& parameters, std::string& outMode);

0 commit comments

Comments
 (0)