Mercurial > mplayer.hg
annotate tremor/codebook.h @ 33263:5f527a9a9521
Add an exit function.
This function will allow performing clean-up operations.
(MPlayer calls guiDone() before exiting, but only if the GUI has been
initialized, i.e. if guiInit() has been called successfully. Any
exit_player()/exit_player_with_rc() after GUI's cfg_read() until
guiInit(), or any exit_player() during guiInit() itself will end the GUI
without calling guiDone(). This exit function will at least handle
abortions during guiInit() itself. It will be called twice in case of an
guiExit() after GUI initialization - first directly, next by guiDone()
via MPlayer's exit_player_with_rc().)
author | ib |
---|---|
date | Tue, 03 May 2011 12:19:22 +0000 |
parents | e83eef58b30a |
children |
rev | line source |
---|---|
14280 | 1 /******************************************************************** |
2 * * | |
3 * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * | |
4 * * | |
19251
cd6b211be811
Replace tremor files that had old headers saying "ALL REDISTRIBUTION
uau
parents:
14280
diff
changeset
|
5 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
cd6b211be811
Replace tremor files that had old headers saying "ALL REDISTRIBUTION
uau
parents:
14280
diff
changeset
|
6 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
cd6b211be811
Replace tremor files that had old headers saying "ALL REDISTRIBUTION
uau
parents:
14280
diff
changeset
|
7 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
cd6b211be811
Replace tremor files that had old headers saying "ALL REDISTRIBUTION
uau
parents:
14280
diff
changeset
|
8 * * |
14280 | 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: basic shared codebook operations | |
15 | |
16 ********************************************************************/ | |
17 | |
18 #ifndef _V_CODEBOOK_H_ | |
19 #define _V_CODEBOOK_H_ | |
20 | |
21 #include "ogg.h" | |
22 | |
23 /* This structure encapsulates huffman and VQ style encoding books; it | |
24 doesn't do anything specific to either. | |
25 | |
26 valuelist/quantlist are nonNULL (and q_* significant) only if | |
27 there's entry->value mapping to be done. | |
28 | |
29 If encode-side mapping must be done (and thus the entry needs to be | |
30 hunted), the auxiliary encode pointer will point to a decision | |
31 tree. This is true of both VQ and huffman, but is mostly useful | |
32 with VQ. | |
33 | |
34 */ | |
35 | |
36 typedef struct static_codebook{ | |
37 long dim; /* codebook dimensions (elements per vector) */ | |
38 long entries; /* codebook entries */ | |
39 long *lengthlist; /* codeword lengths in bits */ | |
40 | |
41 /* mapping ***************************************************************/ | |
42 int maptype; /* 0=none | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
43 1=implicitly populated values from map column |
14280 | 44 2=listed arbitrary values */ |
45 | |
46 /* The below does a linear, single monotonic sequence mapping. */ | |
47 long q_min; /* packed 32 bit float; quant value 0 maps to minval */ | |
48 long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ | |
49 int q_quant; /* bits: 0 < quant <= 16 */ | |
50 int q_sequencep; /* bitflag */ | |
51 | |
52 long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map | |
53 map == 2: list of dim*entries quantized entry vals | |
54 */ | |
55 } static_codebook; | |
56 | |
57 typedef struct codebook{ | |
58 long dim; /* codebook dimensions (elements per vector) */ | |
59 long entries; /* codebook entries */ | |
60 long used_entries; /* populated codebook entries */ | |
61 | |
62 /* the below are ordered by bitreversed codeword and only used | |
63 entries are populated */ | |
64 int binarypoint; | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
65 ogg_int32_t *valuelist; /* list of dim*entries actual entry values */ |
14280 | 66 ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */ |
67 | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
68 int *dec_index; |
14280 | 69 char *dec_codelengths; |
70 ogg_uint32_t *dec_firsttable; | |
71 int dec_firsttablen; | |
72 int dec_maxlength; | |
73 | |
74 long q_min; /* packed 32 bit float; quant value 0 maps to minval */ | |
75 long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ | |
76 | |
77 } codebook; | |
78 | |
79 extern void vorbis_staticbook_clear(static_codebook *b); | |
80 extern void vorbis_staticbook_destroy(static_codebook *b); | |
81 extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); | |
82 | |
83 extern void vorbis_book_clear(codebook *b); | |
84 extern long _book_maptype1_quantvals(const static_codebook *b); | |
85 | |
86 extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c); | |
87 | |
88 extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
89 extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a, |
14280 | 90 oggpack_buffer *b,int n,int point); |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
91 extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a, |
14280 | 92 oggpack_buffer *b,int n,int point); |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
93 extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a, |
14280 | 94 oggpack_buffer *b,int n,int point); |
95 extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a, | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
96 long off,int ch, |
14280 | 97 oggpack_buffer *b,int n,int point); |
98 | |
99 extern int _ilog(unsigned int v); | |
100 | |
101 | |
102 #endif |