Commit Graph

146 Commits

Author SHA1 Message Date
ejurgensen
9a56044c77 [misc] Explicitly check for pthread_setname_np/pthread_set_name_np
Seems there is no pthread_setname_np in OpenWrt
2016-05-05 19:39:15 +02:00
ejurgensen
bf27a879df [filescanner] Use libinotify for FreeBSD (should fix issue #245)
Filescanner was broken in FreeBSD. Besides fixing this, using
libinotify instead of kqueue directly should make the code easier
to maintain, since it will be less divergent.

This commit includes these changes:
- Add libinotify to FreeBSD install scripts
- Fix reading multiple events from inotify fd (possible bug in Linux too)
- Deferred scanning since FreeBSD doesn't have IN_CLOSE_WRITE
- Configure search for inotify library
- Removal of kqueue stuff
2016-04-12 22:11:56 +02:00
ejurgensen
a22aff5d1f [filescanner] Switch misplaced arguments in process_directories (FreeBSD)
Should help with issue #239. Also change process_directory so it uses
same argument order as process_directories.
2016-03-27 20:35:23 +02:00
ejurgensen
b454a2fd60 [general] Put back support for platforms without pipe2(), see issue #239 2016-03-17 22:20:16 +01:00
chme
98d6db002f Set thread names to make it easier to identify threads during debugging 2016-03-12 14:01:08 +01:00
ejurgensen
7135406531 [filescanner] Log message if user attempts to use LastFM/Spotify on unsupported build 2016-03-03 22:20:13 +01:00
ejurgensen
e9986e9c9f [filescanner] Remove var not used in FreeBSD section 2016-02-06 11:08:45 +01:00
chme
73d5832d98 [filescanner] Fix use of uninitialized variable 2016-02-06 10:30:10 +01:00
chme
b84df9c5c3 [filescanner] Fix compile error on freebsd 2016-02-06 07:44:19 +01:00
chme
cd5462e241 [filescanner] attempt at fixing compile errors on freebsd after the
introduction of the directories table
2016-01-31 08:14:03 +01:00
chme
dcfec5c1d4 [filescanner] Do not process parent directories on inotify callback 2016-01-29 19:29:02 +01:00
chme
1a6565e512 [directories] Initialize root directories on db init 2016-01-24 18:51:22 +01:00
chme
c23cbde6ac fixup - remove unused enum, remove unused local variable, remove
duplicate error log for failure in create_virtual_path, remove
unnecessary empty lines
2016-01-24 18:51:22 +01:00
chme
7703a997c4 [db/filescanner/spotify] Replace filelist-view with separate
directories-table
to increase the performance of the mpd command 'lsinfo'
2016-01-24 18:51:22 +01:00
ejurgensen
55104015e0 Full removal of libevent 1 legacy code. Also drop pipe() in FreeBSD, since pipe2 is available now. 2015-10-19 21:15:29 +02:00
ejurgensen
317ad2ba41 Always treat podcasts, audiobooks and compilations as audio, even if video stream is present 2015-08-05 22:36:28 +02:00
ejurgensen
68912efa1f Enable resuming playback from saved position for certain media kinds (eg audiobooks) 2015-08-04 22:33:32 +02:00
ejurgensen
3655e26703 Code style 2015-06-02 23:10:04 +02:00
stephan-01010011
32727bd296 Fixed bug that caused icy header metadata to be not correctly
encoded/converted. Characters above x7F were replaced by '?' character
although the rfc defines a ISO−8859−1 encoding for descriptive
field-content.

According to rfc2616 the field-content is defined as follows:
<the OCTETs making up the field-value and consisting of either *TEXT or
combinations of token, separators, and quoted-string>
The TEXT rule is only used for descriptive field contents and values
that are not intended to be interpreted by the message parser. Words of
*TEXT MAY contain characters from character sets other than ISO- 8859-1
only when encoded according to the rules of RFC 2047.

In the previous implementation the icy metadata was converted based on
fromcode "ascii".

Following incoming icy header field-values should be encoded as
"ISO−8859−1" before adding them to the metadata structure.

- misc.c unicode_fixup_string enhanced by an additional parameter to
define the fromcode
- misc.h unicode_fixup_string prototype updated
- filescanner.c function fixup_tags updated to stay compatible to the
previous implementation using fromcode "ascii"
- db.c function unicode_fixup_mfi updated to stay compatible to the
previous implementation using fromcode "ascii"
- http.c function metadata_header_get enhanced to encode the header
field-content as "ISO−8859−1" to comply with rfc2616
2015-05-31 14:05:31 +01:00
ejurgensen
6176f7f4a2 Fix bug where files being copied into library with eg. Samba will get scanned
before writing has finished, which may result in no metadata for the file
2015-05-20 22:38:26 +02:00
ejurgensen
072810c4aa Move som comments 2015-04-24 22:57:08 +02:00
chme
afcc84a790 do not execute individual delete queries for artwork files during bulk
scan
2015-04-24 17:37:48 +02:00
chme
659f9c09bb Use enum values for data_kind and media_kind 2015-04-23 11:34:44 +02:00
chme
4cac01ed88 [smartpl] Add support for smart playlists 2015-04-23 08:21:10 +02:00
ejurgensen
3afd206e93 Add streams to the library even if they are unreachable 2015-04-11 22:36:28 +02:00
ejurgensen
ea29a8d988 Remove filescanner_icy.c and consolidate in http.c.
Libav 9 does not support ICY metadata, so in that case we must be able to get it outselves.
2015-03-29 00:29:06 +01:00
chme
ec75664b81 filescanner: set event-base for cmdenv 2015-02-23 20:26:06 +01:00
chme
0c936c9bea Do not trigger a new rescan if one is already running; fix log domains
in filescanner; default to "file:" for virtual paths (fixes segfaults on
pipes)
2015-02-14 08:50:18 +01:00
chme
830054bd71 Initial support for mpd protocol 2015-02-14 08:50:18 +01:00
ejurgensen
266d05f5eb Revert "Don't add duplicates (same fname, artist, album and title), issue #85"
This reverts commit 70365422b4.
2015-01-16 22:32:23 +01:00
ejurgensen
70365422b4 Don't add duplicates (same fname, artist, album and title), issue #85 2015-01-14 22:07:24 +01:00
ejurgensen
4df4c50c35 Add option to exclude paths from scanning based on regex 2015-01-14 21:50:25 +01:00
ejurgensen
37d990b390 Ignore non-artwork jpg's and png's during filescan
(so ffmpeg doesn't waste time analyzing them)
2015-01-10 23:29:10 +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
2fc681a971 Add condition for FreeBSD, ignore SCHED_BATCH in filescanner.c 2014-09-12 17:52:08 +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
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
ae3b5077ec Add support for .pls playlists 2014-08-27 21:57:16 +02:00
ejurgensen
6d8e4c67aa Support for LastFM scrobbling (issue #19) 2014-08-15 23:36:54 +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
ejurgensen
2247fadbfa Some preprocessor conditions for compability on OpenWrt 2014-06-16 23:31:44 +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
116289f5b7 Libav 10 (and ffmpeg) now has native support for ICY metadata 2014-06-02 00:00:52 +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
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