Mercurial > mplayer.hg
annotate tremor/codec_internal.h @ 30811:50e0f6942e43
Implement Win32 mutexes.
Implement Win32 mutexes; they used to just be mapped on top of events, which
is not the same thing at all.
The implementation is pretty much the obvious one, similar to the
current critical section implementation and the semaphore implementation;
a single lock count protected by a pthread mutex, and an event lockers can
sleep on to know when the mutex is available.
Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs
support is not configured.
author | sesse |
---|---|
date | Sat, 06 Mar 2010 10:13:37 +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: libvorbis codec headers | |
15 | |
16 ********************************************************************/ | |
17 | |
18 #ifndef _V_CODECI_H_ | |
19 #define _V_CODECI_H_ | |
20 | |
21 #include "codebook.h" | |
22 | |
23 typedef void vorbis_look_mapping; | |
24 typedef void vorbis_look_floor; | |
25 typedef void vorbis_look_residue; | |
26 typedef void vorbis_look_transform; | |
27 | |
28 /* mode ************************************************************/ | |
29 typedef struct { | |
30 int blockflag; | |
31 int windowtype; | |
32 int transformtype; | |
33 int mapping; | |
34 } vorbis_info_mode; | |
35 | |
36 typedef void vorbis_info_floor; | |
37 typedef void vorbis_info_residue; | |
38 typedef void vorbis_info_mapping; | |
39 | |
40 typedef struct backend_lookup_state { | |
41 /* local lookup storage */ | |
42 ogg_int32_t *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 } backend_lookup_state; | |
49 | |
50 /* codec_setup_info contains all the setup information specific to the | |
51 specific compression/decompression mode in progress (eg, | |
52 psychoacoustic settings, channel setup, options, codebook | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
19251
diff
changeset
|
53 etc). |
14280 | 54 *********************************************************************/ |
55 | |
56 typedef struct codec_setup_info { | |
57 | |
58 /* Vorbis supports only short and long blocks, but allows the | |
59 encoder to choose the sizes */ | |
60 | |
61 long blocksizes[2]; | |
62 | |
63 /* modes are the primary means of supporting on-the-fly different | |
64 blocksizes, different channel mappings (LR or M/A), | |
65 different residue backends, etc. Each mode consists of a | |
66 blocksize flag and a mapping (along with the mapping setup */ | |
67 | |
68 int modes; | |
69 int maps; | |
70 int times; | |
71 int floors; | |
72 int residues; | |
73 int books; | |
74 | |
75 vorbis_info_mode *mode_param[64]; | |
76 int map_type[64]; | |
77 vorbis_info_mapping *map_param[64]; | |
78 int time_type[64]; | |
79 int floor_type[64]; | |
80 vorbis_info_floor *floor_param[64]; | |
81 int residue_type[64]; | |
82 vorbis_info_residue *residue_param[64]; | |
83 static_codebook *book_param[256]; | |
84 codebook *fullbooks; | |
85 | |
86 int passlimit[32]; /* iteration limit per couple/quant pass */ | |
87 int coupling_passes; | |
88 } codec_setup_info; | |
89 | |
90 #endif |