arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
AudioCodecs
CodecBasic.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AudioTools/AudioCodecs/AudioCodecsBase.h
"
4
#include "
AudioTools/AudioCodecs/CodecG7xx.h
"
5
6
namespace
audio_tools
{
7
18
class
DecoderBasic
:
public
AudioDecoder
{
19
public
:
24
DecoderBasic
() {
TRACED
(); }
25
31
DecoderBasic
(
Print
&out_stream,
bool
active =
true
) {
32
TRACED
();
33
setOutput
(out_stream);
34
}
35
43
DecoderBasic
(
Print
&out_stream,
AudioInfoSupport
&bi) {
44
TRACED
();
45
setOutput
(out_stream);
46
addNotifyAudioChange
(bi);
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
56
void
addNotifyAudioChange
(
AudioInfoSupport
&bi)
override
{
57
decoder
.
addNotifyAudioChange
(bi);
58
}
59
60
AudioInfo
audioInfo
()
override
{
return
decoder
.
audioInfo
(); }
61
62
bool
begin
(
AudioInfo
info
) {
63
decoder
.
setAudioInfo
(
info
);
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
80
protected
:
81
G711_ULAWDecoder
decoder
;
82
};
83
94
class
EncoderBasic
:
public
AudioEncoder
{
95
public
:
96
// Empty Constructor - the output stream must be provided with begin()
97
EncoderBasic
() {}
98
99
// Constructor providing the output stream
100
EncoderBasic
(
Print
&out) {
setOutput
(out); }
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
{
110
AudioEncoder::setAudioInfo
(from);
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
131
protected
:
132
G711_ULAWEncoder
encoder
;
133
};
134
135
}
// namespace audio_tools
AudioCodecsBase.h
TRACED
#define TRACED()
Definition
AudioLoggerIDF.h:31
CodecG7xx.h
Print
Definition
Arduino.h:56
audio_tools::AudioDecoder
Decoding of encoded audio into PCM data.
Definition
AudioCodecsBase.h:19
audio_tools::AudioDecoder::info
AudioInfo info
Definition
AudioCodecsBase.h:80
audio_tools::AudioDecoder::audioInfo
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition
AudioCodecsBase.h:29
audio_tools::AudioEncoder
Encoding of PCM data.
Definition
AudioCodecsBase.h:101
audio_tools::AudioEncoder::setAudioInfo
void setAudioInfo(AudioInfo from) override
Defines the sample rate, number of channels and bits per sample.
Definition
AudioCodecsBase.h:110
audio_tools::AudioInfoSource::addNotifyAudioChange
virtual void addNotifyAudioChange(AudioInfoSupport &bi)
Adds target to be notified about audio changes.
Definition
AudioTypes.h:155
audio_tools::AudioInfoSupport
Supports changes to the sampling rate, bits and channels.
Definition
AudioTypes.h:137
audio_tools::DecoderBasic
DecoderBasic - supports mime type audio/basic Requires https://github.com/pschatzmann/codec-g7xx The ...
Definition
CodecBasic.h:18
audio_tools::DecoderBasic::write
virtual size_t write(const uint8_t *data, size_t len) override
Definition
CodecBasic.h:74
audio_tools::DecoderBasic::setOutput
void setOutput(Print &out_stream) override
Defines the output Stream.
Definition
CodecBasic.h:52
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic()
Construct a new DecoderBasic object.
Definition
CodecBasic.h:24
audio_tools::DecoderBasic::addNotifyAudioChange
void addNotifyAudioChange(AudioInfoSupport &bi) override
Adds target to be notified about audio changes.
Definition
CodecBasic.h:56
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic(Print &out_stream, bool active=true)
Construct a new DecoderBasic object.
Definition
CodecBasic.h:31
audio_tools::DecoderBasic::end
void end() override
Definition
CodecBasic.h:72
audio_tools::DecoderBasic::mime
const char * mime() override
Provides the mime type of the data that is expected by this decoder.
Definition
CodecBasic.h:49
audio_tools::DecoderBasic::begin
bool begin() override
Definition
CodecBasic.h:67
audio_tools::DecoderBasic::decoder
G711_ULAWDecoder decoder
Definition
CodecBasic.h:81
audio_tools::DecoderBasic::audioInfo
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition
CodecBasic.h:60
audio_tools::DecoderBasic::begin
bool begin(AudioInfo info)
Definition
CodecBasic.h:62
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic(Print &out_stream, AudioInfoSupport &bi)
Construct a new DecoderBasic object.
Definition
CodecBasic.h:43
audio_tools::EncoderBasic
EncoderBasic - supports mime type audio/basic. The content of the "audio/basic" subtype is single cha...
Definition
CodecBasic.h:94
audio_tools::EncoderBasic::setOutput
void setOutput(Print &out) override
Defines the output Stream.
Definition
CodecBasic.h:103
audio_tools::EncoderBasic::EncoderBasic
EncoderBasic(Print &out)
Definition
CodecBasic.h:100
audio_tools::EncoderBasic::isOpen
bool isOpen()
Definition
CodecBasic.h:129
audio_tools::EncoderBasic::write
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
audio_tools::EncoderBasic::EncoderBasic
EncoderBasic()
Definition
CodecBasic.h:97
audio_tools::EncoderBasic::end
void end() override
stops the processing
Definition
CodecBasic.h:118
audio_tools::EncoderBasic::encoder
G711_ULAWEncoder encoder
Definition
CodecBasic.h:132
audio_tools::EncoderBasic::mime
const char * mime() override
Provides "audio/pcm".
Definition
CodecBasic.h:106
audio_tools::EncoderBasic::begin
bool begin() override
starts the processing using the actual RAWAudioInfo
Definition
CodecBasic.h:115
audio_tools::EncoderBasic::setAudioInfo
virtual void setAudioInfo(AudioInfo from) override
We actually do nothing with this.
Definition
CodecBasic.h:109
audio_tools::G711_ULAWDecoder
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/codec-g7xx
Definition
CodecG7xx.h:412
audio_tools::G711_ULAWEncoder
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/codec-g7xx
Definition
CodecG7xx.h:400
audio_tools::G711Decoder::write
size_t write(const uint8_t *data, size_t len) override
Definition
CodecG7xx.h:350
audio_tools::G711Encoder::write
size_t write(const uint8_t *data, size_t len) override
Definition
CodecG7xx.h:315
audio_tools::G7xxDecoder::setOutput
void setOutput(Print &out_stream) override
Defines where the decoded result is written to.
Definition
CodecG7xx.h:90
audio_tools::G7xxDecoder::end
void end() override
Definition
CodecG7xx.h:85
audio_tools::G7xxDecoder::begin
bool begin() override
Definition
CodecG7xx.h:74
audio_tools::G7xxDecoder::setAudioInfo
void setAudioInfo(AudioInfo info) override
for most decoders this is not needed
Definition
CodecG7xx.h:57
audio_tools::G7xxEncoder::setOutput
void setOutput(Print &out_stream) override
Default output assignment (encoders may override to store Print reference)
Definition
CodecG7xx.h:197
audio_tools::G7xxEncoder::end
void end() override
Definition
CodecG7xx.h:173
audio_tools::G7xxEncoder::setAudioInfo
virtual void setAudioInfo(AudioInfo info)
Defines the sample rate, number of channels and bits per sample.
Definition
CodecG7xx.h:180
audio_tools::G7xxEncoder::begin
bool begin() override
Definition
CodecG7xx.h:163
bool
uint8_t
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
LMSEchoCancellationStream.h:6
audio_tools::AudioInfo
Basic Audio information which drives e.g. I2S.
Definition
AudioTypes.h:56
Generated by
1.9.8