summaryrefslogtreecommitdiff
path: root/libavcodec/aacsbr.h
diff options
context:
space:
mode:
authorDjordje Pesut <djordje.pesut@imgtec.com>2015-07-20 13:36:15 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2015-07-20 17:20:16 +0200
commit5499467d5d3d517f0d65ede72a6ac22cf6059eca (patch)
treebd4154e459a5ca3bd1629cde49298e101c35abc4 /libavcodec/aacsbr.h
parenta927aacbe605d5c298aa5b55fee01281edcdbf70 (diff)
avcodec: Template creation for AAC decoder (SBR-module)
Move the existing code to a new template file. Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/aacsbr.h')
-rw-r--r--libavcodec/aacsbr.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/libavcodec/aacsbr.h b/libavcodec/aacsbr.h
index f5e33ab688..476bc65c54 100644
--- a/libavcodec/aacsbr.h
+++ b/libavcodec/aacsbr.h
@@ -33,6 +33,51 @@
#include "aac.h"
#include "sbr.h"
+#define ENVELOPE_ADJUSTMENT_OFFSET 2
+#define NOISE_FLOOR_OFFSET FIXR(6.0f)
+
+/**
+ * SBR VLC tables
+ */
+enum {
+ T_HUFFMAN_ENV_1_5DB,
+ F_HUFFMAN_ENV_1_5DB,
+ T_HUFFMAN_ENV_BAL_1_5DB,
+ F_HUFFMAN_ENV_BAL_1_5DB,
+ T_HUFFMAN_ENV_3_0DB,
+ F_HUFFMAN_ENV_3_0DB,
+ T_HUFFMAN_ENV_BAL_3_0DB,
+ F_HUFFMAN_ENV_BAL_3_0DB,
+ T_HUFFMAN_NOISE_3_0DB,
+ T_HUFFMAN_NOISE_BAL_3_0DB,
+};
+
+/**
+ * bs_frame_class - frame class of current SBR frame (14496-3 sp04 p98)
+ */
+enum {
+ FIXFIX,
+ FIXVAR,
+ VARFIX,
+ VARVAR,
+};
+
+enum {
+ EXTENSION_ID_PS = 2,
+};
+
+static const int8_t vlc_sbr_lav[10] =
+ { 60, 60, 24, 24, 31, 31, 12, 12, 31, 12 };
+
+#define SBR_INIT_VLC_STATIC(num, size) \
+ INIT_VLC_STATIC(&vlc_sbr[num], 9, sbr_tmp[num].table_size / sbr_tmp[num].elem_size, \
+ sbr_tmp[num].sbr_bits , 1, 1, \
+ sbr_tmp[num].sbr_codes, sbr_tmp[num].elem_size, sbr_tmp[num].elem_size, \
+ size)
+
+#define SBR_VLC_ROW(name) \
+ { name ## _codes, name ## _bits, sizeof(name ## _codes), sizeof(name ## _codes[0]) }
+
/** Initialize SBR. */
void ff_aac_sbr_init(void);
/** Initialize one SBR context. */