From 379cb3ba540d7044785f8355b2df9220e7f5eb8f Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 11 Dec 2023 06:01:24 -0800 Subject: [PATCH] Tighten the handling of `validDataChannelTimeoutMs` in `Cea608Parser` This matches the documented requirements for this parameter. PiperOrigin-RevId: 589799256 --- .../androidx/media3/extractor/text/cea/Cea608Parser.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Parser.java b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Parser.java index c990627a2fe..4171a44966e 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Parser.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Parser.java @@ -15,6 +15,7 @@ */ package androidx.media3.extractor.text.cea; +import static androidx.media3.common.util.Assertions.checkArgument; import static java.lang.Math.min; import android.graphics.Color; @@ -369,8 +370,12 @@ public Cea608Parser(String mimeType, int accessibilityChannel, long validDataCha cueBuilders = new ArrayList<>(); currentCueBuilder = new CueBuilder(CC_MODE_UNKNOWN, DEFAULT_CAPTIONS_ROW_COUNT); currentChannel = NTSC_CC_CHANNEL_1; - this.validDataChannelTimeoutUs = - validDataChannelTimeoutMs > 0 ? validDataChannelTimeoutMs * 1000 : C.TIME_UNSET; + if (validDataChannelTimeoutMs != C.TIME_UNSET) { + checkArgument(validDataChannelTimeoutMs >= MIN_DATA_CHANNEL_TIMEOUT_MS); + this.validDataChannelTimeoutUs = validDataChannelTimeoutMs * 1000; + } else { + this.validDataChannelTimeoutUs = C.TIME_UNSET; + } packetLength = MimeTypes.APPLICATION_MP4CEA608.equals(mimeType) ? 2 : 3; switch (accessibilityChannel) { case 1: