vlc | branch: master | Rafaël Carré <[email protected]> | Tue Sep 4 00:46:17 2012 +0200| [bc3dd56dca6d17b667eaa0edd859815d38c216d4] | committer: Rafaël Carré
transcode: try FI32 as intermediate format Some formats can only be converted to FI32, and then a FI32->FL32 converter can be used. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bc3dd56dca6d17b667eaa0edd859815d38c216d4 --- modules/stream_out/transcode/audio.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c index f54aa5f..f8b0f45 100644 --- a/modules/stream_out/transcode/audio.c +++ b/modules/stream_out/transcode/audio.c @@ -114,8 +114,25 @@ static int transcode_audio_filter_chain_build( sout_stream_t *p_stream, filter_c if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, ¤t ) ) { - msg_Err( p_stream, "Failed to find conversion filter to fl32" ); - return VLC_EGENERIC; + /* If that fails, try going through fi32 */ + current.i_codec = + current.audio.i_format = VLC_CODEC_FI32; + aout_FormatPrepare( ¤t.audio ); + + if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, ¤t ) ) + { + msg_Err( p_stream, "Failed to find conversion filter to fi32" ); + return VLC_EGENERIC; + } + current = *filter_chain_GetFmtOut( p_chain ); + current.i_codec = + current.audio.i_format = VLC_CODEC_FL32; + aout_FormatPrepare( ¤t.audio ); + if( !filter_chain_AppendFilter( p_chain, NULL, NULL, NULL, ¤t ) ) + { + msg_Err( p_stream, "Failed to find conversion filter to fl32" ); + return VLC_EGENERIC; + } } current = *filter_chain_GetFmtOut( p_chain ); } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
