#include "libavutil/channel_layout.h"
#include "libavutil/lfg.h"
+#include "libavutil/mem_internal.h"
#include "audiodsp.h"
#include "avcodec.h"
#define SUBBAND_SIZE 20
#define MAX_SUBPACKETS 5
+#define QUANT_VLC_BITS 9
+#define COUPLING_VLC_BITS 6
+
typedef struct cook_gains {
int *now;
int *previous;
result = 0;
for (i = 0; i < 13; i++) {
- result |= build_vlc(&q->envelope_quant_index[i], 9,
+ result |= build_vlc(&q->envelope_quant_index[i], QUANT_VLC_BITS,
envelope_quant_index_huffcounts[i],
envelope_quant_index_huffsyms[i], 1, -12, q->avctx);
}
for (i = 0; i < q->num_subpackets; i++) {
if (q->subpacket[i].joint_stereo == 1) {
- result |= build_vlc(&q->subpacket[i].channel_coupling, 6,
+ result |= build_vlc(&q->subpacket[i].channel_coupling, COUPLING_VLC_BITS,
ccpl_huffcounts[q->subpacket[i].js_vlc_bits - 2],
ccpl_huffsyms[q->subpacket[i].js_vlc_bits - 2], 1,
0, q->avctx);
vlc_index = 13; // the VLC tables >13 are identical to No. 13
j = get_vlc2(&q->gb, q->envelope_quant_index[vlc_index - 1].table,
- q->envelope_quant_index[vlc_index - 1].bits, 2);
+ QUANT_VLC_BITS, 2);
quant_index_table[i] = quant_index_table[i - 1] + j; // differential encoding
if (quant_index_table[i] > 63 || quant_index_table[i] < -63) {
av_log(q->avctx, AV_LOG_ERROR,
for (i = 0; i < length; i++)
decouple_tab[start + i] = get_vlc2(&q->gb,
p->channel_coupling.table,
- p->channel_coupling.bits, 3);
+ COUPLING_VLC_BITS, 3);
else
for (i = 0; i < length; i++) {
int v = get_bits(&q->gb, p->js_vlc_bits);
return 0;
}
-AVCodec ff_cook_decoder = {
+const AVCodec ff_cook_decoder = {
.name = "cook",
.long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Gecko (RealAudio G2)"),
.type = AVMEDIA_TYPE_AUDIO,