From 2debf9924ae3761451a2d8496756a4bdfef390c8 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Wed, 2 Feb 2005 04:32:55 +0000 Subject: big endian support for flac git-svn-id: https://svn.musicpd.org/mpd/trunk@2929 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/inputPlugins/flac_plugin.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/inputPlugins/flac_plugin.c') diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c index 57addbd10..11453c51c 100644 --- a/src/inputPlugins/flac_plugin.c +++ b/src/inputPlugins/flac_plugin.c @@ -401,7 +401,7 @@ FLAC__StreamDecoderWriteStatus flacWrite(const FLAC__SeekableStreamDecoder *dec, int c_chan; float timeChange; FLAC__uint64 newPosition = 0; - int bytesPerSample = data->dc->audioFormat.bits/8; + const int bytesPerSample = data->dc->audioFormat.bits/8; timeChange = ((float)samples)/frame->header.sample_rate; data->time+= timeChange; @@ -415,9 +415,16 @@ FLAC__StreamDecoderWriteStatus flacWrite(const FLAC__SeekableStreamDecoder *dec, for(c_samp = 0; c_samp < frame->header.blocksize; c_samp++) { for(c_chan = 0; c_chan < frame->header.channels; c_chan++) { +#ifdef WORDS_BIGENDIAN + memcpy(data->chunk+data->chunk_length, + &buf[c_chan][c_samp]+4-bytesPerSample, + bytesPerSample); + data->chunk_length+=bytesPerSample; +#else memcpy(data->chunk+data->chunk_length, &buf[c_chan][c_samp], bytesPerSample); data->chunk_length+=bytesPerSample; +#endif if(FLAC_CHUNK_SIZE-data->chunk_length < bytesPerSample) { if(flacSendChunk(data)<0) { -- cgit v1.2.3