media/libtremor/lib/codec_internal.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /********************************************************************
michael@0 2 * *
michael@0 3 * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
michael@0 4 * *
michael@0 5 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
michael@0 6 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
michael@0 7 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
michael@0 8 * *
michael@0 9 * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
michael@0 10 * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
michael@0 11 * *
michael@0 12 ********************************************************************
michael@0 13
michael@0 14 function: libvorbis codec headers
michael@0 15
michael@0 16 ********************************************************************/
michael@0 17
michael@0 18 #ifndef _V_CODECI_H_
michael@0 19 #define _V_CODECI_H_
michael@0 20
michael@0 21 #include "codebook.h"
michael@0 22
michael@0 23 typedef void vorbis_look_mapping;
michael@0 24 typedef void vorbis_look_floor;
michael@0 25 typedef void vorbis_look_residue;
michael@0 26 typedef void vorbis_look_transform;
michael@0 27
michael@0 28 /* mode ************************************************************/
michael@0 29 typedef struct {
michael@0 30 int blockflag;
michael@0 31 int windowtype;
michael@0 32 int transformtype;
michael@0 33 int mapping;
michael@0 34 } vorbis_info_mode;
michael@0 35
michael@0 36 typedef void vorbis_info_floor;
michael@0 37 typedef void vorbis_info_residue;
michael@0 38 typedef void vorbis_info_mapping;
michael@0 39
michael@0 40 typedef struct private_state {
michael@0 41 /* local lookup storage */
michael@0 42 const void *window[2];
michael@0 43
michael@0 44 /* backend lookups are tied to the mode, not the backend or naked mapping */
michael@0 45 int modebits;
michael@0 46 vorbis_look_mapping **mode;
michael@0 47
michael@0 48 ogg_int64_t sample_count;
michael@0 49
michael@0 50 } private_state;
michael@0 51
michael@0 52 /* codec_setup_info contains all the setup information specific to the
michael@0 53 specific compression/decompression mode in progress (eg,
michael@0 54 psychoacoustic settings, channel setup, options, codebook
michael@0 55 etc).
michael@0 56 *********************************************************************/
michael@0 57
michael@0 58 typedef struct codec_setup_info {
michael@0 59
michael@0 60 /* Vorbis supports only short and long blocks, but allows the
michael@0 61 encoder to choose the sizes */
michael@0 62
michael@0 63 long blocksizes[2];
michael@0 64
michael@0 65 /* modes are the primary means of supporting on-the-fly different
michael@0 66 blocksizes, different channel mappings (LR or M/A),
michael@0 67 different residue backends, etc. Each mode consists of a
michael@0 68 blocksize flag and a mapping (along with the mapping setup */
michael@0 69
michael@0 70 int modes;
michael@0 71 int maps;
michael@0 72 int times;
michael@0 73 int floors;
michael@0 74 int residues;
michael@0 75 int books;
michael@0 76
michael@0 77 vorbis_info_mode *mode_param[64];
michael@0 78 int map_type[64];
michael@0 79 vorbis_info_mapping *map_param[64];
michael@0 80 int time_type[64];
michael@0 81 int floor_type[64];
michael@0 82 vorbis_info_floor *floor_param[64];
michael@0 83 int residue_type[64];
michael@0 84 vorbis_info_residue *residue_param[64];
michael@0 85 static_codebook *book_param[256];
michael@0 86 codebook *fullbooks;
michael@0 87
michael@0 88 int passlimit[32]; /* iteration limit per couple/quant pass */
michael@0 89 int coupling_passes;
michael@0 90 } codec_setup_info;
michael@0 91
michael@0 92 #endif

mercurial