File tree 1 file changed +9
-7
lines changed 1 file changed +9
-7
lines changed Original file line number Diff line number Diff line change @@ -2140,20 +2140,22 @@ int main(int argc, char ** argv) {
2140
2140
return 5 ;
2141
2141
}
2142
2142
2143
+ int n = wav.totalPCMFrameCount ;
2144
+
2143
2145
std::vector<int16_t > pcm16;
2144
- pcm16.resize (wav.totalPCMFrameCount );
2145
- drwav_read_pcm_frames_s16 (&wav, wav. totalPCMFrameCount , pcm16.data ());
2146
+ pcm16.resize (n* wav.channels );
2147
+ drwav_read_pcm_frames_s16 (&wav, n , pcm16.data ());
2146
2148
drwav_uninit (&wav);
2147
2149
2148
- // convert to float
2149
- pcmf32.resize (pcm16. size () );
2150
+ // convert to mono, float
2151
+ pcmf32.resize (n );
2150
2152
if (wav.channels == 1 ) {
2151
- for (size_t i = 0 ; i < pcm16. size () ; i++) {
2153
+ for (size_t i = 0 ; i < n ; i++) {
2152
2154
pcmf32[i] = float (pcm16[i])/32768 .0f ;
2153
2155
}
2154
2156
} else {
2155
- for (size_t i = 0 ; i < pcm16. size () ; i++) {
2156
- pcmf32[i] = float (pcm16[i* 2 + 0 ] + pcm16[i* 2 + 1 ])/32768 . 0f / 2 .0f ;
2157
+ for (size_t i = 0 ; i < n ; i++) {
2158
+ pcmf32[i] = float (pcm16[2 *i ] + pcm16[2 *i + 1 ])/65536 .0f ;
2157
2159
}
2158
2160
}
2159
2161
}
You can’t perform that action at this time.
0 commit comments