[libav-devel] [PATCH 3/7] mpc7: only support stereo input.

Kostya Shishkov kostya.shishkov at gmail.com
Thu Nov 10 16:56:23 CET 2011


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.


More information about the libav-devel mailing list