Max Kellermann
81208d78ac
pcm_dsd: implement DSD to 24 bit USB conversion
...
Implements the dCS suggested standard:
http://www.dcsltd.co.uk/page/assets/DSDoverUSB.pdf
2012-03-22 01:14:51 +01:00
Max Kellermann
da8b01771f
playlist/soundcloud: libyajl2 uses size_t for string lengths
...
Fixes build failure on 64 bit.
2012-03-22 01:07:49 +01:00
Max Kellermann
725fbe946b
output/alsa: split the frame_size attribute
...
Make it in_frame_size and out_frame_size, to account for packing.
2012-03-22 01:01:11 +01:00
Max Kellermann
b99ecb4dc9
audio_format: remove the packed S24 format
...
For simplicity, the MPD core should not have to deal with packing. It
is rarely used, and those plugins that need it should use the
pcm_export library instead.
2012-03-22 00:42:12 +01:00
Max Kellermann
208a96b211
output/alsa: use pcm_export to pack 24 bit samples
2012-03-22 00:33:59 +01:00
Max Kellermann
43774455cc
output/oss: use pcm_export to pack 24 bit samples
2012-03-22 00:33:40 +01:00
Max Kellermann
5b61e077e0
pcm_export: add option "pack"
...
Converts padded 24 bit samples to packed 24 bit samples. Will replace
the packed S24 sample format, which is not used internally.
2012-03-22 00:33:40 +01:00
Max Kellermann
921cc3e5db
output/oss: remember the real OSS format
...
Improving oss_reopen() by using the very same value that was used
initially.
2012-03-22 00:33:40 +01:00
Max Kellermann
51dce3d161
output/alsa: simplify setup_format()
2012-03-22 00:29:56 +01:00
Max Kellermann
c10f013fc2
output/alsa: don't pass audio_format to _try_format()
...
Let the caller configure the audio_format object.
2012-03-22 00:24:56 +01:00
Max Kellermann
2874d68bdb
output/alsa: simplify alsa_output_try_format_both()
...
Merge three functions into one and call get_bitformat() only once.
2012-03-22 00:23:07 +01:00
Max Kellermann
11e83eb7e7
output/oss: move code to oss_probe_sample_format()
2012-03-21 22:28:18 +01:00
Max Kellermann
9ec9a8705e
pcm_export: use the byte_reverse library directly
...
Delete the now-unused pcm_byteswap library, and optimize the
pcm_export_state object.
2012-03-21 21:18:11 +01:00
Max Kellermann
170635e3a6
output/{alsa,oss}: move endian code to new library pcm_export
2012-03-21 21:16:50 +01:00
Max Kellermann
a5d1444ef4
pcm_pack: fix regression in unpack_sample()
...
Should have been "==", not "!=".
2012-03-21 21:16:46 +01:00
Max Kellermann
55708b39c3
audio_format: DSD_OVER_USB is padded to 32 bit
...
For simplicity, pad the dCS samples to 32 bit. Packed 24 bit samples
are rarely used. This patch does not include a real code change,
because there is no user of DSD_OVER_USB yet.
2012-03-21 19:41:41 +01:00
Max Kellermann
8c5ebdff36
audio_format: remove the reverse_endian attribute
...
Eliminate support for reverse endian samples from the MPD core. This
moves a lot of complexity to the plugins that really need it (only
ALSA and CDIO currently).
2012-03-21 19:31:04 +01:00
Max Kellermann
1c84f324a1
output/oss: always receive host byte order samples
...
Don't use audio_format.reverse_endian.
2012-03-21 19:25:59 +01:00
Max Kellermann
3dba09f339
output/alsa: always receive host byte order samples
...
Don't use audio_format.reverse_endian.
2012-03-21 19:14:05 +01:00
Max Kellermann
7ebf8e66c9
decoder/pcm: always supply host byte order samples
...
Don't use audio_format.reverse_endian.
2012-03-21 19:10:57 +01:00
Max Kellermann
62218fe59d
test: add unit test for util/byte_reverse.c
2012-03-21 19:08:32 +01:00
Max Kellermann
95d9bb6dfc
pcm_byteswap: move code to libutil
2012-03-21 18:58:19 +01:00
Max Kellermann
33986075ef
Makefile.am: link src/util/*.c into libutil.a
2012-03-21 18:58:19 +01:00
Max Kellermann
766905ba9f
output/alsa: merge alsa_data_free() into destructor
2012-03-21 18:58:11 +01:00
Max Kellermann
a29c64b6c7
audio_format: hack for DSD to USB conversion
...
Halve the sample rate for *:dsdusb:*.
2012-03-21 10:33:43 +01:00
Max Kellermann
777e1cabc5
test/run_convert: allow the out format to be a mask
2012-03-21 10:33:43 +01:00
Rich Healey
396e97fc94
Fix the build on OSX
2012-03-21 10:32:54 +01:00
Max Kellermann
9c6a4505c8
audio_format: remove the format SAMPLE_FORMAT_DSD_LSBFIRST
...
This format is unused since the DSDIFF decoder plugin now reverses the
bit order.
2012-03-21 09:06:48 +01:00
Max Kellermann
238c3adad1
decoder/dsdiff: reverse bits to most significant bit first
...
Allow to remove this complexity from the MPD core.
2012-03-21 09:01:56 +01:00
Max Kellermann
c1d0a8b5ce
dsd2pcm: move the bit reversing code to a generic library
...
Instead of doing run-time initialisation, use a constant lookup table.
2012-03-21 08:44:43 +01:00
Max Kellermann
08ce24ec3f
audio_format: basic support for DSD-over-USB
2012-03-19 23:49:29 +01:00
Robert Vollmert
281b8714ef
playlist/soundcloud: support libyajl2
...
[mk: backwars compatibility and autoconf check]
2012-03-19 21:16:48 +01:00
Max Kellermann
d5be3cce9c
text_input_stream: detect end-of-file
...
Fixes endless loop when the last line of a text file was not
terminated (bug 3470).
2012-03-19 20:37:25 +01:00
Max Kellermann
8dcefaf2e3
test/dump_text_file: debug program for text_input_stream.c
2012-03-19 20:37:25 +01:00
Max Kellermann
48e3432a63
test/run_input: use input_stream_*lock()
2012-03-19 20:37:25 +01:00
Max Kellermann
69d3c611aa
util/list: allow typeof() with clang
2012-03-19 20:37:25 +01:00
Max Kellermann
36827e1134
event_pipe, test: explicitly ignore write() return value
...
Some compilers are very picky, but we really aren't interested in the
return value.
2012-03-19 20:37:25 +01:00
Max Kellermann
351ac4a2c0
command: read arbitrary local files with "lsinfo"
...
Requires UNIX domain socket connection.
2012-03-06 22:23:10 +01:00
Max Kellermann
36fff59a38
client_file: always allow access if client uid equals mpd uid
2012-03-06 22:22:27 +01:00
Max Kellermann
1e60a4386a
playlist_edit: move UID check to client_allow_file()
2012-03-06 22:10:54 +01:00
Max Kellermann
e9f1b53ae6
command, ack: add ack_quark()
...
To pass ack values around.
2012-03-06 22:08:54 +01:00
Max Kellermann
5016839b90
use g_strerror() instead of strerror()
...
Make sure we get a UTF-8 encoded string.
2012-03-06 22:06:08 +01:00
Max Kellermann
faf35e6082
command: fix the "DENIED" ACK code
...
Use ACK_ERROR_PERMISSION instead of ACK_ERROR_NO_EXIST.
2012-03-06 21:37:10 +01:00
Max Kellermann
d07a6edd2f
configure.ac: detect libyajl for playlist/soundcloud
2012-03-01 20:18:16 +01:00
Max Kellermann
553d4e9283
playlist/soundcloud: use config_dup_block_string()
2012-03-01 20:11:09 +01:00
Robert Vollmert
7cef52478d
A soundcloud playlist plugin.
...
Requires YAJL to build, and this doesn't include the necessary
automake changes. Can be built using
./configure CFLAGS="-I/usr/include/yajl" LIBS="-lyajl" --enable-soundcloud
Add the following to your config:
playlist_plugin {
name "soundcloud"
enabled "true"
apikey "c4c979fd6f241b5b30431d722af212e8"
}
Then you can stream from soundcloud using calls like:
mpc load soundcloud://track/<track-id>
mpc load soundcloud://playlist/<playlist-id>
mpc load soundcloud://url/http://soundcloud.com/some/track/or/playlist
For the last case, you can leave off the http:// or
http://soundcloud.com/ .
2012-03-01 20:11:09 +01:00
Max Kellermann
e7ce362d22
song_update, udp_server: workarounds for gcc 4.1 warnings
...
Annoying false positives.
2012-03-01 20:11:09 +01:00
Kurt Van Dijck
c551c8b31b
raop_output: fix raop_session inbalance
...
raop_session_free must be called from raop_output_finish,
not from raop_output_remove.
In raop_output_remove, do close the ntp_server & control port.
Signed-off-by: Kurt Van Dijck <kurt.van.dijck@skynet.be>
2012-03-01 09:51:37 +01:00
Max Kellermann
9c36e71081
decoder/dsdiff: don't convert to PCM
...
Move the responsibility for the conversion to the PCM library. This
will allow passing the verbatim DSD samples to an output plugin.
2012-03-01 02:05:40 +01:00
Max Kellermann
c9c57af5f7
pcm_convert: support the DSD format
2012-03-01 02:00:12 +01:00