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

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.1.0/third_party/gsm/src/gsm_implode.c

  • 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
 
 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
3
 
 * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
4
 
 * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
5
 
 */
6
 
 
7
 
/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_implode.c,v 1.2 1996/07/02 14:32:43 jutta Exp jutta $ */
8
 
 
9
 
#include "private.h"
10
 
 
11
 
#include "gsm.h"
12
 
#include "proto.h"
13
 
 
14
 
void gsm_implode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c)
15
 
{
16
 
        /*      variable        size    index
17
 
 
18
 
                GSM_MAGIC       4       -
19
 
 
20
 
                LARc[0]         6       0
21
 
                LARc[1]         6       1
22
 
                LARc[2]         5       2
23
 
                LARc[3]         5       3
24
 
                LARc[4]         4       4
25
 
                LARc[5]         4       5
26
 
                LARc[6]         3       6
27
 
                LARc[7]         3       7
28
 
 
29
 
                Nc[0]           7       8
30
 
                bc[0]           2       9
31
 
                Mc[0]           2       10
32
 
                xmaxc[0]        6       11
33
 
                xmc[0]          3       12
34
 
                xmc[1]          3       13
35
 
                xmc[2]          3       14
36
 
                xmc[3]          3       15
37
 
                xmc[4]          3       16
38
 
                xmc[5]          3       17
39
 
                xmc[6]          3       18
40
 
                xmc[7]          3       19
41
 
                xmc[8]          3       20
42
 
                xmc[9]          3       21
43
 
                xmc[10]         3       22
44
 
                xmc[11]         3       23
45
 
                xmc[12]         3       24
46
 
 
47
 
                Nc[1]           7       25
48
 
                bc[1]           2       26
49
 
                Mc[1]           2       27
50
 
                xmaxc[1]        6       28
51
 
                xmc[13]         3       29
52
 
                xmc[14]         3       30
53
 
                xmc[15]         3       31
54
 
                xmc[16]         3       32
55
 
                xmc[17]         3       33
56
 
                xmc[18]         3       34
57
 
                xmc[19]         3       35
58
 
                xmc[20]         3       36
59
 
                xmc[21]         3       37
60
 
                xmc[22]         3       38
61
 
                xmc[23]         3       39
62
 
                xmc[24]         3       40
63
 
                xmc[25]         3       41
64
 
 
65
 
                Nc[2]           7       42
66
 
                bc[2]           2       43
67
 
                Mc[2]           2       44
68
 
                xmaxc[2]        6       45
69
 
                xmc[26]         3       46
70
 
                xmc[27]         3       47
71
 
                xmc[28]         3       48
72
 
                xmc[29]         3       49
73
 
                xmc[30]         3       50
74
 
                xmc[31]         3       51
75
 
                xmc[32]         3       52
76
 
                xmc[33]         3       53
77
 
                xmc[34]         3       54
78
 
                xmc[35]         3       55
79
 
                xmc[36]         3       56
80
 
                xmc[37]         3       57
81
 
                xmc[38]         3       58
82
 
 
83
 
                Nc[3]           7       59
84
 
                bc[3]           2       60
85
 
                Mc[3]           2       61
86
 
                xmaxc[3]        6       62
87
 
                xmc[39]         3       63
88
 
                xmc[40]         3       64
89
 
                xmc[41]         3       65
90
 
                xmc[42]         3       66
91
 
                xmc[43]         3       67
92
 
                xmc[44]         3       68
93
 
                xmc[45]         3       69
94
 
                xmc[46]         3       70
95
 
                xmc[47]         3       71
96
 
                xmc[48]         3       72
97
 
                xmc[49]         3       73
98
 
                xmc[50]         3       74
99
 
                xmc[51]         3       75
100
 
        */
101
 
 
102
 
        /*      There are 76 parameters per frame.  The first eight are
103
 
         *      unique.  The remaining 68 are four identical subframes of
104
 
         *      17 parameters each.  gsm_implode converts from a representation
105
 
         *      of these parameters as values in one array of signed words
106
 
         *      to the "packed" version of a GSM frame.
107
 
         */
108
 
 
109
 
#       define  LARc    source
110
 
#       define  Nc      *((gsm_signal (*) [17])(source + 8))
111
 
#       define  bc      *((gsm_signal (*) [17])(source + 9))
112
 
#       define  Mc      *((gsm_signal (*) [17])(source + 10))
113
 
#       define  xmaxc   *((gsm_signal (*) [17])(source + 11))
114
 
 
115
 
#ifdef WAV49
116
 
        if (s->wav_fmt) {
117
 
 
118
 
                uword sr = 0;
119
 
                if (s->frame_index) {
120
 
                        sr = sr >> 6 | LARc[0] << 10;
121
 
                        sr = sr >> 6 | LARc[1] << 10;
122
 
                        *c++ = sr >> 4;
123
 
                        sr = sr >> 5 | LARc[2] << 11;
124
 
                        *c++ = sr >> 7;
125
 
                        sr = sr >> 5 | LARc[3] << 11;
126
 
                        sr = sr >> 4 | LARc[4] << 12;
127
 
                        *c++ = sr >> 6;
128
 
                        sr = sr >> 4 | LARc[5] << 12;
129
 
                        sr = sr >> 3 | LARc[6] << 13;
130
 
                        *c++ = sr >> 7;
131
 
                        sr = sr >> 3 | LARc[7] << 13;
132
 
                        sr = sr >> 7 | Nc[0] << 9;
133
 
                        *c++ = sr >> 5;
134
 
                        sr = sr >> 2 | bc[0] << 14;
135
 
                        sr = sr >> 2 | Mc[0] << 14;
136
 
                        sr = sr >> 6 | xmaxc[0] << 10;
137
 
                        *c++ = sr >> 3;
138
 
#undef xmc
139
 
#define xmc     (source + 12)
140
 
 
141
 
                        sr = sr >> 3 | xmc[0] << 13;
142
 
                        *c++ = sr >> 8;
143
 
                        sr = sr >> 3 | xmc[1] << 13;
144
 
                        sr = sr >> 3 | xmc[2] << 13;
145
 
                        sr = sr >> 3 | xmc[3] << 13;
146
 
                        *c++ = sr >> 7;
147
 
                        sr = sr >> 3 | xmc[4] << 13;
148
 
                        sr = sr >> 3 | xmc[5] << 13;
149
 
                        sr = sr >> 3 | xmc[6] << 13;
150
 
                        *c++ = sr >> 6;
151
 
                        sr = sr >> 3 | xmc[7] << 13;
152
 
                        sr = sr >> 3 | xmc[8] << 13;
153
 
                        *c++ = sr >> 8;
154
 
                        sr = sr >> 3 | xmc[9] << 13;
155
 
                        sr = sr >> 3 | xmc[10] << 13;
156
 
                        sr = sr >> 3 | xmc[11] << 13;
157
 
                        *c++ = sr >> 7;
158
 
                        sr = sr >> 3 | xmc[12] << 13;
159
 
                        sr = sr >> 7 | Nc[1] << 9;
160
 
                        *c++ = sr >> 5;
161
 
                        sr = sr >> 2 | bc[1] << 14;
162
 
                        sr = sr >> 2 | Mc[1] << 14;
163
 
                        sr = sr >> 6 | xmaxc[1] << 10;
164
 
                        *c++ = sr >> 3;
165
 
#undef  xmc
166
 
#define xmc     (source + 29 - 13)
167
 
 
168
 
                        sr = sr >> 3 | xmc[13] << 13;
169
 
                        *c++ = sr >> 8;
170
 
                        sr = sr >> 3 | xmc[14] << 13;
171
 
                        sr = sr >> 3 | xmc[15] << 13;
172
 
                        sr = sr >> 3 | xmc[16] << 13;
173
 
                        *c++ = sr >> 7;
174
 
                        sr = sr >> 3 | xmc[17] << 13;
175
 
                        sr = sr >> 3 | xmc[18] << 13;
176
 
                        sr = sr >> 3 | xmc[19] << 13;
177
 
                        *c++ = sr >> 6;
178
 
                        sr = sr >> 3 | xmc[20] << 13;
179
 
                        sr = sr >> 3 | xmc[21] << 13;
180
 
                        *c++ = sr >> 8;
181
 
                        sr = sr >> 3 | xmc[22] << 13;
182
 
                        sr = sr >> 3 | xmc[23] << 13;
183
 
                        sr = sr >> 3 | xmc[24] << 13;
184
 
                        *c++ = sr >> 7;
185
 
                        sr = sr >> 3 | xmc[25] << 13;
186
 
                        sr = sr >> 7 | Nc[2] << 9;
187
 
                        *c++ = sr >> 5;
188
 
                        sr = sr >> 2 | bc[2] << 14;
189
 
                        sr = sr >> 2 | Mc[2] << 14;
190
 
                        sr = sr >> 6 | xmaxc[2] << 10;
191
 
                        *c++ = sr >> 3;
192
 
#undef  xmc
193
 
#define xmc     (source + 46 - 26)
194
 
 
195
 
                        sr = sr >> 3 | xmc[26] << 13;
196
 
                        *c++ = sr >> 8;
197
 
                        sr = sr >> 3 | xmc[27] << 13;
198
 
                        sr = sr >> 3 | xmc[28] << 13;
199
 
                        sr = sr >> 3 | xmc[29] << 13;
200
 
                        *c++ = sr >> 7;
201
 
                        sr = sr >> 3 | xmc[30] << 13;
202
 
                        sr = sr >> 3 | xmc[31] << 13;
203
 
                        sr = sr >> 3 | xmc[32] << 13;
204
 
                        *c++ = sr >> 6;
205
 
                        sr = sr >> 3 | xmc[33] << 13;
206
 
                        sr = sr >> 3 | xmc[34] << 13;
207
 
                        *c++ = sr >> 8;
208
 
                        sr = sr >> 3 | xmc[35] << 13;
209
 
                        sr = sr >> 3 | xmc[36] << 13;
210
 
                        sr = sr >> 3 | xmc[37] << 13;
211
 
                        *c++ = sr >> 7;
212
 
                        sr = sr >> 3 | xmc[38] << 13;
213
 
                        sr = sr >> 7 | Nc[3] << 9;
214
 
                        *c++ = sr >> 5;
215
 
                        sr = sr >> 2 | bc[3] << 14;
216
 
                        sr = sr >> 2 | Mc[3] << 14;
217
 
                        sr = sr >> 6 | xmaxc[3] << 10;
218
 
                        *c++ = sr >> 3;
219
 
#undef  xmc
220
 
#define xmc     (source + 63 - 39)
221
 
 
222
 
                        sr = sr >> 3 | xmc[39] << 13;
223
 
                        *c++ = sr >> 8;
224
 
                        sr = sr >> 3 | xmc[40] << 13;
225
 
                        sr = sr >> 3 | xmc[41] << 13;
226
 
                        sr = sr >> 3 | xmc[42] << 13;
227
 
                        *c++ = sr >> 7;
228
 
                        sr = sr >> 3 | xmc[43] << 13;
229
 
                        sr = sr >> 3 | xmc[44] << 13;
230
 
                        sr = sr >> 3 | xmc[45] << 13;
231
 
                        *c++ = sr >> 6;
232
 
                        sr = sr >> 3 | xmc[46] << 13;
233
 
                        sr = sr >> 3 | xmc[47] << 13;
234
 
                        *c++ = sr >> 8;
235
 
                        sr = sr >> 3 | xmc[48] << 13;
236
 
                        sr = sr >> 3 | xmc[49] << 13;
237
 
                        sr = sr >> 3 | xmc[50] << 13;
238
 
                        *c++ = sr >> 7;
239
 
                        sr = sr >> 3 | xmc[51] << 13;
240
 
                        sr = sr >> 4;
241
 
                        *c = sr >> 8;
242
 
                        s->frame_chain = *c;
243
 
                }
244
 
                else {
245
 
                        sr = sr >> 4 | s->frame_chain << 12;
246
 
                        sr = sr >> 6 | LARc[0] << 10;
247
 
                        *c++ = sr >> 6;
248
 
                        sr = sr >> 6 | LARc[1] << 10;
249
 
                        *c++ = sr >> 8;
250
 
                        sr = sr >> 5 | LARc[2] << 11;
251
 
                        sr = sr >> 5 | LARc[3] << 11;
252
 
                        *c++ = sr >> 6;
253
 
                        sr = sr >> 4 | LARc[4] << 12;
254
 
                        sr = sr >> 4 | LARc[5] << 12;
255
 
                        *c++ = sr >> 6;
256
 
                        sr = sr >> 3 | LARc[6] << 13;
257
 
                        sr = sr >> 3 | LARc[7] << 13;
258
 
                        *c++ = sr >> 8;
259
 
                        sr = sr >> 7 | Nc[0] << 9;
260
 
                        sr = sr >> 2 | bc[0] << 14;
261
 
                        *c++ = sr >> 7;
262
 
                        sr = sr >> 2 | Mc[0] << 14;
263
 
                        sr = sr >> 6 | xmaxc[0] << 10;
264
 
                        *c++ = sr >> 7;
265
 
#undef xmc
266
 
#define xmc     (source + 12)
267
 
 
268
 
                        sr = sr >> 3 | xmc[0] << 13;
269
 
                        sr = sr >> 3 | xmc[1] << 13;
270
 
                        sr = sr >> 3 | xmc[2] << 13;
271
 
                        *c++ = sr >> 6;
272
 
                        sr = sr >> 3 | xmc[3] << 13;
273
 
                        sr = sr >> 3 | xmc[4] << 13;
274
 
                        *c++ = sr >> 8;
275
 
                        sr = sr >> 3 | xmc[5] << 13;
276
 
                        sr = sr >> 3 | xmc[6] << 13;
277
 
                        sr = sr >> 3 | xmc[7] << 13;
278
 
                        *c++ = sr >> 7;
279
 
                        sr = sr >> 3 | xmc[8] << 13;
280
 
                        sr = sr >> 3 | xmc[9] << 13;
281
 
                        sr = sr >> 3 | xmc[10] << 13;
282
 
                        *c++ = sr >> 6;
283
 
                        sr = sr >> 3 | xmc[11] << 13;
284
 
                        sr = sr >> 3 | xmc[12] << 13;
285
 
                        *c++ = sr >> 8;
286
 
                        sr = sr >> 7 | Nc[1] << 9;
287
 
                        sr = sr >> 2 | bc[1] << 14;
288
 
                        *c++ = sr >> 7;
289
 
                        sr = sr >> 2 | Mc[1] << 14;
290
 
                        sr = sr >> 6 | xmaxc[1] << 10;
291
 
                        *c++ = sr >> 7;
292
 
#undef  xmc
293
 
#define xmc     (source + 29 - 13)
294
 
 
295
 
                        sr = sr >> 3 | xmc[13] << 13;
296
 
                        sr = sr >> 3 | xmc[14] << 13;
297
 
                        sr = sr >> 3 | xmc[15] << 13;
298
 
                        *c++ = sr >> 6;
299
 
                        sr = sr >> 3 | xmc[16] << 13;
300
 
                        sr = sr >> 3 | xmc[17] << 13;
301
 
                        *c++ = sr >> 8;
302
 
                        sr = sr >> 3 | xmc[18] << 13;
303
 
                        sr = sr >> 3 | xmc[19] << 13;
304
 
                        sr = sr >> 3 | xmc[20] << 13;
305
 
                        *c++ = sr >> 7;
306
 
                        sr = sr >> 3 | xmc[21] << 13;
307
 
                        sr = sr >> 3 | xmc[22] << 13;
308
 
                        sr = sr >> 3 | xmc[23] << 13;
309
 
                        *c++ = sr >> 6;
310
 
                        sr = sr >> 3 | xmc[24] << 13;
311
 
                        sr = sr >> 3 | xmc[25] << 13;
312
 
                        *c++ = sr >> 8;
313
 
                        sr = sr >> 7 | Nc[2] << 9;
314
 
                        sr = sr >> 2 | bc[2] << 14;
315
 
                        *c++ = sr >> 7;
316
 
                        sr = sr >> 2 | Mc[2] << 14;
317
 
                        sr = sr >> 6 | xmaxc[2] << 10;
318
 
                        *c++ = sr >> 7;
319
 
#undef  xmc
320
 
#define xmc     (source + 46 - 26)
321
 
 
322
 
                        sr = sr >> 3 | xmc[26] << 13;
323
 
                        sr = sr >> 3 | xmc[27] << 13;
324
 
                        sr = sr >> 3 | xmc[28] << 13;
325
 
                        *c++ = sr >> 6;
326
 
                        sr = sr >> 3 | xmc[29] << 13;
327
 
                        sr = sr >> 3 | xmc[30] << 13;
328
 
                        *c++ = sr >> 8;
329
 
                        sr = sr >> 3 | xmc[31] << 13;
330
 
                        sr = sr >> 3 | xmc[32] << 13;
331
 
                        sr = sr >> 3 | xmc[33] << 13;
332
 
                        *c++ = sr >> 7;
333
 
                        sr = sr >> 3 | xmc[34] << 13;
334
 
                        sr = sr >> 3 | xmc[35] << 13;
335
 
                        sr = sr >> 3 | xmc[36] << 13;
336
 
                        *c++ = sr >> 6;
337
 
                        sr = sr >> 3 | xmc[37] << 13;
338
 
                        sr = sr >> 3 | xmc[38] << 13;
339
 
                        *c++ = sr >> 8;
340
 
                        sr = sr >> 7 | Nc[3] << 9;
341
 
                        sr = sr >> 2 | bc[3] << 14;
342
 
                        *c++ = sr >> 7;
343
 
                        sr = sr >> 2 | Mc[3] << 14;
344
 
                        sr = sr >> 6 | xmaxc[3] << 10;
345
 
                        *c++ = sr >> 7;
346
 
#undef  xmc
347
 
#define xmc     (source + 63 - 39)
348
 
 
349
 
                        sr = sr >> 3 | xmc[39] << 13;
350
 
                        sr = sr >> 3 | xmc[40] << 13;
351
 
                        sr = sr >> 3 | xmc[41] << 13;
352
 
                        *c++ = sr >> 6;
353
 
                        sr = sr >> 3 | xmc[42] << 13;
354
 
                        sr = sr >> 3 | xmc[43] << 13;
355
 
                        *c++ = sr >> 8;
356
 
                        sr = sr >> 3 | xmc[44] << 13;
357
 
                        sr = sr >> 3 | xmc[45] << 13;
358
 
                        sr = sr >> 3 | xmc[46] << 13;
359
 
                        *c++ = sr >> 7;
360
 
                        sr = sr >> 3 | xmc[47] << 13;
361
 
                        sr = sr >> 3 | xmc[48] << 13;
362
 
                        sr = sr >> 3 | xmc[49] << 13;
363
 
                        *c++ = sr >> 6;
364
 
                        sr = sr >> 3 | xmc[50] << 13;
365
 
                        sr = sr >> 3 | xmc[51] << 13;
366
 
                        *c++ = sr >> 8;
367
 
                }
368
 
        }
369
 
        else
370
 
#endif 
371
 
        {
372
 
 
373
 
                *c++ =   ((GSM_MAGIC & 0xF) << 4)               /* 1 */
374
 
                       | ((LARc[0] >> 2) & 0xF);
375
 
                *c++ =   ((LARc[0] & 0x3) << 6)
376
 
                       | (LARc[1] & 0x3F);
377
 
                *c++ =   ((LARc[2] & 0x1F) << 3)
378
 
                       | ((LARc[3] >> 2) & 0x7);
379
 
                *c++ =   ((LARc[3] & 0x3) << 6)
380
 
                       | ((LARc[4] & 0xF) << 2)
381
 
                       | ((LARc[5] >> 2) & 0x3);
382
 
                *c++ =   ((LARc[5] & 0x3) << 6)
383
 
                       | ((LARc[6] & 0x7) << 3)
384
 
                       | (LARc[7] & 0x7);
385
 
 
386
 
 
387
 
                *c++ =   ((Nc[0] & 0x7F) << 1)
388
 
 
389
 
 
390
 
                       | ((bc[0] >> 1) & 0x1);
391
 
                *c++ =   ((bc[0] & 0x1) << 7)
392
 
 
393
 
 
394
 
                       | ((Mc[0] & 0x3) << 5)
395
 
 
396
 
                       | ((xmaxc[0] >> 1) & 0x1F);
397
 
                *c++ =   ((xmaxc[0] & 0x1) << 7)
398
 
 
399
 
#undef xmc
400
 
#define xmc     (source + 12)
401
 
 
402
 
                       | ((xmc[0] & 0x7) << 4)
403
 
                       | ((xmc[1] & 0x7) << 1)
404
 
                       | ((xmc[2] >> 2) & 0x1);
405
 
                *c++ =   ((xmc[2] & 0x3) << 6)
406
 
                       | ((xmc[3] & 0x7) << 3)
407
 
                       | (xmc[4] & 0x7);
408
 
                *c++ =   ((xmc[5] & 0x7) << 5)                  /* 10 */
409
 
                       | ((xmc[6] & 0x7) << 2)
410
 
                       | ((xmc[7] >> 1) & 0x3);
411
 
                *c++ =   ((xmc[7] & 0x1) << 7)
412
 
                       | ((xmc[8] & 0x7) << 4)
413
 
                       | ((xmc[9] & 0x7) << 1)
414
 
                       | ((xmc[10] >> 2) & 0x1);
415
 
                *c++ =   ((xmc[10] & 0x3) << 6)
416
 
                       | ((xmc[11] & 0x7) << 3)
417
 
                       | (xmc[12] & 0x7);
418
 
 
419
 
 
420
 
                *c++ =   ((Nc[1] & 0x7F) << 1)
421
 
 
422
 
 
423
 
                       | ((bc[1] >> 1) & 0x1);
424
 
                *c++ =   ((bc[1] & 0x1) << 7)
425
 
 
426
 
 
427
 
                       | ((Mc[1] & 0x3) << 5)
428
 
 
429
 
 
430
 
                       | ((xmaxc[1] >> 1) & 0x1F);
431
 
                *c++ =   ((xmaxc[1] & 0x1) << 7)
432
 
 
433
 
#undef  xmc
434
 
#define xmc     (source + 29 - 13)
435
 
 
436
 
                       | ((xmc[13] & 0x7) << 4)
437
 
                       | ((xmc[14] & 0x7) << 1)
438
 
                       | ((xmc[15] >> 2) & 0x1);
439
 
                *c++ =   ((xmc[15] & 0x3) << 6)
440
 
                       | ((xmc[16] & 0x7) << 3)
441
 
                       | (xmc[17] & 0x7);
442
 
                *c++ =   ((xmc[18] & 0x7) << 5)
443
 
                       | ((xmc[19] & 0x7) << 2)
444
 
                       | ((xmc[20] >> 1) & 0x3);
445
 
                *c++ =   ((xmc[20] & 0x1) << 7)
446
 
                       | ((xmc[21] & 0x7) << 4)
447
 
                       | ((xmc[22] & 0x7) << 1)
448
 
                       | ((xmc[23] >> 2) & 0x1);
449
 
                *c++ =   ((xmc[23] & 0x3) << 6)
450
 
                       | ((xmc[24] & 0x7) << 3)
451
 
                       | (xmc[25] & 0x7);
452
 
 
453
 
 
454
 
                *c++ =   ((Nc[2] & 0x7F) << 1)                  /* 20 */
455
 
 
456
 
 
457
 
                       | ((bc[2] >> 1) & 0x1);
458
 
                *c++ =   ((bc[2] & 0x1) << 7)
459
 
 
460
 
 
461
 
                       | ((Mc[2] & 0x3) << 5)
462
 
 
463
 
 
464
 
                       | ((xmaxc[2] >> 1) & 0x1F);
465
 
                *c++ =   ((xmaxc[2] & 0x1) << 7)
466
 
 
467
 
#undef  xmc
468
 
#define xmc     (source + 46 - 26)
469
 
 
470
 
                       | ((xmc[26] & 0x7) << 4)
471
 
                       | ((xmc[27] & 0x7) << 1)
472
 
                       | ((xmc[28] >> 2) & 0x1);
473
 
                *c++ =   ((xmc[28] & 0x3) << 6)
474
 
                       | ((xmc[29] & 0x7) << 3)
475
 
                       | (xmc[30] & 0x7);
476
 
                *c++ =   ((xmc[31] & 0x7) << 5)
477
 
                       | ((xmc[32] & 0x7) << 2)
478
 
                       | ((xmc[33] >> 1) & 0x3);
479
 
                *c++ =   ((xmc[33] & 0x1) << 7)
480
 
                       | ((xmc[34] & 0x7) << 4)
481
 
                       | ((xmc[35] & 0x7) << 1)
482
 
                       | ((xmc[36] >> 2) & 0x1);
483
 
                *c++ =   ((xmc[36] & 0x3) << 6)
484
 
                       | ((xmc[37] & 0x7) << 3)
485
 
                       | (xmc[38] & 0x7);
486
 
 
487
 
 
488
 
                *c++ =   ((Nc[3] & 0x7F) << 1)
489
 
 
490
 
 
491
 
                       | ((bc[3] >> 1) & 0x1);
492
 
                *c++ =   ((bc[3] & 0x1) << 7)
493
 
 
494
 
 
495
 
                       | ((Mc[3] & 0x3) << 5)
496
 
 
497
 
 
498
 
                       | ((xmaxc[3] >> 1) & 0x1F);
499
 
                *c++ =   ((xmaxc[3] & 0x1) << 7)
500
 
 
501
 
#undef  xmc
502
 
#define xmc     (source + 63 - 39)
503
 
 
504
 
                       | ((xmc[39] & 0x7) << 4)
505
 
                       | ((xmc[40] & 0x7) << 1)
506
 
                       | ((xmc[41] >> 2) & 0x1);
507
 
                *c++ =   ((xmc[41] & 0x3) << 6)                 /* 30 */
508
 
                       | ((xmc[42] & 0x7) << 3)
509
 
                       | (xmc[43] & 0x7);
510
 
                *c++ =   ((xmc[44] & 0x7) << 5)
511
 
                       | ((xmc[45] & 0x7) << 2)
512
 
                       | ((xmc[46] >> 1) & 0x3);
513
 
                *c++ =   ((xmc[46] & 0x1) << 7)
514
 
                       | ((xmc[47] & 0x7) << 4)
515
 
                       | ((xmc[48] & 0x7) << 1)
516
 
                       | ((xmc[49] >> 2) & 0x1);
517
 
                *c++ =   ((xmc[49] & 0x3) << 6)
518
 
                       | ((xmc[50] & 0x7) << 3)
519
 
                       | (xmc[51] & 0x7);
520
 
        }
521
 
}