[PR #1] [MERGED] Major output and vorbis improvements #176

Closed
opened 2026-02-28 14:26:03 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/devgianlu/go-librespot/pull/1
Author: @devgianlu
Created: 9/18/2023
Status: Merged
Merged: 9/19/2023
Merged by: @devgianlu

Base: masterHead: output


📝 Commits (7)

  • 8e73fbe Log pause/resume position
  • 4dbb602 Seek to beginning if skipping previous later than 3 seconds
  • e00fca3 New ALSA driver + new vorbis decoder
  • 20f211d CI: add build dependencies
  • 8ffc3c6 Wait for output to drain when EOF
  • a6b03dd Release output device when paused
  • 8557ec8 Avoid stutter when track starts

📊 Changes

13 files changed (+935 additions, -243 deletions)

View changed files

📝 .github/workflows/build_test.yml (+1 -1)
📝 cmd/daemon/controls.go (+8 -7)
📝 cmd/daemon/session.go (+0 -1)
📝 go.mod (+1 -6)
📝 go.sum (+2 -4)
output.go (+16 -0)
output/driver_unix.go (+284 -0)
output/output.go (+75 -0)
player/decoder.go (+0 -118)
📝 player/player.go (+94 -94)
📝 player/stream.go (+10 -12)
vorbis/decoder.go (+351 -0)
vorbis/utils.go (+93 -0)

📄 Description

This is a huge improvements:

  • Lots of unnecessary buffering removed
  • Better control over ALSA device
  • Seek works without mute hack
  • Seek does not download all chunks
  • Removed other stupid hacks

But some downsides:

  • Windows supports needs to be added
  • Hardware ALSA pause is broken
  • Requires some libraries to build

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/devgianlu/go-librespot/pull/1 **Author:** [@devgianlu](https://github.com/devgianlu) **Created:** 9/18/2023 **Status:** ✅ Merged **Merged:** 9/19/2023 **Merged by:** [@devgianlu](https://github.com/devgianlu) **Base:** `master` ← **Head:** `output` --- ### 📝 Commits (7) - [`8e73fbe`](https://github.com/devgianlu/go-librespot/commit/8e73fbe6425fa7849e2bcbc6648d6e3c5966ede1) Log pause/resume position - [`4dbb602`](https://github.com/devgianlu/go-librespot/commit/4dbb602dba34ba4cdb1a2e074ac8742c0a7f209e) Seek to beginning if skipping previous later than 3 seconds - [`e00fca3`](https://github.com/devgianlu/go-librespot/commit/e00fca3d9ee73fff8c1d2e22180f8cf5147aafc3) New ALSA driver + new vorbis decoder - [`20f211d`](https://github.com/devgianlu/go-librespot/commit/20f211da524d4b38ecbc6825fd7d907a0d2c3b6b) CI: add build dependencies - [`8ffc3c6`](https://github.com/devgianlu/go-librespot/commit/8ffc3c691ebcc1cbc3f31ebb02f2c7407cbb286d) Wait for output to drain when EOF - [`a6b03dd`](https://github.com/devgianlu/go-librespot/commit/a6b03ddc833e12f0b2a742a61f3116981a44a709) Release output device when paused - [`8557ec8`](https://github.com/devgianlu/go-librespot/commit/8557ec8477a6f8768ea3ad01405b843895dafa6f) Avoid stutter when track starts ### 📊 Changes **13 files changed** (+935 additions, -243 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build_test.yml` (+1 -1) 📝 `cmd/daemon/controls.go` (+8 -7) 📝 `cmd/daemon/session.go` (+0 -1) 📝 `go.mod` (+1 -6) 📝 `go.sum` (+2 -4) ➕ `output.go` (+16 -0) ➕ `output/driver_unix.go` (+284 -0) ➕ `output/output.go` (+75 -0) ➖ `player/decoder.go` (+0 -118) 📝 `player/player.go` (+94 -94) 📝 `player/stream.go` (+10 -12) ➕ `vorbis/decoder.go` (+351 -0) ➕ `vorbis/utils.go` (+93 -0) </details> ### 📄 Description This is a huge improvements: - Lots of unnecessary buffering removed - Better control over ALSA device - Seek works without mute hack - Seek does not download all chunks - Removed other stupid hacks But some downsides: - Windows supports needs to be added - Hardware ALSA pause is broken - Requires some libraries to build --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-28 14:26:03 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/go-librespot#176
No description provided.