Browse Source

MT#55283 fix potential deadlock

Fix a regression from 4291c858

send_timer_rtcp() does its own locking of the SSRC. Release the lock
before calling it.

Change-Id: I185fb2fb4b47a343ab4be00d16629b5f330ee965
pull/1802/head
Richard Fuchs 2 years ago
parent
commit
99021caf77
1 changed files with 3 additions and 2 deletions
  1. +3
    -2
      daemon/media_player.c

+ 3
- 2
daemon/media_player.c View File

@ -297,9 +297,10 @@ static void __send_timer_send_common(struct send_timer *st, struct codec_packet
struct ssrc_ctx *ssrc_out = cp->ssrc_out;
if (ssrc_out && ssrc_out->next_rtcp.tv_sec) {
mutex_lock(&ssrc_out->parent->h.lock);
if (timeval_diff(&ssrc_out->next_rtcp, &rtpe_now) < 0)
send_timer_rtcp(st, ssrc_out);
long long diff = timeval_diff(&ssrc_out->next_rtcp, &rtpe_now);
mutex_unlock(&ssrc_out->parent->h.lock);
if (diff < 0)
send_timer_rtcp(st, ssrc_out);
}
out:


Loading…
Cancel
Save