mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
mpegaudiodec: return AVERROR return codes instead of -1
This commit is contained in:
parent
4be1e1dfa7
commit
dac15a03af
@ -1486,7 +1486,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
|
|||||||
g->big_values = get_bits(&s->gb, 9);
|
g->big_values = get_bits(&s->gb, 9);
|
||||||
if(g->big_values > 288){
|
if(g->big_values > 288){
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "big_values too big\n");
|
av_log(s->avctx, AV_LOG_ERROR, "big_values too big\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
g->global_gain = get_bits(&s->gb, 8);
|
g->global_gain = get_bits(&s->gb, 8);
|
||||||
@ -1504,7 +1504,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
|
|||||||
g->block_type = get_bits(&s->gb, 2);
|
g->block_type = get_bits(&s->gb, 2);
|
||||||
if (g->block_type == 0){
|
if (g->block_type == 0){
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "invalid block type\n");
|
av_log(s->avctx, AV_LOG_ERROR, "invalid block type\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
g->switch_point = get_bits1(&s->gb);
|
g->switch_point = get_bits1(&s->gb);
|
||||||
for(i=0;i<2;i++)
|
for(i=0;i<2;i++)
|
||||||
@ -1782,18 +1782,18 @@ static int decode_frame(AVCodecContext * avctx,
|
|||||||
OUT_INT *out_samples = data;
|
OUT_INT *out_samples = data;
|
||||||
|
|
||||||
if(buf_size < HEADER_SIZE)
|
if(buf_size < HEADER_SIZE)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
header = AV_RB32(buf);
|
header = AV_RB32(buf);
|
||||||
if(ff_mpa_check_header(header) < 0){
|
if(ff_mpa_check_header(header) < 0){
|
||||||
av_log(avctx, AV_LOG_ERROR, "Header missing\n");
|
av_log(avctx, AV_LOG_ERROR, "Header missing\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header) == 1) {
|
if (avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header) == 1) {
|
||||||
/* free format: prepare to compute frame size */
|
/* free format: prepare to compute frame size */
|
||||||
s->frame_size = -1;
|
s->frame_size = -1;
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
/* update codec info */
|
/* update codec info */
|
||||||
avctx->channels = s->nb_channels;
|
avctx->channels = s->nb_channels;
|
||||||
@ -1803,12 +1803,12 @@ static int decode_frame(AVCodecContext * avctx,
|
|||||||
avctx->sub_id = s->layer;
|
avctx->sub_id = s->layer;
|
||||||
|
|
||||||
if(*data_size < 1152*avctx->channels*sizeof(OUT_INT))
|
if(*data_size < 1152*avctx->channels*sizeof(OUT_INT))
|
||||||
return -1;
|
return AVERROR(EINVAL);
|
||||||
*data_size = 0;
|
*data_size = 0;
|
||||||
|
|
||||||
if(s->frame_size<=0 || s->frame_size > buf_size){
|
if(s->frame_size<=0 || s->frame_size > buf_size){
|
||||||
av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
|
av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}else if(s->frame_size < buf_size){
|
}else if(s->frame_size < buf_size){
|
||||||
av_log(avctx, AV_LOG_ERROR, "incorrect frame size\n");
|
av_log(avctx, AV_LOG_ERROR, "incorrect frame size\n");
|
||||||
buf_size= s->frame_size;
|
buf_size= s->frame_size;
|
||||||
@ -1954,13 +1954,13 @@ static int decode_init_mp3on4(AVCodecContext * avctx)
|
|||||||
|
|
||||||
if ((avctx->extradata_size < 2) || (avctx->extradata == NULL)) {
|
if ((avctx->extradata_size < 2) || (avctx->extradata == NULL)) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Codec extradata missing or too short.\n");
|
av_log(avctx, AV_LOG_ERROR, "Codec extradata missing or too short.\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
avpriv_mpeg4audio_get_config(&cfg, avctx->extradata, avctx->extradata_size);
|
avpriv_mpeg4audio_get_config(&cfg, avctx->extradata, avctx->extradata_size);
|
||||||
if (!cfg.chan_config || cfg.chan_config > 7) {
|
if (!cfg.chan_config || cfg.chan_config > 7) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Invalid channel config number.\n");
|
av_log(avctx, AV_LOG_ERROR, "Invalid channel config number.\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
s->frames = mp3Frames[cfg.chan_config];
|
s->frames = mp3Frames[cfg.chan_config];
|
||||||
s->coff = chan_offset[cfg.chan_config];
|
s->coff = chan_offset[cfg.chan_config];
|
||||||
@ -2050,7 +2050,7 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
|
|||||||
*data_size = 0;
|
*data_size = 0;
|
||||||
// Discard too short frames
|
// Discard too short frames
|
||||||
if (buf_size < HEADER_SIZE)
|
if (buf_size < HEADER_SIZE)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
// If only one decoder interleave is not needed
|
// If only one decoder interleave is not needed
|
||||||
outptr = s->frames == 1 ? out_samples : s->decoded_buf;
|
outptr = s->frames == 1 ? out_samples : s->decoded_buf;
|
||||||
|
Loading…
Reference in New Issue
Block a user