| Commit message (Collapse) | Author | Files | Lines |
|
DSD-over-USB should not be a MPD core format, because it is not a
"natural" format; it is just a temnporary over-the-wire format. This
format has been implemented in pcm_export, and does not need to be
supported by pcm_convert.
|
|
Implements the dCS suggested standard:
http://www.dcsltd.co.uk/page/assets/DSDoverUSB.pdf
|
|
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.
|
|
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).
|
|
This format is unused since the DSDIFF decoder plugin now reverses the
bit order.
|
|
|
|
|
|
Basic support for Direct Stream Digital. No conversion yet, and no
decoder/output plugin support.
|
|
Resets the libsamplerate state. Not being used yet.
|
|
|
|
For future internal use.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This patch prepares support for floating point samples (and probably
other formats). It changes the meaning of the "bits" attribute from a
bit count to a symbolic value.
|
|
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
|
|
Don't abort the whole MPD process when the conversion fails. This has
been a denial-of-service attack vector for years.
|
|
It is illegal to pass a NULL buffer to pcm_byteswap_X(). The result
of this is that pcm_byteswap_X() never returns NULL.
|
|
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.
|
|
|
|
Changed "0" to "NULL".
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
All PCM sub libraries have 32 bit support now. Add support to the
glue function pcm_convert().
|
|
The function is unused, since we added the pcm_buffer library.
|
|
Removed yet another superfluous buffer layer: return the PCM buffer
from pcm_convert() instead of copying PCM data into the
caller-supplied buffer.
|
|
gcc doesn't know that g_error() never returns. Work around the gcc
warning.
|
|
dest_size is only used in an assertion. Remove its declaration and
move the formula into the assertion.
|
|
Return a temporary buffer from pcm_resample_*() and pcm_convert().
|
|
Replace a "static" buffer with the PCM buffer library.
|
|
Replace a "static" buffer with the PCM buffer library.
|
|
Free memory allocated by libsamplerate when the output or the decoder
is closed.
|
|
In generic PCM functions allowing all sample formats, pass a void
pointer instead of a char pointer.
|
|
All what's left in pcm_utils.h is the pcm_range() utility function,
which is only used internally by pcm_volume and pcm_mix.
|
|
The function does not need the full pcm_convert_state struct.
|
|
Moved all code which converts the sample format to a separate library.
|
|
Moved the software mixing code (used by crossfading) to a separate
library.
|
|
Moved the software volume code to a separate library.
|
|
We are going to split the pcm_utils.c library, and pcm_range() will be
useful for several sub libraries.
|
|
|
|
Don't use libc's rand() function, because it is slow. Our own trivial
linear congruential generator is good enough for dithering.
|
|
|
|
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().
|
|
libsamplerate produces cracks in the sound output when the destination
buffer is too small. This is the case when pcm_convert_size() rounds
down. Use ceil(x) instead of floor(0.5+x) there to prevent a buffer
overrun.
|
|
We want to remove gcc.h eventually. This takes care of all the
G_LIKELY/G_UNLIKELY macros.
|
|
Allow pcm_volume() to increase volume.
|
|
It may be desirable to change the range of integer volume levels
(e.g. to 1024, which may utilize shifts instead of expensive integer
divisions). Introduce the constant PCM_VOLUME_1 which describes the
integer value for "100% volume". This is currently 1000.
|
|
24 bit output is as important as 16 bit output. Provide a
pcm_convert() implementation which can convert to 24 bit with as
little quality loss as possible.
|