mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
adts: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
parent
593aaee953
commit
13c90bc9a3
@ -57,23 +57,23 @@ static int adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t
|
|||||||
|
|
||||||
if (adts->objecttype > 3U) {
|
if (adts->objecttype > 3U) {
|
||||||
av_log(s, AV_LOG_ERROR, "MPEG-4 AOT %d is not allowed in ADTS\n", adts->objecttype+1);
|
av_log(s, AV_LOG_ERROR, "MPEG-4 AOT %d is not allowed in ADTS\n", adts->objecttype+1);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
if (adts->sample_rate_index == 15) {
|
if (adts->sample_rate_index == 15) {
|
||||||
av_log(s, AV_LOG_ERROR, "Escape sample rate index illegal in ADTS\n");
|
av_log(s, AV_LOG_ERROR, "Escape sample rate index illegal in ADTS\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
if (get_bits(&gb, 1)) {
|
if (get_bits(&gb, 1)) {
|
||||||
av_log(s, AV_LOG_ERROR, "960/120 MDCT window is not allowed in ADTS\n");
|
av_log(s, AV_LOG_ERROR, "960/120 MDCT window is not allowed in ADTS\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
if (get_bits(&gb, 1)) {
|
if (get_bits(&gb, 1)) {
|
||||||
av_log(s, AV_LOG_ERROR, "Scalable configurations are not allowed in ADTS\n");
|
av_log(s, AV_LOG_ERROR, "Scalable configurations are not allowed in ADTS\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
if (get_bits(&gb, 1)) {
|
if (get_bits(&gb, 1)) {
|
||||||
av_log(s, AV_LOG_ERROR, "Extension flag is not allowed in ADTS\n");
|
av_log(s, AV_LOG_ERROR, "Extension flag is not allowed in ADTS\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
if (!adts->channel_conf) {
|
if (!adts->channel_conf) {
|
||||||
init_put_bits(&pb, adts->pce_data, MAX_PCE_SIZE);
|
init_put_bits(&pb, adts->pce_data, MAX_PCE_SIZE);
|
||||||
@ -93,9 +93,9 @@ static int adts_write_header(AVFormatContext *s)
|
|||||||
ADTSContext *adts = s->priv_data;
|
ADTSContext *adts = s->priv_data;
|
||||||
AVCodecContext *avc = s->streams[0]->codec;
|
AVCodecContext *avc = s->streams[0]->codec;
|
||||||
|
|
||||||
if (avc->extradata_size > 0 &&
|
if (avc->extradata_size > 0)
|
||||||
adts_decode_extradata(s, adts, avc->extradata, avc->extradata_size) < 0)
|
return adts_decode_extradata(s, adts, avc->extradata,
|
||||||
return -1;
|
avc->extradata_size);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user