mlp_parser: dont override existing channel geometry.
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Sep 2012 20:35:26 +0000 (22:35 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Sep 2012 20:35:26 +0000 (22:35 +0200)
This prevents race conditions
And partly fixes Ticket1726

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mlp_parser.c

index 7c0630c..5fb1424 100644 (file)
@@ -317,6 +317,7 @@ static int mlp_parse(AVCodecParserContext *s,
         avctx->sample_rate = mh.group1_samplerate;
         s->duration = mh.access_unit_size;
 
+        if(!avctx->channels || !avctx->channel_layout) {
         if (mh.stream_type == 0xbb) {
             /* MLP stream */
             avctx->channels = mlp_channels[mh.channels_mlp];
@@ -331,6 +332,7 @@ static int mlp_parse(AVCodecParserContext *s,
                 avctx->channel_layout = ff_truehd_layout(mh.channels_thd_stream1);
             }
         }
+        }
 
         if (!mh.is_vbr) /* Stream is CBR */
             avctx->bit_rate = mh.peak_bitrate;