From da360a67cb5ad37cd8df031903cd9aad9523dcff Mon Sep 17 00:00:00 2001 From: Daniele Sparano Date: Thu, 20 Feb 2025 15:16:36 +0000 Subject: [PATCH] Add fix from https://github.com/androidx/media/pull/2172 --- .../main/java/androidx/media3/extractor/ts/PesReader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/PesReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/PesReader.java index 447c8509a1..686e01f6ff 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/PesReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/PesReader.java @@ -171,9 +171,14 @@ public final class PesReader implements TsPayloadReader { // pes does not have a length field and body is being read, another exclusion // is due to H262 streams possibly having, in HLS mode, a pes across more than one segment // which would trigger committing an unfinished sample in the middle of the access unit + + // Only call parseHeader ifIsModeHls is true and can parse header + // some hls may contain broken packages + boolean headerParsed = !isModeHls || parseHeader(); return state == STATE_READING_BODY && payloadSize == C.LENGTH_UNSET - && !(isModeHls && reader instanceof H262Reader); + && !(isModeHls && reader instanceof H262Reader) + && headerParsed; } private void setState(int state) {