On 11/10/2011 10:56 AM, Kostya Shishkov wrote:

> On Thu, Nov 10, 2011 at 10:44:55AM -0500, Justin Ruggles wrote:
>> The Musepack SV7 reference encoder converts mono to stereo when encoding.
>> ---
>>  libavcodec/mpc7.c |    9 ++++++++-
>>  1 files changed, 8 insertions(+), 1 deletions(-)
>>
>> diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
>> index 6f79c7b..fea60a1 100644
>> --- a/libavcodec/mpc7.c
>> +++ b/libavcodec/mpc7.c
>> @@ -61,6 +61,13 @@ static av_cold int mpc7_decode_init(AVCodecContext * 
>> avctx)
>>      static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2];
>>      static VLC_TYPE quant_tables[7224][2];
>>  
>> +    /* Musepack SV7 is always stereo */
>> +    if (avctx->channels != 2) {
>> +        av_log_ask_for_sample(avctx, "Unsupported number of channels: %d\n",
>> +                              avctx->channels);
>> +        return AVERROR_PATCHWELCOME;
>> +    }
>> +
>>      if(avctx->extradata_size < 16){
>>          av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", 
>> avctx->extradata_size);
>>          return -1;
>> @@ -88,7 +95,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
>>      c->frames_to_skip = 0;
>>  
>>      avctx->sample_fmt = AV_SAMPLE_FMT_S16;
>> -    avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : 
>> AV_CH_LAYOUT_MONO;
>> +    avctx->channel_layout = AV_CH_LAYOUT_STEREO;
>>  
>>      if(vlc_initialized) return 0;
>>      av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n");
>> -- 
> 
> Yes, but it still lies to be mono. There was an issue with one such file.


What do you mean it lies?

The decoder assumes 2 channels everywhere.

-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to