Copy audio to UDP/RTP: Opus implementation (1)

pull/295/head
f4exb 2019-02-18 07:57:03 +01:00
rodzic c1fb4bb46c
commit a269462b55
2 zmienionych plików z 11 dodań i 1 usunięć

Wyświetl plik

@ -206,6 +206,10 @@ void AudioNetSink::write(qint16 isample)
m_udpSocket->writeDatagram((const char*) m_data, (qint64 ) m_udpBlockSize, m_address, m_port);
m_bufferIndex = 0;
}
}
else if (m_codec == CodecOpus)
{
}
else
{
@ -242,6 +246,11 @@ void AudioNetSink::write(qint16 isample)
if (m_bufferIndex == 2*m_udpBlockSize) {
m_g722.encode((uint8_t *) m_data, (const int16_t*) &m_data[m_udpBlockSize], 2*m_udpBlockSize);
}
}
break;
case CodecOpus:
{
}
break;
case CodecL16:

Wyświetl plik

@ -71,7 +71,7 @@ public:
static const int m_udpBlockSize;
static const int m_dataBlockSize = 65536; // room for G722 conversion (64000 = 12800*5 largest to date)
static const int m_g722BlockSize = 12800; // number of resulting G722 bytes (80*20ms frames)
static const int m_opusBlockSize = 960*4; // provision for 20ms of 2 int16 channels at 48 kS/s
static const int m_opusBlockSize = 960*2; // provision for 20ms of 2 int16 channels at 48 kS/s
protected:
void setDecimationFilters();
@ -87,6 +87,7 @@ protected:
uint32_t m_decimation;
uint32_t m_decimationCount;
char m_data[m_dataBlockSize];
uint16_t m_opusIn[m_opusBlockSize];
unsigned int m_bufferIndex;
QHostAddress m_address;
unsigned int m_port;