mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
qdm2: Return meaningful error codes
This commit is contained in:
parent
a1e2c47cd4
commit
f3e045263e
@ -1762,7 +1762,7 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
|
||||
|
||||
if (!avctx->extradata || (avctx->extradata_size < 48)) {
|
||||
av_log(avctx, AV_LOG_ERROR, "extradata missing or truncated\n");
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
extradata = avctx->extradata;
|
||||
@ -1778,18 +1778,18 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
|
||||
if (extradata_size < 12) {
|
||||
av_log(avctx, AV_LOG_ERROR, "not enough extradata (%i)\n",
|
||||
extradata_size);
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
if (memcmp(extradata, "frmaQDM", 7)) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid headers, QDM? not found\n");
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
if (extradata[7] == 'C') {
|
||||
// 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;
|
||||
@ -1800,14 +1800,14 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
|
||||
if(size > extradata_size){
|
||||
av_log(avctx, AV_LOG_ERROR, "extradata size too small, %i < %i\n",
|
||||
extradata_size, size);
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
extradata += 4;
|
||||
av_log(avctx, AV_LOG_DEBUG, "size: %d\n", size);
|
||||
if (AV_RB32(extradata) != MKBETAG('Q','D','C','A')) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid extradata, expecting QDCA\n");
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
extradata += 8;
|
||||
@ -1882,8 +1882,8 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
|
||||
|
||||
// Fail on unknown fft order
|
||||
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))) {
|
||||
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];
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user