Browse Source

MT#62571 make sure mix output exists when needed

Change-Id: Ib5cac983fb7bda5d32023358719ffcda34cb2570
pull/1967/head
Richard Fuchs 6 months ago
parent
commit
38d2f0761e
1 changed files with 24 additions and 11 deletions
  1. +24
    -11
      recording-daemon/metafile.c

+ 24
- 11
recording-daemon/metafile.c View File

@ -88,20 +88,31 @@ static void meta_destroy(metafile_t *mf) {
}
// mf is locked
static void meta_mix_output(metafile_t *mf) {
LOCK(&mf->mix_lock);
if (!output_enabled || !output_mixed || !mf->recording_on) {
mix_destroy(mf->mix);
mf->mix = NULL;
return;
}
if (mf->mix)
return;
mf->mix_out = output_new_ext(mf, "mix", "mixed", "mix");
if (mix_method == MM_CHANNELS)
mf->mix_out->channel_mult = mix_num_inputs;
mf->mix = mix_new();
db_do_stream(mf, mf->mix_out, NULL, 0);
}
// mf is locked
static void meta_stream_interface(metafile_t *mf, unsigned long snum, char *content) {
db_do_call(mf);
if (output_enabled && output_mixed && mf->recording_on) {
pthread_mutex_lock(&mf->mix_lock);
if (!mf->mix) {
mf->mix_out = output_new_ext(mf, "mix", "mixed", "mix");
if (mix_method == MM_CHANNELS)
mf->mix_out->channel_mult = mix_num_inputs;
mf->mix = mix_new();
db_do_stream(mf, mf->mix_out, NULL, 0);
}
pthread_mutex_unlock(&mf->mix_lock);
}
meta_mix_output(mf);
dbg("stream %lu interface %s%s%s", snum, FMT_M(content));
stream_open(mf, snum, content);
}
@ -260,6 +271,8 @@ static void meta_section(metafile_t *mf, char *section, char *content, unsigned
mf->output_pattern = g_string_chunk_insert(mf->gsc, content);
else if (!strcmp(section, "SKIP_DATABASE"))
mf->skip_db = 1;
meta_mix_output(mf);
}


Loading…
Cancel
Save