From 0a19fb03bcc304bb8e445727c35533061401ef8f Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 24 Jan 2024 16:17:15 +0100 Subject: [PATCH] add opus file format --- music_assistant/common/models/enums.py | 1 + music_assistant/server/controllers/player_queues.py | 1 - music_assistant/server/controllers/streams.py | 5 +++-- music_assistant/server/providers/filesystem_local/base.py | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/music_assistant/common/models/enums.py b/music_assistant/common/models/enums.py index b46c0e11..af05b17e 100644 --- a/music_assistant/common/models/enums.py +++ b/music_assistant/common/models/enums.py @@ -102,6 +102,7 @@ class ContentType(StrEnum): M4A = "m4a" M4B = "m4b" DSF = "dsf" + OPUS = "opus" WAVPACK = "wv" PCM_S16LE = "s16le" # PCM signed 16-bit little-endian PCM_S24LE = "s24le" # PCM signed 24-bit little-endian diff --git a/music_assistant/server/controllers/player_queues.py b/music_assistant/server/controllers/player_queues.py index 7698f724..10f720bf 100755 --- a/music_assistant/server/controllers/player_queues.py +++ b/music_assistant/server/controllers/player_queues.py @@ -696,7 +696,6 @@ class PlayerQueuesController(CoreController): idx += 1 if next_item is None: raise QueueEmpty("No more (playable) tracks left in the queue.") - queue.index_in_buffer = next_index queue.next_track_enqueued = True return next_item diff --git a/music_assistant/server/controllers/streams.py b/music_assistant/server/controllers/streams.py index 6db08634..67ddd7ce 100644 --- a/music_assistant/server/controllers/streams.py +++ b/music_assistant/server/controllers/streams.py @@ -515,7 +515,7 @@ class StreamsController(CoreController): self.logger.debug( "Start serving audio stream for QueueItem %s to %s", queue_item.uri, queue.display_name ) - + queue.index_in_buffer = self.mass.player_queues.index_by_id(queue_item_id) # collect player specific ffmpeg args to re-encode the source PCM stream pcm_format = AudioFormat( content_type=ContentType.from_bit_depth( @@ -785,7 +785,7 @@ class StreamsController(CoreController): seek_position: int = 0, fade_in: bool = False, ) -> AsyncGenerator[bytes, None]: - """Get a flow stream of all tracks in the queue.""" + """Get a flow stream of all tracks in the queue as raw PCM audio.""" # ruff: noqa: PLR0915 assert pcm_format.content_type.is_pcm() queue_track = None @@ -821,6 +821,7 @@ class StreamsController(CoreController): queue_track.name, queue.display_name, ) + queue.index_in_buffer = self.mass.player_queues.index_by_id(queue_track.queue_item_id) # set some basic vars pcm_sample_size = int(pcm_format.sample_rate * (pcm_format.bit_depth / 8) * 2) diff --git a/music_assistant/server/providers/filesystem_local/base.py b/music_assistant/server/providers/filesystem_local/base.py index 9adf176d..41bdfe31 100644 --- a/music_assistant/server/providers/filesystem_local/base.py +++ b/music_assistant/server/providers/filesystem_local/base.py @@ -72,7 +72,7 @@ CONF_ENTRY_MISSING_ALBUM_ARTIST = ConfigEntry( ), ) -TRACK_EXTENSIONS = ("mp3", "m4a", "m4b", "mp4", "flac", "wav", "ogg", "aiff", "wma", "dsf") +TRACK_EXTENSIONS = ("mp3", "m4a", "m4b", "mp4", "flac", "wav", "ogg", "aiff", "wma", "dsf", "opus") PLAYLIST_EXTENSIONS = ("m3u", "pls", "m3u8") SUPPORTED_EXTENSIONS = TRACK_EXTENSIONS + PLAYLIST_EXTENSIONS IMAGE_EXTENSIONS = ("jpg", "jpeg", "JPG", "JPEG", "png", "PNG", "gif", "GIF") -- 2.34.1