Merge commit 'bbf6a4aa20bfe3d7869b2218e66063602dfb8aa7'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 10 Jul 2013 10:24:58 +0000 (12:24 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 10 Jul 2013 10:28:07 +0000 (12:28 +0200)
* commit 'bbf6a4aa20bfe3d7869b2218e66063602dfb8aa7':
  imc: Catch a division by zero
  atrac3: Error on impossible encoding/channel combinations

See: 13451f5520ce6b0afde861b2285dda659f8d4fb4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/atrac3.c

index 0b56352..2a46a05 100644 (file)
@@ -923,11 +923,6 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx)
         return AVERROR(EINVAL);
     }
 
-    if (q->coding_mode == JOINT_STEREO && avctx->channels < 2) {
-        av_log(avctx, AV_LOG_ERROR, "Invalid coding mode\n");
-        return AVERROR_INVALIDDATA;
-    }
-
     /* Check the extradata */
 
     if (version != 4) {
@@ -950,9 +945,13 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx)
 
     if (q->coding_mode == STEREO)
         av_log(avctx, AV_LOG_DEBUG, "Normal stereo detected.\n");
-    else if (q->coding_mode == JOINT_STEREO)
+    else if (q->coding_mode == JOINT_STEREO) {
+        if (avctx->channels != 2) {
+            av_log(avctx, AV_LOG_ERROR, "Invalid coding mode\n");
+            return AVERROR_INVALIDDATA;
+        }
         av_log(avctx, AV_LOG_DEBUG, "Joint stereo detected.\n");
-    else {
+    else {
         av_log(avctx, AV_LOG_ERROR, "Unknown channel coding mode %x!\n",
                q->coding_mode);
         return AVERROR_INVALIDDATA;