From 05693e2d5d760e818fb7382f9bd528026f16aa51 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Sun, 19 Jul 2009 16:42:19 +0100 Subject: Add reverse_endian field to struct audio_format and handle conversion --- src/pcm_convert.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/pcm_convert.c') diff --git a/src/pcm_convert.c b/src/pcm_convert.c index ebb4adff5..2d72628b2 100644 --- a/src/pcm_convert.c +++ b/src/pcm_convert.c @@ -20,6 +20,7 @@ #include "pcm_convert.h" #include "pcm_channels.h" #include "pcm_format.h" +#include "pcm_byteswap.h" #include "audio_format.h" #include @@ -83,6 +84,12 @@ pcm_convert_16(struct pcm_convert_state *state, dest_format->sample_rate, &len); + if (dest_format->reverse_endian) { + buf = pcm_byteswap_16(&state->format_buffer, buf, len); + if (!buf) + g_error("pcm_byteswap_16() failed"); + } + *dest_size_r = len; return buf; } @@ -120,6 +127,12 @@ pcm_convert_24(struct pcm_convert_state *state, dest_format->sample_rate, &len); + if (dest_format->reverse_endian) { + buf = pcm_byteswap_32(&state->format_buffer, buf, len); + if (!buf) + g_error("pcm_byteswap_32() failed"); + } + *dest_size_r = len; return buf; } @@ -157,6 +170,12 @@ pcm_convert_32(struct pcm_convert_state *state, dest_format->sample_rate, &len); + if (dest_format->reverse_endian) { + buf = pcm_byteswap_32(&state->format_buffer, buf, len); + if (!buf) + g_error("pcm_byteswap_32() failed"); + } + *dest_size_r = len; return buf; } -- cgit v1.2.3