From 0e78ef0f94cf1f757465db6c1c7ae540653b9d01 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Wed, 10 Jul 2013 16:34:14 +0200 Subject: flac: use meaningful return values --- libavcodec/flac.c | 16 ++++++------- libavcodec/flacdec.c | 64 ++++++++++++++++++++++++++-------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/libavcodec/flac.c b/libavcodec/flac.c index aa322b42f9..b3e38472ae 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -55,7 +55,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, /* frame sync code */ if ((get_bits(gb, 15) & 0x7FFF) != 0x7FFC) { av_log(avctx, AV_LOG_ERROR + log_level_offset, "invalid sync code\n"); - return -1; + return AVERROR_INVALIDDATA; } /* variable block size stream code */ @@ -76,7 +76,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, } else { av_log(avctx, AV_LOG_ERROR + log_level_offset, "invalid channel mode: %d\n", fi->ch_mode); - return -1; + return AVERROR_INVALIDDATA; } /* bits per sample */ @@ -85,7 +85,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, av_log(avctx, AV_LOG_ERROR + log_level_offset, "invalid sample size code (%d)\n", bps_code); - return -1; + return AVERROR_INVALIDDATA; } fi->bps = sample_size_table[bps_code]; @@ -93,7 +93,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, if (get_bits1(gb)) { av_log(avctx, AV_LOG_ERROR + log_level_offset, "broken stream, invalid padding\n"); - return -1; + return AVERROR_INVALIDDATA; } /* sample or frame count */ @@ -101,14 +101,14 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, if (fi->frame_or_sample_num < 0) { av_log(avctx, AV_LOG_ERROR + log_level_offset, "sample/frame number invalid; utf8 fscked\n"); - return -1; + return AVERROR_INVALIDDATA; } /* blocksize */ if (bs_code == 0) { av_log(avctx, AV_LOG_ERROR + log_level_offset, "reserved blocksize code: 0\n"); - return -1; + return AVERROR_INVALIDDATA; } else if (bs_code == 6) { fi->blocksize = get_bits(gb, 8) + 1; } else if (bs_code == 7) { @@ -130,7 +130,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, av_log(avctx, AV_LOG_ERROR + log_level_offset, "illegal sample rate code %d\n", sr_code); - return -1; + return AVERROR_INVALIDDATA; } /* header CRC-8 check */ @@ -139,7 +139,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, get_bits_count(gb)/8)) { av_log(avctx, AV_LOG_ERROR + log_level_offset, "header crc mismatch\n"); - return -1; + return AVERROR_INVALIDDATA; } return 0; diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 919a6925b4..3286379e81 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -100,7 +100,7 @@ static av_cold int flac_decode_init(AVCodecContext *avctx) return 0; if (!avpriv_flac_is_extradata_valid(avctx, &format, &streaminfo)) - return -1; + return AVERROR_INVALIDDATA; /* initialize based on the demuxer-supplied streamdata header */ avpriv_flac_parse_streaminfo(avctx, (FLACStreaminfo *)s, streaminfo); @@ -209,7 +209,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) if (method_type > 1) { av_log(s->avctx, AV_LOG_ERROR, "illegal residual coding method %d\n", method_type); - return -1; + return AVERROR_INVALIDDATA; } rice_order = get_bits(&s->gb, 4); @@ -218,7 +218,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) if (pred_order > samples) { av_log(s->avctx, AV_LOG_ERROR, "invalid predictor order: %i > %i\n", pred_order, samples); - return -1; + return AVERROR_INVALIDDATA; } rice_bits = 4 + method_type; @@ -247,15 +247,15 @@ static int decode_subframe_fixed(FLACContext *s, int32_t *decoded, int pred_order, int bps) { const int blocksize = s->blocksize; - int a, b, c, d, i; + int a, b, c, d, i, ret; /* warm up samples */ for (i = 0; i < pred_order; i++) { decoded[i] = get_sbits_long(&s->gb, bps); } - if (decode_residuals(s, decoded, pred_order) < 0) - return -1; + if ((ret = decode_residuals(s, decoded, pred_order)) < 0) + return ret; if (pred_order > 0) a = decoded[pred_order-1]; @@ -287,7 +287,7 @@ static int decode_subframe_fixed(FLACContext *s, int32_t *decoded, break; default: av_log(s->avctx, AV_LOG_ERROR, "illegal pred order %d\n", pred_order); - return -1; + return AVERROR_INVALIDDATA; } return 0; @@ -296,7 +296,7 @@ static int decode_subframe_fixed(FLACContext *s, int32_t *decoded, static int decode_subframe_lpc(FLACContext *s, int32_t *decoded, int pred_order, int bps) { - int i; + int i, ret; int coeff_prec, qlevel; int coeffs[32]; @@ -308,21 +308,21 @@ static int decode_subframe_lpc(FLACContext *s, int32_t *decoded, int pred_order, coeff_prec = get_bits(&s->gb, 4) + 1; if (coeff_prec == 16) { av_log(s->avctx, AV_LOG_ERROR, "invalid coeff precision\n"); - return -1; + return AVERROR_INVALIDDATA; } qlevel = get_sbits(&s->gb, 5); if (qlevel < 0) { av_log(s->avctx, AV_LOG_ERROR, "qlevel %d not supported, maybe buggy stream\n", qlevel); - return -1; + return AVERROR_INVALIDDATA; } for (i = 0; i < pred_order; i++) { coeffs[pred_order - i - 1] = get_sbits(&s->gb, coeff_prec); } - if (decode_residuals(s, decoded, pred_order) < 0) - return -1; + if ((ret = decode_residuals(s, decoded, pred_order)) < 0) + return ret; s->dsp.lpc(decoded, coeffs, pred_order, qlevel, s->blocksize); @@ -334,7 +334,7 @@ static inline int decode_subframe(FLACContext *s, int channel) int32_t *decoded = s->decoded[channel]; int type, wasted = 0; int bps = s->bps; - int i, tmp; + int i, tmp, ret; if (channel == 0) { if (s->ch_mode == FLAC_CHMODE_RIGHT_SIDE) @@ -346,7 +346,7 @@ static inline int decode_subframe(FLACContext *s, int channel) if (get_bits1(&s->gb)) { av_log(s->avctx, AV_LOG_ERROR, "invalid subframe padding\n"); - return -1; + return AVERROR_INVALIDDATA; } type = get_bits(&s->gb, 6); @@ -379,14 +379,14 @@ static inline int decode_subframe(FLACContext *s, int channel) for (i = 0; i < s->blocksize; i++) decoded[i] = get_sbits_long(&s->gb, bps); } else if ((type >= 8) && (type <= 12)) { - if (decode_subframe_fixed(s, decoded, type & ~0x8, bps) < 0) - return -1; + if ((ret = decode_subframe_fixed(s, decoded, type & ~0x8, bps)) < 0) + return ret; } else if (type >= 32) { - if (decode_subframe_lpc(s, decoded, (type & ~0x20)+1, bps) < 0) - return -1; + if ((ret = decode_subframe_lpc(s, decoded, (type & ~0x20)+1, bps)) < 0) + return ret; } else { av_log(s->avctx, AV_LOG_ERROR, "invalid coding type\n"); - return -1; + return AVERROR_INVALIDDATA; } if (wasted) { @@ -404,9 +404,9 @@ static int decode_frame(FLACContext *s) GetBitContext *gb = &s->gb; FLACFrameInfo fi; - if (ff_flac_decode_frame_header(s->avctx, gb, &fi, 0)) { + if ((ret = ff_flac_decode_frame_header(s->avctx, gb, &fi, 0)) < 0) { av_log(s->avctx, AV_LOG_ERROR, "invalid frame header\n"); - return -1; + return ret; } if (s->channels && fi.channels != s->channels && s->got_streaminfo) { @@ -423,14 +423,14 @@ static int decode_frame(FLACContext *s) if (!s->bps && !fi.bps) { av_log(s->avctx, AV_LOG_ERROR, "bps not found in STREAMINFO or frame header\n"); - return -1; + return AVERROR_INVALIDDATA; } if (!fi.bps) { fi.bps = s->bps; } else if (s->bps && fi.bps != s->bps) { av_log(s->avctx, AV_LOG_ERROR, "switching bps mid-stream is not " "supported\n"); - return -1; + return AVERROR_INVALIDDATA; } if (!s->bps) { @@ -443,14 +443,14 @@ static int decode_frame(FLACContext *s) if (fi.blocksize > s->max_blocksize) { av_log(s->avctx, AV_LOG_ERROR, "blocksize %d > %d\n", fi.blocksize, s->max_blocksize); - return -1; + return AVERROR_INVALIDDATA; } s->blocksize = fi.blocksize; if (!s->samplerate && !fi.samplerate) { av_log(s->avctx, AV_LOG_ERROR, "sample rate not found in STREAMINFO" " or frame header\n"); - return -1; + return AVERROR_INVALIDDATA; } if (fi.samplerate == 0) fi.samplerate = s->samplerate; @@ -469,8 +469,8 @@ static int decode_frame(FLACContext *s) /* subframes */ for (i = 0; i < s->channels; i++) { - if (decode_subframe(s, i) < 0) - return -1; + if ((ret = decode_subframe(s, i)) < 0) + return ret; } align_get_bits(gb); @@ -507,18 +507,18 @@ static int flac_decode_frame(AVCodecContext *avctx, void *data, /* check for inline header */ if (AV_RB32(buf) == MKBETAG('f','L','a','C')) { - if (!s->got_streaminfo && parse_streaminfo(s, buf, buf_size)) { + if (!s->got_streaminfo && (ret = parse_streaminfo(s, buf, buf_size))) { av_log(s->avctx, AV_LOG_ERROR, "invalid header\n"); - return -1; + return ret; } return get_metadata_size(buf, buf_size); } /* decode frame */ init_get_bits(&s->gb, buf, buf_size*8); - if (decode_frame(s) < 0) { + if ((ret = decode_frame(s)) < 0) { av_log(s->avctx, AV_LOG_ERROR, "decode_frame() failed\n"); - return -1; + return ret; } bytes_read = (get_bits_count(&s->gb)+7)/8; @@ -534,7 +534,7 @@ static int flac_decode_frame(AVCodecContext *avctx, void *data, if (bytes_read > buf_size) { av_log(s->avctx, AV_LOG_ERROR, "overread: %d\n", bytes_read - buf_size); - return -1; + return AVERROR_INVALIDDATA; } if (bytes_read < buf_size) { av_log(s->avctx, AV_LOG_DEBUG, "underread: %d orig size: %d\n", -- cgit v1.2.3