History

Made changes requested by reviewer

Fixed missing copyright headers. Fixed exceeding 120 columns. Fixed #include Fixed if conditional style. Fixed C++ reference symbol placement.

Marcus Llewellyn committed 6 years ago

Commit 24669c91 parent f23dfc74 files · +102 −32Browse files

Showing the changes to plugins/opusCodec/src/OpusDecoder.cpp (1 of 4 files). Show all

Unified · Split

plugins/opusCodec/src/OpusDecoder.cpp+30−10
@@ -1,3 +1,13 @@
1//
2// OpusCodecManager.h
3// plugins/opusCodec/src
4//
5// Copyright 2020 Dale Glass
6//
7// Distributed under the Apache License, Version 2.0.
8// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
9//
10
1#include <PerfStat.h>11#include <PerfStat.h>
2#include <QtCore/QLoggingCategory>12#include <QtCore/QLoggingCategory>
3#include <AudioConstants.h>13#include <AudioConstants.h>
@@ -60,25 +70,30 @@ void AthenaOpusDecoder::decode(const QByteArray &encodedBuffer, QByteArray &deco · 56 unmodified lines
60 PerformanceTimer perfTimer("AthenaOpusDecoder::decode");70 PerformanceTimer perfTimer("AthenaOpusDecoder::decode");
61 71
62 // The audio system encodes and decodes always in fixed size chunks72 // The audio system encodes and decodes always in fixed size chunks
63 int buffer_size = AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;73 int buffer_size = AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * static_cast<int>(sizeof(int16_t))
74 * _opus_num_channels;
64 75
65 decodedBuffer.resize( buffer_size );76 decodedBuffer.resize( buffer_size );
66 int buffer_frames = decodedBuffer.size() / _opus_num_channels / static_cast<int>(sizeof( opus_int16 ));77 int buffer_frames = decodedBuffer.size() / _opus_num_channels / static_cast<int>(sizeof( opus_int16 ));
67 78
68 qCDebug(decoder) << "Opus decode: encodedBytes = " << encodedBuffer.length() << "; decodedBufferBytes = " << decodedBuffer.size() << "; frameCount = " << buffer_frames;79 qCDebug(decoder) << "Opus decode: encodedBytes = " << encodedBuffer.length() << "; decodedBufferBytes = "
69 int decoded_frames = opus_decode( _decoder, reinterpret_cast<const unsigned char*>(encodedBuffer.data()), encodedBuffer.length(), reinterpret_cast<opus_int16*>(decodedBuffer.data()), buffer_frames, 0 );80 << decodedBuffer.size() << "; frameCount = " << buffer_frames;
81 int decoded_frames = opus_decode( _decoder, reinterpret_cast<const unsigned char*>(encodedBuffer.data()),
82 encodedBuffer.length(), reinterpret_cast<opus_int16*>(decodedBuffer.data()), buffer_frames, 0 );
70 83
71 if ( decoded_frames >= 0 ) {84 if ( decoded_frames >= 0 ) {
72 //qCDebug(decoder) << "Decoded " << decoded_frames << " Opus frames, " << buffer_frames << " expected";85 //qCDebug(decoder) << "Decoded " << decoded_frames << " Opus frames, " << buffer_frames << " expected";
73 86
74 if ( decoded_frames < buffer_frames ) {87 if ( decoded_frames < buffer_frames ) {
75 qCWarning(decoder) << "Opus decoder returned " << decoded_frames << ", but " << buffer_frames << " were expected!";88 qCWarning(decoder) << "Opus decoder returned " << decoded_frames << ", but " << buffer_frames
89 << " were expected!";
76 90
77 int start = decoded_frames * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;91 int start = decoded_frames * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;
78 memset( &decodedBuffer.data()[start], 0, static_cast<size_t>(decodedBuffer.length() - start));92 memset( &decodedBuffer.data()[start], 0, static_cast<size_t>(decodedBuffer.length() - start));
79 } else if ( decoded_frames > buffer_frames ) {93 } else if ( decoded_frames > buffer_frames ) {
80 // This should never happen94 // This should never happen
81 qCCritical(decoder) << "Opus decoder returned " << decoded_frames << ", but only " << buffer_frames << " were expected! Buffer overflow!?";95 qCCritical(decoder) << "Opus decoder returned " << decoded_frames << ", but only " << buffer_frames
96 << " were expected! Buffer overflow!?";
82 }97 }
83 } else {98 } else {
84 qCCritical(decoder) << "Failed to decode audio: " << error_to_string(decoded_frames);99 qCCritical(decoder) << "Failed to decode audio: " << error_to_string(decoded_frames);
@@ -93,23 +108,28 @@ void AthenaOpusDecoder::lostFrame(QByteArray &decodedBuffer) · 8 unmodified lines
93 108
94 PerformanceTimer perfTimer("AthenaOpusDecoder::lostFrame");109 PerformanceTimer perfTimer("AthenaOpusDecoder::lostFrame");
95 110
96 int buffer_size = AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;111 int buffer_size = AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * static_cast<int>(sizeof(int16_t))
112 * _opus_num_channels;
97 decodedBuffer.resize( buffer_size );113 decodedBuffer.resize( buffer_size );
98 int buffer_frames = decodedBuffer.size() / _opus_num_channels / static_cast<int>(sizeof( opus_int16 ));114 int buffer_frames = decodedBuffer.size() / _opus_num_channels / static_cast<int>(sizeof( opus_int16 ));
99 115
100 int decoded_frames = opus_decode( _decoder, nullptr, 0, reinterpret_cast<opus_int16*>(decodedBuffer.data()), buffer_frames, 1 );116 int decoded_frames = opus_decode( _decoder, nullptr, 0, reinterpret_cast<opus_int16*>(decodedBuffer.data()),
117 buffer_frames, 1 );
101 118
102 if ( decoded_frames >= 0 ) {119 if ( decoded_frames >= 0 ) {
103 //qCDebug(decoder) << "Produced " << decoded_frames << " opus frames from a lost frame, " << buffer_frames << " expected";120 //qCDebug(decoder) << "Produced " << decoded_frames << " opus frames from a lost frame, " << buffer_frames
121 // << " expected";
104 122
105 if ( decoded_frames < buffer_frames ) {123 if ( decoded_frames < buffer_frames ) {
106 qCWarning(decoder) << "Opus decoder returned " << decoded_frames << ", but " << buffer_frames << " were expected!";124 qCWarning(decoder) << "Opus decoder returned " << decoded_frames << ", but " << buffer_frames
125 << " were expected!";
107 126
108 int start = decoded_frames * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;127 int start = decoded_frames * static_cast<int>(sizeof(int16_t)) * _opus_num_channels;
109 memset( &decodedBuffer.data()[start], 0, static_cast<size_t>(decodedBuffer.length() - start));128 memset( &decodedBuffer.data()[start], 0, static_cast<size_t>(decodedBuffer.length() - start));
110 } else if ( decoded_frames > buffer_frames ) {129 } else if ( decoded_frames > buffer_frames ) {
111 // This should never happen130 // This should never happen
112 qCCritical(decoder) << "Opus decoder returned " << decoded_frames << ", but only " << buffer_frames << " were expected! Buffer overflow!?";131 qCCritical(decoder) << "Opus decoder returned " << decoded_frames << ", but only " << buffer_frames
132 << " were expected! Buffer overflow!?";
113 }133 }
114 } else {134 } else {
115 qCCritical(decoder) << "Failed to decode lost frame: " << error_to_string(decoded_frames);135 qCCritical(decoder) << "Failed to decode lost frame: " << error_to_string(decoded_frames);