Skip to content

Conversation

@aschey
Copy link
Contributor

@aschey aschey commented Oct 9, 2025

Resolves #404.

Currently, the end delay for ogg streams is only calculated for seekable streams. This can cause discontinuities for non-seekable streams like internet radio that are designed to play gaplessly. Calling inspect_end_page for every page that's read ensures the end delay is still calculated for non-seekable streams. If the end delay was calculated previously, this is a no-op because of the check for self.end_bound.is_some() at the beginning of inspect_end_page.

InspectState was also moved to a struct field since the value needs to persist through multiple calls to read_page.

@aschey aschey changed the title fix: calculate end delay for non-seekable ogg streams fix: Calculate end delay for non-seekable ogg streams Oct 9, 2025
if self.end_bound.is_some() {
debug!("end page already found");
return state;
return;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the debug log here since this case could be hit a lot more often now. Seemed like it would be more spammy than useful.

@aschey aschey force-pushed the fix/ogg-stream-gapless branch from cae6bc5 to ce6c9f2 Compare October 12, 2025 20:35
@aschey aschey force-pushed the fix/ogg-stream-gapless branch from ce6c9f2 to ce43d9f Compare October 12, 2025 21:39
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