Commit Graph

71 Commits

Author SHA1 Message Date
ejurgensen cc6d5670d7 Merge branch 'm3u_extinf' 2013-10-17 22:36:07 +02:00
ejurgensen 3db0cde42a Add log message for when the filescanner completes initial scan 2013-10-17 22:08:18 +02:00
ejurgensen 115c35e856 Change M3U metadata mapping 2013-10-16 22:33:01 +02:00
ejurgensen d710e6ee95 Add support for M3U metadata (extinf) 2013-10-15 13:36:11 +02:00
ejurgensen 548141e723 Add support for getting Shoutcast (ICY) metadata from internet streams 2013-09-24 22:27:49 +02:00
ejurgensen abb0908c6f Save playlist item's URL in the database's URL-column 2013-08-19 21:30:08 +02:00
ejurgensen 4552acba7e Adds support for URLs (streaming) in m3u playlist files.
Also added a few file types that the filescanner should ignore.
2013-08-14 23:40:55 +02:00
ejurgensen 5f041b59eb Fix .url files crashing forked-daapd and remove "support" for these.
An .url file would lead to a crash due to codectype being null. This
is fixed with this commit, but at the same time support for these
files is completely removed, since even with the bug fixed .url
(and .pls) files would not stream.
2013-08-14 20:29:18 +02:00
Julien BLACHE 1dfd27090e Speedup startup rescan 2011-09-10 12:56:30 +02:00
Peter Carmichael 6e10252021 Perform post-bulk-scan DB maintenance 2011-09-10 12:56:29 +02:00
Julien BLACHE 88280217a4 Remove useless assignments in while() conditions 2011-04-24 18:29:04 +02:00
Julien BLACHE d8f4efe126 Remove unused lib variable 2011-04-24 18:25:30 +02:00
Julien BLACHE 97433dc5ef Whitespace fixup 2011-04-16 10:17:03 +02:00
Julien BLACHE a981fa0a45 Ensure mfi->title is proper UTF-8 when set to mfi->fname 2011-04-16 10:16:28 +02:00
Julien BLACHE a116e2ad1f Perform Unicode fixup before tags fixup
fixup_tags() must not be exposed to non-UTF-8 strings as it runs some of
the strings through Unicode normalization for sort tags.
2011-04-16 10:12:29 +02:00
Julien BLACHE a576033497 Rework album_artist/album_artist_sort handling
artist_sort tends to be more and more widespread, so try to reuse artist_sort
if possible instead of deriving album_artist_sort from album_artist
unconditionally.
2011-04-07 19:53:55 +02:00
Kai Elwert 3162028c41 Handle sort tags in fixup_tags()
Ensure the sort tags are filled and normalized.
2011-03-21 18:47:59 +01:00
J. Aaron Pendergrass a13ea85267 Default to MPEG4 video/audio for unknown file types
ffmpeg has issues with DRM-afflicted files, leading to the files being
tagged with the unknown file type. This allows streaming those DRM-afflicted
files to iTunes.
2011-03-20 12:48:48 +01:00
J. Aaron Pendergrass 1e1952a5ef Better fixup_tags() handling for TV shows 2011-03-20 12:48:14 +01:00
Julien BLACHE 1f2a1e65c0 Fixup URL files scanning
Do not proceed and scan the file with ffmpeg on error, bail out. Doing so,
don't free strings allocated inside the mfi as we'll call free_mfi() anyway.

Reported by Kai Elwert.
2011-03-18 21:19:51 +01:00
Julien BLACHE 868be734b8 Don't scan artwork files
Based on a patch from Dominic Evans <oldmanuk@gmail.com>.
2011-02-06 17:54:32 +01:00
Kai Elwert ebd673601d Set an empty album_artist for songs part of a compilation if not set
Songs in a compilation must all have the same album_artist and album (due to
songalbumid); if a song in a compilation doesn't have an album_artist, set it
to an empty string instead of defaulting to the value of artist. This is less
likely to break the compilation.
2010-09-04 11:04:49 +02:00
Julien BLACHE 7df92ae6bd Stop inotify event at deinit 2010-07-30 22:15:38 +02:00
Julien BLACHE 3b7a71527a Check & fix UTF-8 strings before adding/updating files 2010-06-21 17:50:09 +02:00
Dustin King 4551d530f9 Lower logging level for files with no metadata 2010-04-10 11:23:11 +02:00
Julien BLACHE 19b6780a3c Remove provisions for multi-library support
It is now clear that multi-library support will not happen, so remove whatever
provisions were in the code for that.

It comes with a small change to the configuration file, too.

