X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Facm.c;h=c78a408aa040bc212a55493eed1b3ea2a1d22d2b;hb=bc70684e74a185d7b80c8b80bdedda659cb581b8;hp=08dd9282fa4a6f9be12ee2b32f4707ef1a794ff1;hpb=27e30c73d722ec13e59753dea91be00859c72bf2;p=ffmpeg diff --git a/libavformat/acm.c b/libavformat/acm.c index 08dd9282fa4..c78a408aa04 100644 --- a/libavformat/acm.c +++ b/libavformat/acm.c @@ -24,7 +24,7 @@ #include "rawdec.h" #include "internal.h" -static int acm_probe(AVProbeData *p) +static int acm_probe(const AVProbeData *p) { if (AV_RB32(p->buf) != 0x97280301) return 0; @@ -44,12 +44,9 @@ static int acm_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_CODEC_ID_INTERPLAY_ACM; - ff_alloc_extradata(st->codecpar, 14); - if (!st->codecpar->extradata) - return AVERROR(ENOMEM); - ret = avio_read(s->pb, st->codecpar->extradata, 14); - if (ret < 10) - return ret < 0 ? ret : AVERROR_EOF; + ret = ff_get_extradata(s, st->codecpar, s->pb, 14); + if (ret < 0) + return ret; st->codecpar->channels = AV_RL16(st->codecpar->extradata + 8); st->codecpar->sample_rate = AV_RL16(st->codecpar->extradata + 10); @@ -63,7 +60,8 @@ static int acm_read_header(AVFormatContext *s) return 0; } -AVInputFormat ff_acm_demuxer = { +FF_RAW_DEMUXER_CLASS(acm) +const AVInputFormat ff_acm_demuxer = { .name = "acm", .long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"), .read_probe = acm_probe, @@ -72,4 +70,6 @@ AVInputFormat ff_acm_demuxer = { .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS, .extensions = "acm", .raw_codec_id = AV_CODEC_ID_INTERPLAY_ACM, + .priv_data_size = sizeof(FFRawDemuxerContext), + .priv_class = &acm_demuxer_class, };