summaryrefslogtreecommitdiff
path: root/libavformat/fsb.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/fsb.c')
-rw-r--r--libavformat/fsb.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/libavformat/fsb.c b/libavformat/fsb.c
index faad6b16fd..fd3e484371 100644
--- a/libavformat/fsb.c
+++ b/libavformat/fsb.c
@@ -41,6 +41,7 @@ static int fsb_read_header(AVFormatContext *s)
int64_t offset;
AVCodecParameters *par;
AVStream *st = avformat_new_stream(s, NULL);
+ int ret;
avio_skip(pb, 3); // "FSB"
version = avio_r8(pb) - '0';
@@ -86,9 +87,9 @@ static int fsb_read_header(AVFormatContext *s)
par->block_align = 8 * par->channels;
if (par->channels > INT_MAX / 32)
return AVERROR_INVALIDDATA;
- ff_alloc_extradata(par, 32 * par->channels);
- if (!par->extradata)
- return AVERROR(ENOMEM);
+ ret = ff_alloc_extradata(par, 32 * par->channels);
+ if (ret < 0)
+ return ret;
avio_seek(pb, 0x68, SEEK_SET);
for (c = 0; c < par->channels; c++) {
avio_read(pb, par->extradata + 32 * c, 32);
@@ -130,18 +131,18 @@ static int fsb_read_header(AVFormatContext *s)
switch (par->codec_id) {
case AV_CODEC_ID_XMA2:
- ff_alloc_extradata(par, 34);
- if (!par->extradata)
- return AVERROR(ENOMEM);
+ ret = ff_alloc_extradata(par, 34);
+ if (ret < 0)
+ return ret;
memset(par->extradata, 0, 34);
par->block_align = 2048;
break;
case AV_CODEC_ID_ADPCM_THP:
if (par->channels > INT_MAX / 32)
return AVERROR_INVALIDDATA;
- ff_alloc_extradata(par, 32 * par->channels);
- if (!par->extradata)
- return AVERROR(ENOMEM);
+ ret = ff_alloc_extradata(par, 32 * par->channels);
+ if (ret < 0)
+ return ret;
avio_seek(pb, 0x80, SEEK_SET);
for (c = 0; c < par->channels; c++) {
avio_read(pb, par->extradata + 32 * c, 32);