snapcast/server/streamreader
2024-03-26 14:30:24 +01:00
..
airplay_stream.cpp Change log severity for retries 2024-03-24 23:37:18 +01:00
airplay_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
alsa_stream.cpp Remove "chunk_ms" from documentation 2024-03-24 22:55:50 +01:00
alsa_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
asio_stream.hpp Fix typo 2024-03-15 12:01:51 +01:00
base64.cpp Fix cppcheck issues 2023-12-30 11:37:35 +01:00
base64.h add clang-format file 2019-09-24 22:42:36 +02:00
control_error.cpp canControl must be true for property requests 2021-12-17 09:15:39 +01:00
control_error.hpp Fix common/message includes 2023-01-22 11:34:02 +01:00
file_stream.cpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
file_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
librespot_stream.cpp Fix common/message includes 2023-01-22 11:34:02 +01:00
librespot_stream.hpp Rename PcmListener to PcmStream::Listener 2021-12-12 12:19:46 +01:00
meta_stream.cpp Reformat code 2022-12-29 19:10:38 +01:00
meta_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
metadata.cpp Rename MetaTags to MetaData 2021-12-09 22:09:32 +01:00
metadata.hpp Rename MetaTags to MetaData 2021-12-09 22:09:32 +01:00
pcm_stream.cpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
pcm_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
pipe_stream.cpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
pipe_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
process_stream.cpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
process_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
properties.cpp Add "mute" to stream API 2022-07-13 17:35:49 +02:00
properties.hpp Add "mute" to stream API 2022-07-13 17:35:49 +02:00
README.meta Minor update of Spotify metadata description 2017-12-05 07:45:21 +01:00
stream_control.cpp Remove unused virtual stop call 2023-01-24 08:00:31 +01:00
stream_control.hpp Remove unused virtual stop call 2023-01-24 08:00:31 +01:00
stream_manager.cpp Omit status updates for null streams 2024-03-26 14:30:24 +01:00
stream_manager.hpp io_context cleanups 2022-04-03 15:27:28 +02:00
stream_uri.cpp Fix Windows compile error 2021-05-03 10:03:54 +02:00
stream_uri.hpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
tcp_stream.cpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
tcp_stream.hpp Remove PosixStream layer 2024-03-13 20:27:13 +01:00
watchdog.cpp Reformat code 2022-12-29 19:10:38 +01:00
watchdog.hpp Clean up asio includes 2022-01-31 21:07:34 +01:00

Metadata tags
=============
The metatag interface will propegate anything to the client, ie no restrictions on the tags.
But, to avoid total confusion in the tag display app (like Kodi), we need some groundrules.

My suggestion is to stick with the Vorbis standard as described in:

	http://www.xiph.org/vorbis/doc/v-comment.html
	https://wiki.xiph.org/Field_names

In addition we should accept unique identifiers of the stream such as Spotify track ID or 
MusicBrainz id which can be used to lookup additional information online.

Example:
	ARTIST: Pink Floyd
	ALBUM: Dark Side of the Moon
	TITLE: Money
	METADATA_BLOCK_PICTURE: base64 (https://xiph.org/flac/format.html#metadata_block_picture) 


Parsing tags from streams
=========================
I've implemented parsing tags from Librespot, but, as Librespot doesn't export anything more than
track title I added a patch 'librespot-meta.patch' to apply to get artist/title.

TBH, the meta tag output from players are a mess, neither Librespot nor Shairport-sync associate
metadata with their audio interfaces, ie they don't even export metadata when the audio interface
supports it, at least Shairport-sync exports a ritch set of data. 

So, to get artist/album apply the patch to librespot and recompile, otherwise you will only get the 
track title.

Or, you can build librespot from https://github.com/frafall/librespot.git