kopia lustrzana https://gitlab.com/eliggett/wfview
Backup out of last change
rodzic
0d529b4a1b
commit
1e51e36c9d
|
@ -189,10 +189,11 @@ void audioHandler::start()
|
|||
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "start() running";
|
||||
|
||||
if (setup.isinput) {
|
||||
this->open(QIODevice::WriteOnly | QIODevice::Unbuffered);
|
||||
audioInput->start(this);
|
||||
//this->open(QIODevice::WriteOnly);
|
||||
//audioInput->start(this);
|
||||
audioDevice = audioInput->start();
|
||||
connect(audioInput, SIGNAL(destroyed()), audioDevice, SLOT(deleteLater()), Qt::UniqueConnection);
|
||||
//connect(audioDevice, SIGNAL(readyRead()), this, SLOT(getNextAudioChunk()), Qt::UniqueConnection);
|
||||
connect(audioDevice, SIGNAL(readyRead()), this, SLOT(getNextAudioChunk()), Qt::UniqueConnection);
|
||||
}
|
||||
else {
|
||||
// Buffer size must be set before audio is started.
|
||||
|
@ -228,6 +229,7 @@ void audioHandler::stop()
|
|||
audioDevice = Q_NULLPTR;
|
||||
}
|
||||
|
||||
/*
|
||||
qint64 audioHandler::readData(char* data, qint64 nBytes) {
|
||||
return nBytes;
|
||||
}
|
||||
|
@ -251,7 +253,7 @@ qint64 audioHandler::writeData(const char* data, qint64 nBytes) {
|
|||
|
||||
return nBytes;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
void audioHandler::setVolume(unsigned char volume)
|
||||
{
|
||||
|
@ -262,7 +264,7 @@ void audioHandler::setVolume(unsigned char volume)
|
|||
|
||||
void audioHandler::incomingAudio(audioPacket packet)
|
||||
{
|
||||
QTime startProcessing = QTime::currentTime();
|
||||
//QTime startProcessing = QTime::currentTime();
|
||||
|
||||
packet.volume = volume;
|
||||
|
||||
|
@ -274,22 +276,19 @@ void audioHandler::incomingAudio(audioPacket packet)
|
|||
void audioHandler::convertedOutput(audioPacket packet) {
|
||||
|
||||
currentLatency = packet.time.msecsTo(QTime::currentTime()) + (format.durationForBytes(audioOutput->bufferSize() - audioOutput->bytesFree()) / 1000);
|
||||
if (audioDevice != Q_NULLPTR && audioOutput != Q_NULLPTR) {
|
||||
if (audioDevice != Q_NULLPTR) {
|
||||
audioDevice->write(packet.data);
|
||||
if (lastReceived.msecsTo(QTime::currentTime()) > 100) {
|
||||
qDebug(logAudio()) << (setup.isinput ? "Input" : "Output") << "Time since last audio packet" << lastReceived.msecsTo(QTime::currentTime()) << "Expected around" << setup.blockSize;
|
||||
}
|
||||
lastReceived = QTime::currentTime();
|
||||
}
|
||||
|
||||
/*
|
||||
if ((packet.seq > lastSentSeq + 1) && (setup.codec == 0x40 || setup.codec == 0x80)) {
|
||||
/*if ((packet.seq > lastSentSeq + 1) && (setup.codec == 0x40 || setup.codec == 0x80)) {
|
||||
qDebug(logAudio()) << (setup.isinput ? "Input" : "Output") << "Attempting FEC on packet" << packet.seq << "as last is" << lastSentSeq;
|
||||
lastSentSeq = packet.seq;
|
||||
incomingAudio(packet); // Call myself again to run the packet a second time (FEC)
|
||||
}
|
||||
*/
|
||||
|
||||
lastSentSeq = packet.seq;
|
||||
emit haveLevels(getAmplitude(), setup.latency, currentLatency, isUnderrun);
|
||||
|
||||
|
@ -307,7 +306,7 @@ void audioHandler::getNextAudioChunk()
|
|||
packet.sent = 0;
|
||||
packet.volume = volume;
|
||||
memcpy(&packet.guid, setup.guid, GUIDLEN);
|
||||
QTime startProcessing = QTime::currentTime();
|
||||
//QTime startProcessing = QTime::currentTime();
|
||||
packet.data.clear();
|
||||
packet.data = tempBuf.data.mid(0, format.bytesForDuration(setup.blockSize * 1000));
|
||||
tempBuf.data.remove(0, format.bytesForDuration(setup.blockSize * 1000));
|
||||
|
@ -326,7 +325,6 @@ void audioHandler::convertedInput(audioPacket audio)
|
|||
qDebug(logAudio()) << (setup.isinput ? "Input" : "Output") << "Time since last audio packet" << lastReceived.msecsTo(QTime::currentTime()) << "Expected around" << setup.blockSize ;
|
||||
}
|
||||
lastReceived = QTime::currentTime();
|
||||
//ret = livePacket.data;
|
||||
amplitude = audio.amplitude;
|
||||
emit haveLevels(getAmplitude(), setup.latency, currentLatency, isUnderrun);
|
||||
}
|
||||
|
|
|
@ -72,7 +72,8 @@ struct audioSetup {
|
|||
};
|
||||
|
||||
// For QtMultimedia, use a native QIODevice
|
||||
class audioHandler : public QIODevice
|
||||
//class audioHandler : public QIODevice
|
||||
class audioHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -111,8 +112,8 @@ signals:
|
|||
|
||||
private:
|
||||
|
||||
qint64 readData(char* data, qint64 nBytes);
|
||||
qint64 writeData(const char* data, qint64 nBytes);
|
||||
//qint64 readData(char* data, qint64 nBytes);
|
||||
//qint64 writeData(const char* data, qint64 nBytes);
|
||||
|
||||
|
||||
bool isUnderrun = false;
|
||||
|
|
Ładowanie…
Reference in New Issue