mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Improve Tuner VTS Configuration
This CL allows vendors to configure the DVR Playback data flow in their configuration files for the Tuner Hardware. Their connections were checked to ensure their validity. Additionally, vendors can now give an extra list of optional filters that can be utilized in the DVR Playback data flow. Bug: b/182519645 Test: vts-tradefed run vts --module VtsHalTvTunerTargetTest Change-Id: Ie77337508444672e327ac88a91e73c96bd80fb22
This commit is contained in:
@@ -191,6 +191,7 @@ inline void connectHardwaresToTestCases() {
|
||||
TunerTestingConfigAidlReader1_0::connectDescrambling(descrambling);
|
||||
TunerTestingConfigAidlReader1_0::connectLnbLive(lnbLive);
|
||||
TunerTestingConfigAidlReader1_0::connectLnbRecord(lnbRecord);
|
||||
TunerTestingConfigAidlReader1_0::connectDvrPlayback(playback);
|
||||
};
|
||||
|
||||
inline bool validateConnections() {
|
||||
@@ -248,6 +249,8 @@ inline bool validateConnections() {
|
||||
|
||||
dvrIsValid &= lnbRecord.support ? dvrMap.find(lnbRecord.dvrRecordId) != dvrMap.end() : true;
|
||||
|
||||
dvrIsValid &= playback.support ? dvrMap.find(playback.dvrId) != dvrMap.end() : true;
|
||||
|
||||
if (!dvrIsValid) {
|
||||
ALOGW("[vts config] dynamic config dvr connection is invalid.");
|
||||
return false;
|
||||
@@ -285,6 +288,19 @@ inline bool validateConnections() {
|
||||
filterIsValid &= filterMap.find(filterId) != filterMap.end();
|
||||
}
|
||||
|
||||
filterIsValid &= playback.support
|
||||
? filterMap.find(playback.audioFilterId) != filterMap.end() &&
|
||||
filterMap.find(playback.videoFilterId) != filterMap.end()
|
||||
: true;
|
||||
filterIsValid &= playback.sectionFilterId.compare(emptyHardwareId) == 0
|
||||
? true
|
||||
: filterMap.find(playback.sectionFilterId) != filterMap.end();
|
||||
|
||||
for (auto& filterId : playback.extraFilters) {
|
||||
filterIsValid &=
|
||||
playback.hasExtraFilters ? filterMap.find(filterId) != filterMap.end() : true;
|
||||
}
|
||||
|
||||
if (!filterIsValid) {
|
||||
ALOGW("[vts config] dynamic config filter connection is invalid.");
|
||||
return false;
|
||||
|
||||
@@ -146,12 +146,13 @@ struct ScanHardwareConnections {
|
||||
|
||||
struct DvrPlaybackHardwareConnections {
|
||||
bool support;
|
||||
bool hasExtraFilters = false;
|
||||
string frontendId;
|
||||
string dvrId;
|
||||
string audioFilterId;
|
||||
string videoFilterId;
|
||||
string sectionFilterId;
|
||||
/* list string of extra filters; */
|
||||
vector<string> extraFilters;
|
||||
};
|
||||
|
||||
struct DvrRecordHardwareConnections {
|
||||
@@ -533,6 +534,13 @@ struct TunerTestingConfigAidlReader1_0 {
|
||||
} else {
|
||||
playback.sectionFilterId = emptyHardwareId;
|
||||
}
|
||||
if (playbackConfig.hasOptionalFilters() && !playback.hasExtraFilters) {
|
||||
auto optionalFilters = playbackConfig.getFirstOptionalFilters()->getOptionalFilter();
|
||||
for (size_t i = 0; i < optionalFilters.size(); ++i) {
|
||||
playback.extraFilters.push_back(optionalFilters[i].getFilterId());
|
||||
}
|
||||
playback.hasExtraFilters = true;
|
||||
}
|
||||
}
|
||||
|
||||
static void connectDvrRecord(DvrRecordHardwareConnections& record) {
|
||||
|
||||
@@ -83,14 +83,21 @@ package android.media.tuner.testing.configuration.V1_0 {
|
||||
ctor public DataFlowConfiguration.DvrPlayback();
|
||||
method @Nullable public String getAudioFilterConnection();
|
||||
method @Nullable public String getDvrConnection();
|
||||
method @Nullable public android.media.tuner.testing.configuration.V1_0.DataFlowConfiguration.DvrPlayback.OptionalFilters getOptionalFilters();
|
||||
method @Nullable public String getSectionFilterConnection();
|
||||
method @Nullable public String getVideoFilterConnection();
|
||||
method public void setAudioFilterConnection(@Nullable String);
|
||||
method public void setDvrConnection(@Nullable String);
|
||||
method public void setOptionalFilters(@Nullable android.media.tuner.testing.configuration.V1_0.DataFlowConfiguration.DvrPlayback.OptionalFilters);
|
||||
method public void setSectionFilterConnection(@Nullable String);
|
||||
method public void setVideoFilterConnection(@Nullable String);
|
||||
}
|
||||
|
||||
public static class DataFlowConfiguration.DvrPlayback.OptionalFilters {
|
||||
ctor public DataFlowConfiguration.DvrPlayback.OptionalFilters();
|
||||
method @Nullable public java.util.List<android.media.tuner.testing.configuration.V1_0.OptionalFilter> getOptionalFilter();
|
||||
}
|
||||
|
||||
public static class DataFlowConfiguration.DvrRecord {
|
||||
ctor public DataFlowConfiguration.DvrRecord();
|
||||
method @Nullable public String getDvrRecordConnection();
|
||||
@@ -496,6 +503,12 @@ package android.media.tuner.testing.configuration.V1_0 {
|
||||
enum_constant public static final android.media.tuner.testing.configuration.V1_0.LnbVoltageEnum VOLTAGE_5V;
|
||||
}
|
||||
|
||||
public class OptionalFilter {
|
||||
ctor public OptionalFilter();
|
||||
method @Nullable public String getFilterId();
|
||||
method public void setFilterId(@Nullable String);
|
||||
}
|
||||
|
||||
public class RecordFilterSettings {
|
||||
ctor public RecordFilterSettings();
|
||||
method @Nullable public android.media.tuner.testing.configuration.V1_0.ScIndexTypeEnum getScIndexType();
|
||||
|
||||
@@ -664,7 +664,14 @@
|
||||
<xs:attribute name="audioFilterConnection" type="filterId" use="required"/>
|
||||
<xs:attribute name="videoFilterConnection" type="filterId" use="required"/>
|
||||
<xs:attribute name="sectionFilterConnection" type="filterId" use="optional"/>
|
||||
<!-- TODO: b/182519645 allow the users to insert extra filters -->
|
||||
<xs:element name="optionalFilters" minOccurs="0" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="optionalFilter" type="optionalFilter" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!--TODO: b/182519645 allow the users to insert extra filters/-->
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="dvrRecord" minOccurs="0" maxOccurs="1">
|
||||
@@ -743,4 +750,7 @@
|
||||
<xs:field xpath="@id"/>
|
||||
</xs:key>
|
||||
</xs:element>
|
||||
<xs:complexType name="optionalFilter">
|
||||
<xs:attribute name="filterId" type="filterId" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
|
||||
Reference in New Issue
Block a user