mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-22 16:25:45 +08:00
Fix the silence insertion for D-Star.
This commit is contained in:
@@ -708,10 +708,10 @@ void CDStarControl::writeNetwork()
|
|||||||
writeEndNet();
|
writeEndNet();
|
||||||
}
|
}
|
||||||
} else if (type == TAG_DATA) {
|
} else if (type == TAG_DATA) {
|
||||||
unsigned char m_netN = data[1U];
|
unsigned char n = data[1U];
|
||||||
|
|
||||||
// Check for the fast data signature
|
// Check for the fast data signature
|
||||||
if (m_netState == RS_NET_AUDIO && (m_netN % 2U) == 1U) {
|
if (m_netState == RS_NET_AUDIO && (n % 2U) == 1U) {
|
||||||
unsigned char slowDataType = data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] & DSTAR_SLOW_DATA_TYPE_MASK;
|
unsigned char slowDataType = data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] & DSTAR_SLOW_DATA_TYPE_MASK;
|
||||||
if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) {
|
if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) {
|
||||||
LogMessage("D-Star, switching to fast data mode");
|
LogMessage("D-Star, switching to fast data mode");
|
||||||
@@ -727,6 +727,8 @@ void CDStarControl::writeNetwork()
|
|||||||
m_netBits += 72U;
|
m_netBits += 72U;
|
||||||
m_netErrs = 0U;
|
m_netErrs = 0U;
|
||||||
|
|
||||||
|
m_netN = n;
|
||||||
|
|
||||||
// Regenerate the sync
|
// Regenerate the sync
|
||||||
if (m_netN == 0U)
|
if (m_netN == 0U)
|
||||||
CSync::addDStarSync(data + 2U);
|
CSync::addDStarSync(data + 2U);
|
||||||
@@ -756,13 +758,15 @@ void CDStarControl::writeNetwork()
|
|||||||
data[1U] = TAG_DATA;
|
data[1U] = TAG_DATA;
|
||||||
|
|
||||||
// Insert silence and reject if in the past
|
// Insert silence and reject if in the past
|
||||||
bool ret = insertSilence(data + 1U, m_netN);
|
bool ret = insertSilence(data + 1U, n);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_netErrs += errors;
|
m_netErrs += errors;
|
||||||
m_netBits += 48U;
|
m_netBits += 48U;
|
||||||
|
|
||||||
|
m_netN = n;
|
||||||
|
|
||||||
// Regenerate the sync
|
// Regenerate the sync
|
||||||
if (m_netN == 0U)
|
if (m_netN == 0U)
|
||||||
CSync::addDStarSync(data + 2U);
|
CSync::addDStarSync(data + 2U);
|
||||||
|
|||||||
Reference in New Issue
Block a user