vlc | branch: master | Rafaël Carré <[email protected]> | Mon May  6 16:41:19 
2013 +0200| [a54c03c5a7a61dfeeb7441111defc1dec49888a6] | committer: Rafaël Carré

Fix lpcm decoding on little endian

Close #8529

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a54c03c5a7a61dfeeb7441111defc1dec49888a6
---

 modules/codec/lpcm.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/modules/codec/lpcm.c b/modules/codec/lpcm.c
index 18c1f5b..402cd73 100644
--- a/modules/codec/lpcm.c
+++ b/modules/codec/lpcm.c
@@ -1054,7 +1054,11 @@ static void BdExtract( block_t *p_aout_buffer, block_t 
*p_block,
         uint8_t *p_dst = p_aout_buffer->p_buffer;
         while( i_frame_length > 0 )
         {
+#ifdef WORDS_BIGENDIAN
             memcpy( p_dst, p_src, i_channels * i_bits / 8 );
+#else
+            swab( p_dst, p_src, i_channels * i_bits / 8 );
+#endif
             p_src += (i_channels + i_channels_padding) * i_bits / 8;
             p_dst += (i_channels +                  0) * i_bits / 8;
             i_frame_length--;
@@ -1062,7 +1066,11 @@ static void BdExtract( block_t *p_aout_buffer, block_t 
*p_block,
     }
     else
     {
+#ifdef WORDS_BIGENDIAN
         memcpy( p_aout_buffer->p_buffer, p_block->p_buffer, p_block->i_buffer 
);
+#else
+        swab( p_block->p_buffer, p_aout_buffer->p_buffer, p_block->i_buffer );
+#endif
     }
 }
 

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to