pcm_bluray: Return AVERROR_INVALIDDATA instead of -1 on header errors
authorChristian Schmidt <schmidt@digadd.de>
Tue, 6 Aug 2013 08:21:42 +0000 (10:21 +0200)
committerDiego Biurrun <diego@biurrun.de>
Tue, 6 Aug 2013 11:19:29 +0000 (13:19 +0200)
Signed-off-by: Diego Biurrun <diego@biurrun.de>
libavcodec/pcm-mpeg.c

index e13e2b0..7b7afed 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * LPCM codecs for PCM formats found in MPEG streams
- * Copyright (c) 2009 Christian Schmidt
+ * Copyright (c) 2009, 2013 Christian Schmidt
  *
  * This file is part of Libav.
  *
@@ -72,7 +72,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
     avctx->bits_per_coded_sample = bits_per_samples[header[3] >> 6];
     if (!avctx->bits_per_coded_sample) {
         av_log(avctx, AV_LOG_ERROR, "reserved sample depth (0)\n");
-        return -1;
+        return AVERROR_INVALIDDATA;
     }
     avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 :
                                                              AV_SAMPLE_FMT_S32;
@@ -93,7 +93,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
         avctx->sample_rate = 0;
         av_log(avctx, AV_LOG_ERROR, "reserved sample rate (%d)\n",
                header[2] & 0x0f);
-        return -1;
+        return AVERROR_INVALIDDATA;
     }
 
     /*
@@ -107,7 +107,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
     if (!avctx->channels) {
         av_log(avctx, AV_LOG_ERROR, "reserved channel configuration (%d)\n",
                channel_layout);
-        return -1;
+        return AVERROR_INVALIDDATA;
     }
 
     avctx->bit_rate = FFALIGN(avctx->channels, 2) * avctx->sample_rate *
@@ -135,11 +135,11 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data,
 
     if (buf_size < 4) {
         av_log(avctx, AV_LOG_ERROR, "PCM packet too small\n");
-        return -1;
+        return AVERROR_INVALIDDATA;
     }
 
-    if (pcm_bluray_parse_header(avctx, src))
-        return -1;
+    if ((retval = pcm_bluray_parse_header(avctx, src)))
+        return retval;
     src += 4;
     buf_size -= 4;