[vlc-devel] commit: Fixed transcode audio filters insertion (close #3199). ( Laurent Aimar )

git version control git at videolan.org
Fri Jan 22 00:20:06 CET 2010


vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Thu Jan 21 23:41:19 2010 +0100| [9d447992d1913208c433caacd3279d61c80417ae] | committer: Laurent Aimar 

Fixed transcode audio filters insertion (close #3199).

Calls to aout_PrepareFormat where missing.

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

 modules/stream_out/transcode/audio.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c
index 1a89b4b..744bbd4 100644
--- a/modules/stream_out/transcode/audio.c
+++ b/modules/stream_out/transcode/audio.c
@@ -138,6 +138,7 @@ static int transcode_audio_filter_chain_build( sout_stream_t *p_stream, filter_c
         /* First step, convert to fl32 */
         current.i_codec =
         current.audio.i_format = VLC_CODEC_FL32;
+        aout_FormatPrepare( &current.audio );
 
         if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, &current ) )
         {
@@ -151,6 +152,7 @@ static int transcode_audio_filter_chain_build( sout_stream_t *p_stream, filter_c
     if( current.audio.i_rate != p_dst->audio.i_rate )
     {
         current.audio.i_rate = p_dst->audio.i_rate;
+        aout_FormatPrepare( &current.audio );
         if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, &current ) )
         {
             msg_Err( p_stream, "Failed to find conversion filter for resampling" );
@@ -171,6 +173,7 @@ static int transcode_audio_filter_chain_build( sout_stream_t *p_stream, filter_c
             current.audio.i_physical_channels =
             current.audio.i_original_channels = pi_channels_maps[current.audio.i_channels];
 
+        aout_FormatPrepare( &current.audio );
         if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, &current ) )
         {
             msg_Err( p_stream, "Failed to find conversion filter for channel mixing" );
@@ -182,6 +185,7 @@ static int transcode_audio_filter_chain_build( sout_stream_t *p_stream, filter_c
     if( current.i_codec != p_dst->i_codec )
     {
         current.i_codec = p_dst->i_codec;
+        aout_FormatPrepare( &current.audio );
         if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, &current ) )
         {
             msg_Err( p_stream, "Failed to find conversion filter to %4.4s",




More information about the vlc-devel mailing list