提交 4c0bc258 authored 作者: Steve Underwood's avatar Steve Underwood

4 RCPs were being sent in ECM mode, instead of the specified 3.

上级 00e381f1
...@@ -781,11 +781,11 @@ static int send_next_ecm_frame(t30_state_t *s) ...@@ -781,11 +781,11 @@ static int send_next_ecm_frame(t30_state_t *s)
} }
s->ecm_current_tx_frame = s->ecm_frames; s->ecm_current_tx_frame = s->ecm_frames;
} }
if (s->ecm_current_tx_frame <= s->ecm_frames + 3) if (s->ecm_current_tx_frame < s->ecm_frames + 3)
{ {
/* We have sent all the FCD frames. Send some RCP frames. Three seems to be /* We have sent all the FCD frames. Send three RCP frames, as per
a popular number, to minimise the risk of a bit error stopping the receiving T.4/A.1 and T.4/A.2. The repeats are to minimise the risk of a bit
end from recognising the RCP. */ error stopping the receiving end from recognising the RCP. */
s->ecm_current_tx_frame++; s->ecm_current_tx_frame++;
/* The RCP frame is an odd man out, as its a simple 1 byte control /* The RCP frame is an odd man out, as its a simple 1 byte control
frame, but is specified to not have the final bit set. It doesn't frame, but is specified to not have the final bit set. It doesn't
...@@ -794,7 +794,8 @@ static int send_next_ecm_frame(t30_state_t *s) ...@@ -794,7 +794,8 @@ static int send_next_ecm_frame(t30_state_t *s)
frame[1] = CONTROL_FIELD_NON_FINAL_FRAME; frame[1] = CONTROL_FIELD_NON_FINAL_FRAME;
frame[2] = T4_RCP; frame[2] = T4_RCP;
send_frame(s, frame, 3); send_frame(s, frame, 3);
/* In case we are just after a CTC/CTR exchange, which kicked us back to long training */ /* In case we are just after a CTC/CTR exchange, which kicked us back
to long training */
s->short_train = TRUE; s->short_train = TRUE;
return 0; return 0;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论