Add CRC32 checking hint.
Bug: 172985025
Test: atest VtsHalTvTunerTargetTest
Change-Id: Ie26cfee7ba0254fe20e485cd173e65d391f7a254
diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
index 2858565..7936e59 100644
--- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
+++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
@@ -39,4 +39,5 @@
boolean isCheckCrc;
boolean isRepeat;
boolean isRaw;
+ int bitWidthOfLengthField;
}
diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
index f6788ee..aa30175 100644
--- a/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
+++ b/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterSectionSettings.aidl
@@ -19,7 +19,7 @@
import android.hardware.tv.tuner.DemuxFilterSectionSettingsCondition;
/**
- * Filter Settings for Section data according to ISO/IEC 13818-1.
+ * Filter Settings for Section data according to ISO/IEC 13818-1 and ISO/IEC 23008-1.
* @hide
*/
@VintfStability
@@ -49,4 +49,12 @@
* true if the filter send onFilterStatus instead of onFilterEvent.
*/
boolean isRaw;
+
+ /**
+ * The bit width of the MMTP (MPEG Media Transport Protocol) section message's length field
+ * according to ISO/IEC 23008-1.
+ *
+ * The filter uses this for CRC checking when isCheckCrc is true.
+ */
+ int bitWidthOfLengthField;
}
diff --git a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h
index b6cc5f8..b73d594 100644
--- a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h
+++ b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h
@@ -954,6 +954,7 @@
settings.isCheckCrc = section->getIsCheckCrc();
settings.isRepeat = section->getIsRepeat();
settings.isRaw = section->getIsRaw();
+ settings.bitWidthOfLengthField = section->getBitWidthOfLengthField();
return settings;
}
diff --git a/tv/tuner/config/api/current.txt b/tv/tuner/config/api/current.txt
index db1d076..4d519d7 100644
--- a/tv/tuner/config/api/current.txt
+++ b/tv/tuner/config/api/current.txt
@@ -477,9 +477,11 @@
public class SectionFilterSettings {
ctor public SectionFilterSettings();
+ method @Nullable public java.math.BigInteger getBitWidthOfLengthField();
method @Nullable public boolean getIsCheckCrc();
method @Nullable public boolean getIsRaw();
method @Nullable public boolean getIsRepeat();
+ method public void setBitWidthOfLengthField(@Nullable java.math.BigInteger);
method public void setIsCheckCrc(@Nullable boolean);
method public void setIsRaw(@Nullable boolean);
method public void setIsRepeat(@Nullable boolean);
diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
index 54cedfc..94f108b 100644
--- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
+++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
@@ -226,6 +226,7 @@
<xs:attribute name="isCheckCrc" type="xs:boolean" use="required"/>
<xs:attribute name="isRepeat" type="xs:boolean" use="required"/>
<xs:attribute name="isRaw" type="xs:boolean" use="required"/>
+ <xs:attribute name="bitWidthOfLengthField" type="xs:nonNegativeInteger" use="required"/>
</xs:complexType>
<xs:complexType name="recordFilterSettings">
<xs:attribute name="tsIndexMask" type="tsIndexMask" use="required"/>