Skip to content

Commit 110824e

Browse files
committed
fix implementation for acking Start of Stream (writeImmediate wasn't really necessary using STT_NON_IMBE_NO_JITTER causes queued packets to bypass jitter buffer timing);
1 parent d7b887a commit 110824e

2 files changed

Lines changed: 10 additions & 33 deletions

File tree

src/host/modem/ModemV24.cpp

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,15 @@ void ModemV24::convertToAirTIA(const uint8_t *data, uint32_t length)
11781178
}
11791179
break;
11801180

1181+
case BlockType::START_OF_STREAM_ACK:
1182+
{
1183+
if (m_debug)
1184+
::LogDebugEx(LOG_MODEM, "ModemV24::convertToAirTIA()", "Start of Stream ACK");
1185+
1186+
// do nothing with the start of stream ack
1187+
}
1188+
break;
1189+
11811190
case BlockType::VOICE_HEADER_P1:
11821191
{
11831192
// copy to call data VHDR1
@@ -1942,7 +1951,7 @@ void ModemV24::ackStartOfStreamTIA()
19421951
if (m_trace)
19431952
Utils::dump(1U, "ModemV24::ackStartOfStreamTIA() Ack StartOfStream", buffer, length);
19441953

1945-
writeImmediate(buffer, length);
1954+
queueP25Frame(buffer, length, STT_NON_IMBE_NO_JITTER);
19461955
}
19471956

19481957
/* Internal helper to convert from TIA-102 air interface to V.24/DFSI. */
@@ -2570,27 +2579,3 @@ void ModemV24::convertFromAirTIA(uint8_t* data, uint32_t length)
25702579
}
25712580
}
25722581
}
2573-
2574-
/* Writes raw data to the air interface modem. */
2575-
2576-
int ModemV24::writeImmediate(const uint8_t* data, uint32_t length)
2577-
{
2578-
assert(data != nullptr);
2579-
2580-
// add the DVM start byte, length byte, CMD byte, and padding 0
2581-
uint8_t header[4U];
2582-
header[0U] = DVM_SHORT_FRAME_START;
2583-
header[1U] = length & 0xFFU;
2584-
header[2U] = CMD_P25_DATA;
2585-
header[3U] = 0x00U;
2586-
2587-
// get the actual data
2588-
UInt8Array __buffer = std::make_unique<uint8_t[]>(length + 4U);
2589-
uint8_t* buffer = __buffer.get();
2590-
2591-
::memset(buffer, 0x00U, length + 4U);
2592-
::memcpy(buffer, header, 4U);
2593-
::memcpy(buffer + 4U, data, length);
2594-
2595-
return m_port->write(data, length);
2596-
}

src/host/modem/ModemV24.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -408,14 +408,6 @@ namespace modem
408408
* @param length Length of buffer.
409409
*/
410410
void convertFromAirTIA(uint8_t* data, uint32_t length);
411-
412-
/**
413-
* @brief Writes raw data to the air interface modem (with no jitter delay).
414-
* @param data Data to write to modem.
415-
* @param length Length of data to write.
416-
* @returns int Actual length of data written.
417-
*/
418-
int writeImmediate(const uint8_t* data, uint32_t length);
419411
};
420412
} // namespace modem
421413

0 commit comments

Comments
 (0)