@@ -74,15 +74,15 @@ int main(void)
74
74
75
75
size_t num_channels = 1 ;
76
76
size_t samplerate = 48000 ;
77
- size_t max_samples = samplerate ;
77
+ size_t max_samples = samplerate / 20 ; //each wavebuf can hold upto 1sec/20 = 50ms of audio data
78
78
size_t max_samples_datasize = max_samples * num_channels * sizeof (opus_int16 );
79
- size_t mempool_size = (max_samples_datasize * 2 + 0xFFF ) & ~ 0xFFF ;//*2 for 2 wavebufs.
79
+ size_t mempool_size = (max_samples_datasize * 4 + 0xFFF ) & ~ 0xFFF ;//*4 for 4 wavebufs.
80
80
void * mempool_ptr = memalign (0x1000 , mempool_size );
81
81
void * tmpdata_ptr = malloc (max_samples_datasize );
82
82
opuspkt_tmpbuf = (u8 * )malloc (opuspkt_tmpbuf_size );
83
83
opus_int16 * curbuf = NULL ;
84
84
85
- AudioDriverWaveBuf wavebuf [2 ] = {0 };
85
+ AudioDriverWaveBuf wavebuf [4 ] = {0 };
86
86
int i , wavei ;
87
87
88
88
HwopusDecoder hwdecoder = {0 };
@@ -151,9 +151,9 @@ int main(void)
151
151
}
152
152
audrvVoiceStart (& drv , 0 );
153
153
154
- for (i = 0 ; i < 2 ; i ++ ) {
154
+ for (i = 0 ; i < 4 ; i ++ ) {
155
155
wavebuf [i ].data_raw = mempool_ptr ;
156
- wavebuf [i ].size = max_samples_datasize * 2 ;//*2 for 2 wavebufs.
156
+ wavebuf [i ].size = max_samples_datasize * 4 ;//*4 for 4 wavebufs.
157
157
wavebuf [i ].start_sample_offset = i * max_samples ;
158
158
wavebuf [i ].end_sample_offset = wavebuf [i ].start_sample_offset + max_samples ;
159
159
}
@@ -198,15 +198,15 @@ int main(void)
198
198
199
199
if (audio_playing ) {
200
200
wavei = -1 ;
201
- for (i = 0 ; i < 2 ; i ++ ) {
201
+ for (i = 0 ; i < 4 ; i ++ ) {
202
202
if (wavebuf [i ].state == AudioDriverWaveBufState_Free || wavebuf [i ].state == AudioDriverWaveBufState_Done ) {
203
203
wavei = i ;
204
204
break ;
205
205
}
206
206
}
207
207
208
208
if (wavei >= 0 ) {
209
- curbuf = (opus_int16 * )(mempool_ptr + wavebuf [wavei ].start_sample_offset );
209
+ curbuf = (opus_int16 * )(mempool_ptr + wavebuf [wavei ].start_sample_offset * sizeof ( opus_int16 ) );
210
210
211
211
opret = op_read (of , tmpdata_ptr , max_samples * num_channels , NULL );//The buffer used here has to be seperate from mempool_ptr.
212
212
if (opret < 0 )
0 commit comments