vlc | branch: master | Thomas Guillem <[email protected]> | Thu Jan 18 16:57:18 2018 +0100| [91c3b27efe79f076aed42b83986a36d7bdec126d] | committer: Thomas Guillem
transcode/audio: init muxer format lately This can fix channels (or other params) mismatch when decoders update their fmt_out lately. This is the case for dts-hd for example (first decoder/encoder initialisation gives 5.1, then 7.1). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=91c3b27efe79f076aed42b83986a36d7bdec126d --- modules/stream_out/transcode/audio.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c index 577378ecea..c60569a26f 100644 --- a/modules/stream_out/transcode/audio.c +++ b/modules/stream_out/transcode/audio.c @@ -307,6 +307,13 @@ int transcode_audio_process( sout_stream_t *p_stream, } date_Init( &id->next_input_pts, id->audio_dec_out.i_rate, 1 ); date_Set( &id->next_input_pts, p_audio_buf->i_pts ); + + if (!id->id) + { + id->id = sout_StreamIdAdd( p_stream->p_next, &id->p_encoder->fmt_out ); + if (!id->id) + id->b_transcode = false; + } } /* Check if audio format has changed, and filters need reinit */ @@ -426,15 +433,8 @@ bool transcode_audio_add( sout_stream_t *p_stream, const es_format_t *p_fmt, } /* Open output stream */ - id->id = sout_StreamIdAdd( p_stream->p_next, &id->p_encoder->fmt_out ); id->b_transcode = true; - if( !id->id ) - { - transcode_audio_close( id ); - return false; - } - /* Reinit encoder again later on, when all information from decoders * is available. */ if( id->p_encoder->p_module ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
