From f52d98eafdb5ad3cee79f0bbcca740fd5555f926 Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Fri, 3 Jan 2025 20:55:59 +0100 Subject: [PATCH] Use Util.maybeInflate() --- .../media3/extractor/text/pgs/PgsParser.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/text/pgs/PgsParser.java b/libraries/extractor/src/main/java/androidx/media3/extractor/text/pgs/PgsParser.java index 0e7ff2d1a7..0c196c3dae 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/text/pgs/PgsParser.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/text/pgs/PgsParser.java @@ -49,8 +49,6 @@ public final class PgsParser implements SubtitleParser { private static final int SECTION_TYPE_IDENTIFIER = 0x16; private static final int SECTION_TYPE_END = 0x80; - private static final byte INFLATE_HEADER = 0x78; - private final ParsableByteArray buffer; private final ParsableByteArray inflatedBuffer; private final CueBuilder cueBuilder; @@ -76,7 +74,12 @@ public final class PgsParser implements SubtitleParser { Consumer output) { buffer.reset(data, /* limit= */ offset + length); buffer.setPosition(offset); - maybeInflateData(buffer); + if (inflater == null) { + inflater = new Inflater(); + } + if (Util.maybeInflate(buffer, inflatedBuffer, inflater)) { + buffer.reset(inflatedBuffer.getData(), inflatedBuffer.limit()); + } cueBuilder.reset(); ArrayList cues = new ArrayList<>(); while (buffer.bytesLeft() >= 3) { @@ -89,17 +92,6 @@ public final class PgsParser implements SubtitleParser { new CuesWithTiming(cues, /* startTimeUs= */ C.TIME_UNSET, /* durationUs= */ C.TIME_UNSET)); } - private void maybeInflateData(ParsableByteArray buffer) { - if (buffer.bytesLeft() > 0 && buffer.peekUnsignedByte() == INFLATE_HEADER) { - if (inflater == null) { - inflater = new Inflater(); - } - if (Util.inflate(buffer, inflatedBuffer, inflater)) { - buffer.reset(inflatedBuffer.getData(), inflatedBuffer.limit()); - } // else assume data is not compressed. - } - } - @Nullable private static Cue readNextSection(ParsableByteArray buffer, CueBuilder cueBuilder) { int limit = buffer.limit();