]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/shortendec.c
avformat: Constify all muxer/demuxers
[ffmpeg] / libavformat / shortendec.c
index 42fcdf75c39bce51b6604c2f833d059e6fe49b91..9209de4388478cc4b392d02c88082b0c18813cbd 100644 (file)
@@ -25,7 +25,7 @@
 #include "rawdec.h"
 #include "libavcodec/golomb.h"
 
-static int shn_probe(AVProbeData *p)
+static int shn_probe(const AVProbeData *p)
 {
     GetBitContext gb;
     int version, internal_ftype, channels, blocksize;
@@ -40,12 +40,18 @@ static int shn_probe(AVProbeData *p)
         channels = get_ur_golomb_shorten(&gb, 0);
         blocksize = 256;
     } else {
-        int k;
+        unsigned k;
         k = get_ur_golomb_shorten(&gb, 2);
+        if (k > 31)
+            return 0;
         internal_ftype = get_ur_golomb_shorten(&gb, k);
         k = get_ur_golomb_shorten(&gb, 2);
+        if (k > 31)
+            return 0;
         channels = get_ur_golomb_shorten(&gb, k);
         k = get_ur_golomb_shorten(&gb, 2);
+        if (k > 31)
+            return 0;
         blocksize = get_ur_golomb_shorten(&gb, k);
     }
 
@@ -59,7 +65,8 @@ static int shn_probe(AVProbeData *p)
     return AVPROBE_SCORE_EXTENSION + 1;
 }
 
-AVInputFormat ff_shorten_demuxer = {
+FF_RAW_DEMUXER_CLASS(shorten)
+const AVInputFormat ff_shorten_demuxer = {
     .name           = "shn",
     .long_name      = NULL_IF_CONFIG_SMALL("raw Shorten"),
     .read_probe     = shn_probe,
@@ -68,4 +75,6 @@ AVInputFormat ff_shorten_demuxer = {
     .flags          = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
     .extensions     = "shn",
     .raw_codec_id   = AV_CODEC_ID_SHORTEN,
+    .priv_data_size = sizeof(FFRawDemuxerContext),
+    .priv_class     = &shorten_demuxer_class,
 };