Julien BLACHE
e1c0b6d4b7
Move *_offsetof() macro definitions to db.h
2009-06-11 23:17:17 +02:00
Julien BLACHE
1f92052409
Rename the songs table
2009-06-11 23:03:53 +02:00
Julien BLACHE
3cadbdb1e3
Remove unused db_file_fetch_bypath()
2009-06-11 20:46:11 +02: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
0a8c171187
Store playlist items paths instead of resolving to file ids
...
This allows for more dynamic playlists now that files can move
around while we're running.
2009-06-11 20:27:31 +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
c589d92b14
Use db_get_count() wherever applicable; simplify db_{pl,files}_get_count() prototypes
2009-06-11 18:41:50 +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
Julien BLACHE
c81b33bd02
Bring db_watch_delete_bywd() prototype back in line with other db_watch_delete_by*()
2009-06-11 17:35:32 +02:00
Julien BLACHE
582f0e6746
Handle inotify events for directories
2009-06-11 17:35:25 +02:00
Julien BLACHE
07e22d8870
Add watch query/enumeration
2009-06-11 16:44:49 +02:00
Julien BLACHE
129ca8dfff
Add watch deletion by path/match/cookie routines
2009-06-11 16:15:35 +02:00
Julien BLACHE
267ab7cb1a
Rename db_query_get_count() to db_get_count()
...
Make that a generic helper, given it's used outside queries.
2009-06-11 15:45:49 +02:00
Julien BLACHE
cef1636415
Add watch-moving routines
2009-06-11 15:42:51 +02:00
Julien BLACHE
87aa24454d
Add watch-marking routines
2009-06-11 15:24:10 +02:00
Julien BLACHE
56127b3ecc
Add file and playlist disable-by-match routines
2009-06-11 15:09:10 +02:00
Julien BLACHE
34b0c22e46
Handle symlink-to-directory creation
2009-06-11 13:51:19 +02:00
Julien BLACHE
279fb95979
Watch for IN_CLOSE_WRITE in addition to IN_MODIFY and IN_CREATE
...
When receiving IN_CREATE or IN_MODIFY, there's no guarantee the file is
in its final state. Similarly, IN_MOVED_TO doesn't guarantee the file is
available when we receive it. And it actually isn't.
Watching for IN_CLOSE_WRITE fixes all that.
2009-06-11 13:45:02 +02:00
Julien BLACHE
467b177c17
Handle IN_DELETE, IN_MOVED_FROM and IN_MOVED_TO for files
2009-06-10 22:28:59 +02:00
Julien BLACHE
d63da9f08f
Add file and playlist enable/disable routines
2009-06-10 22:28:54 +02:00
Julien BLACHE
9ff8913dd6
Add file and playlist deletion (by path) routines
2009-06-10 22:28:49 +02:00
Julien BLACHE
ac96ac6baf
Move to the SQL database for storage of inotify watch info
2009-06-10 22:28:49 +02:00
Julien BLACHE
a9697eccdf
Add storage of inotify watch info
2009-06-10 22:28:43 +02:00
Julien BLACHE
bfa2488343
Add support for disabled files and playlists
2009-06-10 19:11:12 +02:00
Julien BLACHE
177fb35d81
Add missing argument to DPRINTF() call
2009-06-10 19:11:12 +02:00
Julien BLACHE
94421b0b1b
Handle IN_IGNORED events in inotify callback
2009-06-10 19:10:44 +02:00
Julien BLACHE
cbab1f80e0
ie->len is 0 for events reported on the watch subject
...
ie->len is non-0 only when the event is being reported for a file or
directory inside a watched directory.
2009-06-10 19:10:37 +02:00
Julien BLACHE
c8cc6bd603
Run event loop for each directory and each playlist when scanning in bulk mode
2009-06-10 19:04:18 +02:00
Julien BLACHE
4e38d168e1
Set and check database schema version
2009-06-10 19:04:18 +02:00
Julien BLACHE
ab1f9db6b3
Remove unused L_LOCK logdomain
2009-06-10 19:04:18 +02:00
Julien BLACHE
7314dd21c7
Purge old files and playlists after bulk scan
2009-06-10 19:04:18 +02:00
Julien BLACHE
4e3b29f502
Remove the old database code
2009-06-10 19:04:18 +02:00
Julien BLACHE
a200703393
Switch to the new database code
2009-06-10 19:04:18 +02:00
Julien BLACHE
f2c677462b
Add new database code
2009-06-10 19:04:12 +02:00
Julien BLACHE
52d3fd1064
Clear evkeyvalq structs before use; fix crasher
2009-06-07 19:06:59 +02:00
Julien BLACHE
149d5432c6
Rework error handling and cleanup
2009-06-07 19:06:59 +02:00
Julien BLACHE
0ff33f12d6
Move mDNS services registration out of main()
2009-06-07 19:06:59 +02:00
Julien BLACHE
f3c0145346
Move runas down into daemonize()
2009-06-07 19:06:59 +02:00
Julien BLACHE
f39c48b989
Cleanup options and add long options
2009-06-07 19:06:59 +02:00
Julien BLACHE
6e64e54429
General main.c cleanup
2009-06-07 19:06:59 +02:00
Julien BLACHE
64cd2ee383
Factor out RSP query parameters handling
2009-06-07 19:06:59 +02:00
Julien BLACHE
c59217f58e
Remove the unused L_PARSE logdomain
2009-06-07 19:06:58 +02:00
Julien BLACHE
2cc5f6928e
Remove the unused smart parser
2009-06-07 19:06:58 +02:00
Julien BLACHE
8b5a25c972
Remove/disable last users of the smart parser
2009-06-07 19:06:58 +02:00
Julien BLACHE
91e34a77c8
Use the new ANTLR parser for RSP queries
2009-06-07 19:06:58 +02:00
Julien BLACHE
f9d9964914
Add new ANTLR parser for RSP queries
...
This parser actually supports way more than is needed for RSP proper,
as mt-daapd was piggybacking on the RSP queries for its smart playlists.
As I don't have (yet?) the RSP specs, better safe than sorry here. This
will be revisited at some point. Or not.
2009-06-07 19:06:51 +02:00
Julien BLACHE
272d8bca04
Fix error message
2009-06-07 19:06:51 +02:00
Julien BLACHE
68c74e6a88
Replace the mxml RSP root element hack by a better one
...
There's no proper way to add attributes to the root XML element in mxml;
the best way to do that is to create the root element like we would
create any other element and put the whole "? ... ?" stuff in there.
2009-06-07 19:06:51 +02:00
Julien BLACHE
4872077319
Make the file scanner non-recursive
2009-06-07 19:06:51 +02:00
Julien BLACHE
ffb5a2fb06
Make wd2path static
2009-06-07 19:06:51 +02:00
Julien BLACHE
977afbbc5e
Add workaround for empty XML tags in RSP replies
...
The SoundBridge does not support empty XML tags (<foo/>) and treats anything
containing such tags as invalid. Adding an empty string to the element works
around that, in that mxml won't produce empty tags in this case.
Hackish, but dealing with a hackish implementation on the other side :)
2009-06-07 19:06:51 +02:00
Julien BLACHE
28350ae9a6
Look for a query or filter parameter in DAAP queries
...
The filter is passed in the query parameter if it's a search, but if it's
a browse it's in the filter parameter.
2009-06-07 19:06:51 +02:00
Julien BLACHE
7642b1c6d7
Use the new ANTLR parser for DAAP queries
2009-06-07 19:06:50 +02:00
Julien BLACHE
68db2ae7c2
Add new ANTLR parser for DAAP queries
2009-06-07 19:06:46 +02:00
Julien BLACHE
cefd3f3d1d
Make dmap_fields_hash static
2009-06-01 18:01:24 +02:00
Julien BLACHE
512731c9dc
Turn DPRINTF into a wrapper to a generic logging function
...
DPRINTF() made a generic logging function taking a va_list called
vlogger() and reimplemented as a wrapper on top of vlogger().
2009-06-01 16:01:47 +02:00
Julien BLACHE
c3a5222f84
Log libevent errors through our own logger
2009-05-09 17:14:07 +02:00
Julien BLACHE
11f18eaf6f
Remove unneeded log.c from evhttp copy
2009-05-09 17:14:07 +02:00
Julien BLACHE
be0ac2b103
Add missing cleanup calls
2009-05-09 17:14:07 +02:00
Julien BLACHE
7b3b538ea6
Rename L_REND to L_MDNS
2009-05-09 17:14:07 +02:00
Julien BLACHE
d384f3c395
Rename E_INF to E_INFO
2009-05-09 17:14:07 +02:00
Julien BLACHE
b6f23a8273
Remove old error logging facility
2009-05-09 17:14:07 +02:00
Julien BLACHE
11fd038d16
Use new logger facility
2009-05-09 17:14:06 +02:00
Julien BLACHE
3a2a218a0f
Introduce new logger
2009-05-09 17:14:01 +02:00
Julien BLACHE
2127aff906
Use a single log domain on DPRINTF() calls
2009-05-05 20:28:40 +02:00
Julien BLACHE
803ca7e59f
Rename foreground to background and change logic accordingly
2009-05-05 17:54:20 +02:00
Julien BLACHE
10bb9dec57
Remove useless daapd.h
2009-05-05 16:22:11 +02:00
Julien BLACHE
d2999aafec
Add missing stdint.h include to ff-dbstruct.h
2009-05-05 16:21:39 +02:00
Julien BLACHE
c85f9ed7dd
Move main event base extern declaration to mdns_avahi.c where it's used
2009-05-05 16:10:49 +02:00
Julien BLACHE
524bdd3f0d
Remove old config framwork include and wrappers
2009-05-05 16:10:44 +02:00
Julien BLACHE
9fce6d7abd
Use new config framework in main.c
2009-05-05 15:53:36 +02:00
Julien BLACHE
c1a2bf6fcf
Remove conf_*() usage in DB module
2009-05-05 15:45:48 +02:00
Julien BLACHE
ed0ff0c136
Unlink PID file on exit
2009-05-04 17:51:42 +02:00
Julien BLACHE
be4286b2e8
Remove -export-dynamic libtool flag now that we don't have plugins anymore
2009-05-04 17:48:31 +02:00
Julien BLACHE
8e14495bc2
Remove unused struct tag_stats (STATS)
2009-05-03 13:33:16 +02:00
Julien BLACHE
d1449a875b
Get rid of the global struct tag_config (CONFIG) config
2009-05-03 13:32:00 +02:00
Julien BLACHE
2530c3512b
Rename webface_cb() to httpd_gen_cb()
2009-05-03 12:26:01 +02:00
Julien BLACHE
cd6f87401a
Rename struct stream_chunk to struct stream_ctx
2009-05-03 12:19:04 +02:00
Julien BLACHE
ed7c848702
Remove I/O layer
2009-05-03 12:10:17 +02:00
Julien BLACHE
07fb43ca8c
Remove I/O layer init/deinit
2009-05-03 12:09:25 +02:00
Julien BLACHE
f0ca987d78
Replace io_* routines by standard I/O functions
2009-05-03 12:08:14 +02:00
Julien BLACHE
e8843a99aa
Remove util.[ch]
2009-05-03 11:38:32 +02:00
Julien BLACHE
1e0ffb6808
Remove use of util_* routines, last user
2009-05-03 11:37:30 +02:00
Julien BLACHE
9ef8acfa28
Remove old webserver
2009-05-03 11:20:12 +02:00
Julien BLACHE
6aca074f82
Remove plugin infrastructure
2009-05-03 11:20:07 +02:00
Julien BLACHE
baf529dbf2
Remove plugins directory
2009-05-03 11:20:02 +02:00
Julien BLACHE
2be04db4d2
Remove RSP output plugin
2009-05-03 11:16:58 +02:00
Julien BLACHE
ef1c2b2b89
Remove DAAP output plugin
2009-05-03 11:16:58 +02:00
Julien BLACHE
89eead66f6
Remove ssc-ffmpeg plugin
2009-05-03 11:16:58 +02:00
Julien BLACHE
417b5e0ce3
Remove ssc-script plugin
2009-05-03 11:16:58 +02:00
Julien BLACHE
81cb0efa81
Stop loading plugins, we don't need plugins anymore
2009-05-03 11:16:58 +02:00
Julien BLACHE
2fb7537346
Register RSP and DAAP services in main()
2009-05-03 11:16:58 +02:00
Julien BLACHE
c76c8165ce
Enable httpd on the configured port
2009-05-03 11:16:58 +02:00
Julien BLACHE
d46bb295c5
Disable old webserver
2009-05-03 11:16:58 +02:00
Julien BLACHE
a1afb0d390
Use evhttp_send_reply_chunk_with_cb() to stream files
...
This evhttp extension makes it possible to schedule chunks one after
the other when (part of) the previous chunk has been written to the
client.
2009-05-03 11:16:58 +02:00
Julien BLACHE
7a37732658
Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
...
evhttp_write_buffer() used by evhttp_send_reply_chunk() can take callback
executed when (part of) the buffer has been written. Using this callback to
schedule the next chunk avoids buffering large amounts of data in memory.
2009-05-03 11:16:58 +02:00
Julien BLACHE
1d152decf7
Use evhttp_request->fail_cb to stop streaming if the client closes the connection
...
This is an extension to evhttp. Without this, we cannot know that the client
closes the connection, and we keep pushing chunks while the underlying
evhttp_request has been freed, leading to a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE
1ffcbdae27
Add a fail_cb to evhttp_request for connection failures
...
The callback will be executed if a failure (timeout, read error) is detected
on an incoming connection.
This can be used to detect a client closing the connection while engaged in a
chunked reply and actively pushing chunks to the client. Without this
notification, it is impossible to know if/when a connection gets closed and
react appropriately (ie. stop pushing chunks) resulting in a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE
e4fe084619
Use embedded evhttp
2009-05-03 11:16:57 +02:00
Julien BLACHE
6bce4e08ca
Import evhttp from libevent 1.4.10
2009-05-03 11:16:57 +02:00
Julien BLACHE
c9868175fd
Implement URI encoding quirk for iTunes and Roku
...
iTunes and Roku devices do not encode + as %2B in the query string and
do not encode space as + either in the query string (though at least the
Roku encode space as %20 everywhere). This needs to be worked around or
browse queries fail to parse because + was decoded as space when the query
really needs a + character.
2009-05-03 11:16:57 +02:00
Julien BLACHE
09ef188d90
Add authentication to web interface, RSP and DAAP
2009-05-03 11:16:57 +02:00
Julien BLACHE
dc68de86dd
Add HTTP Basic auth support
2009-05-03 11:16:57 +02:00
Julien BLACHE
cd636cf42d
Add base64 decoding routine
2009-05-03 11:16:57 +02:00
Julien BLACHE
7a601d7daa
Enable streaming of transcoded content
2009-05-03 11:16:57 +02:00
Julien BLACHE
2c2498b6b4
Add transcoding infrastructure
2009-05-03 11:16:57 +02:00
Julien BLACHE
22092f555b
Add L_XCODE log domain
...
Log domain for anything transcoding-related.
2009-05-03 11:16:57 +02:00
Julien BLACHE
e5cc417e96
Add DJB hash function to misc.[ch] and use it
2009-05-03 11:16:51 +02:00
Julien BLACHE
0a1c4545dc
Move safe_ato[il]() to misc.[ch]
2009-04-30 14:46:37 +02:00
Julien BLACHE
91414c10d7
Use a hashtable for dmap fields lookup
...
The hashtable is built around an AVL tree and the DJB hash function;
the AVL tree is built at init time and the init routine checks for
collisions.
2009-04-30 13:57:40 +02:00
Julien BLACHE
c071a58c3c
Wire up DAAP support
2009-04-30 13:57:40 +02:00
Julien BLACHE
00876facde
Introduce DAAP protocol implementation
...
Same restrictions as RSP at the moment:
- no transcoding
- no authentication
2009-04-30 13:57:34 +02:00
Julien BLACHE
f332f992aa
Document HTTP client quirks known to mt-daapd
2009-04-28 18:00:27 +02:00
Julien BLACHE
651d946cc2
Implement RSP streaming.
2009-04-28 18:00:27 +02:00
Julien BLACHE
f05a55e7fc
Implement HTTP chunked streaming
...
Transcoding is not supported yet.
In the current state of affairs, we will crash if the client closes the
connection before the tranfser is done. This is a limitation of evhttp,
it is not possible to detect this condition. This will need to be fixed
in evhttp.
2009-04-28 18:00:21 +02:00
Julien BLACHE
5e8275a998
Wire up RSP support
2009-04-25 23:02:21 +02:00
Julien BLACHE
718631bab5
Introduce RSP protocol implementation
...
Lacks a couple of things:
- actual streaming
- transcoding
- authentication
2009-04-25 23:02:15 +02:00
Julien BLACHE
21209bd040
Make sp_parse() second argument (term) const
...
The term (filter) argument is strdup()'d and that copy gets destroyed by
the parsing.
2009-04-25 16:27:59 +02:00
Julien BLACHE
6ed689d1c9
Move FILTER_TYPE_* definitions to smart-parser.h, where they belong
2009-04-25 16:27:59 +02:00
Julien BLACHE
29db6de1bb
Fixup prototype for db_enum_fetch_row()
...
Second argument is actually a pointer to a pointer to a struct
db_media_file_info, and not a simple pointer.
That code sucks. Plain and simple. Will be taken out and shot at the
earliest occasion. Someone badly needs to take "Pointers 101", among
a lot of other 101 courses. Sigh.
2009-04-25 16:27:58 +02:00
Julien BLACHE
bdcb5b88dc
Rename struct tag_packed_m3ufile and struct tag_packed_mp3file
2009-04-25 16:27:58 +02:00
Julien BLACHE
5fc698c94f
Add L_RSP log domain
2009-04-25 16:27:58 +02:00
Julien BLACHE
9d1cd9117f
Enable new HTTP server alongside the old webserver
2009-04-25 16:27:58 +02:00
Julien BLACHE
095350e6eb
Introduce new evhttp-based HTTP server
2009-04-25 16:27:47 +02:00
Julien BLACHE
c9494a898e
Add L_HTTPD for new evhttp-based HTTPd implementation
2009-04-24 15:45:44 +02:00
Julien BLACHE
7afc55307d
Change prototype and return values for new file scanners
2009-04-24 15:45:44 +02:00
Julien BLACHE
92362068c6
Remove old file scanner (mp3-scanner)
2009-04-24 15:45:43 +02:00
Julien BLACHE
3a38e62f8a
Remove/replace mp3-scanner.h include
2009-04-24 15:45:43 +02:00
Julien BLACHE
1a0e1731e4
Remove iTunes XML playlist parsing code
2009-04-24 15:45:43 +02:00
Julien BLACHE
69d6acad37
Remove support for iTunes XML playlist
...
No plans for OS X nor Windows in the near future, and those are most
probably useless on other platforms.
2009-04-24 15:45:43 +02:00
Julien BLACHE
831016bb05
Use new m3u scanner
2009-04-24 15:45:43 +02:00
Julien BLACHE
1a0f1317e2
Add rewritten scan_static_playlist() as scan_m3u_playlist()
...
Get rid of the I/O layer, better code.
2009-04-24 15:45:43 +02:00
Julien BLACHE
4a9d89c007
Rename struct tag_m3ufile into struct playlist_info
2009-04-24 15:45:43 +02:00
Julien BLACHE
bc5a3db08a
Rename scan-url.c to filescanner_urlfile.c
2009-04-24 15:45:43 +02:00
Julien BLACHE
0a61b5a51d
Rewrite .pls/.url file parser
...
Get rid of the I/O layer, ameliorate bitrate parsing, restructure code.
2009-04-24 15:45:33 +02:00
Julien BLACHE
1eaa3979e6
Add missing db_deinit() calls
2009-04-20 16:41:06 +02:00
Julien BLACHE
c4f8c7c254
Use new file scanner
2009-04-20 16:41:06 +02:00
Julien BLACHE
c0e3c1bc5f
Introduce new file scanner
...
The new file scanner has inotify support and runs in its own thread, including
for performing the initial rescan.
2009-04-20 16:41:01 +02:00
Julien BLACHE
57c698fce9
Export scan_static_playlist()
2009-04-19 19:39:15 +02:00
Julien BLACHE
bbab963fe2
Use new conffile code in main.c; remove wrappers
2009-04-19 19:39:15 +02:00
Julien BLACHE
bacdddb82f
Use -v for version information
2009-04-19 19:39:11 +02:00
Julien BLACHE
5e48a8bb6a
Remove -k/kill_server option
2009-04-19 19:38:41 +02:00
Julien BLACHE
362db5003b
Remove config file conversion code
2009-04-19 19:37:48 +02:00
Julien BLACHE
8e4b2db99e
Export cfg structure
2009-04-19 19:37:47 +02:00
Julien BLACHE
e3ab6de328
Replace old config code, remove old code
...
Activate the new confuse-based config code, add compatibility functions
for the old config code.
2009-04-19 19:37:47 +02:00
Julien BLACHE
a17e23010a
Introduce new confuse-based conffile support
2009-04-19 19:37:47 +02:00
Julien BLACHE
9f2e088d57
Add more .gitignore stuff
2009-04-19 19:37:47 +02:00
Julien BLACHE
e8c9a04376
Remove OS abstraction layer
...
Migrate daemon startup code in main.c, migrate functions with a single
callsite to that file. Remove setpgrp() usage in favor of setsid(), remove
configure check for setpgrp().
2009-04-19 19:37:42 +02:00
Julien BLACHE
9d026442b2
Remove alternate plugin load paths
2009-04-19 19:37:41 +02:00
Julien BLACHE
3ec2cc0f00
Stop the TXT record encoding madness
...
Use a proper string array to pass the TXT record fields, get rid of the
encoding stuff.
Changes the plugin API.
2009-04-19 19:37:41 +02:00
Julien BLACHE
2e2dbc6964
Free mDNS group entries in mdns_deinit()
2009-04-19 19:37:41 +02:00
Julien BLACHE
b3b66449bc
Build the string list for the mDNS TXT record once in mdns_register
...
Instead of rebuilding the string list at every regitration, build it once
and for all in mdns_register().
2009-04-19 19:37:41 +02:00
Julien BLACHE
8718f856df
Remove unused, unfinished, useless UPnP code
2009-04-19 19:37:41 +02:00
Julien BLACHE
6db32640ef
Remove no-op os_deinit()
2009-04-19 19:37:41 +02:00
Julien BLACHE
54c01d3b57
Move signal processing to the main loop using signalfd
2009-04-19 19:37:41 +02:00
Julien BLACHE
0292b9c625
Fix memory leak
2009-04-19 19:37:41 +02:00
Julien BLACHE
39e5b11bec
Remove old Avahi mDNS backend
2009-04-19 19:37:41 +02:00
Julien BLACHE
97faadf6dd
Enable new mDNS backend
2009-04-19 19:37:35 +02:00
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