aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-05-22 19:50:13 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-05-28 15:38:43 +0100
commit324e50ee95929a9491b855c5e15451145bd5d1ec (patch)
tree69e76a6536ed3ada91c3771f087a76fb9b8acf8d /libavcodec
parent6f57375d707de40dcec28d3cef886c364e032c21 (diff)
downloadffmpeg-324e50ee95929a9491b855c5e15451145bd5d1ec.tar.gz
rl: Add a function for freeing dynamically allocated tables.
Such tables are not used anywhere currently, but that should change.
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/rl.c12
-rw-r--r--libavcodec/rl.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/rl.c b/libavcodec/rl.c
index 942b7a6941..c0ec8ec296 100644
--- a/libavcodec/rl.c
+++ b/libavcodec/rl.c
@@ -19,9 +19,21 @@
#include <stdint.h>
#include "libavutil/attributes.h"
+#include "libavutil/mem.h"
#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 void ff_rl_init(RLTable *rl,
uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3])
{
diff --git a/libavcodec/rl.h b/libavcodec/rl.h
index d03d4365a8..8244968898 100644
--- a/libavcodec/rl.h
+++ b/libavcodec/rl.h
@@ -56,6 +56,11 @@ typedef struct RLTable {
void ff_rl_init(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
void ff_rl_init_vlc(RLTable *rl);
+/**
+ * Free the contents of a dynamically allocated table.
+ */
+void ff_rl_free(RLTable *rl);
+
#define INIT_VLC_RL(rl, static_size)\
{\
int q;\