| @@ -1762,7 +1762,7 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) | |||||
| if (!avctx->extradata || (avctx->extradata_size < 48)) { | if (!avctx->extradata || (avctx->extradata_size < 48)) { | ||||
| av_log(avctx, AV_LOG_ERROR, "extradata missing or truncated\n"); | av_log(avctx, AV_LOG_ERROR, "extradata missing or truncated\n"); | ||||
| return -1; | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | } | ||||
| extradata = avctx->extradata; | extradata = avctx->extradata; | ||||
| @@ -1778,18 +1778,18 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) | |||||
| if (extradata_size < 12) { | if (extradata_size < 12) { | ||||
| av_log(avctx, AV_LOG_ERROR, "not enough extradata (%i)\n", | av_log(avctx, AV_LOG_ERROR, "not enough extradata (%i)\n", | ||||
| extradata_size); | extradata_size); | ||||
| return -1; | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | } | ||||
| if (memcmp(extradata, "frmaQDM", 7)) { | if (memcmp(extradata, "frmaQDM", 7)) { | ||||
| av_log(avctx, AV_LOG_ERROR, "invalid headers, QDM? not found\n"); | av_log(avctx, AV_LOG_ERROR, "invalid headers, QDM? not found\n"); | ||||
| return -1; | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | } | ||||
| if (extradata[7] == 'C') { | if (extradata[7] == 'C') { | ||||
| // s->is_qdmc = 1; | // s->is_qdmc = 1; | ||||
| av_log(avctx, AV_LOG_ERROR, "stream is QDMC version 1, which is not supported\n"); | |||||
| return -1; | |||||
| avpriv_report_missing_feature(avctx, "QDMC version 1"); | |||||
| return AVERROR_PATCHWELCOME; | |||||
| } | } | ||||
| extradata += 8; | extradata += 8; | ||||
| @@ -1800,14 +1800,14 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) | |||||
| if(size > extradata_size){ | if(size > extradata_size){ | ||||
| av_log(avctx, AV_LOG_ERROR, "extradata size too small, %i < %i\n", | av_log(avctx, AV_LOG_ERROR, "extradata size too small, %i < %i\n", | ||||
| extradata_size, size); | extradata_size, size); | ||||
| return -1; | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | } | ||||
| extradata += 4; | extradata += 4; | ||||
| av_log(avctx, AV_LOG_DEBUG, "size: %d\n", size); | av_log(avctx, AV_LOG_DEBUG, "size: %d\n", size); | ||||
| if (AV_RB32(extradata) != MKBETAG('Q','D','C','A')) { | if (AV_RB32(extradata) != MKBETAG('Q','D','C','A')) { | ||||
| av_log(avctx, AV_LOG_ERROR, "invalid extradata, expecting QDCA\n"); | av_log(avctx, AV_LOG_ERROR, "invalid extradata, expecting QDCA\n"); | ||||
| return -1; | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | } | ||||
| extradata += 8; | extradata += 8; | ||||
| @@ -1882,8 +1882,8 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) | |||||
| // Fail on unknown fft order | // Fail on unknown fft order | ||||
| if ((s->fft_order < 7) || (s->fft_order > 9)) { | if ((s->fft_order < 7) || (s->fft_order > 9)) { | ||||
| av_log(avctx, AV_LOG_ERROR, "Unknown FFT order (%d), contact the developers!\n", s->fft_order); | |||||
| return -1; | |||||
| avpriv_request_sample(avctx, "Unknown FFT order %d", s->fft_order); | |||||
| return AVERROR_PATCHWELCOME; | |||||
| } | } | ||||
| if (s->fft_size != (1 << (s->fft_order - 1))) { | if (s->fft_size != (1 << (s->fft_order - 1))) { | ||||
| av_log(avctx, AV_LOG_ERROR, "FFT size %d not power of 2.\n", s->fft_size); | av_log(avctx, AV_LOG_ERROR, "FFT size %d not power of 2.\n", s->fft_size); | ||||
| @@ -1990,8 +1990,8 @@ static int qdm2_decode_frame(AVCodecContext *avctx, void *data, | |||||
| out = (int16_t *)frame->data[0]; | out = (int16_t *)frame->data[0]; | ||||
| for (i = 0; i < 16; i++) { | for (i = 0; i < 16; i++) { | ||||
| if (qdm2_decode(s, buf, out) < 0) | |||||
| return -1; | |||||
| if ((ret = qdm2_decode(s, buf, out)) < 0) | |||||
| return ret; | |||||
| out += s->channels * s->frame_size; | out += s->channels * s->frame_size; | ||||
| } | } | ||||