]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/frmdec.c
avformat: Constify all muxer/demuxers
[ffmpeg] / libavformat / frmdec.c
index 2f6b7264279081859603b6ee3a59a324240e32d4..478656b0374d98c4beb4d991d0c17af0fc6fc9f9 100644 (file)
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 
-static const PixelFormatTag frm_pix_fmt_tags[] = {
-    { AV_PIX_FMT_RGB555, 1 },
-    { AV_PIX_FMT_RGB0,   2 },
-    { AV_PIX_FMT_RGB24,  3 },
-    { AV_PIX_FMT_BGR0,   4 },
-    { AV_PIX_FMT_BGRA,   5 },
-    { AV_PIX_FMT_NONE,   0 },
+static const enum AVPixelFormat frm_pix_fmt_tags[] = {
+    AV_PIX_FMT_RGB555,
+    AV_PIX_FMT_RGB0,
+    AV_PIX_FMT_RGB24,
+    AV_PIX_FMT_BGR0,
+    AV_PIX_FMT_BGRA,
 };
 
 typedef struct {
     int count;
 } FrmContext;
 
-static int frm_read_probe(AVProbeData *p)
+static int frm_read_probe(const AVProbeData *p)
 {
     if (p->buf_size > 8 &&
         p->buf[0] == 'F' && p->buf[1] == 'R' && p->buf[2] == 'M' &&
@@ -55,6 +54,8 @@ static int frm_read_header(AVFormatContext *avctx)
 {
     AVIOContext *pb = avctx->pb;
     AVStream *st = avformat_new_stream(avctx, 0);
+    unsigned idx;
+
     if (!st)
         return AVERROR(ENOMEM);
 
@@ -62,9 +63,10 @@ static int frm_read_header(AVFormatContext *avctx)
     st->codecpar->codec_id   = AV_CODEC_ID_RAWVIDEO;
     avio_skip(pb, 3);
 
-    st->codecpar->format    = avpriv_find_pix_fmt(frm_pix_fmt_tags, avio_r8(pb));
-    if (!st->codecpar->format)
+    idx = avio_r8(pb) - 1;
+    if (idx >= FF_ARRAY_ELEMS(frm_pix_fmt_tags))
         return AVERROR_INVALIDDATA;
+    st->codecpar->format = frm_pix_fmt_tags[idx];
 
     st->codecpar->codec_tag  = 0;
     st->codecpar->width      = avio_rl16(pb);
@@ -101,7 +103,7 @@ static int frm_read_packet(AVFormatContext *avctx, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_frm_demuxer = {
+const AVInputFormat ff_frm_demuxer = {
     .name           = "frm",
     .priv_data_size = sizeof(FrmContext),
     .long_name      = NULL_IF_CONFIG_SMALL("Megalux Frame"),