Minor tweak to last spandsp change

This commit is contained in:
Steve Underwood 2013-01-26 03:30:21 +08:00
parent 7e79b37c0b
commit 36492e522b
1 changed files with 27 additions and 27 deletions

View File

@ -1112,6 +1112,11 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
hdlc_buf->contents = (data_type | FLAG_DATA); hdlc_buf->contents = (data_type | FLAG_DATA);
finalise_hdlc_frame(s, TRUE); finalise_hdlc_frame(s, TRUE);
} }
else
{
/* Just restart using the current frame buffer */
hdlc_buf->contents = 0;
}
/*endif*/ /*endif*/
xx->corrupt_current_frame[0] = FALSE; xx->corrupt_current_frame[0] = FALSE;
break; break;
@ -1132,9 +1137,6 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
if (hdlc_buf->len > 0) if (hdlc_buf->len > 0)
{ {
span_log(&s->logging, SPAN_LOG_FLOW, "HDLC frame type %s - CRC bad\n", t30_frametype(hdlc_buf->buf[2])); span_log(&s->logging, SPAN_LOG_FLOW, "HDLC frame type %s - CRC bad\n", t30_frametype(hdlc_buf->buf[2]));
/* Only bother with frames that have a bad CRC, if they also have some content. */
if (hdlc_buf->len > 0)
{
if (hdlc_buf->contents != (data_type | FLAG_DATA)) if (hdlc_buf->contents != (data_type | FLAG_DATA))
{ {
queue_missing_indicator(s, data_type); queue_missing_indicator(s, data_type);
@ -1150,8 +1152,6 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
hdlc_buf->contents = 0; hdlc_buf->contents = 0;
} }
/*endif*/ /*endif*/
}
/*endif*/
xx->corrupt_current_frame[0] = FALSE; xx->corrupt_current_frame[0] = FALSE;
break; break;
case T38_FIELD_HDLC_FCS_OK_SIG_END: case T38_FIELD_HDLC_FCS_OK_SIG_END:
@ -1200,6 +1200,11 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
hdlc_buf->contents = (data_type | FLAG_DATA); hdlc_buf->contents = (data_type | FLAG_DATA);
finalise_hdlc_frame(s, TRUE); finalise_hdlc_frame(s, TRUE);
} }
else
{
/* Just restart using the current frame buffer */
hdlc_buf->contents = 0;
}
/*endif*/ /*endif*/
if (t->current_rx_data_type != data_type || t->current_rx_field_type != field_type) if (t->current_rx_data_type != data_type || t->current_rx_field_type != field_type)
{ {
@ -1232,9 +1237,6 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
hdlc_buf = &s->core.hdlc_to_modem.buf[s->core.hdlc_to_modem.in]; hdlc_buf = &s->core.hdlc_to_modem.buf[s->core.hdlc_to_modem.in];
} }
/*endif*/ /*endif*/
/* Only bother with frames that have a bad CRC, if they also have some content. */
if (hdlc_buf->len > 0)
{
hdlc_buf->contents = (data_type | FLAG_DATA); hdlc_buf->contents = (data_type | FLAG_DATA);
finalise_hdlc_frame(s, FALSE); finalise_hdlc_frame(s, FALSE);
} }
@ -1244,8 +1246,6 @@ static int process_rx_data(t38_core_state_t *t, void *user_data, int data_type,
hdlc_buf->contents = 0; hdlc_buf->contents = 0;
} }
/*endif*/ /*endif*/
}
/*endif*/
if (t->current_rx_data_type != data_type || t->current_rx_field_type != field_type) if (t->current_rx_data_type != data_type || t->current_rx_field_type != field_type)
{ {
queue_missing_indicator(s, T38_DATA_NONE); queue_missing_indicator(s, T38_DATA_NONE);