Skip to content

test(playback): reproduce byte-range LL-HLS chunk exhaustion - #266

Closed
MrFr3di wants to merge 1 commit into
mainfrom
test/ll-hls-byte-range-regression
Closed

test(playback): reproduce byte-range LL-HLS chunk exhaustion#266
MrFr3di wants to merge 1 commit into
mainfrom
test/ll-hls-byte-range-regression

Conversation

@MrFr3di

@MrFr3di MrFr3di commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Tracks #264.

Purpose

Add a deterministic instrumentation regression for the upstream AndroidX Media3 byte-range LL-HLS failure (androidx/media#3350) through MuxTV's real playback path.

This PR is intentionally an evidence/RED branch first, not a production workaround.

Fixture

  • no live provider URL;
  • no credentials or captured provider data;
  • local MockWebServer origin;
  • real PlaybackMediaSourceFactory + MuxTvHttpClients + HlsMediaSource + ExoPlayer;
  • init/media bytes derived from AndroidX Media3's Apache-2.0 CMAF test corpus;
  • media part is intentionally truncated at 512 bytes and exposed as #EXT-X-PART ... BYTERANGE="512@0".

Expected RED on accepted baseline

Current base main@ec16787de24a61ba94afeb6432c10b8880d65f85 still uses Media3 1.10.1. The regression asserts the upstream-fixed classification:

  • the bounded part request must actually reach the origin as Range: bytes=0-511;
  • a fully consumed bounded chunk must not surface an unexpected IllegalArgumentException;
  • the terminal failure should be parser-classified (ParserException).

Media3 1.10.1 is expected to fail this test with the known DataSpec.subrange(length) zero-length precondition path. After #263 lands, the same test will be rebased unchanged onto Media3 1.11.0 to record attribution. Since 1.11.0 does not contain upstream commit 6bb2737e5f07907611f587f8f9f9b43853eb0ebc, the same RED is expected there as well.

Non-goals

  • no playlist-parser workaround yet;
  • no stripping EXT-X-PART/EXT-X-SERVER-CONTROL;
  • no LoadControl/cache/player architecture change;
  • no external network dependency in CI.

Do not merge while the regression is intentionally RED. The next decision after reproducible evidence is whether to wait for the first stable Media3 release containing the upstream fix or justify a bounded MuxTV fallback with real provider evidence.

MrFr3di commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator Author

Closing as consumed/superseded evidence. The intentional RED reproduction served #264 and the bounded characterization was landed through #274 on Media3 1.11.0. Keep #264 as the stable-upstream-fix watch; do not merge this intentionally failing branch or turn it into a local parser workaround without real provider impact evidence.

@MrFr3di MrFr3di closed this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant