Commit befc473c authored by Justin Ruggles's avatar Justin Ruggles

mpc7: only support stereo input.

The Musepack SV7 reference encoder converts mono to stereo when encoding.
parent 8dbc6d03
...@@ -61,6 +61,13 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) ...@@ -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 hdr_table[1 << MPC7_HDR_BITS][2];
static VLC_TYPE quant_tables[7224][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){ if(avctx->extradata_size < 16){
av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size);
return -1; return -1;
...@@ -88,7 +95,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) ...@@ -88,7 +95,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
c->frames_to_skip = 0; c->frames_to_skip = 0;
avctx->sample_fmt = AV_SAMPLE_FMT_S16; 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; if(vlc_initialized) return 0;
av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n"); av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment