ggerganov commited on
Commit
3753d20
·
unverified ·
1 Parent(s): 691ac92

stream : fix data race on bool + avoid division-by-zero

Browse files
Files changed (1) hide show
  1. examples/stream/stream.cpp +7 -4
examples/stream/stream.cpp CHANGED
@@ -8,6 +8,7 @@
8
  #include <SDL.h>
9
  #include <SDL_audio.h>
10
 
 
11
  #include <cassert>
12
  #include <cstdio>
13
  #include <string>
@@ -144,8 +145,8 @@ private:
144
  int m_len_ms = 0;
145
  int m_sample_rate = 0;
146
 
147
- bool m_running = false;
148
- std::mutex m_mutex;
149
 
150
  std::vector<float> m_audio;
151
  std::vector<float> m_audio_new;
@@ -155,6 +156,8 @@ private:
155
 
156
  audio_async::audio_async(int len_ms) {
157
  m_len_ms = len_ms;
 
 
158
  }
159
 
160
  audio_async::~audio_async() {
@@ -427,10 +430,10 @@ int main(int argc, char ** argv) {
427
  const int n_samples_keep = (params.keep_ms *1e-3)*WHISPER_SAMPLE_RATE;
428
  const int n_samples_30s = (30000 *1e-3)*WHISPER_SAMPLE_RATE;
429
 
430
- const int n_new_line = params.length_ms / params.step_ms - 1; // number of steps to print new line
431
-
432
  const bool use_vad = n_samples_step <= 0; // sliding window mode uses VAD
433
 
 
 
434
  params.no_timestamps = !use_vad;
435
  params.no_context = use_vad;
436
  params.max_tokens = 0;
 
8
  #include <SDL.h>
9
  #include <SDL_audio.h>
10
 
11
+ #include <atomic>
12
  #include <cassert>
13
  #include <cstdio>
14
  #include <string>
 
145
  int m_len_ms = 0;
146
  int m_sample_rate = 0;
147
 
148
+ std::atomic_bool m_running;
149
+ std::mutex m_mutex;
150
 
151
  std::vector<float> m_audio;
152
  std::vector<float> m_audio_new;
 
156
 
157
  audio_async::audio_async(int len_ms) {
158
  m_len_ms = len_ms;
159
+
160
+ m_running = false;
161
  }
162
 
163
  audio_async::~audio_async() {
 
430
  const int n_samples_keep = (params.keep_ms *1e-3)*WHISPER_SAMPLE_RATE;
431
  const int n_samples_30s = (30000 *1e-3)*WHISPER_SAMPLE_RATE;
432
 
 
 
433
  const bool use_vad = n_samples_step <= 0; // sliding window mode uses VAD
434
 
435
+ const int n_new_line = !use_vad ? params.length_ms / params.step_ms - 1 : 1; // number of steps to print new line
436
+
437
  params.no_timestamps = !use_vad;
438
  params.no_context = use_vad;
439
  params.max_tokens = 0;