snapcast/server/streamreader
2020-12-05 20:26:48 +01:00
..
airplay_stream.cpp Remove metadata pipe on behalf of shairport sync 2020-12-05 20:26:48 +01:00
airplay_stream.hpp Remove metadata pipe on behalf of shairport sync 2020-12-05 20:26:48 +01:00
alsa_stream.cpp Make sending of silence configurable 2020-11-25 09:20:16 +01:00
alsa_stream.hpp Make sending of silence configurable 2020-11-25 09:20:16 +01:00
asio_stream.hpp Add meta stream source 2020-09-26 12:44:33 +02:00
base64.cpp add clang-format file 2019-09-24 22:42:36 +02:00
base64.h add clang-format file 2019-09-24 22:42:36 +02:00
file_stream.cpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
file_stream.hpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
librespot_stream.cpp Add space between parameters 2020-10-01 08:51:29 +02:00
librespot_stream.hpp Add option to not kill all librespot instances 2020-01-30 14:19:12 +01:00
meta_stream.cpp Fix warning 2020-11-16 20:54:04 +01:00
meta_stream.hpp Improve sync between meta streams 2020-09-26 21:48:08 +02:00
pcm_stream.cpp Reformat code with clang 10 2020-11-27 21:29:34 +01:00
pcm_stream.hpp Add null encoder for use with meta streams 2020-09-27 12:55:32 +02:00
pipe_stream.cpp Reduce log level 2020-09-27 11:06:15 +02:00
pipe_stream.hpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
posix_stream.cpp Add meta stream source 2020-09-26 12:44:33 +02:00
posix_stream.hpp Fix dry out timer 2020-01-04 00:54:45 +01:00
process_stream.cpp Make some functions const 2020-03-25 08:37:18 +01:00
process_stream.hpp Disable compiler warnings for boost process 2020-05-05 22:45:36 +02:00
README.meta Minor update of Spotify metadata description 2017-12-05 07:45:21 +01:00
stream_manager.cpp Fix warning 2020-11-16 20:54:04 +01:00
stream_manager.hpp Add meta stream source 2020-09-26 12:44:33 +02:00
stream_uri.cpp Reformat code with clang 10 2020-11-27 21:29:34 +01:00
stream_uri.hpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
tcp_stream.cpp Replace some pointers with references 2020-08-18 23:36:17 +02:00
tcp_stream.hpp Switch stream readers to use asio event loop 2020-01-03 22:40:34 +01:00
watchdog.cpp Update aixlog to v1.2.5 2020-01-10 23:05:04 +01:00
watchdog.hpp Switch stream readers to use asio event loop 2020-01-03 22:40: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