iOS: a no-length transcode that drops mid-song ends the song early
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
Research direction
Start in the shuttle-playback growing-file source, where a chunked or close-delimited body is treated as complete when the connection drops. Check how the S2 engine handles the #950 part 2 restart path, which only covers restarts from byte 0, and find where a StartTimeTicks re-open could be triggered. Done means a dropped no-Content-Length transcode re-opens at the playback position instead of ending the song, verified on an iOS device or simulator. Ask in the issue thread before choosing between a byte-count check and surfacing the URLSession error.
Written by the indexing model from the issue text.
Description
On iOS, a server transcode sent without a Content-Length (chunked or close-delimited) that drops mid-song looks like a complete body to shuttle-playback's growing-file source. The song then ends early instead of re-opening at the position.
The #950 part 2 drop recovery only catches restarts from byte 0. It needs shuttle-playback to tell a dropped connection apart from a real end of body (for example, compare the bytes received against the expected duration or bitrate, or surface the URLSession error), so the S2 engine can re-open via StartTimeTicks.
Likely hit with Emby or Jellyfin FLAC under the metered 320 kbps cap, which produces a progressive MP3 transcode.
- Dominant language
- Kotlin
- Stars
- 229
- Forks
- 28
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from timusus/Shuttle2
-
impact:U1 owner reach:R1 size:S
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
idea
Difficulty 5/5 Over a week Newbie friendliness 8/100
-
enhancement impact:U2 owner P2 reach:R3 size:S
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
-
Debt ledger: toolingOpendebt
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Debt ledger: sharedOpendebt
Difficulty 4/5 3-5 days Newbie friendliness 35/100
All issues in timusus/Shuttle2
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
utopia-rise/godot-jvm#1004 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
ankidroid/Anki-Android#22408 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 Under an hour Newbie friendliness 72/100
afarber/OpenMapView#22 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
nightscout/AndroidAPS#5245 ·
Maintainers usually reply within 1 day