]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mpegaudiodec.c
vorbisdec: return proper error codes instead of made-up ones
[ffmpeg] / libavcodec / mpegaudiodec.c
index 58e2bf7c38860466d09b0b4a7a380cfa3b4c2e48..d5af782ac72381917e5eda9fbb100fc49af8b2c1 100644 (file)
@@ -1847,8 +1847,8 @@ static int decode_frame_adu(AVCodecContext *avctx, void *data, int *data_size,
 
     // Discard too short frames
     if (buf_size < HEADER_SIZE) {
-        *data_size = 0;
-        return buf_size;
+        av_log(avctx, AV_LOG_ERROR, "Packet is too small\n");
+        return AVERROR_INVALIDDATA;
     }
 
 
@@ -1859,8 +1859,8 @@ static int decode_frame_adu(AVCodecContext *avctx, void *data, int *data_size,
     header = AV_RB32(buf) | 0xffe00000;
 
     if (ff_mpa_check_header(header) < 0) { // Bad header, discard frame
-        *data_size = 0;
-        return buf_size;
+        av_log(avctx, AV_LOG_ERROR, "Invalid frame header\n");
+        return AVERROR_INVALIDDATA;
     }
 
     avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header);
@@ -2047,7 +2047,6 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
         return AVERROR(EINVAL);
     }
 
-    *data_size = 0;
     // Discard too short frames
     if (buf_size < HEADER_SIZE)
         return AVERROR_INVALIDDATA;