From 452b026fb51ce85b75781fa270423703ee640b79 Mon Sep 17 00:00:00 2001 From: Frankie Lizcano Date: Mon, 27 Jun 2022 22:00:33 +0000 Subject: [PATCH] vts: Added support for ISDBS Frontend types The latest version of the dynamic VTS for Tuner HALs did not support the configuration of ISDBS Frontend types. Logic was added to allow this feature. Bug: b/237319139 Test: manual - Ran local tests that ensured the ATSC frontend was being configured correctly. Also ran the VTS module to ensure no failures were occuring. Change-Id: I7d7fe5ce153a582a65fa9d1347e18f7689e0bcfb --- .../config/TunerTestingConfigAidlReaderV1_0.h | 61 ++++++++++++++----- tv/tuner/config/api/current.txt | 18 ++++++ .../tuner_testing_dynamic_configuration.xsd | 12 +++- 3 files changed, 73 insertions(+), 18 deletions(-) diff --git a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h index caf631c68d..e0118cd6fb 100644 --- a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h +++ b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h @@ -286,6 +286,9 @@ struct TunerTestingConfigAidlReader1_0 { } case FrontendTypeEnum::ISDBS: type = FrontendType::ISDBS; + frontendMap[id].settings.set< + FrontendSettings::Tag::isdbs>( + readIsdbsFrontendSettings(feConfig)); break; case FrontendTypeEnum::ISDBS3: type = FrontendType::ISDBS3; @@ -695,23 +698,49 @@ struct TunerTestingConfigAidlReader1_0 { } static FrontendAtscSettings readAtscFrontendSettings(Frontend& feConfig) { - ALOGW("[ConfigReader] fe type is atsc"); - FrontendAtscSettings atscSettings{ - .frequency = (int64_t)feConfig.getFrequency(), - }; - if (feConfig.hasEndFrequency()) { - atscSettings.endFrequency = (int64_t)feConfig.getEndFrequency(); - } - if (!feConfig.hasAtscFrontendSettings_optional()) { - ALOGW("[ConfigReader] no more atsc settings"); - return atscSettings; - } - auto atsc = feConfig.getFirstAtscFrontendSettings_optional(); - atscSettings.inversion = static_cast( - atsc->getInversion()); - atscSettings.modulation = static_cast( - atsc->getModulation()); + ALOGW("[ConfigReader] fe type is atsc"); + FrontendAtscSettings atscSettings{ + .frequency = (int64_t) feConfig.getFrequency(), + }; + if (feConfig.hasEndFrequency()) { + atscSettings.endFrequency = (int64_t) feConfig.getEndFrequency(); + } + if (!feConfig.hasAtscFrontendSettings_optional()) { + ALOGW("[ConfigReader] no more atsc settings"); return atscSettings; + } + auto atsc = feConfig.getFirstAtscFrontendSettings_optional(); + atscSettings.inversion = static_cast( + atsc->getInversion()); + atscSettings.modulation = static_cast( + atsc->getModulation()); + return atscSettings; + } + + static FrontendIsdbsSettings readIsdbsFrontendSettings(Frontend &feConfig) { + ALOGW("[ConfigReader] fe type is isdbs"); + FrontendIsdbsSettings isdbsSettings{ + .frequency = (int64_t)feConfig.getFrequency() + }; + if (feConfig.hasEndFrequency()) { + isdbsSettings.endFrequency = (int64_t)feConfig.getEndFrequency(); + } + if (!feConfig.hasIsdbsFrontendSettings_optional()) { + ALOGW("[ConfigReader] no more isdbs settings"); + return isdbsSettings; + } + auto isdbs = feConfig.getFirstIsdbsFrontendSettings_optional(); + isdbsSettings.streamId = (int32_t)isdbs->getStreamId(); + isdbsSettings.symbolRate = (int32_t)isdbs->getSymbolRate(); + isdbsSettings.modulation = static_cast( + isdbs->getModulation()); + isdbsSettings.coderate = static_cast( + isdbs->getCoderate()); + isdbsSettings.rolloff = static_cast( + isdbs->getRolloff()); + isdbsSettings.streamIdType = static_cast( + isdbs->getStreamIdType()); + return isdbsSettings; } static bool readFilterTypeAndSettings(Filter filterConfig, DemuxFilterType& type, diff --git a/tv/tuner/config/api/current.txt b/tv/tuner/config/api/current.txt index 88576bb46f..aa7b88c249 100644 --- a/tv/tuner/config/api/current.txt +++ b/tv/tuner/config/api/current.txt @@ -326,6 +326,7 @@ package android.media.tuner.testing.configuration.V1_0 { method @Nullable public java.math.BigInteger getFrequency(); method @Nullable public String getId(); method @Nullable public boolean getIsSoftwareFrontend(); + method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings getIsdbsFrontendSettings_optional(); method @Nullable public java.math.BigInteger getRemoveOutputPid(); method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum getType(); method public void setAtscFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.AtscFrontendSettings); @@ -336,6 +337,7 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setFrequency(@Nullable java.math.BigInteger); method public void setId(@Nullable String); method public void setIsSoftwareFrontend(@Nullable boolean); + method public void setIsdbsFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings); method public void setRemoveOutputPid(@Nullable java.math.BigInteger); method public void setType(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum); } @@ -432,6 +434,22 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setSrcPort(@Nullable long); } + public class IsdbsFrontendSettings { + ctor public IsdbsFrontendSettings(); + method @Nullable public java.math.BigInteger getCoderate(); + method @Nullable public java.math.BigInteger getModulation(); + method @Nullable public java.math.BigInteger getRolloff(); + method @Nullable public java.math.BigInteger getStreamId(); + method @Nullable public java.math.BigInteger getStreamIdType(); + method @Nullable public java.math.BigInteger getSymbolRate(); + method public void setCoderate(@Nullable java.math.BigInteger); + method public void setModulation(@Nullable java.math.BigInteger); + method public void setRolloff(@Nullable java.math.BigInteger); + method public void setStreamId(@Nullable java.math.BigInteger); + method public void setStreamIdType(@Nullable java.math.BigInteger); + method public void setSymbolRate(@Nullable java.math.BigInteger); + } + public class Lnb { ctor public Lnb(); method @Nullable public String getId(); diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd index bbb514922b..282433e741 100644 --- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd +++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd @@ -84,6 +84,14 @@ + + + + + + + + @@ -119,8 +127,8 @@ -