From 9d3c656414ac096ae30e42c22671c72a6bd491af Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sat, 3 Jun 2023 15:09:46 +0200 Subject: [PATCH] Fix recorder waiting when stream disabled In the recorder, if the video or audio stream is disabled, do not wait for its initialization (it will never happen) to process the header. In that case (scrcpy --no-audio --record=file.mp4), this caused the whole content to be buffered in memory, and written only on exit. --- app/src/recorder.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/recorder.c b/app/src/recorder.c index adb1059d..204bf835 100644 --- a/app/src/recorder.c +++ b/app/src/recorder.c @@ -178,9 +178,10 @@ static bool sc_recorder_process_header(struct sc_recorder *recorder) { sc_mutex_lock(&recorder->mutex); - while (!recorder->stopped && (!recorder->video_init - || !recorder->audio_init - || sc_recorder_has_empty_queues(recorder))) { + while (!recorder->stopped && + ((recorder->video && !recorder->video_init) + || (recorder->audio && !recorder->audio_init) + || sc_recorder_has_empty_queues(recorder))) { sc_cond_wait(&recorder->cond, &recorder->mutex); }