提交 cb9abe02 authored 作者: Anthony Minessale's avatar Anthony Minessale

add new flag to frames to denote pass thru frames that are not audio

上级 bcd1e147
......@@ -1203,7 +1203,8 @@ typedef enum {
SFF_PROXY_PACKET = (1 << 5),
SFF_DYNAMIC = (1 << 6),
SFF_ZRTP = (1 << 7),
SFF_UDPTL_PACKET = (1 << 8)
SFF_UDPTL_PACKET = (1 << 8),
SFF_NOT_AUDIO = (1 << 9)
} switch_frame_flag_enum_t;
typedef uint32_t switch_frame_flag_t;
......
......@@ -265,6 +265,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
do_bugs = 1;
need_codec = 1;
}
if (((*frame)->flags & SFF_NOT_AUDIO)) {
do_resample = 0;
do_bugs = 0;
need_codec = 0;
}
if (switch_test_flag(session, SSF_READ_TRANSCODE) && !need_codec && switch_core_codec_ready(session->read_codec)) {
switch_core_session_t *other_session;
......@@ -792,6 +799,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
do_resample = TRUE;
}
if ((frame->flags & SFF_NOT_AUDIO)) {
do_resample = 0;
do_bugs = 0;
need_codec = 0;
}
if (switch_test_flag(session, SSF_WRITE_TRANSCODE) && !need_codec && switch_core_codec_ready(session->write_codec)) {
switch_core_session_t *other_session;
const char *uuid = switch_channel_get_variable(switch_core_session_get_channel(session), SWITCH_SIGNAL_BOND_VARIABLE);
......
......@@ -3131,6 +3131,11 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
}
}
if (((rtp_session->cng_pt && rtp_session->recv_msg.header.pt == rtp_session->cng_pt) || rtp_session->recv_msg.header.pt == 13)) {
*flags |= SFF_NOT_AUDIO;
}
/* ignore packets not meant for us unless the auto-adjust window is open */
if (bytes) {
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_AUTOADJ)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论