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
Jesús Bravo Álvarez
039b354490
playlist_song: fix absolute path support in playlists
...
Right now, a playlist with absolute pathnames can only add songs that
are in the same the directory of the playlist or under it.
If uri is an absolute pathname and base_uri is set,
playlist_check_translate_song() will check that base_uri is a prefix
of uri, excluding every other song in the music directory outside
base_uri.
I think in this case base_uri should be completely ignored (and made
NULL) and uri should just be checked against music root directory.
2011-10-06 22:21:24 +02:00
Max Kellermann
b2f03e76ff
player_thread: add flag "output_open", fixes assertion failure
...
Previously, the condition "defined(play_audio_format)" was used to see
if an output device has been opened, but if the device had failed on
startup, an assertion failure could occur. This patch adds a separate
flag.
2011-10-06 21:22:48 +02:00
Max Kellermann
63b33b6ec5
player_thread: move code to player_open_output()
...
Common function that manages "player" attributes after
audio_output_all_open() has returned.
2011-10-06 20:55:52 +02:00
Max Kellermann
23670795db
output_control: remove unused prototype _close_locked()
2011-10-06 19:51:37 +02:00
Max Kellermann
8ea6c113b5
player_control: auto-start playback when seeking is requested
...
Now that the player thread can handle SEEK commands while not (yet)
playing, we can remove the "pc.state" check from pc_seek().
2011-10-06 00:35:54 +02:00
Max Kellermann
37f026a0a6
player_thread: handle SEEK while not playing
2011-10-06 00:35:53 +02:00
Max Kellermann
f67136df19
decoder_api: call _prepare_initial_seek() in decoder_tag()
...
This checks both conditions: pending and running. Fixes yet another
assertion failure!
2011-10-06 00:35:53 +02:00
Max Kellermann
e07073ff28
decoder_api: move code to _prepare_initial_seek()
...
.. and add a few code comments.
2011-10-06 00:35:53 +02:00
Max Kellermann
64b0ba6da7
decoder_control: add attributes start_ms, end_ms
...
Don't read song.start_ms and song.end_ms, let the player thread manage
this logic instead.
2011-10-05 23:15:22 +02:00
Max Kellermann
99d4ae0c1a
decoder_api: don't copy tag to pipe during initial seek
...
Fixes one more assertion failure.
2011-10-05 22:54:30 +02:00
Max Kellermann
f185b35088
decoder_api: clear initial_seek_running on error
...
Fixes possible assertion failure.
2011-10-04 22:29:31 +02:00
Max Kellermann
4e909f9411
decoder/dsdiff: new decoder plugin
...
Doesn't seem to work yet, getting just noise from a test file.
Seeking isn't implemented yet.
2011-10-04 21:41:03 +02:00