From 486230fbd7f4d982b2a29ce7da7a712d85978b47 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 19 Dec 2023 08:30:39 -0800 Subject: [PATCH] Throw a clear error from `Cea608/708Parser.parseToLegacySubtitle` This would have immediately exposed the mistakes fixed by https://github.com/androidx/media/commit/7ca26f898d4b4791d1a91cff136352ea13e917be Issue: androidx/media#904 PiperOrigin-RevId: 592244943 --- .../androidx/media3/extractor/text/cea/Cea608Parser.java | 7 +++++++ .../androidx/media3/extractor/text/cea/Cea708Parser.java | 7 +++++++ 2 files changed, 14 insertions(+) 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 4171a44966..5d24fbe9a3 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 @@ -40,6 +40,7 @@ import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.extractor.text.CuesWithTiming; +import androidx.media3.extractor.text.Subtitle; import androidx.media3.extractor.text.SubtitleParser; import java.util.ArrayList; import java.util.Collections; @@ -425,6 +426,12 @@ public final class Cea608Parser implements SubtitleParser { return CUE_REPLACEMENT_BEHAVIOR; } + @Override + public Subtitle parseToLegacySubtitle(byte[] data, int offset, int length) { + throw new UnsupportedOperationException( + "Cannot produce Subtitle instances directly. Use Cea608Decoder instead."); + } + @Override public void parse( byte[] data, diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea708Parser.java b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea708Parser.java index c1af6fe1c8..72e9e3194b 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea708Parser.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea708Parser.java @@ -39,6 +39,7 @@ import androidx.media3.common.util.ParsableBitArray; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.extractor.text.CuesWithTiming; +import androidx.media3.extractor.text.Subtitle; import androidx.media3.extractor.text.SubtitleParser; import java.util.ArrayList; import java.util.Collections; @@ -201,6 +202,12 @@ public final class Cea708Parser implements SubtitleParser { return CUE_REPLACEMENT_BEHAVIOR; } + @Override + public Subtitle parseToLegacySubtitle(byte[] data, int offset, int length) { + throw new UnsupportedOperationException( + "Cannot produce Subtitle instances directly. Use Cea708Decoder instead."); + } + @Override public void parse( byte[] data,