Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2c09c47 authored by Frankie Lizcano's avatar Frankie Lizcano
Browse files

Improve VTS: Allow Extra Filters for Live and Playback

This CL allows vendors to specify extra filters they would like to
include in the Live dataflow. Note, however, that these filters are not
included in any integration tests yet, as those will come later.

Additionally, this CL cleans up the code originally used to configure
extra filters for DVR playback. It converts the code and API strucutre
to a uniform format consistent with that of other dataflows that allow
extra filters.

Bug: b/239751563

Test: vts-tradefed run vts --module VtsHalTvTunerTargetTest
Change-Id: I662814666873254eff84791b5057da1f44f5e73e
parent d58f4aaa
Loading
Loading
Loading
Loading
+8 −6
Original line number Original line Diff line number Diff line
@@ -155,6 +155,7 @@ struct LiveBroadcastHardwareConnections {
    string ipFilterId;
    string ipFilterId;
    string pcrFilterId;
    string pcrFilterId;
    /* list string of extra filters; */
    /* list string of extra filters; */
    vector<string> extraFilters;
};
};


struct ScanHardwareConnections {
struct ScanHardwareConnections {
@@ -530,6 +531,10 @@ struct TunerTestingConfigAidlReader1_0 {
        } else {
        } else {
            live.ipFilterId = emptyHardwareId;
            live.ipFilterId = emptyHardwareId;
        }
        }
        if (liveConfig.hasOptionalFilters()) {
            auto optionalFilters = liveConfig.getOptionalFilters();
            live.extraFilters = optionalFilters;
        }
    }
    }


    static void connectScan(ScanHardwareConnections& scan) {
    static void connectScan(ScanHardwareConnections& scan) {
@@ -563,12 +568,9 @@ struct TunerTestingConfigAidlReader1_0 {
        } else {
        } else {
            playback.sectionFilterId = emptyHardwareId;
            playback.sectionFilterId = emptyHardwareId;
        }
        }
        if (playbackConfig.hasOptionalFilters() && !playback.hasExtraFilters) {
        if (playbackConfig.hasOptionalFilters()) {
            auto optionalFilters = playbackConfig.getFirstOptionalFilters()->getOptionalFilter();
            auto optionalFilters = playbackConfig.getOptionalFilters();
            for (size_t i = 0; i < optionalFilters.size(); ++i) {
            playback.extraFilters = optionalFilters;
                playback.extraFilters.push_back(optionalFilters[i].getFilterId());
            }
            playback.hasExtraFilters = true;
        }
        }
    }
    }


