~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.2.1/third_party/mp3/BladeMP3EncDLL.h

  • Committer: Package Import Robot
  • Author(s): Francois Marier, Francois Marier, Mark Purcell
  • Date: 2014-10-18 15:08:50 UTC
  • mfrom: (1.1.12)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20141018150850-2exfk34ckb15pcwi
Tags: 1.4.1-0.1
[ Francois Marier ]
* Non-maintainer upload
* New upstream release (closes: #759576, #741130)
  - debian/rules +PJPROJECT_VERSION := 2.2.1
  - add upstream patch to fix broken TLS support
  - add patch to fix pjproject regression

[ Mark Purcell ]
* Build-Depends:
  - sflphone-daemon + libavformat-dev, libavcodec-dev, libswscale-dev,
  libavdevice-dev, libavutil-dev
  - sflphone-gnome + libclutter-gtk-1.0-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Blade Type of DLL Interface for Lame encoder
 
3
 *
 
4
 * Copyright (c) 1999-2002 A.L. Faber
 
5
 * Based on bladedll.h version 1.0 written by Jukka Poikolainen
 
6
 *
 
7
 * This library is free software; you can redistribute it and/or
 
8
 * modify it under the terms of the GNU Lesser General Public
 
9
 * License as published by the Free Software Foundation; either
 
10
 * version 2 of the License, or (at your option) any later version.
 
11
 * 
 
12
 * This library is distributed in the hope that it will be useful,
 
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
 * Lesser General Public License for more details.
 
16
 * 
 
17
 * You should have received a copy of the GNU Lesser General Public
 
18
 * License along with this library; if not, write to the
 
19
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
20
 * Boston, MA  02111-1307, USA.
 
21
 */
 
22
 
 
23
//#define _BLADEDLL 1
 
24
 
 
25
#ifndef ___BLADEDLL_H_INCLUDED___
 
26
#define ___BLADEDLL_H_INCLUDED___
 
27
 
 
28
#ifdef __GNUC__
 
29
//#define ATTRIBUTE_PACKED      __attribute__((packed))
 
30
#define ATTRIBUTE_PACKED
 
31
#else
 
32
#define ATTRIBUTE_PACKED
 
33
#pragma pack(push)
 
34
#pragma pack(1)
 
35
#endif
 
36
 
 
37
#ifdef  __cplusplus
 
38
extern "C" {
 
39
#endif
 
40
 
 
41
/* encoding formats */
 
42
 
 
43
#define         BE_CONFIG_MP3                   0                                                                               
 
44
#define         BE_CONFIG_LAME                  256             
 
45
 
 
46
/* type definitions */
 
47
 
 
48
typedef         unsigned long                   HBE_STREAM;
 
49
typedef         HBE_STREAM                              *PHBE_STREAM;
 
50
typedef         unsigned long                   BE_ERR;
 
51
 
 
52
/* error codes */
 
53
 
 
54
#define         BE_ERR_SUCCESSFUL                                       0x00000000
 
55
#define         BE_ERR_INVALID_FORMAT                           0x00000001
 
56
#define         BE_ERR_INVALID_FORMAT_PARAMETERS        0x00000002
 
57
#define         BE_ERR_NO_MORE_HANDLES                          0x00000003
 
58
#define         BE_ERR_INVALID_HANDLE                           0x00000004
 
59
#define         BE_ERR_BUFFER_TOO_SMALL                         0x00000005
 
60
 
 
61
/* other constants */
 
62
 
 
63
#define         BE_MAX_HOMEPAGE                 128
 
64
 
 
65
/* format specific variables */
 
66
 
 
67
#define         BE_MP3_MODE_STEREO              0
 
68
#define         BE_MP3_MODE_JSTEREO             1
 
69
#define         BE_MP3_MODE_DUALCHANNEL 2
 
70
#define         BE_MP3_MODE_MONO                3
 
71
 
 
72
 
 
73
 
 
74
#define         MPEG1   1
 
75
#define         MPEG2   0
 
76
 
 
77
#ifdef _BLADEDLL
 
78
#undef FLOAT
 
79
        #include <Windows.h>
 
80
#endif
 
81
 
 
82
#define CURRENT_STRUCT_VERSION 1
 
83
#define CURRENT_STRUCT_SIZE sizeof(BE_CONFIG)   // is currently 331 bytes
 
84
 
 
85
 
 
86
typedef enum
 
87
{
 
88
        VBR_METHOD_NONE                 = -1,
 
89
        VBR_METHOD_DEFAULT              =  0,
 
90
        VBR_METHOD_OLD                  =  1,
 
91
        VBR_METHOD_NEW                  =  2,
 
92
        VBR_METHOD_MTRH                 =  3,
 
93
        VBR_METHOD_ABR                  =  4
 
94
} VBRMETHOD;
 
95
 
 
96
typedef enum 
 
97
{
 
98
        LQP_NOPRESET                    =-1,
 
99
 
 
100
        // QUALITY PRESETS
 
101
        LQP_NORMAL_QUALITY              = 0,
 
102
        LQP_LOW_QUALITY                 = 1,
 
103
        LQP_HIGH_QUALITY                = 2,
 
104
        LQP_VOICE_QUALITY               = 3,
 
105
        LQP_R3MIX                               = 4,
 
106
        LQP_VERYHIGH_QUALITY    = 5,
 
107
        LQP_STANDARD                    = 6,
 
108
        LQP_FAST_STANDARD               = 7,
 
109
        LQP_EXTREME                             = 8,
 
110
        LQP_FAST_EXTREME                = 9,
 
111
        LQP_INSANE                              = 10,
 
112
        LQP_ABR                                 = 11,
 
113
        LQP_CBR                                 = 12,
 
114
        LQP_MEDIUM                              = 13,
 
115
        LQP_FAST_MEDIUM                 = 14,
 
116
 
 
117
        // NEW PRESET VALUES
 
118
        LQP_PHONE       =1000,
 
119
        LQP_SW          =2000,
 
120
        LQP_AM          =3000,
 
121
        LQP_FM          =4000,
 
122
        LQP_VOICE       =5000,
 
123
        LQP_RADIO       =6000,
 
124
        LQP_TAPE        =7000,
 
125
        LQP_HIFI        =8000,
 
126
        LQP_CD          =9000,
 
127
        LQP_STUDIO      =10000
 
128
 
 
129
} LAME_QUALITY_PRESET;
 
130
 
 
131
 
 
132
 
 
133
typedef struct  {
 
134
        unsigned long   dwConfig;                       // BE_CONFIG_XXXXX
 
135
                                                                // Currently only BE_CONFIG_MP3 is supported
 
136
        union   {
 
137
 
 
138
                struct  {
 
139
 
 
140
                        unsigned long   dwSampleRate;           // 48000, 44100 and 32000 allowed
 
141
                        unsigned char   byMode;                 // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO
 
142
                        unsigned short  wBitrate;               // 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed
 
143
                        int     bPrivate;               
 
144
                        int     bCRC;
 
145
                        int     bCopyright;
 
146
                        int     bOriginal;
 
147
 
 
148
                        } mp3;                                  // BE_CONFIG_MP3
 
149
 
 
150
                        struct
 
151
                        {
 
152
                        // STRUCTURE INFORMATION
 
153
                        unsigned long                   dwStructVersion;        
 
154
                        unsigned long                   dwStructSize;
 
155
 
 
156
                        // BASIC ENCODER SETTINGS
 
157
                        unsigned long                   dwSampleRate;           // SAMPLERATE OF INPUT FILE
 
158
                        unsigned long                   dwReSampleRate;         // DOWNSAMPLERATE, 0=ENCODER DECIDES  
 
159
                        long                    nMode;                          // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO
 
160
                        unsigned long                   dwBitrate;                      // CBR bitrate, VBR min bitrate
 
161
                        unsigned long                   dwMaxBitrate;           // CBR ignored, VBR Max bitrate
 
162
                        long                    nPreset;                        // Quality preset, use one of the settings of the LAME_QUALITY_PRESET enum
 
163
                        unsigned long                   dwMpegVersion;          // FUTURE USE, MPEG-1 OR MPEG-2
 
164
                        unsigned long                   dwPsyModel;                     // FUTURE USE, SET TO 0
 
165
                        unsigned long                   dwEmphasis;                     // FUTURE USE, SET TO 0
 
166
 
 
167
                        // BIT STREAM SETTINGS
 
168
                        int                     bPrivate;                       // Set Private Bit (TRUE/FALSE)
 
169
                        int                     bCRC;                           // Insert CRC (TRUE/FALSE)
 
170
                        int                     bCopyright;                     // Set Copyright Bit (TRUE/FALSE)
 
171
                        int                     bOriginal;                      // Set Original Bit (TRUE/FALSE)
 
172
                        
 
173
                        // VBR STUFF
 
174
                        int                     bWriteVBRHeader;        // WRITE XING VBR HEADER (TRUE/FALSE)
 
175
                        int                     bEnableVBR;                     // USE VBR ENCODING (TRUE/FALSE)
 
176
                        int                             nVBRQuality;            // VBR QUALITY 0..9
 
177
                        unsigned long                   dwVbrAbr_bps;           // Use ABR in stead of nVBRQuality
 
178
                        VBRMETHOD               nVbrMethod;
 
179
                        int                     bNoRes;                         // Disable Bit resorvoir (TRUE/FALSE)
 
180
 
 
181
                        // MISC SETTINGS
 
182
                        int                     bStrictIso;                     // Use strict ISO encoding rules (TRUE/FALSE)
 
183
                        unsigned short                  nQuality;                       // Quality Setting, HIGH unsigned char should be NOT LOW byte, otherwhise quality=5
 
184
 
 
185
                        // FUTURE USE, SET TO 0, align strucutre to 331 bytes
 
186
                        unsigned char                   btReserved[255-4*sizeof(unsigned long) - sizeof( unsigned short )];
 
187
 
 
188
                        } LHV1;                                 // LAME header version 1
 
189
 
 
190
                struct  {
 
191
 
 
192
                        unsigned long   dwSampleRate;
 
193
                        unsigned char   byMode;
 
194
                        unsigned short  wBitrate;
 
195
                        unsigned char   byEncodingMethod;
 
196
 
 
197
                } aac;
 
198
 
 
199
        } format;
 
200
                
 
201
} BE_CONFIG, *PBE_CONFIG ATTRIBUTE_PACKED;
 
202
 
 
203
 
 
204
typedef struct  {
 
205
 
 
206
        // BladeEnc DLL Version number
 
207
 
 
208
        unsigned char   byDLLMajorVersion;
 
209
        unsigned char   byDLLMinorVersion;
 
210
 
 
211
        // BladeEnc Engine Version Number
 
212
 
 
213
        unsigned char   byMajorVersion;
 
214
        unsigned char   byMinorVersion;
 
215
 
 
216
        // DLL Release date
 
217
 
 
218
        unsigned char   byDay;
 
219
        unsigned char   byMonth;
 
220
        unsigned short  wYear;
 
221
 
 
222
        // BladeEnc     Homepage URL
 
223
 
 
224
        char    zHomepage[BE_MAX_HOMEPAGE + 1]; 
 
225
 
 
226
        unsigned char   byAlphaLevel;
 
227
        unsigned char   byBetaLevel;
 
228
        unsigned char   byMMXEnabled;
 
229
 
 
230
        unsigned char   btReserved[125];
 
231
 
 
232
 
 
233
} BE_VERSION, *PBE_VERSION ATTRIBUTE_PACKED;
 
234
 
 
235
#ifndef _BLADEDLL
 
236
 
 
237
typedef unsigned long   (*BEINITSTREAM)                 (PBE_CONFIG, unsigned long *, unsigned long *, PHBE_STREAM);
 
238
typedef unsigned long   (*BEENCODECHUNK)                (HBE_STREAM, unsigned long, short *, unsigned char *, unsigned long *);
 
239
 
 
240
// added for floating point audio  -- DSPguru, jd
 
241
typedef unsigned long   (*BEENCODECHUNKFLOATS16NI)      (HBE_STREAM, unsigned long, float *, float *, unsigned char *, unsigned long *);
 
242
typedef unsigned long   (*BEDEINITSTREAM)                       (HBE_STREAM, unsigned char *, unsigned long *);
 
243
typedef unsigned long   (*BECLOSESTREAM)                        (HBE_STREAM);
 
244
typedef void    (*BEVERSION)                            (PBE_VERSION);
 
245
typedef unsigned long   (*BEWRITEVBRHEADER)                     (const char*);
 
246
typedef unsigned long   (*BEWRITEINFOTAG)                       (HBE_STREAM, const char * );
 
247
 
 
248
#define TEXT_BEINITSTREAM                               "beInitStream"
 
249
#define TEXT_BEENCODECHUNK                              "beEncodeChunk"
 
250
#define TEXT_BEENCODECHUNKFLOATS16NI    "beEncodeChunkFloatS16NI"
 
251
#define TEXT_BEDEINITSTREAM                             "beDeinitStream"
 
252
#define TEXT_BECLOSESTREAM                              "beCloseStream"
 
253
#define TEXT_BEVERSION                                  "beVersion"
 
254
#define TEXT_BEWRITEVBRHEADER                   "beWriteVBRHeader"
 
255
#define TEXT_BEFLUSHNOGAP                               "beFlushNoGap"
 
256
#define TEXT_BEWRITEINFOTAG                             "beWriteInfoTag"
 
257
 
 
258
 
 
259
#else
 
260
 
 
261
__declspec(dllexport) unsigned long     beInitStream(PBE_CONFIG pbeConfig, Punsigned long dwSamples, Punsigned long dwBufferSize, PHBE_STREAM phbeStream);
 
262
__declspec(dllexport) unsigned long     beEncodeChunk(HBE_STREAM hbeStream, unsigned long nSamples, PSHORT pSamples, Punsigned char pOutput, Punsigned long pdwOutput);
 
263
 
 
264
// added for floating point audio  -- DSPguru, jd
 
265
__declspec(dllexport) unsigned long     beEncodeChunkFloatS16NI(HBE_STREAM hbeStream, unsigned long nSamples, PFLOAT buffer_l, PFLOAT buffer_r, Punsigned char pOutput, Punsigned long pdwOutput);
 
266
__declspec(dllexport) unsigned long     beDeinitStream(HBE_STREAM hbeStream, Punsigned char pOutput, Punsigned long pdwOutput);
 
267
__declspec(dllexport) unsigned long     beCloseStream(HBE_STREAM hbeStream);
 
268
__declspec(dllexport) VOID              beVersion(PBE_VERSION pbeVersion);
 
269
__declspec(dllexport) unsigned long     beWriteVBRHeader(LPCSTR lpszFileName);
 
270
__declspec(dllexport) unsigned long     beFlushNoGap(HBE_STREAM hbeStream, Punsigned char pOutput, Punsigned long pdwOutput);
 
271
__declspec(dllexport) unsigned long     beWriteInfoTag( HBE_STREAM hbeStream, LPCSTR lpszFileName );
 
272
 
 
273
#endif
 
274
 
 
275
#ifndef __GNUC__
 
276
#pragma pack(pop)
 
277
#endif
 
278
 
 
279
#ifdef  __cplusplus
 
280
}
 
281
#endif
 
282
 
 
283
#endif