From d4489a37385c1c7d2e01c7118c81a56b5ad71ac2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 21 Mar 2015 18:10:38 +0200 Subject: [PATCH] decoder: fix data race in sout --- src/input/decoder.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/input/decoder.c b/src/input/decoder.c index d01b2576ce..0201e4fb31 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -62,6 +62,7 @@ static void *DecoderThread( void * ); static void DecoderProcess( decoder_t *, block_t * ); static void DecoderFlush( decoder_t * ); static void DecoderSignalWait( decoder_t * ); +static void DecoderUpdateFormatLocked( decoder_t * ); static void DecoderUnsupportedCodec( decoder_t *, vlc_fourcc_t ); @@ -1498,9 +1499,11 @@ static void DecoderProcessSout( decoder_t *p_dec, block_t *p_block ) { if( p_owner->p_sout_input == NULL ) { - assert( !p_owner->b_fmt_description ); // no need for owner lock + vlc_mutex_lock( &p_owner->lock ); es_format_Clean( &p_owner->fmt ); es_format_Copy( &p_owner->fmt, &p_dec->fmt_out ); + DecoderUpdateFormatLocked( p_dec ); + vlc_mutex_unlock( &p_owner->lock ); p_owner->fmt.i_group = p_dec->fmt_in.i_group; p_owner->fmt.i_id = p_dec->fmt_in.i_id; -- 2.39.2