+4 −7
Original line number Original line Diff line number Diff line
@@ -47,6 +47,7 @@ package android.media.tuner.testing.configuration.V1_0 {
    method @Nullable public String getDvrSoftwareFeConnection();
    method @Nullable public String getDvrSoftwareFeConnection();
    method @Nullable public String getFrontendConnection();
    method @Nullable public String getFrontendConnection();
    method @Nullable public String getIpFilterConnection();
    method @Nullable public String getIpFilterConnection();
    method @Nullable public java.util.List<java.lang.String> getOptionalFilters();
    method @Nullable public String getPcrFilterConnection();
    method @Nullable public String getPcrFilterConnection();
    method @Nullable public String getSectionFilterConnection();
    method @Nullable public String getSectionFilterConnection();
    method @Nullable public String getVideoFilterConnection();
    method @Nullable public String getVideoFilterConnection();
@@ -54,6 +55,7 @@ package android.media.tuner.testing.configuration.V1_0 {
    method public void setDvrSoftwareFeConnection(@Nullable String);
    method public void setDvrSoftwareFeConnection(@Nullable String);
    method public void setFrontendConnection(@Nullable String);
    method public void setFrontendConnection(@Nullable String);
    method public void setIpFilterConnection(@Nullable String);
    method public void setIpFilterConnection(@Nullable String);
    method public void setOptionalFilters(@Nullable java.util.List<java.lang.String>);
    method public void setPcrFilterConnection(@Nullable String);
    method public void setPcrFilterConnection(@Nullable String);
    method public void setSectionFilterConnection(@Nullable String);
    method public void setSectionFilterConnection(@Nullable String);
    method public void setVideoFilterConnection(@Nullable String);
    method public void setVideoFilterConnection(@Nullable String);
@@ -83,21 +85,16 @@ package android.media.tuner.testing.configuration.V1_0 {
    ctor public DataFlowConfiguration.DvrPlayback();
    ctor public DataFlowConfiguration.DvrPlayback();
    method @Nullable public String getAudioFilterConnection();
    method @Nullable public String getAudioFilterConnection();
    method @Nullable public String getDvrConnection();
    method @Nullable public String getDvrConnection();
    method @Nullable public android.media.tuner.testing.configuration.V1_0.DataFlowConfiguration.DvrPlayback.OptionalFilters getOptionalFilters();
    method @Nullable public java.util.List<java.lang.String> getOptionalFilters();
    method @Nullable public String getSectionFilterConnection();
    method @Nullable public String getSectionFilterConnection();
    method @Nullable public String getVideoFilterConnection();
    method @Nullable public String getVideoFilterConnection();
    method public void setAudioFilterConnection(@Nullable String);
    method public void setAudioFilterConnection(@Nullable String);
    method public void setDvrConnection(@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 setOptionalFilters(@Nullable java.util.List<java.lang.String>);
    method public void setSectionFilterConnection(@Nullable String);
    method public void setSectionFilterConnection(@Nullable String);
    method public void setVideoFilterConnection(@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 {
  public static class DataFlowConfiguration.DvrRecord {
    ctor public DataFlowConfiguration.DvrRecord();
    ctor public DataFlowConfiguration.DvrRecord();
    method @Nullable public String getDvrRecordConnection();
    method @Nullable public String getDvrRecordConnection();
+2 −10
Original line number Original line Diff line number Diff line
@@ -644,7 +644,7 @@
                    <xs:attribute name="pcrFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="pcrFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="sectionFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="sectionFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="ipFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="ipFilterConnection" type="filterId" use="optional"/>
                    <!-- TODO: b/182519645 allow the users to insert extra filters -->
                    <xs:element name="optionalFilters" type="filterConnections" minOccurs="0" maxOccurs="1"/>
                    <!-- DVR is only required when the frontend is using the software input -->
                    <!-- DVR is only required when the frontend is using the software input -->
                    <xs:attribute name="dvrSoftwareFeConnection" type="dvrId" use="optional"/>
                    <xs:attribute name="dvrSoftwareFeConnection" type="dvrId" use="optional"/>
                </xs:complexType>
                </xs:complexType>
@@ -665,7 +665,6 @@
                    <xs:attribute name="descramblerConnection" type="descramblerId" use="required"/>
                    <xs:attribute name="descramblerConnection" type="descramblerId" use="required"/>
                    <xs:attribute name="audioFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="audioFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="videoFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="videoFilterConnection" type="filterId" use="required"/>
                    <!-- TODO: b/182519645 allow the users to insert extra filters -->
                    <xs:element name="optionalFilters" type="filterConnections" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="optionalFilters" type="filterConnections" minOccurs="0" maxOccurs="1"/>
                    <!-- This DVR is only required when the frontend is using the software input -->
                    <!-- This DVR is only required when the frontend is using the software input -->
                    <xs:attribute name="dvrSoftwareFeConnection" type="dvrId" use="optional"/>
                    <xs:attribute name="dvrSoftwareFeConnection" type="dvrId" use="optional"/>
@@ -679,14 +678,7 @@
                    <xs:attribute name="audioFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="audioFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="videoFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="videoFilterConnection" type="filterId" use="required"/>
                    <xs:attribute name="sectionFilterConnection" type="filterId" use="optional"/>
                    <xs:attribute name="sectionFilterConnection" type="filterId" use="optional"/>
                    <xs:element name="optionalFilters" minOccurs="0" maxOccurs="1">
                    <xs:element name="optionalFilters" type="filterConnections" 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:complexType>
            </xs:element>
            </xs:element>
            <xs:element name="dvrRecord" minOccurs="0" maxOccurs="1">
            <xs:element name="dvrRecord" minOccurs="0" maxOccurs="1">