ejurgensen
5afed60a42
[transcode] Implement new ffmpeg encoding methods: avcodec_send_frame/avcodec_receive_packet
2017-08-06 22:20:44 +02:00
ejurgensen
7c8eba74bb
[transcode] Remove unused param to open_filter()
2017-08-06 22:20:44 +02:00
ejurgensen
25c1795af2
[transcode] Update to new ffmpeg api - part 1
...
- no more use of AVStream.codec
- ditch some backwards compability
- move closer to being able do video, at least for artwork
2017-08-06 22:20:44 +02:00
ejurgensen
b71b32438b
[player] Don't log single tick overruns
2017-07-23 16:58:18 +02:00
ejurgensen
b19553811c
[main] Respect the configure check for libevent_pthreads
2017-07-22 00:04:35 +02:00
ejurgensen
3f2ad41094
[alsa] Fix missing cleanup of failed ALSA sessions
2017-07-14 23:20:53 +02:00
ejurgensen
b803c30dcd
[player] Check volume range when called for volume change + some adjustments in pipe input
2017-07-14 20:04:35 +02:00
ejurgensen
4085161e9a
Merge pull request #403 from jkellerer/pipe_metadata_volume
...
Add support for instant volume changes when using metadata pipe (pvol)
2017-07-14 19:43:40 +02:00
chme
b6807a24aa
[filescanner] Add missing break statement in process_file
2017-07-14 17:21:08 +02:00
juergen kellerer
93e4886993
[pipe] Added instant volume support (pvol) to named metadata pipe.
2017-07-13 21:53:35 +02:00
ejurgensen
072c940426
Merge branch 'playback_resilience'
2017-07-09 22:06:01 +02:00
chme
e136c726c1
[raop] Add device name to log message for retransmit requests
2017-07-09 11:44:05 +02:00
chme
ecb41eccca
[player] Use false/true for boolean field
2017-07-09 11:43:10 +02:00
chme
3048817c0b
[player] Add warning log message if overrun is detected but player is
...
still able to catch up
2017-07-09 11:43:05 +02:00
ejurgensen
074b4e773d
[input] Increase input buffer size to two seconds
2017-07-08 23:37:12 +02:00
ejurgensen
1549d0d4b5
[pipe] Fix crash if pipe is deleted after being written to (caused by double free)
2017-07-08 01:41:12 +02:00
ejurgensen
6295f2d79a
[player] Make the player resilient in cases where an output blocks
...
(due to e.g. network problems) and also make sure that all devices
have called back before restarting after a suspend. Also a whole
lot of tidying up while I am at it.
2017-07-06 22:13:04 +02:00
ejurgensen
a23bb0b7e2
[raop] Clear auth_key for device verification if verify request to device is denied
...
- should make it easier for user to setup a new pin
2017-07-01 08:33:11 +02:00
ejurgensen
2068794b7f
[pairing] Make log message more helpful
2017-06-30 19:35:33 +02:00
ejurgensen
467b652da0
[rtsp] Silence event_del warnings
2017-06-27 22:15:53 +02:00
ejurgensen
81a93bbec1
[player] Add config option high_resolution_clock
2017-06-26 23:32:24 +02:00
ejurgensen
c2b1706855
[raop] Send correct volume as keep-alive for ATV's (fix for #368 )
2017-06-26 20:11:31 +02:00
ejurgensen
f4e171db75
[raop] Save verification key to db immediately after verification
2017-06-24 23:59:02 +02:00
ejurgensen
01308f7f83
Misc fixup to keep scan-build happy
2017-06-20 22:07:49 +02:00
ejurgensen
20128e2235
[raop] Raise log level of verification setup complete message
2017-06-20 21:36:21 +02:00
ejurgensen
9369e97753
[raop] Lower log level of verification success slightly
2017-06-20 21:17:17 +02:00
ejurgensen
299a8f9e4b
[mpd] Add support for "mpc sendmessage verification [pincode]"
2017-06-20 21:01:55 +02:00
ejurgensen
5e48a68525
[player] device_restart_cb() should also handle failures due to device verification
2017-06-20 20:58:46 +02:00
ejurgensen
7626b6c535
[raop] Fix bad enum
2017-06-20 20:00:05 +02:00
ejurgensen
f63d103753
[raop] Add support for Apple TV device verification, required by tvOS 10.2 (fix for issue #377 )
...
- also change how speakers are saved/retrieved from the db
- add generic authorization methods in outputs.c and player.c
- let filescanner read *.verification files (containing PIN)
- configure options to enable and disable, since libsodium is required
2017-06-19 21:52:01 +02:00
ejurgensen
736979a9a2
[evrtsp] Add POST rtsp method - used for device verification
2017-06-18 01:31:23 +02:00
ejurgensen
0e9bca9e3d
[db] Add column for auth key to speakers table (incl methods for saving/retrieving)
2017-06-18 01:29:40 +02:00
ejurgensen
0642171de0
[mpd] Adjust so "sendmessage pairing" now gives an arglist to remote_pairing_kickoff()
2017-06-15 00:00:05 +02:00
ejurgensen
283df8aa72
[misc] Consolidate control file reader (e.g. for pairing credentials) into misc.c
...
- also remove requirement to enter device name in .remote file
2017-06-14 23:49:18 +02:00
Gergan Penkov
08d25154e5
fix the compilation problem because of gperf changes in 3.1
2017-05-27 12:28:00 +02:00
ejurgensen
3fe3c71ea7
[lastfm] Remove obsolete include of curl.h
2017-05-18 22:55:04 +02:00
ejurgensen
1aa8072e68
[misc] Change name of string_printf to safe_asprintf
2017-05-05 20:00:51 +02:00
ejurgensen
dcf75f59eb
Merge branch 'string_printf' of git://github.com/chme/forked-daapd into chme-string_printf
2017-05-05 19:43:17 +02:00
ejurgensen
497ffc2f43
[misc] Add __attribute__((__noreturn__)) to our abort functions so
...
scan-build doesn't complain about logic errors after abort
2017-05-05 19:41:17 +02:00
ejurgensen
f465f6a77d
[raop] Fix possible incorrect address family in SDP
2017-05-04 19:31:26 +02:00
ejurgensen
544791ef59
[player] Prevent crash if output is failed and triggers a playback_abort
...
when a pause or seek is requested
2017-05-04 18:06:18 +02:00
ejurgensen
b9e069939e
[mdns] Also handle devices being switched on/off without Avahi service removal notices
2017-05-02 23:13:53 +02:00
ejurgensen
e2f65debc8
[mdns] Keep Avahi resolvers alive so we get IP changes from e.g. Airplay devices (fix for issue #378 )
2017-05-02 19:27:35 +02:00
chme
2f1124d4dc
[mpd] Use string_printf instead of asprintf
2017-05-01 10:28:41 +02:00
chme
6887ff9d7b
[spotify] Use string_printf instead of asprintf
2017-05-01 10:21:58 +02:00
chme
4e6b78ca29
[misc] Add string_printf function
2017-05-01 10:21:57 +02:00
chme
6b9878490e
[mpd] Add missing free in channel_outputvolume
2017-04-30 19:27:44 +02:00
chme
989b44c8dc
[mpd] Implement 'channels' command (returns the special forked-daapd
...
channes like 'pairing')
2017-04-30 19:27:44 +02:00
chme
eeef65f951
[mpd] Add support to change output volume through sendmessage command
...
Output volume can be set by sending a message to the channel
'outputvolume' by passing a message with the output id and the volume
separated by a colon.
2017-04-30 19:27:44 +02:00
chme
d8b5951e40
[mpd] Move function mpd_command_outputvolume and split into two
...
functions
2017-04-30 19:27:44 +02:00
chme
9d72dc9176
[pairing] Only require the pin for kicking off the remote pairing
2017-04-29 23:36:11 +02:00
chme
170e4aaf75
[pairing] Only keep last remote pairing request from mdsn
2017-04-29 23:36:11 +02:00
chme
6f60006edb
[mpd] Support pairing remotes over mpd 'sendmessage' command
...
Adds a basic structure for supporting sendmessage and implements the
first message handler for the channel 'pairing'.
Pairing can be achieved by passing a message to channel 'pairing' in the
format "devicename:pin". With mpc this looks like 'mpc pairing
"devicename:1234"
2017-04-29 23:36:11 +02:00
chme
fd2c77cb9f
[pairing] Add public function to pair by devicename and pin
2017-04-29 23:36:11 +02:00
chme
8ed1c9c0ec
[pairing] Rename 'remote_pairing_read_pin' to
...
'remote_pairing_kickoff_byfile'
2017-04-29 23:36:11 +02:00
chme
3f10dac2f7
[dacp] Start playback from selected song in shuffle mode ( #379 )
2017-04-17 10:46:24 +02:00
ejurgensen
3a35a51cb9
[db] Align naming of struct query_params pointers et al
2017-04-16 23:54:07 +02:00
chme
626c77046c
[spotify] Fix empty spotify playlists
2017-04-10 09:33:22 +02:00
chme
cc29c617b0
[filescanner] Switch argument order (input first)
2017-03-19 18:30:46 +01:00
chme
888710612c
[library] Add missing attribute mapping from mfi to queue item
2017-03-19 18:30:46 +01:00
chme
e31fea6c44
[filescanner] Remove unused include and make privat function static
2017-03-19 18:30:46 +01:00
chme
59ade61d7b
[library] Rename constants
2017-03-19 18:30:46 +01:00
chme
f4aade7f3a
[filescanner] Fix and refactor scanning of playlists
2017-03-19 18:30:46 +01:00
chme
f5c65d1eef
[db] Do not notify clients in 'db_queue_add_by_query' if no items were
...
added
2017-03-19 18:30:46 +01:00
chme
a65737b4e7
[filescanner] Add scan-metadata function for non library items
...
For now only support scanning metadata for internet radio streams
2017-03-19 18:30:46 +01:00
chme
8381b7489e
[mpd] Try to read metadata and add to queue if path is not in the
...
library
2017-03-19 18:30:46 +01:00
chme
e6f49b721f
[library] New functions to support scan metadata for arbitrary path and
...
adding a mfi as a queue item
2017-03-19 18:30:46 +01:00
chme
cc899651c7
[db] New function to add a media file info as a new queue item
2017-03-19 18:30:46 +01:00
chme
bdd08f516f
[library] Rename 'library_process_media' to 'library_add_media'
2017-03-19 18:30:46 +01:00
chme
dadba23efc
Refactor library scan of media files
...
Remove the data_kind specific parts out of the general library functions
and into their (library) source specific functions.
2017-03-19 18:30:46 +01:00
ejurgensen
fce68ebd1a
[raop] Add option to exclude particular devices from speaker list
2017-03-15 23:24:24 +01:00
ejurgensen
ef13abe2cf
[artwork] Fix for issue #345 and #367 : Broken PNG rescaling
2017-03-15 22:12:37 +01:00
ejurgensen
efd6805f9e
Merge pull request #365 from chme/spotifybaseplaylist
...
Avoid adding spotify playlist folder
2017-03-11 19:30:31 +01:00
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
Scott Shambarger
b54d94fda6
[threads] Added missing initializers, check errors on mutex/cond calls
2017-01-13 17:32:59 -05:00
chme
a15923c377
[spotify] Fix for expired spotify access token and some cleanup
2017-01-13 19:20:24 +01:00
chme
528614909c
[filescanner/library] Move filescanner to subfolder
2017-01-13 19:02:47 +01:00
chme
9c9c583b81
[library] move declaration scan_metadata_ffmpeg back to filescanner.h
2017-01-13 18:56:37 +01:00
chme
2cfb4b6a28
[spotify] Simplify parsing of artist/album-artist name
...
forked-daapd does not support a 1:n relationship between tracks and
artists. Just take the first artist the spotify web api returns
(libspotify does also return only one artist, so this should not
introduce a regression).
2017-01-13 18:56:37 +01:00
chme
03c5ecd690
[spotify] Split into smaller db transactions (do not keep an open
...
transaction between requests)
2017-01-13 18:56:37 +01:00
chme
f632789f8b
[spotify] Set missing values for year, artwork, type, codectype,
...
description and improve logging
2017-01-13 18:56:37 +01:00
chme
ab3582dd69
[spotify_webapi] Cleanup: remove unused functions
2017-01-13 18:56:37 +01:00
chme
66bbcf0576
[spotify] Ignore playlist updates with missing uri
2017-01-13 18:56:37 +01:00
chme
8ee3ef5b15
[filescanner] Trigger library-scan on .init-rescan / .full-rescan
2017-01-13 18:56:37 +01:00
chme
510d38c059
[library/filescanner/spotify] Rework full-rescan logic
2017-01-13 18:56:37 +01:00
chme
4e60626749
[db] Add missing purge of directories in db_purge_all
2017-01-13 18:56:37 +01:00
chme
65ce902e3c
[db_init] Set admint.value to VARCHAR(255)
...
Only a cosmetic change to avoid future confusion. sqlite3 ignores the
number of chars given to VARCHAR (see https://sqlite.org/faq.html#q9 ),
a db upgrade is therefor not necessary.
2017-01-13 18:56:37 +01:00
chme
99945fa576
[spotify] Rescan of single playlists if update trigger received from
...
libspotify (Readds "spotify:savedtracks" playlist to avoid deletion of
saved tracks)
2017-01-13 18:56:37 +01:00
chme
adac1d3b5f
[spotify] Trigger scan after retrieving a valid access token from the
...
webinterface
Library now offers the function "library_exec_async". This allows
library sources to offer functions that will be executed in
the library thread. Useful to allow partial scans of only one source.
2017-01-13 18:56:37 +01:00
chme
ae1a45bacc
[library/spotify] Implement rescan in spotify.c and purge old files
...
after rescan
2017-01-13 18:56:37 +01:00
chme
0bea83cafa
[spotify] Scan saved albums and playlist using the spotify web api
2017-01-13 18:56:37 +01:00
chme
1672b67040
[library/filescanner] Move purging of old content to library; Remove
...
ping for spotify files in filescanner (not needed, either they get
updated through the init-scan or purged)
2017-01-13 18:56:37 +01:00
chme
263edaa8b3
[misc] Helper function safe_strdup (NULL safe strdup)
2017-01-13 18:56:37 +01:00
chme
4bd42dda41
[spotify] Remove loading saved tracks from the webapi (will be readded
...
later)
2017-01-13 18:56:37 +01:00
chme
1a85257fb3
[spotify] Extract function for preparing directories
2017-01-13 18:56:37 +01:00
chme
5efadb6fc2
[spotify_webapi] Add separate file for accessing the web api
2017-01-13 18:56:37 +01:00
chme
56ce3f9cba
[library/filescanner/spotify] Add library source abstraction and new
...
"library" thread
- Implement filescanner as a library_source
- Add library source implementation for spotify
- Move process_media_info to library with small adjustments:
- Remove dependency to F_SCAN_TYPE defines
- Pass data_kind as parameter
- Pass media_kind and compilation as parameter if a source forces a
specific value for these
- Move declaration of scan_ffmpeg to library; add
library_add_playlist_info to library
2017-01-13 18:56:37 +01:00
ejurgensen
785ff21045
Merge pull request #328 from sshambar/fixconfig
...
Updated configure/makefiles related to Issue #327
2017-01-12 22:41:47 +01:00
ejurgensen
45d513d206
[rtsp] Do not fail if ContentLength has chars after num value (e.g. whitespace)
2017-01-10 21:09:08 +01:00
ejurgensen
966a81cc77
[db] Fixup - itemcount not required for finding a playlist
2017-01-06 20:03:02 +01:00
ejurgensen
213b58c012
[db] Forgot to add Q_FIND_PL as a playlist query
2017-01-06 19:58:38 +01:00