Commit Graph

2584 Commits

Author SHA1 Message Date
Max Kellermann
2598cdd868 buffer2array: use GLib's g_ascii_isspace()
g_ascii_isspace() includes \r and \n.  This means that lines from a
text file don't have to be chopped prior to buffer2array().
2008-12-28 19:54:39 +01:00
Max Kellermann
4b3a055ffe mikmod: use Glib instead of utils.h/log.h 2008-12-28 19:48:53 +01:00
Max Kellermann
4ca02bfcfc mikmod: convert mod_Data.audio_buffer to a static array
Don't do two allocations for the mod_Data structure.
2008-12-28 19:48:53 +01:00
Max Kellermann
7f78ed5b98 log: use GLib logging 2008-12-28 19:48:53 +01:00
Max Kellermann
59cf77bbc8 log: don't keep log file open
The log file is duped to STDOUT_FILENO and STDERR_FILENO.  No need to
keep another copy of it in out_fd all the time.  We only need it once
once in setup_log_output().
2008-12-28 19:48:53 +01:00
Max Kellermann
8fe03b8bce decoder: terminate decoder thread before MPD cleanup
When MPD exits, it should manually free all resources in use, to allow
easy memory leak debugging.  Make the decoder thread terminate during
that.
2008-12-28 19:48:53 +01:00
Max Kellermann
c01aa53e6a log: support syslog()
Allow logging to syslog if log_file is configured to "syslog".
2008-12-28 19:48:53 +01:00
Max Kellermann
c6cb611065 log: moved code to log_init_file()
Added log_init_file() and log_init_stdout(), preparing for other
logging targets.
2008-12-28 19:48:53 +01:00
Max Kellermann
d70c2e2285 log: merged initLog() and open_log_files().
The logging library currently has 3 constructor functions: initLog(),
open_log_files(), setup_log_output(), called in this order.  Merged
the first two.
2008-12-28 19:48:53 +01:00
Max Kellermann
caf47f7893 log: moved code to parse_log_level() 2008-12-28 19:48:53 +01:00
Max Kellermann
5d2c59e3f1 log: use the GLogLevelFlags type
Declare log_threshold as GLogLevelFlags.
2008-12-28 19:48:53 +01:00
Max Kellermann
2c5885e9c7 log: don't manipulate the umask
If the user wants the log files with a specific mode, he has to start
MPD with the correct umask.  Don't hard-code that.

This fixes a bug: when log cycling failed, MPD would not restore the
old umask.
2008-12-28 19:48:52 +01:00
Max Kellermann
8e9def1b5a log: moved code to open_log_file()
Merged code from open_log_files() and cycle_log_files().
2008-12-28 19:48:52 +01:00
Max Kellermann
8dc92ad284 log: deprecated "error_file" option
Removed the "error_file" option.  There is only one log file now.  If
a user wants to see only the errors, he should configure a log_level.
2008-12-28 19:48:52 +01:00
Viliam Mateicka
d838a1ad24 decoder: new plugin using modplug library 2008-12-28 17:11:18 +01:00
Pauli Virtanen
65b18644e1 Add RVA2 tag support to MPD
This patch adds RVA2 (relative volume adjustment) tag
support to mpd, as a fallback if no replaygain tags are
found. The code is almost directly from madplay (GPL).

RVA2 tags are generated for example by the "normalize" utility.

Updated by: Avuton Olrich <avuton@gmail.com>
2008-12-28 13:02:34 +01:00
Max Kellermann
ed9668f638 notify: use GLib locking
Use GLib locking (GMutex, GCond) instead of pthread because GLib is
more portable, e.g. on mingw32.
2008-12-27 20:56:06 +01:00
Max Kellermann
e8c44782d0 output_control: no static "notify" initialization
Don't use NOTIFY_INITIALIZER to initialize audio_output_client_notify.
2008-12-27 20:53:52 +01:00
Viliam Mateicka
b2fc0ee274 cmdline: fixed option_no_createdb usage 2008-12-27 20:16:32 +01:00
Max Kellermann
83fc948008 cmdline: use g_build_filename() for ~/.mpdconf
Build the path with g_build_filename().  Also use g_get_home_dir() and
g_file_test().
2008-12-27 19:46:43 +01:00
Max Kellermann
f5ff00bba4 cmdline: use GLib's option parser
Eliminate duplicated code.  The GLib code is much more mature than
MPD's custom parser.
2008-12-27 19:36:03 +01:00
Max Kellermann
357712c8f3 cmdline: use gboolean instead of int
Prepare for the migration to the GLib option parser, which uses
gboolean for flags.
2008-12-27 19:35:30 +01:00
Max Kellermann
786bb8cc33 moved command line parser to cmdline.c 2008-12-27 19:03:33 +01:00
Max Kellermann
cc3b6c2f5b audiofile: don't close onput stream in libaudiofile destroy()
The input_stream object should only be closed by the MPD core
(i.e. decoder_thread.c / decoder_run()).  A decoder plugin which
attempts to close it will result in a segmentation fault.
2008-12-27 14:34:51 +01:00
Max Kellermann
0fe0425dee disable archive API without plugins
When there are no archive plugins, we do not need the archive API at
all.  Drop all its overhead.
2008-12-27 14:33:41 +01:00
Max Kellermann
9220e0edff Merge branch 'experimental' of git://git.musicpd.org/metyl/mpd
Conflicts:

	configure.ac
	src/ls.h
	src/output/shout_plugin.c
