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();
34 }
35
48
53
57
58 AudioInfo audioInfo() override { return decoder.audioInfo(); }
59
62 return decoder.begin();
63 }
64
65 bool begin() override {
66 TRACED();
67 return decoder.begin();
68 }
69
70 void end() override { decoder.end(); }
71
72 virtual size_t write(const uint8_t *data, size_t len) override {
73 return decoder.write((uint8_t *)data, len);
74 }
75
76 virtual operator bool() override { return decoder; }
77
78protected:
80};
81
92class EncoderBasic : public AudioEncoder {
93public:
94 // Empty Constructor - the output stream must be provided with begin()
96
97 // Constructor providing the output stream
99
101 void setOutput(Print &out) override { encoder.setOutput(out); }
102
104 const char *mime() override { return "audio/basic"; }
105
107 virtual void setAudioInfo(AudioInfo from) override {
109 encoder.setAudioInfo(from);
110 }
111
113 bool begin() override { return encoder.begin(); }
114
116 void end() override { encoder.end(); }
117
119 virtual size_t write(const uint8_t *in_ptr, size_t in_size) override {
120 return encoder.write((uint8_t *)in_ptr, in_size);
121 }
122
123 operator bool() override {
124 return encoder;
125 }
126
127 bool isOpen() { return encoder; }
128
129protected:
131};
132
133} // namespace audio_tools
#define TRACED()
Definition AudioLoggerIDF.h:31
Decoding of encoded audio into PCM data.
Definition AudioCodecsBase.h:18
AudioInfo info
Definition AudioCodecsBase.h:76
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition AudioCodecsBase.h:25
Encoding of PCM data.
Definition AudioCodecsBase.h:97
void setAudioInfo(AudioInfo from) override
Defines the sample rate, number of channels and bits per sample.
Definition AudioCodecsBase.h:106
virtual void addNotifyAudioChange(AudioInfoSupport &bi)
Adds target to be notified about audio changes.
Definition AudioTypes.h:153
Supports changes to the sampling rate, bits and channels.
Definition AudioTypes.h:135
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:72
void setOutput(Print &out_stream) override
Defines the output Stream.
Definition CodecBasic.h:50
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:54
DecoderBasic(Print &out_stream, bool active=true)
Construct a new DecoderBasic object.
Definition CodecBasic.h:31
void end() override
Definition CodecBasic.h:70
bool begin() override
Definition CodecBasic.h:65
G711_ULAWDecoder decoder
Definition CodecBasic.h:79
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition CodecBasic.h:58
bool begin(AudioInfo info)
Definition CodecBasic.h:60
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:92
void setOutput(Print &out) override
Defines the output Stream.
Definition CodecBasic.h:101
EncoderBasic(Print &out)
Definition CodecBasic.h:98
bool isOpen()
Definition CodecBasic.h:127
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:119
EncoderBasic()
Definition CodecBasic.h:95
void end() override
stops the processing
Definition CodecBasic.h:116
G711_ULAWEncoder encoder
Definition CodecBasic.h:130
const char * mime() override
Provides "audio/pcm".
Definition CodecBasic.h:104
bool begin() override
starts the processing using the actual RAWAudioInfo
Definition CodecBasic.h:113
virtual void setAudioInfo(AudioInfo from) override
We actually do nothing with this.
Definition CodecBasic.h:107
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition CodecG7xx.h:406
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition CodecG7xx.h:394
size_t write(const uint8_t *data, size_t len) override
Definition CodecG7xx.h:344
size_t write(const uint8_t *data, size_t len) override
Definition CodecG7xx.h:309
void setOutput(Print &out_stream) override
Defines where the decoded result is written to.
Definition CodecG7xx.h:85
void end() override
Definition CodecG7xx.h:80
bool begin() override
Definition CodecG7xx.h:69
void setAudioInfo(AudioInfo info) override
for most decoders this is not needed
Definition CodecG7xx.h:52
void setOutput(Print &out_stream) override
Default output assignment (encoders may override to store Print reference)
Definition CodecG7xx.h:191
void end() override
Definition CodecG7xx.h:167
virtual void setAudioInfo(AudioInfo info)
Defines the sample rate, number of channels and bits per sample.
Definition CodecG7xx.h:174
bool begin() override
Definition CodecG7xx.h:157
Definition NoArduino.h:62
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:512
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:55