repairs to stats packet in AudioMixerClientData

This commit is contained in:
Stephen Birarda 2015-07-07 14:55:58 -07:00
parent 733206b872
commit f6cd67f75e

View file

@ -158,19 +158,22 @@ void AudioMixerClientData::sendAudioStreamStatsPackets(const SharedNodePointer&
// pack and send stream stats packets until all audio streams' stats are sent // pack and send stream stats packets until all audio streams' stats are sent
int numStreamStatsRemaining = _audioStreams.size(); int numStreamStatsRemaining = _audioStreams.size();
QHash<QUuid, PositionalAudioStream*>::ConstIterator audioStreamsIterator = _audioStreams.constBegin(); QHash<QUuid, PositionalAudioStream*>::ConstIterator audioStreamsIterator = _audioStreams.constBegin();
PacketList statsPacketList(PacketType::AudioStreamStats);
while (numStreamStatsRemaining > 0) { while (numStreamStatsRemaining > 0) {
auto statsPacket { NLPacket::create(PacketType::AudioStreamStats); } auto statsPacket = NLPacket::create(PacketType::AudioStreamStats);
// pack the append flag in this packet // pack the append flag in this packet
statsPacket.write(&appendFlag, sizeof(quint8)); statsPacket->write(&appendFlag, sizeof(quint8));
appendFlag = 1; appendFlag = 1;
int numStreamStatsRoomFor = (statsPacket.size() - sizeof(quint8) - sizeof(quint16)) / sizeof(AudioStreamStats); int numStreamStatsRoomFor = (statsPacket.size() - sizeof(quint8) - sizeof(quint16)) / sizeof(AudioStreamStats);
// calculate and pack the number of stream stats to follow // calculate and pack the number of stream stats to follow
quint16 numStreamStatsToPack = std::min(numStreamStatsRemaining, numStreamStatsRoomFor); quint16 numStreamStatsToPack = std::min(numStreamStatsRemaining, numStreamStatsRoomFor);
statsPacket.write(&numStreamStatsToPack, sizeof(quint16)); statsPacket->write(&numStreamStatsToPack, sizeof(quint16));
// pack the calculated number of stream stats // pack the calculated number of stream stats
for (int i = 0; i < numStreamStatsToPack; i++) { for (int i = 0; i < numStreamStatsToPack; i++) {
@ -179,10 +182,11 @@ void AudioMixerClientData::sendAudioStreamStatsPackets(const SharedNodePointer&
stream->perSecondCallbackForUpdatingStats(); stream->perSecondCallbackForUpdatingStats();
AudioStreamStats streamStats = stream->getAudioStreamStats(); AudioStreamStats streamStats = stream->getAudioStreamStats();
statsPacket.write(&streamStats, sizeof(AudioStreamStats)); statsPacket->write(&streamStats, sizeof(AudioStreamStats));
audioStreamsIterator++; audioStreamsIterator++;
} }
numStreamStatsRemaining -= numStreamStatsToPack; numStreamStatsRemaining -= numStreamStatsToPack;
// send the current packet // send the current packet