annotate liba52/a52_internal.h @ 10252:d275152390ee

I've found some time to implement the encoding support for the new DivX API. Now it's possible to play and encode movies with the latest DivX release. One thing that doesn't work is the new Video Buffer Verifier (VBV) multipass encoding. The encoder segfaults. Maybe it just isn't supported with the standard profile of the released binary encoder. Andreas Hess <jaska@gmx.net>
author arpi
date Fri, 06 Jun 2003 19:57:37 +0000
parents db1d556fcf58
children 07f1e7669772
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3394
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
1 /*
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
2 * a52_internal.h
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
3 * Copyright (C) 2000-2001 Michel Lespinasse <walken@zoy.org>
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
5 *
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
6 * This file is part of a52dec, a free ATSC A-52 stream decoder.
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
7 * See http://liba52.sourceforge.net/ for updates.
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
8 *
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
9 * a52dec is free software; you can redistribute it and/or modify
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
12 * (at your option) any later version.
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
13 *
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
14 * a52dec is distributed in the hope that it will be useful,
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
17 * GNU General Public License for more details.
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
18 *
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
22 */
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
23
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
24 #define LEVEL_PLUS6DB 2.0
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
25 #define LEVEL_PLUS3DB 1.4142135623730951
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
26 #define LEVEL_3DB 0.7071067811865476
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
27 #define LEVEL_45DB 0.5946035575013605
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
28 #define LEVEL_6DB 0.5
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
29
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
30 #define EXP_REUSE (0)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
31 #define EXP_D15 (1)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
32 #define EXP_D25 (2)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
33 #define EXP_D45 (3)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
34
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
35 #define DELTA_BIT_REUSE (0)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
36 #define DELTA_BIT_NEW (1)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
37 #define DELTA_BIT_NONE (2)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
38 #define DELTA_BIT_RESERVED (3)
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
39
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
40 void bit_allocate (a52_state_t * state, a52_ba_t * ba, int bndstart,
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
41 int start, int end, int fastleak, int slowleak,
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
42 uint8_t * exp, int8_t * bap);
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
43
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
44 int downmix_init (int input, int flags, sample_t * level,
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
45 sample_t clev, sample_t slev);
3910
db1d556fcf58 runtime cpudetect the liba52 way part 2 (downmix.c)
michael
parents: 3904
diff changeset
46 void downmix_accel_init(uint32_t mm_accel);
3394
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
47 int downmix_coeff (sample_t * coeff, int acmod, int output, sample_t level,
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
48 sample_t clev, sample_t slev);
3904
848d848521b9 runtime cpudetect
michael
parents: 3394
diff changeset
49 extern void (*downmix) (sample_t * samples, int acmod, int output, sample_t bias,
3394
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
50 sample_t clev, sample_t slev);
3904
848d848521b9 runtime cpudetect
michael
parents: 3394
diff changeset
51 extern void (*upmix) (sample_t * samples, int acmod, int output);
3394
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
52
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
53 void imdct_init (uint32_t mm_accel);
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
54 extern void (* imdct_256) (sample_t * data, sample_t * delay, sample_t bias);
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
55 extern void (* imdct_512) (sample_t * data, sample_t * delay, sample_t bias);
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
56 void imdct_do_256_mlib (sample_t * data, sample_t * delay, sample_t bias);
35b18ed357c2 imported from liba52 CVS
arpi
parents:
diff changeset
57 void imdct_do_512_mlib (sample_t * data, sample_t * delay, sample_t bias);