Max Kellermann
e71a652985
pcm_mix: implement float samples
2011-10-20 02:36:26 +02:00
Max Kellermann
bfef0fbff3
pcm_volume: implement float samples
2011-10-20 02:33:51 +02:00
Max Kellermann
545685bc32
audio_format: basic support for floating point samples
...
Support for conversion from float to 16, 24 and 32 bit integer
samples.
2011-10-20 02:32:39 +02:00
Max Kellermann
13ad2b4dc2
pcm_mix: return bool, make unimplemented format non-fatal
...
Let the caller deal with a failure.
2011-10-20 02:27:41 +02:00
Max Kellermann
d019343017
pcm_volume: pass an "end" pointer instead of a sample count
2011-10-20 02:27:41 +02:00
Max Kellermann
e977ec924c
pcm_volume: remove "default" statement
...
Don't suppress gcc warnings.
2011-10-20 02:24:25 +02:00
Max Kellermann
b7d5652bf6
pcm_volume: "length" is a "size_t", not "int"
2011-10-20 02:24:25 +02:00
Max Kellermann
725e48fce4
pcm_resample: add function pcm_resample_float()
...
A version of the resampler that doesn't need int->float->int
conversion.
2011-10-20 02:24:25 +02:00
Max Kellermann
43816c268b
pcm_format: move "case" code to separate functions
...
Reduce the mess with local variables inside switch{}.
2011-10-20 02:24:25 +02:00
Max Kellermann
72e80db823
pcm_*: add "restrict" keywords
...
Allow more compiler optimizations.
2011-10-20 02:24:25 +02:00
Max Kellermann
7b33c343f8
crossfade: include cleanup
2011-10-20 02:24:25 +02:00
Max Kellermann
c53edeeb6c
pcm_format: pass an "end" pointer instead of a sample count
2011-10-19 22:36:47 +02:00
Max Kellermann
dfb98417b3
pcm_channels: pass an "end" pointer instead of a sample count
2011-10-19 22:17:30 +02:00
Max Kellermann
9716c3a30e
pcm_{channels,resample}: pass channel count as integer, not uint8_t
...
Reduces number of implicit integer conversions.
2011-10-19 22:14:43 +02:00
Max Kellermann
c4c44c4445
pcm_{channels,format}: add alignment assertions
2011-10-19 22:14:08 +02:00
Max Kellermann
0debe9bd6f
pcm_utils: add function pcm_end_pointer()
2011-10-19 22:13:23 +02:00
Max Kellermann
08a0bb756d
pcm_byteswap: use "end" pointer instead of buffer size
2011-10-10 10:24:06 +02:00
Max Kellermann
20c6159c04
pcm_dither: pass an "end" pointer instead of a sample count
...
This is easier and more efficient to loop on, because only two
variables get modified (src and dest).
2011-10-10 10:24:06 +02:00
Max Kellermann
a47e9d1a4b
pcm_pack: pass an "end" pointer instead of a sample count
2011-10-10 10:24:05 +02:00
Max Kellermann
e93dd374a4
pcm_byteswap: use GLib byte swapping macros
...
GLib's macros are implemented with inline assembly, and probably a lot
faster than our naive bit shifting implementation.
2011-10-10 10:24:05 +02:00
Max Kellermann
0847ca4ec2
pcm_{mix,volume}: pass only sample_format to pcm_mix()
...
The other audio_format attributes are not used.
2011-10-10 10:24:05 +02:00
Max Kellermann
c9a57d354d
pcm_buffer: un-inline pcm_buffer_get()
...
This function is too complex for being inlined everywhere.
2011-10-10 10:13:43 +02:00
Max Kellermann
52b77f6e31
input/cdio_paranoia: pass byte order swapping to the PCM "decoder"
...
Send another "magic" MIME type when the byte order must be reversed.
This also fixes byte order issues when big-endian was involved (input
data or host byte order) - that was completely broken.
2011-10-10 10:13:43 +02:00
Max Kellermann
4c9782ee28
decoder/pcm: support reverse byte order
2011-10-10 10:13:43 +02:00
Max Kellermann
26225307d3
decoder_api: convert data to host byte order
2011-10-10 10:13:43 +02:00
Max Kellermann
0129d1e158
pcm_convert: support reverse endian input
2011-10-10 10:13:43 +02:00
Max Kellermann
ece6037a1e
pcm_byteswap: add function with sample_format overload
2011-10-10 10:13:43 +02:00
Max Kellermann
bea678a7cd
audio_format: convert reverse_endian to a "bool"
2011-10-10 10:13:43 +02:00
Max Kellermann
1fb3fbb4de
audio_format: un-inline audio_format_mask_apply()
...
This function is not critical for performance, and the inline
expansion looks too expensive.
2011-10-10 10:13:43 +02:00
Max Kellermann
2c38d19af2
audio_format: add function attributes
...
For better optimization.
2011-10-10 10:13:43 +02:00
Max Kellermann
311e627463
audio: rename audio.[ch] to audio_config.[ch]
2011-10-10 10:13:43 +02:00
Max Kellermann
3a31589fdd
Makefile.am: generate static library from plugins
...
Compile the plugins only once with the same C flags.
2011-10-09 18:33:02 +02:00
Max Kellermann
9652efd107
don't define WINVER in *.c files
...
In a C file, that is too late, because _mingw.h defaults to 0x0502,
and ours would be illegal redefintion.
2011-10-09 17:52:56 +02:00
Max Kellermann
f3ea834322
decoder/{pcm,dsdiff}: add missing stdio.h include
2011-10-09 17:40:37 +02:00
Max Kellermann
b9e99575ce
Merge commit 'release-0.16.5'
...
Conflicts:
NEWS
configure.ac
2011-10-09 16:32:36 +02:00
Max Kellermann
71536eb412
decoder/wavpack: don't call WavpackGetMode() twice
...
Use local variable "is_float".
2011-10-08 15:37:47 +02:00
Max Kellermann
fe77230d84
pcm_convert: fix typo in error message
2011-10-08 15:36:55 +02:00
Max Kellermann
accd262561
audio_format: move code to sample_format_size()
...
Cast to enum sample_format. Without the cast, it's just a plain
integer, and gcc cannot know that a "case" statement is missing.
2011-10-08 15:04:04 +02:00
Max Kellermann
3057d19cdf
pcm_resample_lsr: move common code to lsr_process()
2011-10-08 14:51:26 +02:00
Max Kellermann
8dd83a2cf3
output/roar: move code to _use_audio_format()
2011-10-08 14:51:19 +02:00
Max Kellermann
49b84f9229
db_print: print absolute URI of playlist entries
...
The protocol mandates that playlist URIs are absolute (i.e. full URI
relative to the music directory, not relative to the parent
directory). This adds the parameter "directory" to the "playlist"
visitor method.
2011-10-08 14:51:18 +02:00
Max Kellermann
b43bf4dd74
Merge branch 'v0.16.x'
2011-10-08 14:50:44 +02:00
Max Kellermann
5ed0eb51d1
output/openal: auto-fallback to mono if channel count is unsupported
...
.. instead of failing playback completely.
2011-10-08 14:41:22 +02:00
Max Kellermann
72a1ca3b99
output/alsa: remove "default" case from switch
...
Allow gcc to warn when a new format isn't supported.
2011-10-08 14:41:11 +02:00
Max Kellermann
14424281a0
pcm_resample: add internal function _lsr_init()
...
Let the libsamplerate code initialize itself.
2011-10-08 13:32:29 +02:00
Max Kellermann
2b3fd0d4d3
pcm_resample: one-time global initialization
...
Load the samplerate_converter on MPD startup. Fail if the converter
name is invalid.
2011-10-08 13:14:29 +02:00
Max Kellermann
894b9cfdb9
decoder/dsdiff: add option "lsbitfirst"
...
Defaults to "no", which fixes the noise problems.
2011-10-07 10:10:43 +02:00
Max Kellermann
7ecbb0454f
decoder/dsdiff: add documentation
2011-10-07 06:38:23 +02:00
Max Kellermann
fa7fa2a55f
playlist_song: allow references to songs outside the musicdir
...
When we have an absolute path that's not inside the music directory,
allow loading it anyway, if we're in "secure" mode (i.e. the client is
connected via UNIX socket).
2011-10-06 22:57:14 +02:00
Max Kellermann
5c0576ca55
Merge branch 'v0.16.x'
...
Conflicts:
configure.ac
src/player_control.c
src/player_thread.c
src/playlist_song.c
2011-10-06 22:45:02 +02:00