Skip to content

Commit b33f5af

Browse files
committed
BinaryContainer final commit
1 parent e6dd304 commit b33f5af

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

examples/tests/codecs/test-container-binary/test-container-binary.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
*/
1111
#include "AudioTools.h"
1212
#include "AudioCodecs/ContainerBinary.h"
13+
#include "AudioCodecs/CodecOpus.h"
1314
#include "AudioLibs/AudioKit.h"
1415

1516
AudioInfo info(8000,1,16);
1617
SineWaveGenerator<int16_t> sineWave( 32000); // subclass of SoundGenerator with max amplitude of 32000
1718
GeneratedSoundStream<int16_t> sound( sineWave); // Stream generated from sine wave
1819
AudioKitStream out;
19-
EncodedAudioStream decoder(&out, new BinaryContainerDecoder()); // encode and write
20-
EncodedAudioStream encoder(&decoder, new BinaryContainerEncoder()); // encode and write
20+
EncodedAudioStream decoder(&out, new BinaryContainerDecoder(new OpusAudioDecoder()));
21+
EncodedAudioStream encoder(&decoder, new BinaryContainerEncoder(new OpusAudioEncoder()));
2122
StreamCopy copier(encoder, sound);
2223

2324
void setup() {

src/AudioCodecs/CodecOpus.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,17 @@ class OpusAudioDecoder : public AudioDecoder {
189189
size_t write(const void *in_ptr, size_t in_size) override {
190190
if (!active || p_print == nullptr) return 0;
191191
// decode data
192-
LOGD("opus_decode - bytes: %d", (int)in_size);
192+
LOGD("OpusAudioDecoder::write: %d", (int)in_size);
193193
int in_band_forware_error_correction = 0;
194194
int out_samples = opus_decode(
195195
dec, (uint8_t *)in_ptr, in_size, (opus_int16 *)outbuf.data(),
196196
cfg.max_buffer_size, in_band_forware_error_correction);
197197
if (out_samples < 0) {
198-
LOGE("opus_decode: %s", opus_strerror(out_samples));
198+
LOGE("opus-decode: %s", opus_strerror(out_samples));
199199
} else if (out_samples > 0) {
200200
// write data to final destination
201201
int out_bytes = out_samples * cfg.channels * sizeof(int16_t);
202+
LOGD("opus-decode: %d", out_bytes);
202203
p_print->write(outbuf.data(), out_bytes);
203204
}
204205
return in_size;
@@ -277,6 +278,7 @@ class OpusAudioEncoder : public AudioEncoder {
277278
/// Writes PCM data to be encoded as Opus
278279
size_t write(const void *in_ptr, size_t in_size) override {
279280
if (!is_open || p_print == nullptr) return 0;
281+
LOGD("OpusAudioEncoder::write: %d", (int)in_size);
280282

281283
// fill frame
282284
uint8_t *p_byte = (uint8_t *)in_ptr;
@@ -322,6 +324,7 @@ class OpusAudioEncoder : public AudioEncoder {
322324
if (len < 0) {
323325
LOGE("opus_encode: %s", opus_strerror(len));
324326
} else if (len > 0) {
327+
LOGD("opus-encode: %d", len);
325328
int eff = p_print->write(packet, len);
326329
if (eff!=len){
327330
LOGE("encodeFrame data lost");

src/AudioCodecs/ContainerBinary.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class BinaryContainerEncoder : public AudioEncoder {
146146
void setupIntialOutputStream(Print &outStream) {
147147
p_print1 = p_codec;
148148
p_print2 = this;
149-
if (p_codec)
149+
if (p_codec!=nullptr)
150150
target.setupOutput(p_print1, p_print2, outStream);
151151
else
152152
target.setupOutput(p_print2, outStream);
@@ -272,11 +272,12 @@ class BinaryContainerDecoder : public AudioDecoder {
272272

273273
void setupIntialOutputStream(Print &outStream) {
274274
p_out = &outStream;
275-
p_print1 = this;
276275
if (p_codec != nullptr) {
277-
p_print2 = p_codec;
276+
p_print1 = p_codec;
277+
p_print2 = this;
278278
target.setupOutput(p_print1, p_print2, outStream);
279279
} else {
280+
p_print1 = this;
280281
target.setupOutput(p_print1, outStream);
281282
}
282283
is_initial_output = false;

0 commit comments

Comments
 (0)