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.

     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  ********************************************************************
    14  function: libvorbis codec headers
    16  ********************************************************************/
    18 #ifndef _V_CODECI_H_
    19 #define _V_CODECI_H_
    21 #include "codebook.h"
    23 typedef void vorbis_look_mapping;
    24 typedef void vorbis_look_floor;
    25 typedef void vorbis_look_residue;
    26 typedef void vorbis_look_transform;
    28 /* mode ************************************************************/
    29 typedef struct {
    30   int blockflag;
    31   int windowtype;
    32   int transformtype;
    33   int mapping;
    34 } vorbis_info_mode;
    36 typedef void vorbis_info_floor;
    37 typedef void vorbis_info_residue;
    38 typedef void vorbis_info_mapping;
    40 typedef struct private_state {
    41   /* local lookup storage */
    42   const void             *window[2];
    44   /* backend lookups are tied to the mode, not the backend or naked mapping */
    45   int                     modebits;
    46   vorbis_look_mapping   **mode;
    48   ogg_int64_t sample_count;
    50 } private_state;
    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 *********************************************************************/
    58 typedef struct codec_setup_info {
    60   /* Vorbis supports only short and long blocks, but allows the
    61      encoder to choose the sizes */
    63   long blocksizes[2];
    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 */
    70   int        modes;
    71   int        maps;
    72   int        times;
    73   int        floors;
    74   int        residues;
    75   int        books;
    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;
    88   int    passlimit[32];     /* iteration limit per couple/quant pass */
    89   int    coupling_passes;
    90 } codec_setup_info;
    92 #endif

mercurial