shorten: avoid abort() on unknown audio types

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
This commit is contained in:
John Brooks 2011-12-08 09:16:21 +00:00 committed by Janne Grunau
parent e93947b7d8
commit 8562d9bd6c
1 changed files with 5 additions and 3 deletions

View File

@ -176,7 +176,7 @@ static void fix_bitshift(ShortenContext *s, int32_t *buffer)
} }
static void init_offset(ShortenContext *s) static int init_offset(ShortenContext *s)
{ {
int32_t mean = 0; int32_t mean = 0;
int chan, i; int chan, i;
@ -190,12 +190,13 @@ static void init_offset(ShortenContext *s)
break; break;
default: default:
av_log(s->avctx, AV_LOG_ERROR, "unknown audio type"); av_log(s->avctx, AV_LOG_ERROR, "unknown audio type");
abort(); return AVERROR_INVALIDDATA;
} }
for (chan = 0; chan < s->channels; chan++) for (chan = 0; chan < s->channels; chan++)
for (i = 0; i < nblock; i++) for (i = 0; i < nblock; i++)
s->offset[chan][i] = mean; s->offset[chan][i] = mean;
return 0;
} }
static int decode_wave_header(AVCodecContext *avctx, const uint8_t *header, static int decode_wave_header(AVCodecContext *avctx, const uint8_t *header,
@ -367,7 +368,8 @@ static int read_header(ShortenContext *s)
if ((ret = allocate_buffers(s)) < 0) if ((ret = allocate_buffers(s)) < 0)
return ret; return ret;
init_offset(s); if ((ret = init_offset(s)) < 0)
return ret;
if (s->version > 1) if (s->version > 1)
s->lpcqoffset = V2LPCQOFFSET; s->lpcqoffset = V2LPCQOFFSET;