From 8fdf105ab49fe786acfa39b4a422fdabcf33e3fa Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 21 May 2024 07:43:39 -0700 Subject: [PATCH] Re-apply CEA-608 `validDataChannelTimeoutMs` assertion This change was originally made in https://github.com/androidx/media/commit/379cb3ba540d7044785f8355b2df9220e7f5eb8f. It was then accidentally lost in when `Cea608Parser` was merged back into `Cea608Decoder` in https://github.com/androidx/media/commit/25498b151ba298ef359f245e2ed80718b4adf556. This was spotted when re-doing a similar lost change to `Cea708Decoder`, reported in https://github.com/androidx/media/pull/1315. See reasoning on https://github.com/androidx/media/commit/e2847b3b80112e7bce0e0706604bdee8126704e5 about why this is the only 'lost' CEA-608 change. PiperOrigin-RevId: 635803536 --- .../media3/extractor/text/cea/Cea608Decoder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java index c8b10201c4..d26ee96ca4 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.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; @@ -365,8 +366,12 @@ public final class Cea608Decoder extends CeaDecoder { 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: