Commit Graph

1182 Commits

Author SHA1 Message Date
Julien BLACHE 97cb82faf7 Add new Avahi mDNS backend with libevent integration. 2009-04-08 14:57:34 +02:00
Julien BLACHE 8a351e5bf8 Manage explicit event bases 2009-04-08 14:57:29 +02:00
Julien BLACHE 02f960b25b Fix Avahi races
Switch from custom thread + SimplePoll to ThreadedPoll, ensuring proper
locking of the polling thread.
2009-04-07 14:03:13 +02:00
Julien BLACHE df0013a166 Introduce libevent for running the main loop
Start the gradual libevent conversion.
2009-04-07 12:53:04 +02:00
Julien BLACHE 3b4e0d8f74 Add missing ; 2009-04-07 11:40:14 +02:00
Julien BLACHE b3cffd491d Add and use io_urlencode() to replace %U format spec for io_open()
Stopgap to replace the %U modifier until something happens with the whole
io_* stuff.
2009-04-05 22:42:03 +02:00
Julien BLACHE 687be1cbb6 Remove compat.[ch] 2009-04-05 19:15:44 +02:00
Julien BLACHE 7098dfbab3 Fix various trivial compiler warnings 2009-04-05 19:03:29 +02:00
Julien BLACHE ea36855793 Fix format specifiers for 64bit integers
Use "%" PRIu64 from inttypes.h instead of "%lld" which is incorrect on 64bit
platforms.
2009-04-05 18:54:59 +02:00
Julien BLACHE f4721a6cec Add explicit -export-dynamic
mt-daapd needs an explicit -export-dynamic so its symbols are made visible
to the plugins at load time.
2009-04-05 18:54:59 +02:00
Julien BLACHE 081a13bbea Fix ffmpeg API breakage
avcodec_audio_decode() has been removed in favor of avcodec_decode_audio2();
output buffer size must be passed to the function.
2009-04-05 18:54:59 +02:00
Julien BLACHE 888bf11d2f Replace %U format by %s
%s format specifier means the string must be URL encoded. Replace it by a
simple %s for the time being until plans about the I/O layer become clearer.
2009-04-05 18:54:59 +02:00
Julien BLACHE e318858d44 Fill in type & codectype for .url/.pls 2009-04-05 18:54:59 +02:00
Julien BLACHE c2ffed5e2b Remove unused iconv-dependent code.
The code was mainly used by the MP3 scanner.
2009-04-05 18:54:59 +02:00
Julien BLACHE d8a9772afc Remove/replace non-gcc compiler-specific defines and pragmas
Remove MSVC-specific defines and pragmas, use __attribute__((packed)) where
needed.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3dd76cf9e9 Remove unneeded prototypes 2009-04-05 18:54:58 +02:00
Julien BLACHE 625ffd2112 Work around ffmpeg bugs in metadata support for some formats
Fall back to the legacy format-specific scanners for WMA, FLAC and Musepack,
as ffmpeg doesn't report metadata for FLAC nor Musepack and has bugs with
some WMA variants.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3a53a068af Initialize ffmpeg in main()
ffmpeg needs to be initialized before scanning songs at startup. As a
consequence, the ffmpeg plugin does not need to call av_register_all()
itself anymore.
2009-04-05 18:54:58 +02:00
Julien BLACHE c9107ed48c Remove unneeded id3tag.h include 2009-04-05 18:54:58 +02:00
Julien BLACHE f14ba228ec Remove Ogg Vorbis file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 056f788c99 Remove MP3 file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 9f45181bb3 Remove AAC file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 84a132d166 Remove WAV file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 23802f1866 Remove AIFF file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE a3e83775b3 Enable ffmpeg file scanner
Replace all file scanners with the new ffmpeg file scanner. Keep pls and
url exceptions.
2009-04-05 18:54:49 +02:00
Julien BLACHE 8dce7ee0f3 Add comments pertaining to the type, codectype and description fields
Better document the type, codectype and description fields, noting they
equivalent DAAP fields and usage/restrictions.
2009-04-05 10:24:10 +02:00
Julien BLACHE 10037ff7cf Rename struct tag_mp3file
That struct is badly named, rename it to struct media_file_info and keep
the typedef as-is for now.
2009-04-05 10:10:24 +02:00
Julien BLACHE 0187b5d405 Make ffmpeg mandatory 2009-04-05 10:06:03 +02:00
Julien BLACHE f5dd1bec13 Add an ffmpeg-based file scanner
Use ffmpeg's (starting with SVN 20090301) new metadata API to extract
metadata from virtually all formats supported by ffmpeg. That will allow
to get rid of some dependencies and some open-coded routines that aren't
maintainable.
2009-04-05 09:51:40 +02:00
Julien BLACHE 2cb11e8f42 Fix typos in help output 2009-04-02 13:24:09 +02:00
Julien BLACHE 1b98e3c036 Fix Avahi mDNS backend
Fix Avahi polling:
 - use avahi_simple_poll_loop() in rend-avahi.c:rend_poll() instead
   of reinventing yet another type of wheel;
 - start RendezVous thread after daemonizing, so the thread actually
   runs after we've daemonized.

