mirror of https://github.com/g4klx/MMDVMHost
Add more detail.
This commit is contained in:
parent
036d8b3d2d
commit
982b0992b3
|
|
@ -70,14 +70,20 @@ bool CJitterBuffer::addData(const unsigned char* data, unsigned int sequenceNumb
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int number = sequenceNumber - headSequenceNumber;
|
unsigned int number;
|
||||||
|
if (sequenceNumber >= headSequenceNumber)
|
||||||
|
number = sequenceNumber - headSequenceNumber;
|
||||||
|
else
|
||||||
|
number = (sequenceNumber + m_blockCount) - headSequenceNumber;;
|
||||||
|
|
||||||
|
unsigned int index = (m_headSequenceNumber + number) % m_blockCount;
|
||||||
|
|
||||||
// Do we already have the data?
|
// Do we already have the data?
|
||||||
if (m_buffer[number].m_used)
|
if (m_buffer[index].m_used)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
::memcpy(m_buffer[number].m_data, data, m_blockSize);
|
::memcpy(m_buffer[index].m_data, data, m_blockSize);
|
||||||
m_buffer[number].m_used = true;
|
m_buffer[index].m_used = true;
|
||||||
|
|
||||||
if (!m_timer.isRunning())
|
if (!m_timer.isRunning())
|
||||||
m_timer.start();
|
m_timer.start();
|
||||||
|
|
@ -98,8 +104,11 @@ JB_STATUS CJitterBuffer::getData(unsigned char* data)
|
||||||
if (m_headSequenceNumber > sequenceNumber)
|
if (m_headSequenceNumber > sequenceNumber)
|
||||||
return JBS_NO_DATA;
|
return JBS_NO_DATA;
|
||||||
|
|
||||||
if (m_buffer[m_headSequenceNumber].m_used) {
|
unsigned int head = m_headSequenceNumber % m_blockCount;
|
||||||
::memcpy(data, m_buffer[m_headSequenceNumber].m_data, m_blockSize);
|
|
||||||
|
if (m_buffer[head].m_used) {
|
||||||
|
::memcpy(data, m_buffer[head].m_data, m_blockSize);
|
||||||
|
m_buffer[head].m_used = false;
|
||||||
|
|
||||||
m_headSequenceNumber++;
|
m_headSequenceNumber++;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue