mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 23:33:48 +02:00
added networkSamples buffer to MixedProcessedAudioStream
This commit is contained in:
parent
7aa5a1f830
commit
fea97f8fe8
3 changed files with 24 additions and 5 deletions
|
@ -905,7 +905,7 @@ void Audio::addSpatialAudioToBuffer(unsigned int sampleTime, const QByteArray& s
|
|||
unsigned int delayCount = delay * _desiredOutputFormat.channelCount();
|
||||
unsigned int silentCount = (remaining < delayCount) ? remaining : delayCount;
|
||||
if (silentCount) {
|
||||
_spatialAudioRingBuffer.addSilentFrame(silentCount);
|
||||
_spatialAudioRingBuffer.addSilentSamples(silentCount);
|
||||
}
|
||||
|
||||
// Recalculate the number of remaining samples
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
#include "MixedProcessedAudioStream.h"
|
||||
|
||||
MixedProcessedAudioStream::MixedProcessedAudioStream(int numFrameSamples, int numFramesCapacity, const InboundAudioStream::Settings& settings)
|
||||
: InboundAudioStream(numFrameSamples, numFramesCapacity, settings)
|
||||
: InboundAudioStream(numFrameSamples, numFramesCapacity, settings),
|
||||
_networkSamplesWritten(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -24,6 +25,9 @@ void MixedProcessedAudioStream::outputFormatChanged(int outputFormatChannelCount
|
|||
|
||||
int MixedProcessedAudioStream::parseAudioData(PacketType type, const QByteArray& packetAfterStreamProperties, int networkSamples) {
|
||||
|
||||
memcpy(&_networkSamples[_networkSamplesWritten], packetAfterStreamProperties.data(), packetAfterStreamProperties.size());
|
||||
_networkSamplesWritten += packetAfterStreamProperties.size() / sizeof(int16_t);
|
||||
|
||||
QByteArray outputBuffer;
|
||||
emit processSamples(packetAfterStreamProperties, outputBuffer);
|
||||
|
||||
|
@ -33,10 +37,21 @@ int MixedProcessedAudioStream::parseAudioData(PacketType type, const QByteArray&
|
|||
}
|
||||
|
||||
int MixedProcessedAudioStream::writeDroppableSilentSamples(int silentSamples) {
|
||||
return InboundAudioStream::writeDroppableSilentSamples(networkToDeviceSamples(silentSamples));
|
||||
int deviceSilentSamplesWritten = InboundAudioStream::writeDroppableSilentSamples(networkToDeviceSamples(silentSamples));
|
||||
|
||||
int networkSilentSamplesWritten = deviceToNetworkSamples(deviceSilentSamplesWritten);
|
||||
memset(&_networkSamples[_networkSamplesWritten], 0, networkSilentSamplesWritten * sizeof(int16_t));
|
||||
_networkSamplesWritten += networkSilentSamplesWritten;
|
||||
|
||||
return deviceSilentSamplesWritten;
|
||||
}
|
||||
|
||||
static const int STEREO_FACTOR = 2;
|
||||
|
||||
int MixedProcessedAudioStream::networkToDeviceSamples(int networkSamples) {
|
||||
const int STEREO_DIVIDER = 2;
|
||||
return networkSamples * _outputFormatChannelsTimesSampleRate / (STEREO_DIVIDER * SAMPLE_RATE);
|
||||
return networkSamples * _outputFormatChannelsTimesSampleRate / (STEREO_FACTOR * SAMPLE_RATE);
|
||||
}
|
||||
|
||||
int MixedProcessedAudioStream::deviceToNetworkSamples(int deviceSamples) {
|
||||
return deviceSamples * (STEREO_FACTOR * SAMPLE_RATE) / _outputFormatChannelsTimesSampleRate;
|
||||
}
|
||||
|
|
|
@ -32,8 +32,12 @@ protected:
|
|||
|
||||
private:
|
||||
int networkToDeviceSamples(int networkSamples);
|
||||
int deviceToNetworkSamples(int deviceSamples);
|
||||
private:
|
||||
int _outputFormatChannelsTimesSampleRate;
|
||||
|
||||
int16_t _networkSamples[10 * NETWORK_BUFFER_LENGTH_SAMPLES_STEREO];
|
||||
int _networkSamplesWritten;
|
||||
};
|
||||
|
||||
#endif // hifi_MixedProcessedAudioStream_h
|
||||
|
|
Loading…
Reference in a new issue