prevent race on codec change mid-call
This commit is contained in:
parent
ab0a2bfa03
commit
668763f490
|
@ -1084,7 +1084,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
|
||||||
tech_pvt->last_ts = 0;
|
tech_pvt->last_ts = 0;
|
||||||
|
|
||||||
/* inform them of the codec they are actually sending */
|
/* inform them of the codec they are actually sending */
|
||||||
|
#if 0
|
||||||
if (++tech_pvt->codec_reinvites > 2) {
|
if (++tech_pvt->codec_reinvites > 2) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING,
|
||||||
"Ok, some devices *cough* X-lite *cough*\n"
|
"Ok, some devices *cough* X-lite *cough*\n"
|
||||||
|
@ -1093,7 +1093,10 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
|
||||||
} else {
|
} else {
|
||||||
sofia_glue_do_invite(session);
|
sofia_glue_do_invite(session);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
*frame = &silence_frame;
|
||||||
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2669,7 +2669,8 @@ switch_status_t sofia_glue_tech_set_codec(private_object_t *tech_pvt, int force)
|
||||||
tech_pvt->rm_encoding,
|
tech_pvt->rm_encoding,
|
||||||
tech_pvt->codec_ms,
|
tech_pvt->codec_ms,
|
||||||
tech_pvt->rm_rate);
|
tech_pvt->rm_rate);
|
||||||
|
|
||||||
|
switch_yield(tech_pvt->read_impl.microseconds_per_packet);
|
||||||
switch_core_session_lock_codec_write(tech_pvt->session);
|
switch_core_session_lock_codec_write(tech_pvt->session);
|
||||||
switch_core_session_lock_codec_read(tech_pvt->session);
|
switch_core_session_lock_codec_read(tech_pvt->session);
|
||||||
resetting = 1;
|
resetting = 1;
|
||||||
|
|
Loading…
Reference in New Issue