[FFmpeg-cvslog] mpc7: only support stereo input.

Justin Ruggles git at videolan.org
Sat Nov 12 03:02:02 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Nov  2 23:02:52 2011 -0400| [befc473c0075ba5afbd38b8fb0c33cd07deec51d] | committer: Justin Ruggles

mpc7: only support stereo input.

The Musepack SV7 reference encoder converts mono to stereo when encoding.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=befc473c0075ba5afbd38b8fb0c33cd07deec51d
---

 libavcodec/mpc7.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index 60b9f52..576400d 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");



More information about the ffmpeg-cvslog mailing list