With this, DB schema version went to 9.
2010-03-19 19:09:18 +01:00
Julien BLACHE 224ef48137 Make album groups persistent
Store groups (only album groups supported at the moment) in the DB,
so their ids are persistent for the duration of the forked-daapd session.

Those ids are used to, among other things, retrieve artwork, so we must
provide ourselves some persistence here.

This brings us to schema version 8.
2010-03-06 19:02:49 +01:00
Julien BLACHE 88dde32fc7 Recompute all songalbumids at startup
Due to the two Murmur64 implementations for 64 and 32bit machines, the
hash is not compatible when moving the SQLite DB between 32/64 bit hosts.

So we'll recompute all the songalbumids at startup, just in case.
2010-03-06 18:59:58 +01:00
Julien BLACHE cb4320791b Use eventfd instead of pipes if available
eventfd has less overhead than a pipe, works as a counter and uses a
single fd. Use it on Linux if available (that should be pretty much
always given the glibc and kernel requirements).
2010-02-04 18:52:13 +01:00
Julien BLACHE f85fa927c8 Dereference library directories before processing
The filescanner dereferences symlinks as it encounters them, but it did
not dereference the top-level library directories given in the config.

Also the playlist scanner always dereferences the filenames.

As a result, there was a mismatch between the paths in the files table and
the paths in the playlistitems table if the library directory given in the
config contain a symlink somewhere along the way.
2010-01-24 10:54:52 +01:00
Julien BLACHE d47c205452 Feed .remote files to the Remote pairing agent 2010-01-17 10:52:58 +01:00
Ace Jones 1b34c9d555 Always set media_kind, for real
The problem is, you can't set INITIAL values for the file scanner, because
the filescanner doesn't fill in values on top of already existing values.
2010-01-13 19:45:04 +01:00
Julien BLACHE ed3dbc1f35 Fill in the watch_info struct only when it's needed 2010-01-12 18:50:04 +01:00
Julien BLACHE 364b22c030 Implement directory rescanning on top of kqueue/kevent for FreeBSD 2010-01-12 18:45:44 +01:00
Julien BLACHE 69bae139bb Make push_dir()/pop_dir() accept a stack as first argument 2010-01-12 18:45:31 +01:00
Julien BLACHE 79cdb4f9aa Make forked-daapd build on GNU/kFreeBSD 2010-01-10 17:49:01 +01:00
Julien BLACHE 5b5e142c22 Replace inotify with kqueue on FreeBSD - stub
Start replacing inotify in the filescanner with kqueue. Only a stub at
this point, kqueue/kevent doesn't deliver nearly as much information
as inotify does. This will require some work, and someone willing to
do that work.
2010-01-09 13:48:52 +01:00
Julien BLACHE 8d7c566d95 Use m_realpath(path) instead of realpath(path, NULL) 2010-01-09 13:44:10 +01:00
Julien BLACHE 99df67b53c Include sys/param.h for PATH_MAX 2010-01-09 13:42:23 +01:00
Julien BLACHE 6033e29348 Use standard pipe() syscall on non-Linux platforms 2010-01-09 13:41:14 +01:00
Ace Jones fc971974f0 Fill in media_kind=1 for music
Also move item_kind initialization further up.
2010-01-06 18:41:27 +01:00
Julien BLACHE 974a74a833 Update copyright notices for 2010 2010-01-05 19:34:00 +01:00
Ace Jones e16d8a9747 Use the 'artist' field for 'album_artist' if there is no album artist set 2010-01-04 17:56:20 +01:00
Julien BLACHE 6114c31c61 Hook up iTunes library scanner 2009-11-28 10:55:43 +01:00
Julien BLACHE 0ad20e5220 Rework process_media_file() and related DB support routines
Avoid pulling all the file info from the DB in process_media_file() as
anything besides the file id and timestamp is not used at all.
2009-06-11 20:44:22 +02:00
Julien BLACHE 3b7ff30c1b Remove useless force_update field in media file info 2009-06-11 19:15:22 +02:00
Julien BLACHE c918c5c689 Always rescan directories to update playlists 2009-06-11 19:11:03 +02:00
Julien BLACHE 538d81b402 Always rescan and update playlists
This is needed to keep relative playlist items up to date in the
database when the playlist file moves around.
2009-06-11 19:04:21 +02:00
Julien BLACHE 2d1c35b855 Count playlist items on the fly 2009-06-11 18:28:01 +02:00
Julien BLACHE 30204cbb76 Remove unused toplevel watch attribute 2009-06-11 17:36:13 +02:00