]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/rl: Remove nonstatic storage of RL tables
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Tue, 8 Dec 2020 18:44:02 +0000 (19:44 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Thu, 31 Dec 2020 09:53:42 +0000 (10:53 +0100)
ff_rl_free() was added in 324e50ee95929a9491b855c5e15451145bd5d1ec,
but never used; nonstatic storage was not used long before that.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/rl.c
libavcodec/rl.h

index 6eac306b88ae8550fc15386ab6b65711f9f9931f..c532b5bf5654444e9899fcdde635b8b12fe5c529 100644 (file)
 
 #include "rl.h"
 
-void ff_rl_free(RLTable *rl)
-{
-    int i;
-
-    for (i = 0; i < 2; i++) {
-        av_freep(&rl->max_run[i]);
-        av_freep(&rl->max_level[i]);
-        av_freep(&rl->index_run[i]);
-    }
-}
-
-av_cold int ff_rl_init(RLTable *rl,
-                       uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3])
+av_cold void ff_rl_init(RLTable *rl,
+                        uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3])
 {
     int8_t  max_level[MAX_RUN + 1], max_run[MAX_LEVEL + 1];
     uint8_t index_run[MAX_RUN + 1];
     int last, run, level, start, end, i;
 
-    /* If table is static, we can quit if rl->max_level[0] is not NULL */
-    if (static_store && rl->max_level[0])
-        return 0;
+    /* If rl->max_level[0] is set, this RLTable has already been initialized */
+    if (rl->max_level[0])
+        return;
 
     /* compute max_level[], max_run[] and index_run[] */
     for (last = 0; last < 2; last++) {
@@ -70,36 +59,13 @@ av_cold int ff_rl_init(RLTable *rl,
             if (run > max_run[level])
                 max_run[level] = run;
         }
-        if (static_store)
-            rl->max_level[last] = static_store[last];
-        else {
-            rl->max_level[last] = av_malloc(MAX_RUN + 1);
-            if (!rl->max_level[last])
-                goto fail;
-        }
+        rl->max_level[last] = static_store[last];
         memcpy(rl->max_level[last], max_level, MAX_RUN + 1);
-        if (static_store)
-            rl->max_run[last]   = static_store[last] + MAX_RUN + 1;
-        else {
-            rl->max_run[last]   = av_malloc(MAX_LEVEL + 1);
-            if (!rl->max_run[last])
-                goto fail;
-        }
+        rl->max_run[last]   = static_store[last] + MAX_RUN + 1;
         memcpy(rl->max_run[last], max_run, MAX_LEVEL + 1);
-        if (static_store)
-            rl->index_run[last] = static_store[last] + MAX_RUN + MAX_LEVEL + 2;
-        else {
-            rl->index_run[last] = av_malloc(MAX_RUN + 1);
-            if (!rl->index_run[last])
-                goto fail;
-        }
+        rl->index_run[last] = static_store[last] + MAX_RUN + MAX_LEVEL + 2;
         memcpy(rl->index_run[last], index_run, MAX_RUN + 1);
     }
-    return 0;
-
-fail:
-    ff_rl_free(rl);
-    return AVERROR(ENOMEM);
 }
 
 av_cold void ff_rl_init_vlc(RLTable *rl, unsigned static_size)
index 9a767bc5fd88ceed441680ad1df642c609f64664..a83debccf78879e679b1f97271551627696429da 100644 (file)
@@ -49,17 +49,12 @@ typedef struct RLTable {
 } RLTable;
 
 /**
- * @param static_store static uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3] which will hold
- *                     the level and run tables, if this is NULL av_malloc() will be used
+ * @param static_store static uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3]
+ *                     to hold the level and run tables.
  */
-int ff_rl_init(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
+void ff_rl_init(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
 void ff_rl_init_vlc(RLTable *rl, unsigned static_size);
 
-/**
- * Free the contents of a dynamically allocated table.
- */
-void ff_rl_free(RLTable *rl);
-
 #define INIT_VLC_RL(rl, static_size)\
 {\
     int q;\