summaryrefslogtreecommitdiff
path: root/libavcodec/mpc7.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-11-02 23:02:52 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2011-11-11 14:17:40 -0500
commitbefc473c0075ba5afbd38b8fb0c33cd07deec51d (patch)
tree593af2cd2444d0e5d02b9fddf7cdf30c61e7d39e /libavcodec/mpc7.c
parent8dbc6d03c0ad5fc2f8067f7a43209e2fcbb204b0 (diff)
mpc7: only support stereo input.
The Musepack SV7 reference encoder converts mono to stereo when encoding.
Diffstat (limited to 'libavcodec/mpc7.c')
-rw-r--r--libavcodec/mpc7.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index 60b9f525c2..576400d720 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");