1 /* -*- TABSIZE = 4 -*- */
4 * Copyright (C) 1999, 2000, 2001 gogo develop team
13 /* for only compatibility */
14 #define MUPARAM UPARAM
16 typedef unsigned long UPARAM;
18 #define ME_NOERR (0) // return normally;
\90³
\8fí
\8fI
\97¹
19 #define ME_EMPTYSTREAM (1) // stream becomes empty;
\83X
\83g
\83\8a\81[
\83\80\82ª
\8dÅ
\8cã
\82É
\92B
\82µ
\82½
20 #define ME_HALTED (2) // stopped by user;(
\83\86\81[
\83U
\81[
\82Ì
\8eè
\82É
\82æ
\82è)
\92\86\92f
\82³
\82ê
\82½
21 #define ME_MOREDATA (3)
22 #define ME_INTERNALERROR (10) // internal error;
\93à
\95\94\83G
\83\89\81[
23 #define ME_PARAMERROR (11) // parameters error;
\90Ý
\92è
\82Å
\83p
\83\89\83\81\81[
\83^
\81[
\83G
\83\89\81[
24 #define ME_NOFPU (12) // no FPU;FPU
\82ð
\91\95\92\85\82µ
\82Ä
\82¢
\82È
\82¢!!
25 #define ME_INFILE_NOFOUND (13) // can't open input file;
\93ü
\97Í
\83t
\83@
\83C
\83\8b\82ð
\90³
\82µ
\82
\8aJ
\82¯
\82È
\82¢
26 #define ME_OUTFILE_NOFOUND (14) // can't open output file;
\8fo
\97Í
\83t
\83@
\83C
\83\8b\82ð
\90³
\82µ
\82
\8aJ
\82¯
\82È
\82¢
27 #define ME_FREQERROR (15) // frequency is not good;
\93ü
\8fo
\97Í
\8eü
\94g
\90\94\82ª
\90³
\82µ
\82
\82È
\82¢
28 #define ME_BITRATEERROR (16) // bitrate is not good;
\8fo
\97Í
\83r
\83b
\83g
\83\8c\81[
\83g
\82ª
\90³
\82µ
\82
\82È
\82¢
29 #define ME_WAVETYPE_ERR (17) // WAV format is not good;
\83E
\83F
\81[
\83u
\83^
\83C
\83v
\82ª
\90³
\82µ
\82
\82È
\82¢
30 #define ME_CANNOT_SEEK (18) // can't seek;
\90³
\82µ
\82
\83V
\81[
\83N
\8fo
\97\88\82È
\82¢
31 #define ME_BITRATE_ERR (19) // only for compatibility;
\83r
\83b
\83g
\83\8c\81[
\83g
\90Ý
\92è
\82ª
\90³
\82µ
\82
\82È
\82¢
32 #define ME_BADMODEORLAYER (20) // mode/layer not good;
\83\82\81[
\83h
\81E
\83\8c\83C
\83\84\82Ì
\90Ý
\92è
\88Ù
\8fí
33 #define ME_NOMEMORY (21) // fail to allocate memory;
\83\81\83\82\83\8a\83A
\83\8d\81[
\83P
\81[
\83V
\83\87\83\93\8e¸
\94s
34 #define ME_CANNOT_SET_SCOPE (22) // thread error;
\83X
\83\8c\83b
\83h
\91®
\90«
\83G
\83\89\81[(pthread only)
35 #define ME_CANNOT_CREATE_THREAD (23) // fail to create thear;
\83X
\83\8c\83b
\83h
\90¶
\90¬
\83G
\83\89\81[
36 #define ME_WRITEERROR (24) // lock of capacity of disk;
\8bL
\89¯
\94}
\91Ì
\82Ì
\97e
\97Ê
\95s
\91«
39 // definition of call-back function for user;
\83\86\81[
\83U
\81[
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8aÖ
\90\94\92è
\8b`
40 typedef MERET (*MPGE_USERFUNC)(void *buf, unsigned long nLength );
41 #define MPGE_NULL_FUNC (MPGE_USERFUNC)NULL
43 ///////////////////////////////////////////////////////////////////////////
45 ///////////////////////////////////////////////////////////////////////////
47 #define MC_INPUTFILE (1)
48 // para1 choice of input device
49 #define MC_INPDEV_FILE (0) // input device is file;
\93ü
\97Í
\83f
\83o
\83C
\83X
\82Í
\83t
\83@
\83C
\83\8b
50 #define MC_INPDEV_STDIO (1) // stdin;
\93ü
\97Í
\83f
\83o
\83C
\83X
\82Í
\95W
\8f\80\93ü
\97Í
51 #define MC_INPDEV_USERFUNC (2) // defined by user;
\93ü
\97Í
\83f
\83o
\83C
\83X
\82Í
\83\86\81[
\83U
\81[
\92è
\8b`
52 #define MC_INPDEV_LIBSND (3) // input device is file via LIBSND ;
\93ü
\97Í
\83f
\83o
\83C
\83X
\82Í LIBSND
\8co
\97R
\82Å
\83t
\83@
\83C
\83\8b
53 // para2 (
\95K
\97v
\82Å
\82 \82ê
\82Î)
\83t
\83@
\83C
\83\8b\96¼
\81B
\83|
\83C
\83\93\83^
\82ð
\8ew
\92è
\82·
\82é
54 //
\83\81\83\82\83\8a\82æ
\82è
\83G
\83\93\83R
\81[
\83h
\82Ì
\8e\9e\82Í
\88È
\89º
\82Ì
\8d\
\91¢
\91Ì
\82Ì
\83|
\83C
\83\93\83^
\82ð
\8ew
\92è
\82·
\82é.
55 struct MCP_INPDEV_USERFUNC {
56 MPGE_USERFUNC pUserFunc; // pointer to user-function for call-back or MPGE_NULL_FUNC if none
57 //
\83R
\81[
\83\8b\83o
\83b
\83N
\91Î
\8fÛ
\82Ì
\83\86\81[
\83U
\81[
\8aÖ
\90\94\81B
\96¢
\92è
\8b`
\8e\9eMPGE_NULL_FUNC
\82ð
\91ã
\93ü
58 unsigned int nSize; // size of file or MC_INPDEV_MEMORY_NOSIZE if unknown
59 //
\83t
\83@
\83C
\83\8b\83T
\83C
\83Y
\81B
\95s
\92è
\82Ì
\8e\9e\82Í MC_INPDEV_MEMORY_NOSIZE
\82ð
\8ew
\92è
60 int nBit; // nBit = 8 or 16 ; PCM
\83r
\83b
\83g
\90[
\93x
\82ð
\8ew
\92è
61 int nFreq; // input frequency ;
\93ü
\97Í
\8eü
\94g
\90\94\82Ì
\8ew
\92è
62 int nChn; // number of channel(1 or 2) ;
\83`
\83\83\83l
\83\8b\90\94
64 #define MC_INPDEV_MEMORY_NOSIZE (0xffffffff)
66 Using userfunction input;
67 \83\86\81[
\83U
\81[
\8aÖ
\90\94\97\98\97p
\8e\9e\82Ì
\8b\93\93®
68 ^^^^^^^^^^^^^^^^^^^^^^^^
70 \83\86\81[
\83U
\81[
\82ª
\93o
\98^
\82µ
\82½
\8aÖ
\90\94 UsefFunc
\82É
\91Î
\82µ
\82Ä
\81ADLL
\82æ
\82è
\93Ç
\82Ý
\8d\9e\82Ý
\97v
\8b\81\82ª
\8ds
\82í
\82ê
\82é
\81B
71 MERET UserFunc_input(void *buf, unsigned long nLength );
73 \97v
\8b\81\82ð
\8f\88\97\9d\82·
\82é
\8dÛ
\82É
74 \81Evoid *buf
\82É
\82Í nLength
\83o
\83C
\83g
\95ª
\82Ì
\83f
\81[
\83^
\82ð
\8ai
\94[
\81A return ME_NOERR
\82Å
\94²
\82¯
\82é
75 \81E
\83t
\83@
\83C
\83\8b\82Ì
\8dÅ
\8cã
\82É
\92B
\82µ
\82Ä
\81AnLength
\95ª
\93Ç
\82Ý
\8d\9e\82ß
\82È
\82¢(
\82©
\82Â
\8f
\82È
\82
\82Æ
\82à1
\83o
\83C
\83g
\88È
\8fã
\93Ç
\82Ý
\8d\9e\82ß
\82é)
\8fê
\8d\87\81A
76 memset( buf +
\93Ç
\82Ý
\8d\9e\82ñ
\82¾
\83f
\81[
\83^byte, 0, nLength -
\93Ç
\82Ý
\8d\9e\82ñ
\82¾
\83f
\81[
\83^
\83T
\83C
\83Y) ;
77 \82Æ
\82µ
\82Ä return ME_NOERR
\82·
\82é
\81B
78 \81E
\82P
\83o
\83C
\83g
\82à
\93Ç
\82ß
\82È
\82¢
\8fê
\8d\87\82Í
\81A
\89½
\82à
\82¹
\82¸ return ME_EMPTYSTREAM;
\82Å
\94²
\82¯
\82é
81 ///////////////////////////////////////////////////////////////////////////
82 // for OUTPUT ( now stdout is not support )
83 #define MC_OUTPUTFILE (2)
84 // para1 choice of output device
85 #define MC_OUTDEV_FILE (0) // output device is file;
\8fo
\97Í
\83f
\83o
\83C
\83X
\82Í
\83t
\83@
\83C
\83\8b
86 #define MC_OUTDEV_STDOUT (1) // stdout;
\8fo
\97Í
\83f
\83o
\83C
\83X
\82Í
\95W
\8f\80\8fo
\97Í
87 #define MC_OUTDEV_USERFUNC (2) // defined by user;
\8fo
\97Í
\83f
\83o
\83C
\83X
\82Í
\83\86\81[
\83U
\81[
\92è
\8b`
88 #define MC_OUTDEV_USERFUNC_WITHVBRTAG (3) // defined by user;
\93ü
\97Í
\83f
\83o
\83C
\83X
\82Í
\83\86\81[
\83U
\81[
\92è
\8b`/VBR
\83^
\83O
\8f\91\82«
\8fo
\82µ
89 // para2 pointer to file if necessary ;(
\95K
\97v
\82Å
\82 \82ê
\82Î)
\83t
\83@
\83C
\83\8b\96¼
\81B
\83|
\83C
\83\93\83^
\8ew
\92è
92 Using userfunction output
93 \83\86\81[
\83U
\81[
\8aÖ
\90\94\97\98\97p
\8e\9e\82Ì
\8b\93\93®
94 ^^^^^^^^^^^^^^^^^^^^^^^^
96 \83\86\81[
\83U
\81[
\82ª
\93o
\98^
\82µ
\82½
\8aÖ
\90\94 UsefFunc
\82É
\91Î
\82µ
\82Ä
\81ADLL
\82æ
\82è
\8f\91\8d\9e\82Ý
\97v
\8b\81\82ª
\8ds
\82í
\82ê
\82é
\81B
97 MERET UserFunc_output(void *buf, unsigned long nLength );
99 \97v
\8b\81\82ð
\8f\88\97\9d\82·
\82é
\8dÛ
\82É
100 \81Evoid *buf
\82É
\82Í nLength
\83o
\83C
\83g
\95ª
\82Ì
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82é
\82Ì
\82Å
101 fwrite( buf, 1, nLength, fp );
\82Ì
\97l
\82É
\82µ
\82Ä
\8f\91\82«
\8fo
\82µreturn ME_NOERR
\82Å
\94²
\82¯
\82é.
102 \8f\91\82«
\8fo
\82µ
\82É
\8e¸
\94s
\82µ
\82½
\8e\9e\82Í
\81Areturn ME_WRITEERROR;
\82Å
\94²
\82¯
\82é.
103 \83G
\83\93\83R
\81[
\83h
\8fI
\97¹
\82Ì
\92Ê
\92m/
\8f\88\97\9d\82ÍMC_OUTDEV_USERFUNC
\82ÆMC_OUTDEV_USERFUNC_WITHVBRTAG
\82Å
\88Ù
\82È
\82é
104 (MC_OUTDEV_USERFUNC
\82Ì
\8fê
\8d\87)
105 \81E
\8dÅ
\8cã
\82É buf == NULL
\82Å1
\93x
\8cÄ
\82Ñ
\8fo
\82³
\82ê
\82é. return
\92l
\82Í
\89½
\82Å
\82à
\97Ç
\82¢
\81B
106 (MC_OUTDEV_USERFUNC_WITHVBRTAG
\82Ì
\8fê
\8d\87)
107 \81Ebuf == NULL
\82Å
\8cÄ
\82Ñ
\8fo
\82³
\82ê
\82é.
\82±
\82Ì
\8dÛ
\82É
\83t
\83@
\83C
\83\8b\82Ì
\90æ
\93ª
\82Ö
\83V
\81[
\83N
\82µ
\81A
108 \83t
\83@
\83C
\83\8b\91S
\91Ì
\82Ì
\83T
\83C
\83Y
\82ð return
\82Ì
\92l
\82Æ
\82·
\82é
\81Bfilesize<=0
\82Ì
\8e\9e\82Í
\8fI
\97¹
\81B
109 (
\8cë
\82Á
\82Ä return ME_NOERR;
\82Å
\94²
\82¯
\82È
\82¢
\97l
\82É
\92\8d\88Ó!! )
110 \81EXING-VBR
\83^
\83O
\83f
\81[
\83^
\82ª buf
\82É
\81AXINGVBR
\83^
\83O
\82Ì
\83T
\83C
\83Y
\82ª nLength
\82É
\8ai
\94[
\82³
\82ê
\82Ä
\8cÄ
\82Ñ
\8fo
\82³
\82ê
\82é
\82Ì
\82Å
111 \83t
\83@
\83C
\83\8b\90æ
\93ª
\82©
\82ç
\82»
\82ê
\82ð
\8f\91\82«
\8d\9e\82Þ.
112 \81E
\8dÅ
\8cã
\82É
\82à
\82¤
\88ê
\93xbuf == NULL
\82Å
\8cÄ
\82Ñ
\8fo
\82³
\82ê
\82é. return
\92l
\82Í
\89½
\82Å
\82à
\97Ç
\82¢
\81B
115 ///////////////////////////////////////////////////////////////////////////
116 // mode of encoding ;
\83G
\83\93\83R
\81[
\83h
\83^
\83C
\83v
117 #define MC_ENCODEMODE (3)
118 // para1 mode;
\83\82\81[
\83h
\90Ý
\92è
119 #define MC_MODE_MONO (0) // mono;
\83\82\83m
\83\89\83\8b
120 #define MC_MODE_STEREO (1) // stereo;
\83X
\83e
\83\8c\83I
121 #define MC_MODE_JOINT (2) // joint-stereo;
\83W
\83\87\83C
\83\93\83g
122 #define MC_MODE_MSSTEREO (3) // mid/side stereo;
\83~
\83b
\83h
\83T
\83C
\83h
123 #define MC_MODE_DUALCHANNEL (4) // dual channel;
\83f
\83\85\83A
\83\8b\83`
\83\83\83l
\83\8b
125 ///////////////////////////////////////////////////////////////////////////
126 // bitrate;
\83r
\83b
\83g
\83\8c\81[
\83g
\90Ý
\92è
127 #define MC_BITRATE (4)
128 // para1 bitrate;
\83r
\83b
\83g
\83\8c\81[
\83g
\91¦
\92l
\8ew
\92è
131 ///////////////////////////////////////////////////////////////////////////
132 // frequency of input file (force);
\93ü
\97Í
\82Å
\97p
\82¢
\82é
\83T
\83\93\83v
\83\8b\8eü
\94g
\90\94\82Ì
\8b
\90§
\8ew
\92è
133 #define MC_INPFREQ (5)
134 // para1 frequency;
\93ü
\8fo
\97Í
\82Å
\97p
\82¢
\82é
\83f
\81[
\83^
136 ///////////////////////////////////////////////////////////////////////////
137 // frequency of output mp3 (force);
\8fo
\97Í
\82Å
\97p
\82¢
\82é
\83T
\83\93\83v
\83\8b\8eü
\94g
\90\94\82Ì
\8b
\90§
\8ew
\92è
138 #define MC_OUTFREQ (6)
139 // para1 frequency;
\93ü
\8fo
\97Í
\82Å
\97p
\82¢
\82é
\83f
\81[
\83^
141 ///////////////////////////////////////////////////////////////////////////
142 // size ofheader if you ignore WAV-header (for example cda);
\83G
\83\93\83R
\81[
\83h
\8aJ
\8en
\88Ê
\92u
\82Ì
\8b
\90§
\8ew
\92è(
\83w
\83b
\83_
\82ð
\96³
\8e\8b\82·
\82é
\8e\9e)
143 #define MC_STARTOFFSET (7)
145 ///////////////////////////////////////////////////////////////////////////
146 // psycho-acoustics ON/OFF;
\90S
\97\9d\89ð
\90Í ON/OFF
147 #define MC_USEPSY (8)
148 // PARA1 boolean(TRUE/FALSE)
150 ///////////////////////////////////////////////////////////////////////////
151 // 16kHz low-pass filter ON/OFF;16KHz
\92á
\91Ñ
\88æ
\83t
\83B
\83\8b\83^ ON/OFF
152 #define MC_USELPF16 (9)
153 // PARA1 boolean(TRUE/FALSE)
155 ///////////////////////////////////////////////////////////////////////////
156 // use special UNIT, para1:boolean;
\83\86\83j
\83b
\83g
\8ew
\92è para1:BOOL
\92l
157 #define MC_USEMMX (10) // MMX
158 #define MC_USE3DNOW (11) // 3DNow!
159 #define MC_USESSE (12) // SSE(KNI)
160 #define MC_USEKNI MC_USESSE //
\8cß
\8cã2
\82Æ
\82Ì
\8cÝ
\8a·
\90«
161 #define MC_USEE3DNOW (13) // Enhanced 3D Now!
162 #define MC_USECMOV (38) // CMOV
163 #define MC_USEEMMX (39) // EMMX
164 #define MC_USESSE2 (40) // SSE2
165 /* #define MC_USECLFLUSH (43) // CLFLUSH */
166 #define MC_USEALTIVEC (44) // ALTIVEC
167 #define MC_USESPC1 (14) // special switch for debug
168 #define MC_USESPC2 (15) // special switch for debug
170 ///////////////////////////////////////////////////////////////////////////
171 // addition of TAG;
\83t
\83@
\83C
\83\8b\83^
\83O
\8fî
\95ñ
\95t
\89Á
172 #define MC_ADDTAG (16)
173 // dwPara1 length of TAG;
\83^
\83O
\92·
174 // dwPara2 pointer to TAG;
\83^
\83O
\83f
\81[
\83^
\82Ì
\83|
\83C
\83\93\83^
176 ///////////////////////////////////////////////////////////////////////////
177 // emphasis;
\83G
\83\93\83t
\83@
\83V
\83X
\83^
\83C
\83v
\82Ì
\90Ý
\92è
178 #define MC_EMPHASIS (17)
179 // para1 type of emphasis;
\83G
\83\93\83t
\83@
\83V
\83X
\83^
\83C
\83v
\82Ì
\90Ý
\92è
180 #define MC_EMP_NONE (0) // no empahsis;
\83G
\83\93\83t
\83@
\83V
\83X
\82È
\82µ(dflt)
181 #define MC_EMP_5015MS (1) // 50/15ms ;
\83G
\83\93\83t
\83@
\83V
\83X50/15ms
182 #define MC_EMP_CCITT (3) // CCITT ;
\83G
\83\93\83t
\83@
\83V
\83XCCITT
184 ///////////////////////////////////////////////////////////////////////////
185 // use VBR;VBR
\83^
\83C
\83v
\82Ì
\90Ý
\92è
188 ///////////////////////////////////////////////////////////////////////////
189 // SMP support para1: interger
192 ///////////////////////////////////////////////////////////////////////////
193 // for RAW-PCM;
\88È
\89º4
\82Â
\82ÍRAW-PCM
\82Ì
\90Ý
\92è
\82Ì
\82½
\82ß
194 // byte swapping for 16bitPCM; PCM
\93ü
\97Í
\8e\9e\82Ìlow, high bit
\95Ï
\8a·
195 #define MC_BYTE_SWAP (20)
197 ///////////////////////////////////////////////////////////////////////////
199 #define MC_8BIT_PCM (21)
201 ///////////////////////////////////////////////////////////////////////////
203 #define MC_MONO_PCM (22)
205 ///////////////////////////////////////////////////////////////////////////
207 #define MC_TOWNS_SND (23)
209 ///////////////////////////////////////////////////////////////////////////
210 // BeOS & Win32 Encode thread priority
211 #define MC_THREAD_PRIORITY (24)
212 // (WIN32) dwPara1 MULTITHREAD Priority (THREAD_PRIORITY_**** at WinBASE.h )
214 ///////////////////////////////////////////////////////////////////////////
215 // BeOS Read thread priority
216 //#if defined(USE_BTHREAD)
217 #define MC_READTHREAD_PRIORITY (25)
220 ///////////////////////////////////////////////////////////////////////////
222 #define MC_OUTPUT_FORMAT (26)
224 #define MC_OUTPUT_NORMAL (0) // mp3+TAG(see MC_ADDTAG)
225 #define MC_OUTPUT_RIFF_WAVE (1) // RIFF/WAVE
226 #define MC_OUTPUT_RIFF_RMP (2) // RIFF/RMP
228 ///////////////////////////////////////////////////////////////////////////
229 // LIST/INFO chunk of RIFF/WAVE or RIFF/RMP
230 #define MC_RIFF_INFO (27)
231 // para1 size of info(include info name)
232 // para2 pointer to info
233 // byte offset contents
235 // 4..size of info-1 info
237 ///////////////////////////////////////////////////////////////////////////
238 // verify and overwrite
239 #define MC_VERIFY (28)
241 ///////////////////////////////////////////////////////////////////////////
243 #define MC_OUTPUTDIR (29)
245 ///////////////////////////////////////////////////////////////////////////
246 // VBR
\82Ì
\8dÅ
\92á/
\8dÅ
\8d\82\83r
\83b
\83g
\83\8c\81[
\83g
\82Ì
\90Ý
\92è
247 #define MC_VBRBITRATE (30)
248 // para1
\8dÅ
\92á
\83r
\83b
\83g
\83\8c\81[
\83g (kbps)
249 // para2
\8dÅ
\8d\82\83r
\83b
\83g
\83\8c\81[
\83g (kbps)
252 ///////////////////////////////////////////////////////////////////////////
253 //
\8ag
\92£
\83t
\83B
\83\8b\83^
\82Ì
\8eg
\97p LPF1, LPF2
254 #define MC_ENHANCEDFILTER (31)
255 // para1 LPF1 (0-100) , dflt=auto setting by outfreq
256 // para2 LPF2 (0-100) , dflt=auto setting by outfreq
259 ///////////////////////////////////////////////////////////////////////////
260 // Joint-stereo
\82É
\82¨
\82¯
\82é
\81A
\83X
\83e
\83\8c\83I/MS
\83X
\83e
\83\8c\83I
\82Ì
\90Ø
\82è
\91Ö
\82¦
\82Ìè
\87\92l
261 #define MC_MSTHRESHOLD (32)
262 // para1 threshold (0-100) , dflt=auto setting by outfreq
263 // para2 mspower (0-100) , dflt=auto setting by outfreq
265 ///////////////////////////////////////////////////////////////////////////
268 // t_lang defined in message.h
270 ///////////////////////////////////////////////////////////////////////////
271 //
\93Ç
\82Ý
\8d\9e\82Ý
\83f
\81[
\83^
\82Ì
\8dÅ
\91å
\83T
\83C
\83Y
\90Ý
\92è / max data length ( byte )
272 #define MC_MAXFILELENGTH (34)
273 // para1 maxfilesize (PCM body length, not include wave heaher size.)
274 // (0-0xfffffffd) // as byte
275 #define MC_MAXFLEN_IGNORE (ULONG_MAX) // DEFAULT
276 #define MC_MAXFLEN_WAVEHEADER (ULONG_MAX-1) // WAVE
\83w
\83b
\83_
\82Ì
\92l
\82ð
\8eg
\97p
279 ///////////////////////////////////////////////////////////////////////////
280 //
\8fo
\97Í
\83X
\83g
\83\8a\81[
\83\80\82Ì
\83o
\83b
\83t
\83@
\83\8a\83\93\83O
\83t
\83\89\83O
281 #define MC_OUTSTREAM_BUFFERD (35)
282 // para1 enable(=1) or disable(=0), dflt=enable
283 #define MC_OBUFFER_ENABLE 1 // DEFAULT
284 #define MC_OBUFFER_DISABLE 0
286 //
\88È
\89º
\82Í
\82Õ
\82¿
\8cß
\8cã
\90V
\90Ý
288 ///////////////////////////////////////////////////////////////////////////
289 // quality (same as lame-option `-q')
290 #define MC_ENCODE_QUALITY (36)
291 // 1(high quality) <= para1 <= 9(low quality)
298 ///////////////////////////////////////////////////////////////////////////
299 // use ABR;ABR
\83^
\83C
\83v
\82Ì
\90Ý
\92è
302 ///////////////////////////////////////////////////////////////////////////
303 //
\91\9d\90Ý
\82³
\82ê
\82½CPU
\83^
\83C
\83v
\82Ì
\90Ý
\92è
304 // defined in `use special UNIT'
305 //#define MC_USECMOV (38) // CMOV
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
306 //#define MC_USEEMMX (39) // EMMX
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
307 //#define MC_USESSE2 (40) // SSE2
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
309 ///////////////////////////////////////////////////////////////////////////
310 // LAME
\83^
\83O
\82Ì
\8fo
\97Í
\90Ý
\92è (
\95¹
\82¹
\82ÄVBR
\83^
\83O
\82Ì
\8f\91\82«
\8fo
\82µ
\82ð
\97L
\8cø
\82É
\82µ
\82Ä
\82
\82¾
\82³
\82¢)
311 #define MC_WRITELAMETAG (41)
312 /// para1: 0 = disable (default)
315 ///////////////////////////////////////////////////////////////////////////
316 // VBR
\83^
\83O
\82Ì
\8fo
\97Í
\90Ý
\92è (CBR
\82Å
\82È
\82¨
\82©
\82Âlametag
\96³
\8cø
\8e\9e\82Í
\90Ý
\92è
\93à
\97e
\82É
\8aÖ
\8cW
\82È
\82
\96³
\8cø
\82Å
\82·)
317 #define MC_WRITEVBRTAG (42)
318 /// para1: 0 = disable
319 /// 1 = enable (default)
322 ///////////////////////////////////////////////////////////////////////////
324 ///////////////////////////////////////////////////////////////////////////
325 #ifdef GOGO_DLL_EXPORTS
326 #define EXPORT __declspec(dllexport) __cdecl
327 #define EXPORT_VB __declspec(dllexport) __stdcall
333 MERET EXPORT MPGE_initializeWork(void);
334 MERET EXPORT MPGE_setConfigure(UPARAM mode, UPARAM dwPara1, UPARAM dwPara2);
335 MERET EXPORT MPGE_getConfigure(UPARAM mode, void *para1);
336 MERET EXPORT MPGE_detectConfigure(void);
337 MERET EXPORT MPGE_processFrame(void);
338 MERET EXPORT MPGE_closeCoder(void);
339 MERET EXPORT MPGE_endCoder(void);
340 MERET EXPORT MPGE_getUnitStates( unsigned long *unit );
341 MERET EXPORT MPGE_processTrack(void);
343 // This function is effective for gogo.dll;
\82±
\82Ì
\83t
\83@
\83\93\83N
\83V
\83\87\83\93\82ÍDLL
\83o
\81[
\83W
\83\87\83\93\82Ì
\82Ý
\97L
\8cø
344 MERET EXPORT MPGE_getVersion( unsigned long *vercode, char *verstring );
345 #define MGV_BUFLENGTH 260
346 // vercode = 0x125 -> version 1.25
347 // verstring -> "ver 1.25 1999/09/25" (allocate abobe 260bytes buffer)
350 ////////////////////////////////////////////////////////////////////////////
351 // for getting configuration
352 ////////////////////////////////////////////////////////////////////////////
354 #define MG_INPUTFILE (1) // name of input file ;
\93ü
\97Í
\83t
\83@
\83C
\83\8b\96¼
\8eæ
\93¾
355 #define MG_OUTPUTFILE (2) // name of output file;
\8fo
\97Í
\83t
\83@
\83C
\83\8b\96¼
\8eæ
\93¾
356 #define MG_ENCODEMODE (3) // type of encoding ;
\83G
\83\93\83R
\81[
\83h
\83\82\81[
\83h
357 #define MG_BITRATE (4) // bitrate ;
\83r
\83b
\83g
\83\8c\81[
\83g
358 #define MG_INPFREQ (5) // input frequency ;
\93ü
\97Í
\8eü
\94g
\90\94
359 #define MG_OUTFREQ (6) // output frequency ;
\8fo
\97Í
\8eü
\94g
\90\94
360 #define MG_STARTOFFSET (7) // offset of input PCM;
\83X
\83^
\81[
\83g
\83I
\83t
\83Z
\83b
\83g
361 #define MG_USEPSY (8) // psycho-acoustics ;
\90S
\97\9d\89ð
\90Í
\82ð
\8eg
\97p
\82·
\82é/
\82µ
\82È
\82¢
362 #define MG_USEMMX (9) // MMX
363 #define MG_USE3DNOW (10) // 3DNow!
364 #define MG_USESSE (11) // SSE(KNI)
365 #define MG_USEKNI MG_USESSE //
\8cß
\8cã2
\82Æ
\82Ì
\8cÝ
\8a·
\90«
366 #define MG_USEE3DNOW (12) // Enhanced 3DNow!
367 #define MG_USECMOV (20) // CMOV
368 #define MG_USEEMMX (21) // EMMX
369 #define MG_USESSE2 (22) // SSE2
370 #define MG_CLFLUSH (23) // CLFLUSH
371 #define MG_USEALTIVEC (24) // ALTIVEC
372 #define MG_USESPC1 (13) // special switch for debug
373 #define MG_USESPC2 (14) // special switch for debug
374 #define MG_COUNT_FRAME (15) // amount of frame
375 #define MG_NUM_OF_SAMPLES (16) // number of sample for 1 frame;1
\83t
\83\8c\81[
\83\80\82 \82½
\82è
\82Ì
\83T
\83\93\83v
\83\8b\90\94
376 #define MG_MPEG_VERSION (17) // MPEG VERSION
377 #define MG_READTHREAD_PRIORITY (18) // thread priority to read for BeOS
378 #define MG_FRAME (19) // frame number
379 //#define MG_USECMOV (20) // CMOV
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
380 //#define MG_USEEMMX (21) // EMMX
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
381 //#define MG_USESSE2 (22) // SSE2
\8fã
\82Å
\92è
\8b`
\8dÏ
\82Ý
385 ////////////////////////////////////////////////////////////////////////////
386 // for MPGE_getUnitStates()
387 ////////////////////////////////////////////////////////////////////////////
389 #define MU_tFPU (1<<0)
390 #define MU_tMMX (1<<1)
391 #define MU_t3DN (1<<2)
392 #define MU_tSSE (1<<3)
393 #define MU_tCMOV (1<<4)
394 #define MU_tE3DN (1<<5) /* for Athlon(Externd 3D Now!) */
395 #define MU_tEMMX (1<<6) /* EMMX = E3DNow!_INT = SSE_INT */
396 #define MU_tSSE2 (1<<7)
397 #define MU_tCLFLUSH (1<<18)
398 #define MU_tMULTI (1<<12) /* for Multi-threaded encoder. Never set on UP or in the binary linked w/o multithread lib. */
401 #define MU_tINTEL (1<<8)
402 #define MU_tAMD (1<<9)
403 #define MU_tCYRIX (1<<10)
404 #define MU_tIDT (1<<11)
405 #define MU_tUNKNOWN (1<<15) /* unknown vendor */
408 #define MU_tSPC1 (1<<16) /* special flag */
409 #define MU_tSPC2 (1<<17) /* freely available */
411 #define MU_tFAMILY4 (1<<20) /* 486 vendor maybe isn't correct */
412 #define MU_tFAMILY5 (1<<21) /* 586 (P5, P5-MMX, K6, K6-2, K6-III) */
413 #define MU_tFAMILY6 (1<<22) /* 686 above P-Pro, P-II, P-III, Athlon */
414 #define MU_tFAMILY7 (1<<23) /* Pentium IV ? */
417 #define MU_tPPC (1<<0)
418 #define MU_tGRAP (1<<1) /* fres, frsqrte, fsel */
419 #define MU_tFSQRT (1<<2) /* fsqrt, fsqrts */
420 #define MU_tALTIVEC (1<<3) /* AltiVec */