Commit Graph

2366 Commits

Author SHA1 Message Date
ejurgensen
70f05049e8 Change text for severity log from ERROR to LOG
To avoid this startup message:
[ERROR]     main: Forked Media Server Version 22.1 taking off
2015-01-07 21:50:24 +01:00
ejurgensen
3b38bee45b Fix wrong log domain 2015-01-06 23:26:29 +01:00
ejurgensen
a9bc1a21dc Merge pull request #75 from couteau/ownartwork (and additional artwork.c overhaul) 2015-01-04 22:41:00 +01:00
ejurgensen
103ce0887a Misc artwork fixup 2015-01-04 19:38:13 +01:00
ejurgensen
73bbe831e6 artwork.c overhaul and avoid "Error reading artwork" message when there is no artwork
- try to align return values in artwork.c
2015-01-04 15:12:46 +01:00
chme
6a2dc2d538 log severity in logfile and console 2015-01-03 18:00:31 +01:00
ejurgensen
0d7ec13ede Merge branch 'ownartwork' of @couteau and various modifications (see pr #75) 2015-01-03 00:31:48 +01:00
ejurgensen
2879458e98 Fix for issue #62 (slow internet streams), credit @chme 2015-01-02 23:24:44 +01:00
ejurgensen
d55d194201 Remove misplaced quotes 2015-01-01 22:28:26 +01:00
Stuart C. Naifeh
f3e21956c4 Add configuration option to disable individual artwork 2014-12-30 10:38:03 -05:00
chme
ec47c6e730 optimize queries and indexes for composer/genre 2014-12-29 09:24:29 +01:00
chme
5cb06980e3 Optimize the indexes on the files table to speed up select queries 2014-12-29 09:24:29 +01:00
chme
12b46ad94d Improve select for files table by removing f.media_kind = 32 from the
queries (forked_daapd has no media_kind = 32).
2014-12-29 09:24:29 +01:00
chme
fedf571d34 Improve selects for files table by removing the (f.album <> '' AND
f.album IS NOT NULL) from the where clause for album and artist. These
are unnecessary because forked-daapd makes sure that an artist or album
name exists.
2014-12-29 09:24:28 +01:00
chme
e321e5137f db update v16 and cache update v2 2014-12-29 09:24:28 +01:00
chme
31870fe046 improve selects for files table by removing the join to the groups table 2014-12-29 09:24:28 +01:00
ejurgensen
a69619a5a7 Implement is_remote() and change how transcode_needed() is used
transcode_needed() was getting called needlessly in http_daapd.c,
because 1) once it is determined that a given codec needs transcoding
for a given client there is no reason to call and check again, 2)
transcoding is irrelevant for remotes. Also some cleaning up of
user_agent_filter().
2014-12-28 23:37:12 +01:00
ejurgensen
3e412b5e65 Remove misplaced quotes in db_group_type_bypersistentid() 2014-12-28 23:32:21 +01:00
ejurgensen
4de5f7c19c Fix login/logout problem in spotify.c (see issue #68) 2014-12-28 21:08:52 +01:00
chme
7889d92a81 Identify "android" user-agent as a remote client in transcode_needed()
(similar to the check in user_agent_filter())
2014-12-28 09:37:19 +01:00
chme
3208315503 fix delete query for removing files if a spotify playlist is deleted 2014-12-27 21:44:25 +01:00
Stuart C. Naifeh
431ecdb197 Cache individual artwork 2014-12-27 11:40:52 -05:00
Stuart C. Naifeh
9e9ffe6809 Update cache api, version, and logic to support caching of individual as
well as group artwork
2014-12-27 10:48:12 -05:00
Stuart C. Naifeh
2171a1f2b3 Re-add support for individual artwork 2014-12-27 09:44:16 -05:00
Justin Maggard
cdb0048082 Fix invalid read on empty string queries. 2014-12-17 15:03:23 -08:00
Justin Maggard
4efca3660f Fix bad free when encountering an error fetching query results. 2014-12-17 15:03:23 -08:00
Justin Maggard
e431b04310 Lower log level for missing revision-number in client update request. This is some clients' normal behavior, so we shouldn't need to need to see a message about it in the error log. 2014-12-17 15:03:23 -08:00
ejurgensen
9b7a22ab0a Avoid threading issue in both ffmpeg and libav that prevents decoding embedded png's 2014-12-09 22:31:41 +01:00
chme
2e5d234ac5 [artwork] do not add cache entry if reading artwork failed 2014-12-07 07:39:27 +01:00
ejurgensen
6f2f44168d Some config file polish (now that it's being updated anyway) 2014-11-17 22:53:52 +01:00
ejurgensen
9d9c82b6b1 Shorten timeout waiting for audio to Spotify 2014-11-11 20:22:39 +01:00
ejurgensen
5e4f449179 Add a timeout waiting for audio to Spotify 2014-11-11 11:59:40 +01:00
ejurgensen
f74774f5f7 Be more generous with Spotify image resolution now that the cache protects against poor reponse times 2014-11-11 11:37:03 +01:00
chme
7578bb1205 Artwork caching (pull request #61), and also:
- introduced new section in config file for sqlite pragma settings,
added config for artwork cache
- added setting of pragma synchronous, cache size and journal mode to
daap cache
2014-11-10 22:53:08 +01:00
ejurgensen
f24ab29098 Extend cache rebuild to 60 seconds so we are more certain that the library is 'idle' 2014-10-16 22:15:35 +02:00
ejurgensen
9508eba62e Return silence if the pipe read was blocked (credit bfitz) 2014-10-07 19:55:28 +02:00
ejurgensen
88fcfa061d Add compability with ffmpeg's libswresample 2014-10-02 22:48:50 +02:00
ejurgensen
4857f21644 Merge branch 'freebsd': New timing mechanism (issue #46)
- also some libevent 2 adjustments
2014-09-30 21:39:02 +02:00
ejurgensen
376f0ed1c0 Minor fix 2014-09-30 18:55:32 +02:00
ejurgensen
495aebec40 Fix bug where it would hang because it looked for artwork in named pipes
- also some refactoring of the artwork code to diminish redundancy
2014-09-29 23:40:38 +02:00
ejurgensen
513e38dcda Proper update to libevent 2 (artwork, avio_evbuffer, dmap_common, transcode) 2014-09-28 22:44:45 +02:00
ejurgensen
661a557500 Proper update to libevent 2 in spotify.h and pipe.h 2014-09-28 22:26:23 +02:00
ejurgensen
a3a689573f Better define in player.c 2014-09-28 22:14:30 +02:00
ejurgensen
1ffbfd8c45 Proper update to libevent 2 in player.c 2014-09-28 22:09:22 +02:00
ejurgensen
965df4fdfc Delete event after disarming timer (maybe not necessary, but for safety) 2014-09-28 15:30:52 +02:00
ejurgensen
cf5b702460 Fix malplaced declaration 2014-09-27 23:12:18 +02:00
ejurgensen
4078542eb4 Forgot an include 2014-09-27 23:08:43 +02:00
ejurgensen
29265d6170 Drop special FreeBSD stream period 2014-09-27 23:08:24 +02:00
ejurgensen
861635eb4d timer_delete() instead of close() for FreeBSD timer 2014-09-27 23:05:22 +02:00
ejurgensen
65110a9f39 Fix FreeBSD sound timing problems 2014-09-27 22:59:19 +02:00
ejurgensen
dafa26a48a Protect against uinitialized var if query is empty 2014-09-26 23:13:17 +02:00
ejurgensen
ca3fada215 Fix ALSA audio problem where threshold will not be reset because
commit 7462290 decreased the value of pcm_pos
2014-09-19 22:18:07 +02:00
ejurgensen
27e7148405 Use STOB() in player.c since it is defined right in player.h 2014-09-19 22:14:31 +02:00
ejurgensen
f543b768ac Merge pull request #41 from chme/skipprev
rfc: Change behavior of skip to previous song
2014-09-12 21:45:15 +02:00
ejurgensen
2fc681a971 Add condition for FreeBSD, ignore SCHED_BATCH in filescanner.c 2014-09-12 17:52:08 +02:00
ejurgensen
8c9793d9ef Fix filescanner bugs:
- stop init-rescan/full-rescan from running twice
- set thread priority to batch
- don't request libevent to loop when the loop is already running
2014-09-11 22:41:07 +02:00
ejurgensen
5bfe4673f5 Add a function in filescanner.c to enumerate certain file types
Fixes bug where init-rescan and full-rescan would run twice because
two inotify events get triggered by eg 'touch xxx.init-rescan'
2014-09-10 22:16:52 +02:00
ejurgensen
97910f3a99 Fix bug where LastFM session key in db was ignored 2014-09-08 23:13:12 +02:00
ejurgensen
be7a6c7b1e Don't try to login to Spotify if the filescanner got an exit signal 2014-09-08 22:45:05 +02:00
ejurgensen
94c5352db6 Remove EVLOOP_ONCE calls in filescanner
These calls generate error messages when the loop is already running, which
will be the case when using init-rescan or full-rescan. The only purpose
of these calls seems to be to check for exit signals from the main thread
during a startup bulk scan, where the loop is not running yet. However, we
can check for an exit signal by just setting/checking scan_exit.

This commit also removes the unused filescanner_status().
2014-09-08 21:57:52 +02:00
ejurgensen
d2d85b29f4 Lower the priority of the thread so forked-daapd may still respond
during file scan on low power devices
2014-09-07 13:48:03 +02:00
ejurgensen
2545aedc2a Avoid duplicate rows in the admin table 2014-08-27 22:12:42 +02:00
ejurgensen
ae3b5077ec Add support for .pls playlists 2014-08-27 21:57:16 +02:00
ejurgensen
1b51fcf07c Rename filescanner_m3u to _playlist, because we are going to add
support for pls
2014-08-27 21:54:28 +02:00
ejurgensen
b26e507baa Fix memleak in DAAP cache 2014-08-25 22:05:44 +02:00
ejurgensen
271e2c29e1 Add some libevent 1 compability 2014-08-24 14:51:41 +02:00
ejurgensen
d157aca620 Save response times in DB and show in log (for debugging) 2014-08-24 12:43:32 +02:00
ejurgensen
31ef4d4e13 Add slow DAAP queries to cache automatically 2014-08-24 01:23:23 +02:00
ejurgensen
cf091e8d8b Adjust daapcache so it serves User-Agent to httpd_daap's reply handlers 2014-08-23 00:02:01 +02:00
ejurgensen
624dd40c59 Include DAAP queries from Retune and TunesRemote+ for caching
+ misc fixing up
2014-08-22 22:51:13 +02:00
ejurgensen
f997aca452 More DAAP cache adjustments 2014-08-21 23:06:52 +02:00
ejurgensen
eac718ea0f Some more daap cache triggers 2014-08-21 10:14:24 +02:00
ejurgensen
76231cac0f Experimental caching of playlist 1 2014-08-21 10:01:47 +02:00
ejurgensen
7623de1ac4 Allow const char tags and handle null requests in dmap_common 2014-08-21 09:59:59 +02:00
ejurgensen
39b9c4fc33 Make DAAP cache use and location configurable 2014-08-20 23:09:23 +02:00
ejurgensen
f3a19fce8e Add DAAP cache backend 2014-08-20 00:21:48 +02:00
ejurgensen
a594455e09 Add db_query_run() to get rid of some redundancy in db.c 2014-08-18 00:20:23 +02:00
ejurgensen
6d8e4c67aa Support for LastFM scrobbling (issue #19) 2014-08-15 23:36:54 +02:00
ejurgensen
21cf3ab7d3 Add trimwhitespace(), keyval sorting and alloc to misc functions
- features required by the LastFM module
2014-08-15 22:56:39 +02:00
ejurgensen
d5efc2dcb3 Add db interface to update the admin table 2014-08-15 22:54:47 +02:00
ejurgensen
b0807b168e Preproc defines in evhttp_compat.h to protect against double inclusion 2014-08-15 22:53:47 +02:00
Marlies Heijkoop
bbb21b0bad Don't segfault on invalid utf8 while sorting
`strmblen` returns -1 on invalid sequences, which causes a segfault when passed as length to `stpncpy`.
2014-08-14 20:06:45 +02:00
chme
05e6402dc6 Fix skip to next song while the last song in Up Next is playing
(introduced in a6c2a25)
2014-08-02 07:25:18 +02:00
chme
974c6e6323 add missing "#undef Q_TMPL" 2014-07-27 11:16:00 +02:00
chme
a6c2a25642 If reshuffling with repeat all songs in queue active, set shuffle-head
to current playing song. Previously the shuffle-head was set to the next
song after the current, therefor the UpNext-queue appeared empty after
adding new songs to the queue.
2014-07-25 18:51:34 +02:00
chme
87b415b0d4 Fix segfault on reshuffling one item 2014-07-25 18:25:20 +02:00
chme
5065c3e4a0 Use query parameter if queuefilter parameter is unkown 2014-07-19 08:45:40 +02:00
chme
49a985391d Ignore queuefilter on playqueue-edit-add if mode = 0 (add to up next) 2014-07-19 08:44:27 +02:00
chme
74622904e3 local audio: do not add pcm_buf_threshold to pcm_pos (leads to wrong
position in Remote)
2014-07-17 20:14:21 +02:00
chme
4d79a85780 Change behavior of skip to previous song to start the current song from
the beginning, if it is playing for more than 3 seconds
2014-07-17 20:14:21 +02:00
chme
fe2abfd123 clear queue on playback abort 2014-07-17 20:12:19 +02:00
chme
9527e06f71 reshuffle only songs in the UpNext queue 2014-07-17 20:12:19 +02:00
chme
46c0239a79 Added options to modify the operation of the SQLite database (through PRAGMA statements)
- set cache size (in number of pages)
- set synchronous flag
- set journal mode
2014-07-13 10:35:38 +02:00
ejurgensen
17ffdc56ad Fix bug where streams with sample rate < 44100 stop too early (with libav 10+)
- avresample_convert should be passed max samples to convert, not
number of samples in input (which for low sample rates is lower
than output)
2014-07-06 23:31:20 +02:00
ejurgensen
129c00c3d1 Change some playlist scanner log levels 2014-06-23 01:51:32 +02:00
ejurgensen
0a2d2273bd Remove build warning caused by data type mismatch 2014-06-22 22:29:45 +02:00
ejurgensen
7810f16361 Fix bug where it will wait endlessly if a Spotify track is paused the last few
seconds of a track (after new track has been opened)
2014-06-22 22:27:52 +02:00
ejurgensen
a860907202 Another preprocesser condition for OpenWrt compability 2014-06-16 23:46:30 +02:00
ejurgensen
2247fadbfa Some preprocessor conditions for compability on OpenWrt 2014-06-16 23:31:44 +02:00
ejurgensen
a181b515f2 Merge branch 'dev' 2014-06-11 23:10:52 +02:00
ejurgensen
d993bc3750 Defer loading Spotify playlists until bulk scan is complete
(because of database locking issues)
2014-06-10 22:49:44 +02:00
ejurgensen
1bd11d2895 Fix so permission changes in the library are handled (issue #8) 2014-06-09 23:42:02 +02:00
ejurgensen
30aa93479d Merge branch: libevent compability improvements 2014-06-02 21:59:50 +02:00
ejurgensen
844a9b43c9 Fixup new libav 10 icy extraction 2014-06-02 21:51:50 +02:00
ejurgensen
ada7ccca8f Change log level of .remote message to ease pairing troubleshooting 2014-06-02 21:08:24 +02:00
ejurgensen
116289f5b7 Libav 10 (and ffmpeg) now has native support for ICY metadata 2014-06-02 00:00:52 +02:00
ejurgensen
b566c41a36 Setting log level to info gave a lot of meaningless db.c messages 2014-06-01 23:58:44 +02:00
ejurgensen
c740e6e3b0 Make compatible with libevent 2.0 by crippling streaming and ICY metadata (see issue #30) 2014-05-30 23:39:03 +02:00
ejurgensen
5b4ef31758 Migrate all evhttp to non-deprecated libevent2
- well except a troublemaker in httpd_daap.c (req->flags &= ~EVHTTP_PROXY_REQUEST)
2014-05-29 23:22:00 +02:00
ejurgensen
22d37f240b ICY scanner modifications 2014-05-29 11:50:56 +02:00
chme
a4fbeed81e Added comments to queue_clear and queue_empty 2014-05-29 09:45:04 +02:00
ejurgensen
02c23b0065 Better thread sync, cleanup and libevent compability in ICY filescanner 2014-05-26 23:38:19 +02:00
chme
b7cb0da2c2 Modifications to the playqueue-clear command:
- do not stop playback when clearing the UpNext queue
- clear history, if mode=0x68697374 ("hist")
2014-05-24 07:34:59 +02:00
ejurgensen
aa8344d14d Some filesystems have mtime=0 (Seafile), so add check for stamp before
letting the scanner exit with just a db ping
2014-05-21 22:31:05 +02:00
ejurgensen
519a673503 Extra error check 2014-05-20 22:45:25 +02:00
ejurgensen
8468f55910 Honor the "ek" (encryption) flag for RAOP_DEV_OTHER + slight rewrite of raop_device_cb 2014-05-18 17:19:50 +02:00
chme
f60be3c8af Do not use queryfilter on "play next" and "add to up next" commands 2014-05-18 09:04:17 +02:00
chme
a1b09903c0 - Fix crash when calling add-next and cur_playing/cur_streaming are NULL
- Append songs after cur_streaming
2014-05-17 14:13:18 +02:00
ejurgensen
dafc748bfd Clear watches from db on init-rescan 2014-05-14 21:39:25 +02:00
ejurgensen
915719f0f8 Fix Spotify exemption from purge during init-rescan 2014-05-14 20:44:07 +02:00
ejurgensen
6b0c5997bf Fixup init-rescan 2014-05-13 22:14:19 +02:00
ejurgensen
c1be585469 Extra log message for debugging apparent db locking issue 2014-05-13 22:02:32 +02:00
ejurgensen
a7d0a603b3 Excempt Spotify items from rescan purge 2014-05-13 20:57:37 +02:00
ejurgensen
851b57017d Add option to trigger startup scan, rename force-rescan and better cleanup in full rescan 2014-05-11 23:55:18 +02:00
ejurgensen
0aa8416a21 Reset inotify when force-rescan is triggered 2014-05-11 23:44:15 +02:00
ejurgensen
5a5163e699 Move db_analyze/db_hook_post_scan (credit @chme) 2014-05-11 23:17:29 +02:00
ejurgensen
a5b2fbc0fe Wrap bulk scan in a db transaction (credit @chme) 2014-05-11 23:13:09 +02:00
ejurgensen
44c3dba3d9 queue_remove was removing wrong item 2014-05-06 22:55:59 +02:00
ejurgensen
305c1a141c Indentation 2014-05-04 22:36:37 +02:00
chme
7e43a42c88 Remove dead code: playback_next_bh and playback_prev_bh are only called
during playback_pause. In playback_pause "cur_playing" is always set to
NULL so that in playback_next_bh and playback_prev_bh only the
else-clause can become true.
2014-05-04 05:45:53 +02:00
chme
79646c78e4 fixup indentation 2014-05-03 20:16:51 +02:00
chme
8036a5a6d3 fixes for playqueue-contents 2014-05-03 20:16:51 +02:00
chme
5f307c7ce1 Added support for playqueue-contents with negativ span value (returns the previously played songs) 2014-05-03 20:16:51 +02:00
ejurgensen
20539c0c08 Remove unused variable in queue_next_add 2014-04-30 23:33:42 +02:00
ejurgensen
a2f90a997c Make sure albums/artists appear the same despite different capitalization 2014-04-30 23:30:08 +02:00
chme
eab4c1c3d2 Fix "play next" command - the queue was not circular anymore due the
missing setting of pl_prev of the next song and start the shuffle-queue
with ps_shuffle
2014-04-23 20:44:40 +02:00
ejurgensen
8eb6b46ed2 Adjustments to queue_move/queue_remove, mostly for consistency 2014-04-21 21:21:40 +02:00
ejurgensen
748ce1413f Revert msed to 0 for now 2014-04-20 23:34:04 +02:00
chme
4c5abdac5e add songs for album or artist ordered by album 2014-04-20 11:03:49 +02:00
chme
2391838ea1 announce support of playlist editing by setting "msed" to 1 2014-04-20 07:33:28 +02:00
chme
01cc83f819 respect coding convention and changed log level 2014-04-20 06:43:01 +02:00
chme
32c3b57fcd added support for the playqueueedit add next command 2014-04-19 09:12:58 +02:00
chme
475a2f4e8f added support for the playqueueedit remove command 2014-04-19 08:35:07 +02:00
chme
c3c2c421d2 added support for the playqueueedit move command 2014-04-19 08:09:32 +02:00
ejurgensen
365c5a3bc9 Only queue the rest of the album on quirky query 2014-04-18 22:39:17 +02:00
ejurgensen
2c16b070ed Make the update of playcount non-blocking for playback
- otherwise slow updates would disrupt streaming when switching track
2014-04-18 22:31:37 +02:00
ejurgensen
35e9b3dc30 Fix bug in m3u scanner 2014-04-18 13:08:31 +02:00
ejurgensen
c7aaf6eff3 Forgot a spotify enabled condition 2014-04-05 22:30:35 +02:00
ejurgensen
c47287a556 Support for Spotify artwork 2014-04-04 23:14:43 +02:00
ejurgensen
1be543b00a Only cache available Spotify tracks 2014-04-03 20:44:36 +02:00