Also handle Avahi daemon restarts, as it's good practice and easy to do.

 ... And /that/, my friends, is how we do that ...
2009-04-02 13:22:23 +02:00
Julien BLACHE 464bd414a1 Properly guard bytes_written against NULL
ws_copyfile() can be called with bytes_copied == NULL but did not
check for this condition before using bytes_copied after an IO error,
leading to a segfault.
2009-04-02 13:17:16 +02:00
Julien BLACHE 46acba0edb Fix ilst atom parsing
Fix ilst children parsing; when parsing children, we're already 8 bytes
into the ilst atom, so take that into account.
2009-04-02 13:16:07 +02:00
Julien BLACHE 93a97956a0 Change return type to boolean
Use a boolean return type instead of returning -1 with an unsigned return type.
2009-04-02 13:14:54 +02:00
Neil Spring 7565b02229 Properly reset XML scanner state between scans
Fix indexing of multiple XML files by resetting path_found for each
XML file.
2009-04-02 13:10:19 +02:00
Chris Pitchford 54d441f57c Fix handling of URIs in io_open()
Fix io_open()'s handling of options in URI, fixing the "filenames with a
question mark are not scanned" bug.

Patch by Chris Pitchford, cpitchford on the Firefly forum.
2009-04-02 13:07:36 +02:00
Jeremy Kerr 7c1752d871 Fix a bad return value in ws_addarg()
Fix a bad return value in ws_addarg() when updating a header value,
leading the caller to believe an out of memory condition happened.
2009-04-02 13:01:19 +02:00
Nico Golde 567bd3ee03 Fix integer overflow, CVE-2008-1771
Fix integer overflow leading to heap-based buffer overflow causing a
remote Denial of Service and possibly allows to execute arbitrary code.
2009-04-02 12:59:31 +02:00
Nico Golde 5d227e85c5 Fixup taglib_tab_free_strings() invocation
Fixup taglib_tab_free_strings() invocation; the function never took an
argument to start with, so fix that up as it now breaks the build.
2009-04-02 12:29:49 +02:00
Julien BLACHE b80b81adae Don't clobber LIBS with -ldl 2009-04-02 12:18:53 +02:00
Julien BLACHE 3a55c153b8 Move wavstreamer to tools 2009-04-02 12:18:47 +02:00
Julien BLACHE 023e034020 Don't clobber LDFLAGS with iconv 2009-04-02 11:42:39 +02:00
Julien BLACHE 1c97e73351 Remove embedded copy of getopt 2009-04-02 11:08:41 +02:00
Julien BLACHE cfdb37c07c Remove Mac OS conditional code 2009-04-02 11:06:29 +02:00
Julien BLACHE c3fb950737 Remove WIN32 conditional code 2009-04-02 11:04:33 +02:00
Julien BLACHE b59f936390 Remove barely-used bsd-snprintf.[ch] 2009-04-01 19:26:19 +02:00
Julien BLACHE fc8038de6b Get rid of unused restart.[ch] 2009-04-01 19:17:05 +02:00
Julien BLACHE 242d41fd0d Remove unused uici code 2009-04-01 19:16:28 +02:00
Julien BLACHE d3b4d80284 Remove SVN keywords 2009-04-01 19:16:21 +02:00
Julien BLACHE 36a0217199 Use pkg-config for TagLib 2009-04-01 19:16:20 +02:00
Julien BLACHE b4deba68b6 Use pkg-config for libFLAC
Don't use FLAC_CFLAGS because it contains -I/usr/lib/FLAC which breaks
anything using assert(), due to FLAC's own assert.h.
2009-04-01 19:16:20 +02:00
Julien BLACHE 22e646099a Use pkg-config for Ogg/Vorbis 2009-04-01 19:16:20 +02:00
Julien BLACHE 2fd4b744a7 Use pkg-config for id3tag 2009-04-01 19:16:20 +02:00
Julien BLACHE 5f682ca276 Remove unused SSL support
Unused, and anyway OpenSSL is not compatible with the GPL.
2009-04-01 19:16:20 +02:00
Julien BLACHE 7ce2e75859 Use pkg-config to check for libavcodec & libavformat 2009-04-01 19:16:20 +02:00
Julien BLACHE 2daa9835a3 Update includes for newer ffmpeg versions 2009-04-01 19:16:19 +02:00
Julien BLACHE 098ab7d736 Make SQL mandatory and sqlite3 the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE c0d395b7f9 Remove unused NSLU2 flag 2009-04-01 19:16:19 +02:00
Julien BLACHE eb5cccca06 Make MDNS mandatory and Avahi the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 185864e799 Remove custom memory debug facility 2009-04-01 19:16:19 +02:00
Julien BLACHE ca1c461419 Remove gdbm database backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 1d71d95332 Remove x bit 2009-04-01 19:16:19 +02:00
Julien BLACHE e2a31b40a2 Remove obsolete sqlite v2 SQL backend 2009-04-01 19:16:19 +02:00
Julien BLACHE a278c5998c Remove non-Avahi mDNS backends 2009-04-01 19:16:13 +02:00
Julien BLACHE 3a8c7b3c41 Get rid of Apple's RendezVous mDNS implementation 2009-04-01 15:36:55 +02:00
Julien BLACHE 1ca30657ac Remove unneeded script 2009-04-01 15:36:55 +02:00
Julien BLACHE b4fe0300b4 Remove test drivers 2009-04-01 15:36:37 +02:00
Julien BLACHE 180cc2eb5a Get rid of win32 code 2009-04-01 14:48:27 +02:00
Ron Pedde f3d1caff93 Fix 3 large memory leaks 2007-10-29 05:48:42 +00:00
Ron Pedde e842f38fce fix windows blocking socket issue, work around problem with temp update table not being seen by fetch thread during db update 2007-10-24 05:44:35 +00:00
Ron Pedde c8d09bc310 Make rsp update session status, to help kick off rescans 2007-10-24 04:06:52 +00:00
Ron Pedde d75e1f8d48 Update playcounts for transcoded files 2007-10-24 03:59:34 +00:00
Ron Pedde a8b6d93c07 Add count value to smart playlists, closing #150 2007-10-23 04:52:25 +00:00
Ron Pedde fffe34e5eb Fix bogus error messages on web config 2007-10-23 04:23:50 +00:00
Ron Pedde 60f8d1299f Fix wav scanning for wav files with more than two blocks (wmp wav files with LIST/INFO blocks) 2007-10-23 03:57:20 +00:00
Ron Pedde ad5718bb9c Add DESCRIPTION tag as an alias for COMMENT in flac files 2007-10-23 03:43:17 +00:00
Ron Pedde 34a4bb998e Fix duration scanning for wav files 2007-10-23 03:37:51 +00:00
Ron Pedde 1292992f6f Fix for format string vulnerability, reported as UnprotectedHex.com advisory UPH-07-03 by nnp (no CVE yet) 2007-10-21 22:51:01 +00:00
Ron Pedde e70f43e1ce Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-02 by nnp (no CVE yet) 2007-10-21 22:45:32 +00:00
Ron Pedde eb7b49d848 Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-01 by nnp (no CVE yet) 2007-10-21 22:13:37 +00:00
Ron Pedde 31bbea6109 Win32 performance fix (WSAEWOULDBLOCK hack issue) 2007-10-19 03:35:24 +00:00
Ron Pedde 43c234e666 Add per-thread db handles to guard against SQLITE_MISUSE 2007-10-13 22:03:52 +00:00
Ron Pedde 6df87878a5 increased logging to debug wav streaming problem on win32/vista 2007-10-07 04:48:19 +00:00
Ron Pedde aa7b98f214 Fix for iTunes 7 password prompt on movie playback 2007-10-07 04:39:30 +00:00
Ron Pedde 3caf85e221 Fix for crash on os/arch without va_copy 2007-10-02 03:15:21 +00:00
Ron Pedde a921916f30 Tune down logging a bit more 2007-09-25 07:50:48 +00:00
Ron Pedde 208ef6b1f2 minor signed/unsigned cleanups 2007-09-25 06:15:47 +00:00
Ron Pedde 01c7d18758 io.c: Fix rebuffering issue on win32 (fixing #235)
webserver.c: Fix write error log messages.  Possible fix for crash on mipsel (uninitialized heap issue).
2007-09-23 10:14:51 +00:00
Ron Pedde 4966f4213e Fold the mp4 scanner into the aac scanner, fix the playlist issue, and the aac metadata parsing issue 2007-09-16 02:03:25 +00:00
Ron Pedde 854a99470c Fix problem with password protected libraries 2007-09-13 04:52:18 +00:00
Ron Pedde 5864fd8a15 Fix problem with line endings on m3u files 2007-09-13 04:27:47 +00:00
Ron Pedde b082328a4d This should be the REAL freebsd socklen_t fix 2007-09-11 04:45:59 +00:00
Ron Pedde 196ac7b468 Version the plugins, to stop from loading old versions, plus fix up search paths for ipkg based installs 2007-09-11 04:29:52 +00:00
Ron Pedde 491d1038eb Fix for EOF problem without trailing linefeed as reported by evans02472 on the forums 2007-09-09 06:02:03 +00:00
Ron Pedde 2734480212 Freebsd fix for socklen_t problem reported in forums 2007-09-09 05:56:56 +00:00
Ron Pedde 9d9ce5ba7a fix win32 library loading issues. 2007-09-07 07:51:00 +00:00
Ron Pedde effab02bc1 scan for new plugin path when not specified in config 2007-09-07 06:55:25 +00:00
Ron Pedde 06a107f116 Add debugging to try and find problems with EBADF on Sun Cobalt RaQ 2007-09-07 06:52:23 +00:00
Ron Pedde 64b8eb7e71 don't include iconv.h when building without iconv 2007-09-05 03:28:56 +00:00
Ron Pedde 9d9533a07a Win32 iconv fixes. 2007-09-04 07:34:18 +00:00