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 2858565099..7936e59001 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 @@ parcelable DemuxFilterSectionSettings { 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 f6788ee131..aa30175823 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 @@ package android.hardware.tv.tuner; 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 @@ parcelable DemuxFilterSectionSettings { * 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 b6cc5f80b0..b73d59411b 100644 --- a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h +++ b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h @@ -954,6 +954,7 @@ struct TunerTestingConfigAidlReader1_0 { 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 db1d076e10..4d519d7cb5 100644 --- a/tv/tuner/config/api/current.txt +++ b/tv/tuner/config/api/current.txt @@ -477,9 +477,11 @@ package android.media.tuner.testing.configuration.V1_0 { 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 54cedfcf6b..94f108b43a 100644 --- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd +++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd @@ -226,6 +226,7 @@ +