]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/xpmdec.c
avcodec: Constify AVCodecs
[ffmpeg] / libavcodec / xpmdec.c
index 03172e4aadab48562365ac4bf211a6076cfb7add..e609a70c6ae281ec7e4918de0531fdddb35c49e5 100644 (file)
 #include "avcodec.h"
 #include "internal.h"
 
+#define MIN_ELEMENT ' '
+#define MAX_ELEMENT 0xfe
+#define NB_ELEMENTS (MAX_ELEMENT - MIN_ELEMENT + 1)
+
 typedef struct XPMContext {
     uint32_t  *pixels;
     int        pixels_size;
@@ -290,10 +294,10 @@ static int ascii2index(const uint8_t *cpixel, int cpp)
     int n = 0, m = 1, i;
 
     for (i = 0; i < cpp; i++) {
-        if (*p < ' ' || *p > '~')
+        if (*p < MIN_ELEMENT || *p > MAX_ELEMENT)
             return AVERROR_INVALIDDATA;
-        n += (*p++ - ' ') * m;
-        m *= 95;
+        n += (*p++ - MIN_ELEMENT) * m;
+        m *= NB_ELEMENTS;
     }
     return n;
 }
@@ -307,6 +311,7 @@ static int xpm_decode_frame(AVCodecContext *avctx, void *data,
     int ncolors, cpp, ret, i, j;
     int64_t size;
     uint32_t *dst;
+    int width, height;
 
     avctx->pix_fmt = AV_PIX_FMT_BGRA;
 
@@ -328,12 +333,12 @@ static int xpm_decode_frame(AVCodecContext *avctx, void *data,
 
     ptr += mod_strcspn(ptr, "\"");
     if (sscanf(ptr, "\"%u %u %u %u\",",
-               &avctx->width, &avctx->height, &ncolors, &cpp) != 4) {
+               &width, &height, &ncolors, &cpp) != 4) {
         av_log(avctx, AV_LOG_ERROR, "missing image parameters\n");
         return AVERROR_INVALIDDATA;
     }
 
-    if ((ret = ff_set_dimensions(avctx, avctx->width, avctx->height)) < 0)
+    if ((ret = ff_set_dimensions(avctx, width, height)) < 0)
         return ret;
 
     if ((ret = ff_get_buffer(avctx, p, 0)) < 0)
@@ -346,7 +351,7 @@ static int xpm_decode_frame(AVCodecContext *avctx, void *data,
 
     size = 1;
     for (i = 0; i < cpp; i++)
-        size *= 95;
+        size *= NB_ELEMENTS;
 
     if (ncolors <= 0 || ncolors > size) {
         av_log(avctx, AV_LOG_ERROR, "invalid number of colors: %d\n", ncolors);
@@ -431,7 +436,7 @@ static av_cold int xpm_decode_close(AVCodecContext *avctx)
     return 0;
 }
 
-AVCodec ff_xpm_decoder = {
+const AVCodec ff_xpm_decoder = {
     .name           = "xpm",
     .type           = AVMEDIA_TYPE_VIDEO,
     .id             = AV_CODEC_ID_XPM,