~ubuntu-branches/ubuntu/trusty/sflphone/trusty

« 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): Mark Purcell
  • Date: 2014-01-28 18:23:36 UTC
  • mfrom: (4.3.4 sid)
  • Revision ID: package-import@ubuntu.com-20140128182336-jrsv0k9u6cawc068
Tags: 1.3.0-1
* New upstream release 
  - Fixes "New Upstream Release" (Closes: #735846)
  - Fixes "Ringtone does not stop" (Closes: #727164)
  - Fixes "[sflphone-kde] crash on startup" (Closes: #718178)
  - Fixes "sflphone GUI crashes when call is hung up" (Closes: #736583)
* Build-Depends: ensure GnuTLS 2.6
  - libucommon-dev (>= 6.0.7-1.1), libccrtp-dev (>= 2.0.6-3)
  - Fixes "FTBFS Build-Depends libgnutls{26,28}-dev" (Closes: #722040)
* Fix "boost 1.49 is going away" unversioned Build-Depends: (Closes: #736746)
* Add Build-Depends: libsndfile-dev, nepomuk-core-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
}