diff options
author | Max Kellermann <max@duempel.org> | 2009-03-02 16:36:49 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-02 16:36:49 +0100 |
commit | 1b31f5228582980a5435f1cfac942d1292c089a2 (patch) | |
tree | 038168a63904f065f0a2dfaf0943e57eb111cfdc /src/pcm_channels.h | |
parent | 062f37071c02f7f7e1e6f7cc977af2b81de8d98c (diff) | |
download | mpd-1b31f5228582980a5435f1cfac942d1292c089a2.tar.gz mpd-1b31f5228582980a5435f1cfac942d1292c089a2.tar.xz mpd-1b31f5228582980a5435f1cfac942d1292c089a2.zip |
pcm_channels: added implementation for 32 bit samples
Some 24 bit code can be reused. The 32 bit variant has to use 64 bit
integers, because 32 bit integers could overflow. This may be a
performance hit on 32 bit CPUs.
Diffstat (limited to '')
-rw-r--r-- | src/pcm_channels.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/pcm_channels.h b/src/pcm_channels.h index 25c13d839..bc4e4e3b0 100644 --- a/src/pcm_channels.h +++ b/src/pcm_channels.h @@ -59,4 +59,21 @@ pcm_convert_channels_24(struct pcm_buffer *buffer, int8_t src_channels, const int32_t *src, size_t src_size, size_t *dest_size_r); +/** + * Changes the number of channels in 32 bit PCM data. + * + * @param buffer the destination pcm_buffer object + * @param dest_channels the number of channels requested + * @param src_channels the number of channels in the source buffer + * @param src the source PCM buffer + * @param src_size the number of bytes in #src + * @param dest_size_r returns the number of bytes of the destination buffer + * @return the destination buffer + */ +const int32_t * +pcm_convert_channels_32(struct pcm_buffer *buffer, + int8_t dest_channels, + int8_t src_channels, const int32_t *src, + size_t src_size, size_t *dest_size_r); + #endif |