diff --git a/recording-daemon/metafile.c b/recording-daemon/metafile.c index aa245c1d5..b77b68da1 100644 --- a/recording-daemon/metafile.c +++ b/recording-daemon/metafile.c @@ -104,7 +104,7 @@ static void meta_mix_output(metafile_t *mf) { 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(); + mf->mix = mix_new(mf->media_rec_slots); db_do_stream(mf, mf->mix_out, NULL, 0); } @@ -127,6 +127,7 @@ static void meta_stream_details(metafile_t *mf, unsigned long snum, char *conten &tag, &media, &tm, &cmp, &flags, &media_sdp_id, &media_rec_slot, &media_rec_slots) != 8) return; + mf->media_rec_slots = media_rec_slots; mix_set_channel_slots(mf->mix, media_rec_slots); stream_details(mf, snum, tag, media_sdp_id, media_rec_slot-1); } diff --git a/recording-daemon/mix.c b/recording-daemon/mix.c index 7039c270c..751dfeea6 100644 --- a/recording-daemon/mix.c +++ b/recording-daemon/mix.c @@ -249,7 +249,7 @@ err: } -mix_t *mix_new(void) { +mix_t *mix_new(unsigned int media_rec_slots) { mix_t *mix = g_new0(mix_t, 1); format_init(&mix->in_format); format_init(&mix->out_format); @@ -265,6 +265,8 @@ mix_t *mix_new(void) { mix->next_idx[i] = i; } + mix_set_channel_slots(mix, media_rec_slots); + return mix; } diff --git a/recording-daemon/mix.h b/recording-daemon/mix.h index 65eeade5d..d64b4b0c8 100644 --- a/recording-daemon/mix.h +++ b/recording-daemon/mix.h @@ -6,7 +6,7 @@ #define MIX_MAX_INPUTS 4 -mix_t *mix_new(void); +mix_t *mix_new(unsigned int); void mix_destroy(mix_t *mix); void mix_set_channel_slots(mix_t *mix, unsigned int); bool mix_config(sink_t *, const format_t *requested_format, format_t *actual_format); diff --git a/recording-daemon/types.h b/recording-daemon/types.h index 40c5afeee..c59cc8ba6 100644 --- a/recording-daemon/types.h +++ b/recording-daemon/types.h @@ -151,6 +151,7 @@ struct metafile_s { unsigned long long db_id; unsigned int db_streams; int64_t start_time_us; + unsigned int media_rec_slots; GStringChunk *gsc; // XXX limit max size