mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:58:03 +02:00
Fix bug in how emitAudioPacket() determines mono/stereo.
Compressed bytes were counted as if audio samples.
This commit is contained in:
parent
c363a9281e
commit
660032d8fb
4 changed files with 6 additions and 8 deletions
|
@ -439,7 +439,7 @@ void Agent::executeScript() {
|
||||||
encodedBuffer = audio;
|
encodedBuffer = audio;
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractAudioInterface::emitAudioPacket(encodedBuffer.data(), encodedBuffer.size(), audioSequenceNumber,
|
AbstractAudioInterface::emitAudioPacket(encodedBuffer.data(), encodedBuffer.size(), audioSequenceNumber, false,
|
||||||
audioTransform, scriptedAvatar->getWorldPosition(), glm::vec3(0),
|
audioTransform, scriptedAvatar->getWorldPosition(), glm::vec3(0),
|
||||||
packetType, _selectedCodecName);
|
packetType, _selectedCodecName);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1079,7 +1079,7 @@ void AudioClient::handleAudioInput(QByteArray& audioBuffer) {
|
||||||
encodedBuffer = audioBuffer;
|
encodedBuffer = audioBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
emitAudioPacket(encodedBuffer.data(), encodedBuffer.size(), _outgoingAvatarAudioSequenceNumber,
|
emitAudioPacket(encodedBuffer.data(), encodedBuffer.size(), _outgoingAvatarAudioSequenceNumber, _isStereoInput,
|
||||||
audioTransform, avatarBoundingBoxCorner, avatarBoundingBoxScale,
|
audioTransform, avatarBoundingBoxCorner, avatarBoundingBoxScale,
|
||||||
packetType, _selectedCodecName);
|
packetType, _selectedCodecName);
|
||||||
_stats.sentPacket();
|
_stats.sentPacket();
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include "AudioConstants.h"
|
#include "AudioConstants.h"
|
||||||
|
|
||||||
void AbstractAudioInterface::emitAudioPacket(const void* audioData, size_t bytes, quint16& sequenceNumber,
|
void AbstractAudioInterface::emitAudioPacket(const void* audioData, size_t bytes, quint16& sequenceNumber, bool isStereo,
|
||||||
const Transform& transform, glm::vec3 avatarBoundingBoxCorner, glm::vec3 avatarBoundingBoxScale,
|
const Transform& transform, glm::vec3 avatarBoundingBoxCorner, glm::vec3 avatarBoundingBoxScale,
|
||||||
PacketType packetType, QString codecName) {
|
PacketType packetType, QString codecName) {
|
||||||
static std::mutex _mutex;
|
static std::mutex _mutex;
|
||||||
|
@ -30,9 +30,6 @@ void AbstractAudioInterface::emitAudioPacket(const void* audioData, size_t bytes
|
||||||
Locker lock(_mutex);
|
Locker lock(_mutex);
|
||||||
auto audioPacket = NLPacket::create(packetType);
|
auto audioPacket = NLPacket::create(packetType);
|
||||||
|
|
||||||
// FIXME - this is not a good way to determine stereoness with codecs....
|
|
||||||
quint8 isStereo = bytes == AudioConstants::NETWORK_FRAME_BYTES_STEREO ? 1 : 0;
|
|
||||||
|
|
||||||
// write sequence number
|
// write sequence number
|
||||||
auto sequence = sequenceNumber++;
|
auto sequence = sequenceNumber++;
|
||||||
audioPacket->writePrimitive(sequence);
|
audioPacket->writePrimitive(sequence);
|
||||||
|
@ -48,7 +45,8 @@ void AbstractAudioInterface::emitAudioPacket(const void* audioData, size_t bytes
|
||||||
audioPacket->writePrimitive(numSilentSamples);
|
audioPacket->writePrimitive(numSilentSamples);
|
||||||
} else {
|
} else {
|
||||||
// set the mono/stereo byte
|
// set the mono/stereo byte
|
||||||
audioPacket->writePrimitive(isStereo);
|
quint8 channelFlag = isStereo ? 1 : 0;
|
||||||
|
audioPacket->writePrimitive(channelFlag);
|
||||||
}
|
}
|
||||||
|
|
||||||
// pack the three float positions
|
// pack the three float positions
|
||||||
|
|
|
@ -29,7 +29,7 @@ class AbstractAudioInterface : public QObject {
|
||||||
public:
|
public:
|
||||||
AbstractAudioInterface(QObject* parent = 0) : QObject(parent) {};
|
AbstractAudioInterface(QObject* parent = 0) : QObject(parent) {};
|
||||||
|
|
||||||
static void emitAudioPacket(const void* audioData, size_t bytes, quint16& sequenceNumber,
|
static void emitAudioPacket(const void* audioData, size_t bytes, quint16& sequenceNumber, bool isStereo,
|
||||||
const Transform& transform, glm::vec3 avatarBoundingBoxCorner, glm::vec3 avatarBoundingBoxScale,
|
const Transform& transform, glm::vec3 avatarBoundingBoxCorner, glm::vec3 avatarBoundingBoxScale,
|
||||||
PacketType packetType, QString codecName = QString(""));
|
PacketType packetType, QString codecName = QString(""));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue