arduino-audio-tools
Loading...
Searching...
No Matches
CodecBasic.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace audio_tools {
7
18class DecoderBasic : public AudioDecoder {
19public:
25
31 DecoderBasic(Print &out_stream, bool active = true) {
32 TRACED();
33 setOutput(out_stream);
34 }
35
44 TRACED();
45 setOutput(out_stream);
47 }
48
49 const char *mime() override { return "audio/basic"; }
50
52 void setOutput(Print &out_stream) override {
53 decoder.setOutput(out_stream);
54 }
55
59
60 AudioInfo audioInfo() override { return decoder.audioInfo(); }
61
64 return decoder.begin();
65 }
66
67 bool begin() override {
68 TRACED();
69 return decoder.begin();
70 }
71
72 void end() override { decoder.end(); }
73
74 virtual size_t write(const uint8_t *data, size_t len) override {
75 return decoder.write((uint8_t *)data, len);
76 }
77
78 virtual operator bool() override { return decoder; }
79
80protected:
82};
83
94class EncoderBasic : public AudioEncoder {
95public:
96 // Empty Constructor - the output stream must be provided with begin()
98
99 // Constructor providing the output stream
101
103 void setOutput(Print &out) override { encoder.setOutput(out); }
104
106 const char *mime() override { return "audio/basic"; }
107
109 virtual void setAudioInfo(AudioInfo from) override {
111 encoder.setAudioInfo(from);
112 }
113
115 bool begin() override { return encoder.begin(); }
116
118 void end() override { encoder.end(); }
119
121 virtual size_t write(const uint8_t *in_ptr, size_t in_size) override {
122 return encoder.write((uint8_t *)in_ptr, in_size);
123 }
124
125 operator bool() override {
126 return encoder;
127 }
128
129 bool isOpen() { return encoder; }
130
131protected:
133};
134
135} // namespace audio_tools
#define TRACED()
Definition AudioLoggerIDF.h:31
Definition Arduino.h:56
Decoding of encoded audio into PCM data.
Definition AudioCodecsBase.h:19
AudioInfo info
Definition AudioCodecsBase.h:80
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition AudioCodecsBase.h:29
Encoding of PCM data.
Definition AudioCodecsBase.h:101
void setAudioInfo(AudioInfo from) override
Defines the sample rate, number of channels and bits per sample.
Definition AudioCodecsBase.h:110
virtual void addNotifyAudioChange(AudioInfoSupport &bi)
Adds target to be notified about audio changes.
Definition AudioTypes.h:150
Supports changes to the sampling rate, bits and channels.
Definition AudioTypes.h:132
DecoderBasic - supports mime type audio/basic Requires https://github.com/pschatzmann/arduino-libg7xx...
Definition CodecBasic.h:18
virtual size_t write(const uint8_t *data, size_t len) override
Definition CodecBasic.h:74
void setOutput(Print &out_stream) override
Defines the output Stream.
Definition CodecBasic.h:52
DecoderBasic()
Construct a new DecoderBasic object.
Definition CodecBasic.h:24
void addNotifyAudioChange(AudioInfoSupport &bi) override
Adds target to be notified about audio changes.
Definition CodecBasic.h:56
DecoderBasic(Print &out_stream, bool active=true)
Construct a new DecoderBasic object.
Definition CodecBasic.h:31
void end() override
Definition CodecBasic.h:72
const char * mime() override
Provides the mime type of the data that is expected by this decoder.
Definition CodecBasic.h:49
bool begin() override
Definition CodecBasic.h:67
G711_ULAWDecoder decoder
Definition CodecBasic.h:81
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition CodecBasic.h:60
bool begin(AudioInfo info)
Definition CodecBasic.h:62
DecoderBasic(Print &out_stream, AudioInfoSupport &bi)
Construct a new DecoderBasic object.
Definition CodecBasic.h:43
EncoderBasic - supports mime type audio/basic. The content of the "audio/basic" subtype is single cha...
Definition CodecBasic.h:94
void setOutput(Print &out) override
Defines the output Stream.
Definition CodecBasic.h:103
EncoderBasic(Print &out)
Definition CodecBasic.h:100
bool isOpen()
Definition CodecBasic.h:129
virtual size_t write(const uint8_t *in_ptr, size_t in_size) override
Writes PCM data to be encoded as RAW.
Definition CodecBasic.h:121
EncoderBasic()
Definition CodecBasic.h:97
void end() override
stops the processing
Definition CodecBasic.h:118
G711_ULAWEncoder encoder
Definition CodecBasic.h:132
const char * mime() override
Provides "audio/pcm".
Definition CodecBasic.h:106
bool begin() override
starts the processing using the actual RAWAudioInfo
Definition CodecBasic.h:115
virtual void setAudioInfo(AudioInfo from) override
We actually do nothing with this.
Definition CodecBasic.h:109
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition CodecG7xx.h:412
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition CodecG7xx.h:400
size_t write(const uint8_t *data, size_t len) override
Definition CodecG7xx.h:350
size_t write(const uint8_t *data, size_t len) override
Definition CodecG7xx.h:315
void setOutput(Print &out_stream) override
Defines where the decoded result is written to.
Definition CodecG7xx.h:90
void end() override
Definition CodecG7xx.h:85
bool begin() override
Definition CodecG7xx.h:74
void setAudioInfo(AudioInfo info) override
for most decoders this is not needed
Definition CodecG7xx.h:57
void setOutput(Print &out_stream) override
Default output assignment (encoders may override to store Print reference)
Definition CodecG7xx.h:197
void end() override
Definition CodecG7xx.h:173
virtual void setAudioInfo(AudioInfo info)
Defines the sample rate, number of channels and bits per sample.
Definition CodecG7xx.h:180
bool begin() override
Definition CodecG7xx.h:163
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition LMSEchoCancellationStream.h:6
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:51