#include "avformat.h"
#include "internal.h"
-static int probe(AVProbeData *p)
+static int probe(const AVProbeData *p)
{
if (p->buf_size < 2096)
return 0;
avio_rl32(s->pb);
st->codecpar->sample_rate = avio_rl32(s->pb);
st->codecpar->channels = avio_rl32(s->pb);
- if (st->codecpar->channels > FF_SANE_NB_CHANNELS)
+ if (st->codecpar->channels > FF_SANE_NB_CHANNELS || st->codecpar->channels <= 0)
return AVERROR(ENOSYS);
s->internal->data_offset = avio_rl32(s->pb);
avio_r8(s->pb);
st->codecpar->block_align = avio_rl32(s->pb);
- if (st->codecpar->block_align > INT_MAX / FF_SANE_NB_CHANNELS)
+ if (st->codecpar->block_align > INT_MAX / FF_SANE_NB_CHANNELS || st->codecpar->block_align <= 0)
return AVERROR_INVALIDDATA;
st->codecpar->block_align *= st->codecpar->channels;
return av_get_packet(s->pb, pkt, st->codecpar->block_align);
}
-AVInputFormat ff_boa_demuxer = {
+const AVInputFormat ff_boa_demuxer = {
.name = "boa",
.long_name = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
.read_probe = probe,