Commit f8efac2e authored by Laurent Aimar's avatar Laurent Aimar

* transcode: fixed s16b <-> s16l conversion.

parent ff7206fa
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* transcode.c: transcoding stream output module * transcode.c: transcoding stream output module
***************************************************************************** *****************************************************************************
* Copyright (C) 2003-2004 VideoLAN * Copyright (C) 2003-2004 VideoLAN
* $Id: transcode.c,v 1.74 2004/02/12 23:51:15 gbazin Exp $ * $Id: transcode.c,v 1.75 2004/02/18 13:21:33 fenrir Exp $
* *
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Gildas Bazin <gbazin@netcourrier.com> * Gildas Bazin <gbazin@netcourrier.com>
...@@ -833,38 +833,30 @@ static int transcode_audio_ffmpeg_process( sout_stream_t *p_stream, ...@@ -833,38 +833,30 @@ static int transcode_audio_ffmpeg_process( sout_stream_t *p_stream,
int16_t *sin = (int16_t*)p_buffer; int16_t *sin = (int16_t*)p_buffer;
int i_used = __MIN( id->i_buffer, i_buffer ); int i_used = __MIN( id->i_buffer, i_buffer );
int i_samples = i_used / 2; int i_samples = i_used / 2;
int b_invert_indianness;
if( id->f_src.i_codec == VLC_FOURCC( 's', '1', '6', 'l' ) ) /* first copy */
#ifdef WORDS_BIGENDIAN memcpy( sout, sin, i_used );
b_invert_indianness = 1;
#else
b_invert_indianness = 0;
#endif
else
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
b_invert_indianness = 0; if( id->f_src.i_codec == VLC_FOURCC( 's', '1', '6', 'l' ) )
#else #else
b_invert_indianness = 1; if( id->f_src.i_codec == VLC_FOURCC( 's', '1', '6', 'b' ) )
#endif #endif
if( b_invert_indianness )
{ {
uint8_t *dat = (uint8_t*)sout;
while( i_samples > 0 ) while( i_samples > 0 )
{ {
uint8_t tmp[2]; uint8_t tmp;
tmp = dat[0];
dat[0] = dat[1];
dat[1] = tmp;
dat += 2;
tmp[1] = *sin++;
tmp[0] = *sin++;
*sout++ = *(int16_t*)tmp;
i_samples--; i_samples--;
} }
} }
else
{
memcpy( sout, sin, i_used );
sout += i_samples;
}
i_buffer -= i_used; i_buffer -= i_used;
p_buffer += i_used; p_buffer += i_used;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment