aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/recorder/audio_capture.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/recorder/audio_capture.c')
-rw-r--r--src/recorder/audio_capture.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/recorder/audio_capture.c b/src/recorder/audio_capture.c
index ee1c75f..6275c93 100644
--- a/src/recorder/audio_capture.c
+++ b/src/recorder/audio_capture.c
@@ -155,7 +155,7 @@ static void* audio_device_thread(void *userdata) {
gsr_audio_track *track = thread_userdata->track;
gsr_audio_device_capture *device = thread_userdata->device;
gsr_recording_clock *clock = self->clock;
- const volatile sig_atomic_t *running = self->running;
+ const atomic_int *running = self->running;
const enum AVSampleFormat sound_device_sample_format = audio_format_to_sample_format(audio_codec_context_get_audio_format(track->codec_context));
/* TODO: Always do conversion for now. This fixes issue with stuttering audio on pulseaudio with opus + multiple audio sources merged */
@@ -194,7 +194,7 @@ static void* audio_device_thread(void *userdata) {
if(device->sound_device.handle)
sound_device_flush(&device->sound_device);
- while(*running) {
+ while(atomic_load(running)) {
void *sound_buffer;
int sound_buffer_size = -1;
const double time_before_read_seconds = clock_get_monotonic_seconds();
@@ -332,7 +332,7 @@ static void* audio_device_thread(void *userdata) {
static void* amix_thread(void *userdata) {
gsr_audio_capture *self = userdata;
AVFrame *aframe = av_frame_alloc();
- while(*self->running) {
+ while(atomic_load(self->running)) {
pthread_mutex_lock(&self->filter_mutex);
for(size_t i = 0; i < self->num_tracks; ++i) {
gsr_audio_track *track = &self->tracks[i];
@@ -360,7 +360,7 @@ static void* amix_thread(void *userdata) {
return NULL;
}
-int gsr_audio_capture_init(gsr_audio_capture *self, gsr_encoder *encoder, gsr_recording_clock *clock, const volatile sig_atomic_t *running) {
+int gsr_audio_capture_init(gsr_audio_capture *self, gsr_encoder *encoder, gsr_recording_clock *clock, const atomic_int *running) {
memset(self, 0, sizeof(*self));
self->encoder = encoder;
self->clock = clock;