CR feedback

This commit is contained in:
David Kelly 2016-10-27 17:49:43 -07:00
parent 52a14bf5c3
commit e3a22618d1
5 changed files with 9 additions and 11 deletions

View file

@ -474,7 +474,7 @@ void Agent::processAgentAvatar() {
nodeList->broadcastToNodes(std::move(avatarPacket), NodeSet() << NodeType::AvatarMixer); nodeList->broadcastToNodes(std::move(avatarPacket), NodeSet() << NodeType::AvatarMixer);
} }
} }
void Agent::flushEncoder(QByteArray& encodedZeros) { void Agent::encodeFrameOfZeros(QByteArray& encodedZeros) {
_flushEncoder = false; _flushEncoder = false;
static const QByteArray zeros(AudioConstants::NETWORK_FRAME_BYTES_PER_CHANNEL, 0); static const QByteArray zeros(AudioConstants::NETWORK_FRAME_BYTES_PER_CHANNEL, 0);
if (_encoder) { if (_encoder) {
@ -560,14 +560,11 @@ void Agent::processAgentAvatarAudio() {
QByteArray encodedBuffer; QByteArray encodedBuffer;
if (_flushEncoder) { if (_flushEncoder) {
// after sound is done playing, encoder has a bit of state in it, encodeFrameOfZeros(encodedBuffer);
// and needs some 0s to forget or you get a little click next time
// you play something. So, basically 0-pad the end of the sound buffer
flushEncoder(encodedBuffer);
} else { } else {
// encode it
QByteArray decodedBuffer(reinterpret_cast<const char*>(nextSoundOutput), numAvailableSamples*sizeof(int16_t)); QByteArray decodedBuffer(reinterpret_cast<const char*>(nextSoundOutput), numAvailableSamples*sizeof(int16_t));
if (_encoder) { if (_encoder) {
// encode it
_encoder->encode(decodedBuffer, encodedBuffer); _encoder->encode(decodedBuffer, encodedBuffer);
} else { } else {
encodedBuffer = decodedBuffer; encodedBuffer = decodedBuffer;

View file

@ -81,7 +81,7 @@ signals:
private: private:
void negotiateAudioFormat(); void negotiateAudioFormat();
void selectAudioFormat(const QString& selectedCodecName); void selectAudioFormat(const QString& selectedCodecName);
void flushEncoder(QByteArray& encodedZeros); void encodeFrameOfZeros(QByteArray& encodedZeros);
std::unique_ptr<ScriptEngine> _scriptEngine; std::unique_ptr<ScriptEngine> _scriptEngine;
EntityEditPacketSender _entityEditSender; EntityEditPacketSender _entityEditSender;

View file

@ -825,15 +825,16 @@ void AudioMixer::broadcastMixes() {
mixPacket->writeString(codecInPacket); mixPacket->writeString(codecInPacket);
QByteArray encodedBuffer; QByteArray encodedBuffer;
if ( mixHasAudio) { if (mixHasAudio) {
QByteArray decodedBuffer(reinterpret_cast<char*>(_clampedSamples), AudioConstants::NETWORK_FRAME_BYTES_STEREO); QByteArray decodedBuffer(reinterpret_cast<char*>(_clampedSamples), AudioConstants::NETWORK_FRAME_BYTES_STEREO);
nodeData->encode(decodedBuffer, encodedBuffer); nodeData->encode(decodedBuffer, encodedBuffer);
} else { } else {
// time to flush, which resets the shouldFlush until next time we encode something // time to flush, which resets the shouldFlush until next time we encode something
nodeData->flushEncoder(encodedBuffer); nodeData->encodeFrameOfZeros(encodedBuffer);
} }
// pack mixed audio samples // pack mixed audio samples
mixPacket->write(encodedBuffer.constData(), encodedBuffer.size()); mixPacket->write(encodedBuffer.constData(), encodedBuffer.size());
} else { } else {
int silentPacketBytes = sizeof(quint16) + sizeof(quint16) + AudioConstants::MAX_CODEC_NAME_LENGTH_ON_WIRE; int silentPacketBytes = sizeof(quint16) + sizeof(quint16) + AudioConstants::MAX_CODEC_NAME_LENGTH_ON_WIRE;
mixPacket = NLPacket::create(PacketType::SilentAudioFrame, silentPacketBytes); mixPacket = NLPacket::create(PacketType::SilentAudioFrame, silentPacketBytes);

View file

@ -371,7 +371,7 @@ void AudioMixerClientData::sendSelectAudioFormat(SharedNodePointer node, const Q
nodeList->sendPacket(std::move(replyPacket), *node); nodeList->sendPacket(std::move(replyPacket), *node);
} }
void AudioMixerClientData::flushEncoder(QByteArray& encodedZeros) { void AudioMixerClientData::encodeFrameOfZeros(QByteArray& encodedZeros) {
static QByteArray zeros(AudioConstants::NETWORK_FRAME_BYTES_STEREO, 0); static QByteArray zeros(AudioConstants::NETWORK_FRAME_BYTES_STEREO, 0);
if (_shouldFlushEncoder) { if (_shouldFlushEncoder) {
if (_encoder) { if (_encoder) {

View file

@ -80,7 +80,7 @@ public:
// once you have encoded, you need to flush eventually. // once you have encoded, you need to flush eventually.
_shouldFlushEncoder = true; _shouldFlushEncoder = true;
} }
void flushEncoder(QByteArray& encodedZeros); void encodeFrameOfZeros(QByteArray& encodedZeros);
bool shouldFlushEncoder() { return _shouldFlushEncoder; } bool shouldFlushEncoder() { return _shouldFlushEncoder; }
QString getCodecName() { return _selectedCodecName; } QString getCodecName() { return _selectedCodecName; }