~ubuntu-branches/ubuntu/natty/libsdl1.2/natty

« back to all changes in this revision

Viewing changes to src/audio/SDL_audiocvt.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-12-05 20:29:43 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20071205202943-ryogi07hodn5cdif
Tags: 1.2.12-1ubuntu1
* Merge with Debian; remaining changes:
  - Remove svgalib support.
  - Prefer libgl1-mesa-dev build-dependency over xlibmesa-gl-dev.
  - Build for lpia as for i386.
* Link using -Wl,-Bsymbolic-functions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
                        dst = cvt->buf;
45
45
                        for ( i=cvt->len_cvt/2; i; --i ) {
46
46
                                sample = src[0] + src[1];
47
 
                                if ( sample > 255 ) {
48
 
                                        *dst = 255;
49
 
                                } else {
50
 
                                        *dst = (Uint8)sample;
51
 
                                }
 
47
                                *dst = (Uint8)(sample / 2);
52
48
                                src += 2;
53
49
                                dst += 1;
54
50
                        }
62
58
                        dst = (Sint8 *)cvt->buf;
63
59
                        for ( i=cvt->len_cvt/2; i; --i ) {
64
60
                                sample = src[0] + src[1];
65
 
                                if ( sample > 127 ) {
66
 
                                        *dst = 127;
67
 
                                } else
68
 
                                if ( sample < -128 ) {
69
 
                                        *dst = -128;
70
 
                                } else {
71
 
                                        *dst = (Sint8)sample;
72
 
                                }
 
61
                                *dst = (Sint8)(sample / 2);
73
62
                                src += 2;
74
63
                                dst += 1;
75
64
                        }
85
74
                                for ( i=cvt->len_cvt/4; i; --i ) {
86
75
                                        sample = (Uint16)((src[0]<<8)|src[1])+
87
76
                                                 (Uint16)((src[2]<<8)|src[3]);
88
 
                                        if ( sample > 65535 ) {
89
 
                                                dst[0] = 0xFF;
90
 
                                                dst[1] = 0xFF;
91
 
                                        } else {
92
 
                                                dst[1] = (sample&0xFF);
93
 
                                                sample >>= 8;
94
 
                                                dst[0] = (sample&0xFF);
95
 
                                        }
 
77
                                        sample /= 2;
 
78
                                        dst[1] = (sample&0xFF);
 
79
                                        sample >>= 8;
 
80
                                        dst[0] = (sample&0xFF);
96
81
                                        src += 4;
97
82
                                        dst += 2;
98
83
                                }
100
85
                                for ( i=cvt->len_cvt/4; i; --i ) {
101
86
                                        sample = (Uint16)((src[1]<<8)|src[0])+
102
87
                                                 (Uint16)((src[3]<<8)|src[2]);
103
 
                                        if ( sample > 65535 ) {
104
 
                                                dst[0] = 0xFF;
105
 
                                                dst[1] = 0xFF;
106
 
                                        } else {
107
 
                                                dst[0] = (sample&0xFF);
108
 
                                                sample >>= 8;
109
 
                                                dst[1] = (sample&0xFF);
110
 
                                        }
 
88
                                        sample /= 2;
 
89
                                        dst[0] = (sample&0xFF);
 
90
                                        sample >>= 8;
 
91
                                        dst[1] = (sample&0xFF);
111
92
                                        src += 4;
112
93
                                        dst += 2;
113
94
                                }
124
105
                                for ( i=cvt->len_cvt/4; i; --i ) {
125
106
                                        sample = (Sint16)((src[0]<<8)|src[1])+
126
107
                                                 (Sint16)((src[2]<<8)|src[3]);
127
 
                                        if ( sample > 32767 ) {
128
 
                                                dst[0] = 0x7F;
129
 
                                                dst[1] = 0xFF;
130
 
                                        } else
131
 
                                        if ( sample < -32768 ) {
132
 
                                                dst[0] = 0x80;
133
 
                                                dst[1] = 0x00;
134
 
                                        } else {
135
 
                                                dst[1] = (sample&0xFF);
136
 
                                                sample >>= 8;
137
 
                                                dst[0] = (sample&0xFF);
138
 
                                        }
 
108
                                        sample /= 2;
 
109
                                        dst[1] = (sample&0xFF);
 
110
                                        sample >>= 8;
 
111
                                        dst[0] = (sample&0xFF);
139
112
                                        src += 4;
140
113
                                        dst += 2;
141
114
                                }
143
116
                                for ( i=cvt->len_cvt/4; i; --i ) {
144
117
                                        sample = (Sint16)((src[1]<<8)|src[0])+
145
118
                                                 (Sint16)((src[3]<<8)|src[2]);
146
 
                                        if ( sample > 32767 ) {
147
 
                                                dst[1] = 0x7F;
148
 
                                                dst[0] = 0xFF;
149
 
                                        } else
150
 
                                        if ( sample < -32768 ) {
151
 
                                                dst[1] = 0x80;
152
 
                                                dst[0] = 0x00;
153
 
                                        } else {
154
 
                                                dst[0] = (sample&0xFF);
155
 
                                                sample >>= 8;
156
 
                                                dst[1] = (sample&0xFF);
157
 
                                        }
 
119
                                        sample /= 2;
 
120
                                        dst[0] = (sample&0xFF);
 
121
                                        sample >>= 8;
 
122
                                        dst[1] = (sample&0xFF);
158
123
                                        src += 4;
159
124
                                        dst += 2;
160
125
                                }
1374
1339
 
1375
1340
        /* First filter:  Endian conversion from src to dst */
1376
1341
        if ( (src_format & 0x1000) != (dst_format & 0x1000)
1377
 
             && ((src_format & 0xff) != 8) ) {
 
1342
             && ((src_format & 0xff) == 16) && ((dst_format & 0xff) == 16)) {
1378
1343
                cvt->filters[cvt->filter_index++] = SDL_ConvertEndian;
1379
1344
        }
1380
1345