Skip to content

fix(android): normalize legacy ICY punctuation - #2674

Open
pke wants to merge 1 commit into
doublesymmetry:v4from
pke:fix/android-icy-metadata-punctuation
Open

fix(android): normalize legacy ICY punctuation#2674
pke wants to merge 1 commit into
doublesymmetry:v4from
pke:fix/android-icy-metadata-punctuation

Conversation

@pke

@pke pke commented Aug 15, 2026

Copy link
Copy Markdown

Summary

  • normalize defined Windows-1252 punctuation exposed as C1 control characters in Android ICY metadata
  • normalize before splitting the conventional artist - title value
  • preserve undefined C1 controls, already-correct Unicode, ISO-8859-1 accents, null titles, and existing metadata behavior

Context

ExoPlayer's ICY decoder falls back to ISO-8859-1 when metadata is not valid UTF-8. Some real-world ICY streams send Windows-1252 punctuation, so bytes such as 0x92 reach React Native Track Player as U+0092 instead of the intended U+2019 apostrophe.

Testing

  • PlaybackMetadataTest: 2 tests passed
  • upstream v4 example Android assembleDebug: 190 tasks passed

The regression tests exercise real ExoPlayer Metadata and IcyInfo objects, cover every defined Windows-1252 C1 mapping, and verify normalization occurs before artist/title splitting.

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.

2 participants