Max Kellermann
54889c72e3
pcm_convert: use GError for error handling
...
Don't abort the whole MPD process when the conversion fails. This has
been a denial-of-service attack vector for years.
2009-07-23 12:01:03 +02:00
Max Kellermann
cba126ceb8
pcm_resample_fallback: don't include glib.h
...
This library does not use GLib directly.
2009-07-22 19:54:57 +02:00
Max Kellermann
c95663312a
pcm_resample_fallback: removed G_GNUC_UNUSED attribute
2009-07-22 19:52:25 +02:00
Max Kellermann
00ee3de7b2
pcm_channels: num_channels is unsigned
...
You cannot have a negative number of channels, let's pass it as
uint8_t instead of int8_t.
2009-07-22 19:12:04 +02:00
Max Kellermann
172a1dbdb9
pcm_byteswap: converted NULL checks to assertions
...
It is illegal to pass a NULL buffer to pcm_byteswap_X(). The result
of this is that pcm_byteswap_X() never returns NULL.
2009-07-22 19:04:38 +02:00
Max Kellermann
c5a662f405
pcm_convert: added pcm_convert_state.byteswap_buffer
...
Currently, byteswapping is performed on the format_buffer. This can
go wrong when this buffer is used twice during one run. Add a
separate buffer for swapping the byte order.
2009-07-22 15:56:56 +02:00
Max Kellermann
9277950441
filter/volume: check the flag audio_format.reverse_endian
...
The volume plugin does not work for reverse_endian samples.
2009-07-22 15:56:50 +02:00
Max Kellermann
44c97a8f6d
audio_format: added API documentation
2009-07-22 15:56:48 +02:00
Max Kellermann
6a071efa27
audio_format: initialize reverse_endian in audio_format_init()
...
This line was missing in the reverse_endian patch, and led to
undefined values and crashes in that attribute.
2009-07-22 15:56:36 +02:00
Michal Nazarewicz
bfed1c04cc
daemon: daemonize_close_stdin() optimised.
...
Changed function to first close standard input (this may
fail but we don't care) and then try to open /dev/null (this
may fail but it shouldn't on Unix platforms plus we don't
know what to do in such case anyways). Since standard input
has the "zeroth" descriptor number next "open" will use it.
Since there is no "/dev/null" on Windows (It's not even
a valid path!) the second step is skipped if WIN32 is
defined.
As a final touch, since the function consists of merely two
function calls it has been moved to header file and declared
static inline.
[mk: un-inline daemonize_close_stdin()]
2009-07-22 13:43:21 +02:00
Eugeny N Dzhurinsky
bdb1965b50
cmdline: renamed options.stderr to options.log_stderr
...
On FreeBSD, "stderr" is a macro, and using this name for a struct
member breaks the build.
[mk: renamed _stderr to log_stderr]
2009-07-22 13:40:19 +02:00
Max Kellermann
c9d43b4d71
Merge branch 'master' of git://git.infradead.org/users/dwmw2/mpd
...
Conflicts:
Makefile.am
2009-07-19 18:18:32 +02:00
David Woodhouse
49ede85827
Support wrong-endian ALSA output
2009-07-19 17:15:35 +01:00
David Woodhouse
05693e2d5d
Add reverse_endian field to struct audio_format and handle conversion
2009-07-19 17:15:21 +01:00
Max Kellermann
c5ec035fb4
tag_ape: simplified the apeItems array
...
Make "enum tag_type" the array index, and convert apeItems to a sparse
array.
2009-07-19 18:04:42 +02:00
Max Kellermann
5e2f98fdad
tag_ape: moved code to tag_ape_import_item()
...
Improve code readability.
2009-07-19 17:59:36 +02:00
Max Kellermann
7b92750622
tag_ape: converted apeItems and tagItems to global vars
...
Don't initialize those arrays each time tag_ape_load() is called.
2009-07-19 17:59:35 +02:00
David Woodhouse
37754559b8
Add audio_format_init() function
...
It makes no difference right now, but we're about to add an endianness
flag and will want to make sure it's correctly initialised every time.
2009-07-19 16:54:11 +01:00
Max Kellermann
09008cb0ec
client: return "enum command_return" instead of "int"
...
Several functions work with the wrong return type, this patch fixes
them.
2009-07-19 15:53:48 +02:00
Max Kellermann
b58aa1f5ee
removed buffer2array.c
2009-07-19 15:15:41 +02:00
Max Kellermann
38e9205d4e
command: use the tokenizer library
2009-07-19 15:15:36 +02:00
Max Kellermann
16ff44ad30
conf: use the tokenizer library
2009-07-19 15:11:37 +02:00
Max Kellermann
1745e68795
tokenizer: new library replacing buffer2array()
...
The new code is more robust and more flexible. It provides detailed
error information in GError objects.
2009-07-19 15:11:36 +02:00
Michal Nazarewicz
809c96b53f
daemon: Moved empty Windows version functions to header file
...
On Windows only daemonize_close_stdin() function does
something. Other functions are either empty or generate an
error. Those have been moved to header file and declared
static inline so compiler can remove the call all together.
2009-07-19 08:18:23 +02:00
Michal Nazarewicz
03e43356ce
conf: replaced gcc "const" attribute with "pure"
...
The functions were not "const" (they examined values pointed
by arguments passed to them, quoting gcc's doc: "Note that
a function that has pointer arguments and examines the data
pointed to must _not_ be declared 'const'.") but rather
"pure" and still not all of them.
Note also, that even some of the functions declared "pure"
are not pure, however, due to reasons stated in source code
the attribute has been kept.
2009-07-19 08:18:08 +02:00
Michal Nazarewicz
d718a8b59d
daemon: added "group" configuration option
...
The "group" configuration option is similar to "user" as it
sets user set what group MPD shall run as. With "user"
option, MPD changed GID to the GID of the user, however,
more control could be desired.
Moreover, the patch changes the way of checking whether no
setuid(2)/setgid(2) is required -- previously user names
were compered, now UID and GIDs are compered (ie. the one we
already have (getuid(2)/getgid(2)) with the one we want to
change to).
2009-07-19 08:17:55 +02:00
Max Kellermann
4100035b19
Merged release 0.15.1 from branch 'v0.15.x'
2009-07-16 07:37:13 +02:00
Avuton Olrich
d7bad6ae02
mpd version 0.15.1
2009-07-15 13:36:41 -07:00
Max Kellermann
9bef46c0da
mapper: use g_file_test() instead of stat()
...
The GLib functions are more portable.
2009-07-15 18:58:24 +02:00
Max Kellermann
c134adbcbf
mapper: pass music and playlist directory to mapper_init()
...
Added another glue function in main().
2009-07-15 18:58:19 +02:00
Max Kellermann
7bc8c7518b
main: moved complex initialization code to glue functions
...
The glue_*() functions act as a glue between MPD's main() function and
its libraries. They handle disabled features, and pass validated
configuration options.
2009-07-15 18:58:12 +02:00
Max Kellermann
739984f920
main: renamed openDB() to glue_db_init_and_load()
...
No CamelCase.
2009-07-15 18:58:10 +02:00
Max Kellermann
7261739526
cmdline: renamed option "--stdout" to "--stderr"
...
Since version 0.14, MPD has been logging to standard error instead of
standard output. The option name should reflect that. The old option
continues to work, we will remove it in a future MPD release.
2009-07-15 18:27:32 +02:00
Max Kellermann
62f9df98b4
cmdline: no CamelCase
...
Renamed type, variables and functions.
2009-07-15 18:22:49 +02:00
Max Kellermann
c76f71e8d6
conf: added the gcc "const" attribute to some functions
...
Add the "const" attribute to functions when their return value only
depends on parameters. This allows gcc to eliminate some function
calls.
2009-07-15 17:12:48 +02:00
Max Kellermann
f0157f6fa1
Makefile.am: disable test/run_encoder without plugins
...
If the encoder plugin API is disabled at compile time, don't compile
test/run_encoder.c.
2009-07-15 16:59:06 +02:00
Max Kellermann
f7cc5b2efd
state_file: don't rewind the stream while reading the state file
...
Parse the state file line by line, let each subsystem probe a line.
Only the playlist_state code gets the FILE pointer to read the
following lines.
2009-07-15 16:57:37 +02:00
Max Kellermann
df7d7732c6
state_file: simplified state_file_finish()
...
Return early from the destructor function when there is no configured
state file. Don't check the timer, don't call g_free(NULL).
2009-07-15 14:32:29 +02:00
Max Kellermann
889b1c1eae
state_file: fixed debug messages
...
Print "Loading" instead of "Saving" in state_file_read(). Added debug
message to state_file_write().
2009-07-15 14:29:30 +02:00
Serge Ziryukin
297d749fc8
modplug: get track length
2009-07-15 11:22:45 +02:00
Max Kellermann
6233de0546
encoder/twolame: new encoder plugin based on libtwolame
...
This encoder plugin is a replacement for the LAME encoder plugin for
those who prefer a "free" (non-patent encumbered) encoder library.
Most of the plugin source code is copied from the LAME encoder plugin,
since the LAME and TwoLAME APIs are nearly the same.
2009-07-14 23:07:41 +02:00
Max Kellermann
b1afa40fc1
configure.ac: use more MPD_AUTO_PKG()
...
Fail when a feature is enabled, but the library is not found.
2009-07-14 21:38:49 +02:00
Max Kellermann
a620e936cc
Makefile.am: use WAVPACK_CFLAGS and WAVPACK_LIBS
...
Don't append these to MPD_CFLAGS and MPD_LIBS.
2009-07-14 21:29:01 +02:00
Max Kellermann
d897170455
playlist: no CamelCase
2009-07-14 21:28:36 +02:00
Max Kellermann
5a886da93b
playlist: removed {save,read}PlaylistState()
...
Those were only wrappers for playlist_state_{save,restore}(). Since
sf_callbacks has been removed, we can call the latter functions
directly.
2009-07-14 21:28:26 +02:00
Max Kellermann
9206f54979
state_file: eliminated the sf_callbacks array
...
There are very few callbacks, and they are not meant to be pluggable.
Let's eliminate the array and call the load/save functions manually.
2009-07-14 21:15:12 +02:00
Max Kellermann
966a886ef5
NEWS: fixed typo
2009-07-14 14:24:02 +02:00
Max Kellermann
0c1c753e23
configure.ac: fail when ffmpeg is enabled, but not found
2009-07-14 14:23:49 +02:00
Max Kellermann
58dd6eee5d
output/httpd: removed duplicate sys/types.h include
...
The first patch by Patrick didn't work, because his "#ifdef HAVE_OSX"
line would have required config.h.
2009-07-14 14:23:44 +02:00
Serge Ziryukin
75c0a33ec5
flac: load external cue sheet when no internal one
...
External cue sheet file for "file.flac" should be named as "file.flac.cue".
2009-07-09 19:01:24 +02:00