summaryrefslogtreecommitdiff
path: root/src/audio_dec
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2010-02-23 22:46:49 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2010-02-23 22:46:49 +0000
commit45ce973f67de950ba14bd691b12c94cec9cd7e9f (patch)
treed6854758190b9e9ad80771b12f6fcf12daf27d51 /src/audio_dec
parent2241baa294539a33d8bc6137e633bb4c93c22b4e (diff)
parent7d4c68e4ba6932bfd300a9dc12d7e11b9cfb555d (diff)
downloadxine-lib-45ce973f67de950ba14bd691b12c94cec9cd7e9f.tar.gz
xine-lib-45ce973f67de950ba14bd691b12c94cec9cd7e9f.tar.bz2
Merge from 1.1.
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
Diffstat (limited to 'src/audio_dec')
-rw-r--r--src/audio_dec/xine_lpcm_decoder.c47
1 files changed, 25 insertions, 22 deletions
diff --git a/src/audio_dec/xine_lpcm_decoder.c b/src/audio_dec/xine_lpcm_decoder.c
index ca7802b07..b7e3344fe 100644
--- a/src/audio_dec/xine_lpcm_decoder.c
+++ b/src/audio_dec/xine_lpcm_decoder.c
@@ -273,29 +273,32 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
uint8_t *d = (uint8_t *)audio_buffer->mem;
int n = buf_size;
- while (n >= 3) {
- if ( stream_be ) {
- if ( stream_be == this->cpu_be ) {
- *d++ = s[0];
- *d++ = s[1];
- } else {
- *d++ = s[1];
- *d++ = s[0];
- }
- } else {
- if ( stream_be == this->cpu_be ) {
- *d++ = s[1];
- *d++ = s[2];
- }
- else
- {
- *d++ = s[2];
- *d++ = s[1];
- }
+ if ( stream_be ) {
+ while (n >= 12) {
+ if ( stream_be == this->cpu_be ) {
+ *d++ = s[0];
+ *d++ = s[1];
+ *d++ = s[2];
+ *d++ = s[3];
+ *d++ = s[4];
+ *d++ = s[5];
+ *d++ = s[6];
+ *d++ = s[7];
+ } else {
+ *d++ = s[1];
+ *d++ = s[0];
+ *d++ = s[3];
+ *d++ = s[2];
+ *d++ = s[5];
+ *d++ = s[4];
+ *d++ = s[7];
+ *d++ = s[6];
+ }
+ s += 12;
+ n -= 12;
}
-
- s += 3;
- n -= 3;
+ } else {
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "lpcm_decoder: I don't know what should decode lpcm 24bit little endian byte stream");
}
if ( (d - (uint8_t*)audio_buffer->mem)/2*3 < buf_size )