Skip to content

Enable estimateContentLength to fix gapless playback issues.#54

Open
stuaxo wants to merge 1 commit intowarwickh:masterfrom
stuaxo:feat/estimate-content-length
Open

Enable estimateContentLength to fix gapless playback issues.#54
stuaxo wants to merge 1 commit intowarwickh:masterfrom
stuaxo:feat/estimate-content-length

Conversation

@stuaxo
Copy link
Copy Markdown

@stuaxo stuaxo commented Feb 2, 2026

Enable estimateContentLength, without it set the readahead buffer is disabled which can cause playback issues + affect gapless playback.

disabled which can cause playback issues + affect gapless playback.
@stuaxo
Copy link
Copy Markdown
Author

stuaxo commented Feb 2, 2026

This is an attempt to fix playback issues (gaps) on Android TV.

dskvr added a commit to sandwichfarm/plugin.audio.subsonic that referenced this pull request Apr 28, 2026
4 plans in 3 waves: PR warwickh#53 (settings.xml) and PR warwickh#54 (play_track)
parallel in Wave 1; PR warwickh#49 (Favorite Albums) in Wave 2; smoke
verify + human checkpoint in Wave 3.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dskvr added a commit to sandwichfarm/plugin.audio.subsonic that referenced this pull request Apr 28, 2026
… playback (Co-authored)

- Add estimateContentLength=True to connection.streamUrl() in play_track()
- Enables Kodi to pre-buffer next track for gapless playback on supported builds
- Closing paren at 4-space indent (matching codebase style, not the 3-space from PR)

Co-Authored-By: Stuart Axon <stuaxo2@gmail.com>
dskvr added a commit to sandwichfarm/plugin.audio.subsonic that referenced this pull request Apr 28, 2026
… verified

- pytest 6/6 pass with PR warwickh#53 (m4a), warwickh#54 (gapless), warwickh#49 (favorites) applied
- Human checkpoint approved; Phase 2 marked complete in ROADMAP.md
- PR-01, PR-02, PR-03 requirements already marked complete by prior agents

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dskvr added a commit to sandwichfarm/plugin.audio.subsonic that referenced this pull request Apr 28, 2026
- @route('play_track') registered using setResolvedUrl (never endOfDirectory)
- Delegates stream URL to client.stream_url(track_id, bitrate, fmt)
- EstimateContentLength property set for gapless playback (PR warwickh#54)
- Specific exception handling with log_exception (no bare except)
- from __future__ import annotations + full type hints
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