|
|
|
|
@ -139,11 +139,12 @@ void mix_buffer_read_slow(struct mix_buffer *mb, void *outbuf, unsigned int samp
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void mix_ssrc_put(mix_buffer_ssrc_source **s) {
|
|
|
|
|
if (*s)
|
|
|
|
|
obj_put(&(*s)->h);
|
|
|
|
|
static void mix_ssrc_put(mix_buffer_ssrc_source *s) {
|
|
|
|
|
obj_put(&s->h);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(mix_buffer_ssrc_source, mix_ssrc_put)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// write at the write-head, direct copy without mixing
|
|
|
|
|
// must be locked already
|
|
|
|
|
@ -269,8 +270,7 @@ bool mix_buffer_write_delay(struct mix_buffer *mb, uint32_t ssrc, const void *bu
|
|
|
|
|
LOCK(&mb->lock);
|
|
|
|
|
|
|
|
|
|
bool created;
|
|
|
|
|
AUTO_CLEANUP(mix_buffer_ssrc_source *src, mix_ssrc_put)
|
|
|
|
|
= get_ssrc_full(ssrc, mb->ssrc_hash, &created);
|
|
|
|
|
g_autoptr(mix_buffer_ssrc_source) src = get_ssrc_full(ssrc, mb->ssrc_hash, &created);
|
|
|
|
|
if (!src)
|
|
|
|
|
return false;
|
|
|
|
|
if (created)
|
|
|
|
|
|