|
|
|
@ -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) |
|
|
|
|