PageRenderTime 30ms CodeModel.GetById 18ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/media/libtremor/lib/codec_internal.h

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