]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/acm.c
hwcontext_vulkan: dlopen libvulkan
[ffmpeg] / libavformat / acm.c
index 08dd9282fa4a6f9be12ee2b32f4707ef1a794ff1..c78a408aa040bc212a55493eed1b3ea2a1d22d2b 100644 (file)
@@ -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,
 };