#include "avio.h"
#include "internal.h"
-static int fsb_probe(AVProbeData *p)
+static int fsb_probe(const AVProbeData *p)
{
if (memcmp(p->buf, "FSB", 3) || p->buf[3] - '0' < 1 || p->buf[3] - '0' > 5)
return 0;
int64_t offset;
AVCodecParameters *par;
AVStream *st = avformat_new_stream(s, NULL);
+ int ret;
avio_skip(pb, 3); // "FSB"
version = avio_r8(pb) - '0';
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);
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);