on2avcdata.h 3.03 KB
Newer Older
Kostya Shishkov's avatar
Kostya Shishkov committed
1 2 3 4 5
/*
 * On2 Audio for Video Codec decoder
 *
 * Copyright (c) 2013 Konstantin Shishkov
 *
6
 * This file is part of FFmpeg.
Kostya Shishkov's avatar
Kostya Shishkov committed
7
 *
8
 * FFmpeg is free software; you can redistribute it and/or
Kostya Shishkov's avatar
Kostya Shishkov committed
9 10 11 12
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
13
 * FFmpeg is distributed in the hope that it will be useful,
Kostya Shishkov's avatar
Kostya Shishkov committed
14 15 16 17 18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
19
 * License along with FFmpeg; if not, write to the Free Software
Kostya Shishkov's avatar
Kostya Shishkov committed
20 21 22
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

23 24
#ifndef AVCODEC_ON2AVCDATA_H
#define AVCODEC_ON2AVCDATA_H
Kostya Shishkov's avatar
Kostya Shishkov committed
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

#include <stdint.h>

#define ON2AVC_MAX_BANDS 112
#define ON2AVC_ESC_CB     15

typedef struct On2AVCMode {
    int num_windows;
    int num_bands;
    const int *band_start;
} On2AVCMode;

extern const On2AVCMode ff_on2avc_modes_40[8];
extern const On2AVCMode ff_on2avc_modes_44[8];

#define ON2AVC_SCALE_DIFFS 121
extern const uint32_t ff_on2avc_scale_diff_codes[];
extern const uint8_t  ff_on2avc_scale_diff_bits[];

extern const uint32_t * const ff_on2avc_quad_cb_codes[];
extern const uint8_t  * const ff_on2avc_quad_cb_bits[];
extern const uint16_t * const ff_on2avc_quad_cb_syms[];
extern const int              ff_on2avc_quad_cb_elems[];
extern const uint16_t * const ff_on2avc_pair_cb_codes[];
extern const uint8_t  * const ff_on2avc_pair_cb_bits[];
extern const uint16_t * const ff_on2avc_pair_cb_syms[];
extern const int              ff_on2avc_pair_cb_elems[];

extern const float ff_on2avc_window_long_32000[1024];
extern const float ff_on2avc_window_long_24000[1024];
extern const float ff_on2avc_window_short[128];

extern const double ff_on2avc_tab_10_1[];
extern const double ff_on2avc_tab_10_2[];
extern const double ff_on2avc_tab_20_1[];
extern const double ff_on2avc_tab_20_2[];
extern const double ff_on2avc_tab_40_1[];
extern const double ff_on2avc_tab_40_2[];
extern const double ff_on2avc_tab_84_1[];
extern const double ff_on2avc_tab_84_2[];
extern const double ff_on2avc_tab_84_3[];
extern const double ff_on2avc_tab_84_4[];
67 68 69 70 71 72 73 74 75 76
extern const double* const ff_on2avc_tabs_4_10_1[4];
extern const double* const ff_on2avc_tabs_4_10_2[4];
extern const double* const ff_on2avc_tabs_9_20_1[9];
extern const double* const ff_on2avc_tabs_9_20_2[9];
extern const double* const ff_on2avc_tabs_19_40_1[19];
extern const double* const ff_on2avc_tabs_19_40_2[19];
extern const double* const ff_on2avc_tabs_20_84_1[20];
extern const double* const ff_on2avc_tabs_20_84_2[20];
extern const double* const ff_on2avc_tabs_20_84_3[20];
extern const double* const ff_on2avc_tabs_20_84_4[20];
Kostya Shishkov's avatar
Kostya Shishkov committed
77 78 79 80 81
extern const float ff_on2avc_ctab_1[2048];
extern const float ff_on2avc_ctab_2[2048];
extern const float ff_on2avc_ctab_3[2048];
extern const float ff_on2avc_ctab_4[2048];

82
#endif /* AVCODEC_ON2AVCDATA_H */