Commit Graph

3884 Commits

Author SHA1 Message Date
ejurgensen
d8255e1d08 [pipe] Fix minor memleak 2017-02-10 23:03:38 +01:00
ejurgensen
13e6889990 [cast] Use friendly device name from mdns announcement 2017-02-10 19:27:52 +01:00
ejurgensen
d2fe608c72 [http_streaming] Reduce log severity if write returns EAGAIN, it
just means that pipe was temporarily full (ref issue #329)
2017-02-08 22:47:49 +01:00
ejurgensen
245ce1d4e4 [player] Allow starting playback with no outputs 2017-02-08 22:31:47 +01:00
ejurgensen
1f15fb1993 [pipe] Refactor pipe input, hopefully into a more thread safe version 2017-02-08 22:29:37 +01:00
ejurgensen
e6793b4779 [player] Add player_playback_start_byid() function, will be needed for pipe input 2017-02-08 22:29:37 +01:00
ejurgensen
f27fb53caf [input] Rename player source ->xcode to ->input_ctx, because any input may use it, not just transcode 2017-02-08 22:29:37 +01:00
ejurgensen
a183463bb2 [spotify] Try to avoid image load callbacks from Spotify after timeouts,
since the artwork struct may have become invalid
2017-02-07 23:23:39 +01:00
ejurgensen
3a7ed96895 [misc] Adding missing header for non-Posix timer platforms 2017-02-07 23:22:38 +01:00
chme
1f4e474671 [spotify] Retrieve playlist tracks based on user country (#352)
This avoids adding unplayable items to the library and due to the active
track relinking should make additional tracks playable by linking to a
playable version of the track.
2017-02-05 13:56:12 +01:00
ejurgensen
18fe8fe0ef [pipe] Temporary "fix" for threading issues 2017-02-05 00:11:21 +01:00
chme
9680fa093a [db] Fix mpd command 'delete' removing to many items
Previously db_queue_delete_bypos iterated over the items and called
delete for each item. The delete also adjusted the pos/shuffle_pos
values for the remaining items. 

A delete of pos = 0 resulted therefor in:
- fetch item with pos = 0
- delete item at pos
- update remaining items to pos = pos - 1
- fetch item with pos = 0 (returns the new item at pos 0)
- delete item at pos
- ...
2017-02-04 08:37:58 +01:00
chme
d293356d8b [db] Extract function to fix queue position values 2017-02-04 08:37:58 +01:00
chme
1c8263224e [db] Fix incorrect query for db_queue_delete_bypos 2017-02-04 08:37:58 +01:00
chme
bd4e379f15 [dacp] Fix requests for cue_play with command = "play" 2017-02-04 08:35:02 +01:00
chme
4e4e91d4a2 [player] Add log messages in case playback_start_item returns -1 2017-02-04 08:35:02 +01:00
ejurgensen
9d8dbaffe1 [db] Fix typo (closes #347) 2017-02-01 18:56:34 +01:00
ejurgensen
8513c9416c [travis-ci] Update configuration file (fix package name) 2017-01-31 22:32:27 +01:00
ejurgensen
31bf0114b6 [travis-ci] Update configuration file 2017-01-31 22:27:01 +01:00
ejurgensen
bbb3322ddc [spotify] Flush audio buffer on playback stop - and since we are
flushing from another thread we use evbuffer_enable_locking() which
in turn adds a requirement for libevent_pthreads to be present
2017-01-30 22:50:02 +01:00
ejurgensen
3ba2fb741b [docs] Update README with new pipe features 2017-01-29 22:09:28 +01:00
ejurgensen
f7018dc659 [player] Skip/remove unplayable tracks in queue instead of aborting 2017-01-29 22:07:51 +01:00
ejurgensen
0af75217e9 Merge branch 'inputs1' - new input modules 2017-01-29 13:16:58 +01:00
ejurgensen
b44ae55c1d Some scan-build fixing up 2017-01-28 22:37:56 +01:00
ejurgensen
12567d8e93 [pipe] Make Shairport metadata parser work with incomplete reads from pipe 2017-01-28 22:20:35 +01:00
ejurgensen
41c5ef1474 [compat] Suppress warnings about unused functions 2017-01-28 22:20:35 +01:00
ejurgensen
b6f969d96e [pipe/mxml] Add compability with older versions of mxml 2017-01-28 22:20:35 +01:00
ejurgensen
97aa544945 [library] Move library update trigger to new library module 2017-01-28 22:20:35 +01:00
ejurgensen
dc84294348 [input/pipe] Parse basic Shairport metadata using mxml 2017-01-28 22:19:51 +01:00
ejurgensen
ea874154b2 [input/file_http] Use swap_pointers to transfer ownership of metadata 2017-01-27 22:36:00 +01:00
ejurgensen
67d0504700 [input] Let input_metadata_free zero metadata like the other free functions 2017-01-27 22:36:00 +01:00
ejurgensen
c975cf4474 [misc] Set output of safe_xxx to 0 also in error cases (for safety) 2017-01-27 22:36:00 +01:00
ejurgensen
ab06a9fd7d [player] Update info about player.c 2017-01-27 22:36:00 +01:00
ejurgensen
ae1f2d75d3 [pipe] Prepare reading and parsing Shairport metadata pipes 2017-01-27 22:36:00 +01:00
ejurgensen
8b5cac0538 [file/http/input] Implement metadata handling through input interface 2017-01-27 22:36:00 +01:00
ejurgensen
0b9b008a1a [player] Try to consolidate metadata handling + use input interface 2017-01-27 22:36:00 +01:00
ejurgensen
7b6a7b65b3 [input] Add interface for getting metadata from input modules 2017-01-27 22:36:00 +01:00
ejurgensen
2696b27972 [artwork] Let the artwork handler for streams use queue->artwork_url instead of calling the player, which was messy 2017-01-27 22:36:00 +01:00
ejurgensen
4d4a4ffd70 [db] Remove special icy update function, add db_queue_update_item()
- we will use the latter generalised form from now on, even though it is perhaps a tad slower
2017-01-27 22:36:00 +01:00
ejurgensen
e92152cadb [db] Upgrade db to 19.03: Add artwork_url column to queue table 2017-01-27 22:36:00 +01:00
ejurgensen
40d50d693b [misc] Add small function to swap pointers 2017-01-27 22:36:00 +01:00
ejurgensen
ee32b9cb70 [pipe] Reset pipes when required + prepare for metadata pipes 2017-01-27 22:36:00 +01:00
ejurgensen
90f37b75ce [player] Fix it so source_read() returns silence and not an error until source_check stops playback 2017-01-27 22:36:00 +01:00
ejurgensen
9fb62441d2 [pipe] Use worker thread instead of filescanner for watching pipes 2017-01-27 22:36:00 +01:00
ejurgensen
061beaf272 [worker] Make sure worker accepts NULL-arguments 2017-01-27 22:35:16 +01:00
ejurgensen
7f7207bb87 [pipe] Pipe input interface (wip) 2017-01-27 22:35:15 +01:00
ejurgensen
acc67338a1 [input] Add a buffer full callback for the player 2017-01-27 22:35:15 +01:00
ejurgensen
aa8edeead4 [player] Add suspend/resume on underrun + misc fixing up 2017-01-27 22:35:15 +01:00
ejurgensen
18918ce489 [db] Rename db_file_save_seek -> db_file_seek_update 2017-01-27 22:35:15 +01:00
ejurgensen
6af8fa07b4 [spotify] Use timespec_reltoabs instead of internal mk_reltime 2017-01-27 22:35:15 +01:00