diff --git a/recording-daemon/packet.c b/recording-daemon/packet.c index f12771ac9..2f42235dd 100644 --- a/recording-daemon/packet.c +++ b/recording-daemon/packet.c @@ -116,20 +116,19 @@ static void packet_decode(ssrc_t *ssrc, packet_t *packet) { dbg("payload type for %u is %s", payload_type, payload_str); - pthread_mutex_lock(&mf->mix_lock); + LOCK(&mf->mix_lock); ssrc->decoders[payload_type] = decoder_new(payload_str, format, ptime); - mix_sink_init(&ssrc->decoders[payload_type]->mix_sink, ssrc, &mf->mix, - resample_audio); - mix_sink_init(&ssrc->decoders[payload_type]->tls_mix_sink, ssrc, &mf->tls_mix, - tls_resample); - - pthread_mutex_unlock(&mf->mix_lock); if (!ssrc->decoders[payload_type]) { - ilog(LOG_WARN, "Cannot decode RTP payload type %u (%s)", + ilog(LOG_WARN | LOG_FLAG_LIMIT, "Cannot decode RTP payload type %u (%s)", payload_type, payload_str); return; } + + mix_sink_init(&ssrc->decoders[payload_type]->mix_sink, ssrc, &mf->mix, + resample_audio); + mix_sink_init(&ssrc->decoders[payload_type]->tls_mix_sink, ssrc, &mf->tls_mix, + tls_resample); } if (decoder_input(ssrc->decoders[payload_type], &packet->payload, ntohl(packet->rtp->timestamp),