ejurgensen
5d74c98431
[input] Pass read errors to the player through the input buffer
2017-03-11 19:23:49 +01:00
chme
6c97448e2f
[spotify] Remove log messages after token request
...
The whole response is already written to the log in debug mode
2017-03-11 09:55:32 +01:00
chme
247abec88f
[spotify] Only create spotify playlist folder after successful login
...
Before creating the folder there should be either a valid api token or a
valid libspotify session.
2017-03-11 09:44:54 +01:00
ejurgensen
6c94cdd635
[httpd_daap] Honour sort param "artist" for album groups (fixes issue #358 )
2017-03-05 09:45:34 +01:00
ejurgensen
9f2f5566d2
[commands] Protect against race condition by moving event_add() inside lock
...
- otherwise commands_base_destroy() could free cmdbase before event_add()
2017-03-04 17:26:45 +01:00
chme
00e5e098d4
[spotify] Purge spotify songs from db before scanning after oauth ( #361 )
2017-03-04 17:24:42 +01:00
chme
1dde41fb87
[mpd] Fix wrong db playime info in 'stats' command ( #360 )
2017-03-04 17:23:52 +01:00
chme
1dfca1ec22
[dacp] Always start playing from the beginning of the shuffle queue
2017-03-04 08:57:58 +01:00
chme
03e9182423
[spotify] Fix usage of "artist_override" config value
2017-02-26 11:04:04 +01:00
chme
9c90cbcd12
[db] Fix return value of db_queue_add_by_query
2017-02-26 11:04:04 +01:00
chme
82e216c931
Add missing FALLTHROUGH comments to switch-case statements
...
This allows to suppress code analysis warnings in IDEs for missing break
statements.
2017-02-26 11:04:04 +01:00
chme
50b28bde96
[filescanner] Remove unused scan_metadata_icy function declaration
2017-02-26 11:04:04 +01:00
chme
78975b1aa3
[filescanner_ffmpeg] Add doc to scan_metadata_ffmpeg
2017-02-26 11:04:04 +01:00
chme
e4f25f9418
[filescanner_ffmpeg] Refactor: consolidate special handling for
...
http-streams
2017-02-26 11:04:04 +01:00
sshambar
c54c909ae4
Added support for libav/ffmpeg dual installs ( #346 )
...
* [config] Added support for libav/ffmpeg dual installs
Reordered CPPFLAGS/LIBS so that library flags (includes etc) appear
ahead of prefix/global directives and the correct headers/libraries
are checked (if symbols are defined in alternative libraries).
Updated libav checks to use header declaration checks
rather than link checks (so differences between
libav/ffmpeg can be correctly found), and updated code references
to use new defines. Added support the alternate pkg-config
package names for libav. Updated ffmpeg vs libav check
to check MICRO version number (>=100 for ffmpeg). Simplified
resulting configure script by using a function to merge
CPPFLAGS variables.
* [config] Use FORKED_OPTS prefix for libevent_pthreads option
* [config] Add --with-libav option to select libav even if ffmpeg present
2017-02-19 15:21:00 +01:00
ejurgensen
ff49e176f2
[spotify] Fixup header path to json.h
2017-02-16 21:51:46 +01:00
Scott Shambarger
c7855e7c55
[config] Min automake 1.11, support silent rules on automake < 1.13
2017-02-16 10:44:00 -08:00
ejurgensen
26c22144fc
[-] Misc housekeeping (minor memleaks, invalid free's)
2017-02-12 01:19:56 +01:00
chme
3896f61d06
[dacp] Keep the now playing item in the queue when calling ( #353 )
...
playqueueedit_clear
2017-02-11 09:28:35 +01:00
ejurgensen
98348b8fe9
[pipe] Removing CHECK_NULL with malloc, scan-build not happy about it
2017-02-11 00:28:29 +01:00
ejurgensen
f0c9843194
[pipe] Fix exit problem due to misuse of COMMAND_PENDING
2017-02-10 23:56:58 +01:00
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
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
f7018dc659
[player] Skip/remove unplayable tracks in queue instead of aborting
2017-01-29 22:07:51 +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
ejurgensen
6db4e40119
[misc] Add function to add a relative time to current clock
2017-01-27 22:34:15 +01:00
ejurgensen
9aede45a12
[pipe] Add a pipe input with autostart capabilities
2017-01-27 22:30:47 +01:00
ejurgensen
938e197fa4
[player] Refactor read/write
...
- remove read skip which is obsolete when input has own thread and cannot block
- simplify code
- fix while loop that could loop infinitely
2017-01-27 22:29:08 +01:00
ejurgensen
1258481202
[listener] Rename LISTENER_PLAYLIST to LISTENER_QUEUE
2017-01-27 22:25:32 +01:00
ejurgensen
60daf03f66
[cache/scan] Let notifications from db.c about library updates go through
...
filescanner/listener instead of directly to the cache
2017-01-27 22:25:32 +01:00
ejurgensen
79639c73ed
[input] Add Spotify input module
2017-01-27 22:08:56 +01:00
ejurgensen
c92ebf9dfb
[player] Fix problem where player_playback_cb triggers after playback stop
2017-01-27 22:01:24 +01:00
ejurgensen
3e24f857fa
[input] Add input interface to player - WIP
2017-01-27 22:01:24 +01:00
ejurgensen
c50b038397
[misc] Move STOB and BTOS macros to misc.h
2017-01-27 22:01:24 +01:00
ejurgensen
171a75375b
[outputs] Fix for (unlikely) situation where all outputs have no init()
2017-01-27 22:01:24 +01:00
ejurgensen
41aa530fd3
[http] Add support for http post in the libevent client (required for scrobbling)
2017-01-25 22:52:11 +01:00
ejurgensen
db4068f046
[artwork] Hardcode destination pixel format for png rescaling since
...
avcode_find_best_pix_fmt_of_list() does not live up to its name
(fixes issue #345 )
2017-01-25 21:02:41 +01:00
ejurgensen
084de7811e
[raop] Fix missing uint64 cast, which since commit fdd85cc
was giving too short song lengths
2017-01-23 23:41:10 +01:00
sshambar
bc4b046897
[logger] Add missing include ( #342 )
2017-01-23 08:41:23 +01:00
ejurgensen
36d9051a91
[misc] Fixup coding style
2017-01-22 23:47:45 +01:00
ejurgensen
5dc8eea4c2
[main] Re-include pthread.h that was removed in pr #334 , needs to be
...
here because it is used by the gcrypt macro
2017-01-22 23:35:38 +01:00
Scott Shambarger
836320518b
Merge branch 'master' into fixosx
2017-01-21 13:04:38 -05:00
Scott Shambarger
a837389ac5
Minor change: remove unused include, init variable.
2017-01-21 08:51:51 -08:00
Scott Shambarger
6f7355dfce
Merge branch 'fixthreads' into fixosx
2017-01-21 10:38:47 -05:00
sshambar
b128271656
Merge branch 'master' into fixthreads
2017-01-21 10:27:26 -05:00
Scott Shambarger
8e3797ec43
[threads] Update mutex/cond functions to use new CHECK_ERR macros
...
Added various macros to check return values and log any errors and abort
if the call fails.
Updated logging to handle early errors before logging initialized.
2017-01-21 07:11:20 -08:00
chme
e092a9ff3e
[spotify] Respect settings for 'artist_override' and 'album_override' ( #340 )
...
when scanning spotify through the web api
The goal is to reduce the artist/album cluttering that happens because
of the users spotify playlists. If 'artist_override' is true, all tracks
not in a saved album are treated as part of a compilation giving them
the configured album-artist (e. g. "Various artists"). I
'album_override' is true, tracks not in a saved album will use the
playlistname as albumname.
2017-01-21 10:17:33 +01:00
chme
6163269832
[dacp/db] Fix issue found with scan-build
...
- Result of operation is garbage or undefined in dacp_reply_cue_play
- Uninitialized argument value in dacp_reply_playqueuecontents
- Uninitialized argument value in queue_fetch_byposrelativetoitem
2017-01-20 19:00:11 +01:00
chme
4e869f6fda
[dacp] Fix indentation
2017-01-20 19:00:11 +01:00
chme
dea5c50b67
[player] Fix memleaks found with scan-build
2017-01-20 19:00:11 +01:00
chme
825236c8bb
[spotify_webapi] Fix memory leaks
2017-01-20 19:00:11 +01:00
chme
a4180a5902
[spotify] Increase log level for skipping playlists during scan
2017-01-18 20:32:02 +01:00
chme
e8d6b17784
fix indentation
2017-01-18 20:28:56 +01:00
chme
77086c9b82
[library] Check for init/deinit functions in library source
2017-01-18 20:12:14 +01:00
Scott Shambarger
9c50429abc
[dnssd] Reworked resolve to use timeout, fixed network order on port
2017-01-17 01:36:03 -05:00
Scott Shambarger
879d9a80aa
[osx] Remove incorrect calculations for timer_getoverrun
2017-01-14 23:29:07 -05:00
chme
00efed7988
[filescanner] Fix scanning of fifos
2017-01-14 13:59:14 +01:00
Scott Shambarger
bb68d59a6e
[osx] Added missing timer/clock functions, support Bonjour mDNS on OSX
...
Added configure checks needed to detect missing functions on OSX
Added compat clock functions using clock_get_time on OSX
Added compat timer functions using clock_gettime and setitimer on OSX
Added byteswap functions on OSX
2017-01-14 00:56:43 -05:00