2008-12-27 13:34:51 +01:00
Max Kellermann
1bd3cde062 playlist: fix stored playlist modifications with absolute paths
When save_absolute_paths_in_playlists was enabled in mpd.conf, MPD
broke all playlists when manipulated using the "playlistdelete"
command.  The reason was that map_directory_child_fs() was used, which
doesn't accept slashes in the file name.  Use the new map_uri_fs()
function instead.
2008-12-24 22:04:24 +01:00
Max Kellermann
a94e59ca21 stored_playlist: fix integer overflow in length estimation
With a large maximum playlist length, the integer multiplication
"playlist_max_length * MPD_PATH_MAX" may overflow.  Change that to a
division.  This was not a dangerous bug, since it was only used for
a quick estimate.
2008-12-24 17:40:41 +01:00
Max Kellermann
7f98ba24c7 ffmpeg: case AV_NOPTS_VALUE to int64_t
The old code casted it to a 32 bit integer, which cut off bits.
AVFormatContext.duration is a int64_t, so use this type.
2008-12-24 11:56:53 +01:00
Max Kellermann
82ef85a309 ffmpeg: don't assign "0" to pointer
Use NULL instead.  Found by sparse.
2008-12-24 11:49:37 +01:00
Max Kellermann
fefd3d6fb7 Makefile.am: fix sparse invocation
Added missing includes.
2008-12-24 11:49:09 +01:00
Max Kellermann
fc723803a4 mp3: "tag" argument is unused when libid3tag is disabled
Add G_GNUC_UNUSED attributes.
2008-12-24 11:07:58 +01:00
Max Kellermann
4716ef1014 listen: "port" argument is unused when TCP support is disabled
Add a G_GNUC_UNUSED attribute.
2008-12-24 11:07:58 +01:00
Max Kellermann
0d9d82a932 pcm_utils: check pcm_convert()==0
It is illegal to pass an empty audio buffer around.  pcm_resample()
sometimes seems to result in 0 samples, maybe related to
libsamplerate.  To work around that problem, add special checks after
both pcm_convert() invocations.  Removed the pcm_resample()==0 checks
from pcm_convert().
2008-12-24 03:08:39 +01:00
Max Kellermann
d2d11d70a8 client: always attempt to flush deferred buffers
When a response is very long (e.g. a large playlist > 100k songs),
most of it will end up in the deferred buffers.  Filling the deferred
queue is very expensive currently, because a new buffer is allocated
for every client_write() operation.  This may lead to long delays, and
the client might give up and disconnect meanwhile.  This patch makes
MPD attempt to flush the deferred queue as often as possible, to work
around this problem.  Due to the MPD 0.14 code freeze, we should not
optimize the buffering code now.
2008-12-24 03:00:08 +01:00
Viliam Mateicka
d96cda95a1 shout: fixed bad error message printout 2008-12-23 18:05:25 +01:00
Viliam Mateicka
4674d0442a shout: fixed bad error message printout 2008-12-23 18:00:37 +01:00
Max Kellermann
3b2a752d0e Merge branch 'http_buffer_remove' of git://git.musicpd.org/avuton/mpd 2008-12-21 19:40:06 +01:00
Avuton Olrich
e75e40085f Remove obsolete http_buffer* stuff that went away with the new curl backend. 2008-12-20 22:16:02 -08:00
Max Kellermann
bfaaf425c2 log: map log level "SECURE" to GLib's "INFO"
Make "secure" a log level different from "default".  "secure" should be
right between "default" and "verbose".  Map "default" to Glib's
"MESSAGE" log level.
2008-12-20 17:26:49 +01:00
Emanuele Giaquinta
213c021eac Remove useless statement. 2008-12-17 16:49:33 +01:00
Max Kellermann
5d56b6ced8 player_control: check if errored_song is set
getPlayerErrorStr() assumes that pc.errored_song is set when an error
occured.  Since the song may have been deleted meanwhile, add a NULL
check.
2008-12-17 16:46:12 +01:00
Max Kellermann
13192546a8 playlist: clear pc.errored_song on delete
When a (remote) song is deleted from the playlist, there may still be
a reference to it in pc.errored_song.  Clear this reference.
2008-12-17 16:45:49 +01:00
Emanuele Giaquinta
25c04a97d3 Remove useless computation. After the pthread_cond_wait loop there are at least MIN(od->bufferSize, size) free bytes in the buffer. Thus MIN(od->bufferSize - od->len, size) is always equal to MIN(od->bufferSize, size). 2008-12-17 15:56:43 +01:00
Emanuele Giaquinta
c584d6b087 Remove useless statement, curpos is initialized at the beginning of the loop. 2008-12-17 15:56:43 +01:00
Emanuele Giaquinta
c36a6b0aee Factor computation. 2008-12-17 15:56:43 +01:00
Emanuele Giaquinta
a4f0c7b457 Use MIN. 2008-12-17 15:56:43 +01:00
Emanuele Giaquinta
df80ae86ee Call CloseComponent after AudioUnitUninitialize. 2008-12-17 15:56:43 +01:00
Viliam Mateicka
37796699cf archiveapi: archive plugin for ISO files 2008-12-16 21:48:26 +01:00
Viliam Mateicka
ddcf0a4078 archiveapi: archive plugin for ZIP files 2008-12-16 21:46:11 +01:00