arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
AudioCodecs
HeaderParserAAC.h
Go to the documentation of this file.
1
#pragma once
2
#include "
AudioTools/AudioCodecs/CodecADTS.h
"
3
#include "
AudioTools/CoreAudio/AudioBasic/StrView.h
"
4
5
namespace
audio_tools
{
6
16
class
HeaderParserAAC
{
17
public
:
20
bool
isValid
(
const
uint8_t
* data,
int
len) {
21
if
(len < 7)
return
false
;
22
parser
.
begin
();
23
// regular validation
24
if
(!
parser
.
parse
((
uint8_t
*)data))
return
false
;
25
// check if we have a valid 2nd frame
26
if
(len >
getFrameLength
()) {
27
int
pos =
findSyncWord
(data, len,
getFrameLength
());
28
if
(pos == -1)
return
false
;
29
}
30
return
true
;
31
}
32
33
int
getSampleRate
() {
return
parser
.
getSampleRate
(); }
34
35
uint8_t
getChannels
() {
return
parser
.
data
().
channel_cfg
; }
36
38
int
getFrameLength
() {
return
parser
.
getFrameLength
(); }
39
41
int
findSyncWord
(
const
uint8_t
*
buf
,
int
nBytes
,
int
start = 0) {
42
return
parser
.
findSyncWord
(
buf
,
nBytes
, start);
43
}
44
45
ADTSParser::ADTSHeader
getHeader
() {
return
parser
.
data
(); }
46
47
protected
:
48
ADTSParser
parser
;
49
};
50
51
}
// namespace audio_tools
CodecADTS.h
StrView.h
audio_tools::ADTSParser
Structure to hold ADTS header field values.
Definition
CodecADTS.h:18
audio_tools::ADTSParser::data
ADTSHeader & data()
Definition
CodecADTS.h:100
audio_tools::ADTSParser::findSyncWord
int findSyncWord(const uint8_t *buf, int nBytes, int start=0)
Definition
CodecADTS.h:92
audio_tools::ADTSParser::begin
bool begin()
Definition
CodecADTS.h:38
audio_tools::ADTSParser::getSampleRate
int getSampleRate()
Definition
CodecADTS.h:81
audio_tools::ADTSParser::parse
bool parse(uint8_t *hdr)
Definition
CodecADTS.h:44
audio_tools::ADTSParser::getFrameLength
uint32_t getFrameLength()
Definition
CodecADTS.h:73
audio_tools::HeaderParserAAC
AAC header parser to check if the data is a valid ADTS aac which can extract some relevant audio info...
Definition
HeaderParserAAC.h:16
audio_tools::HeaderParserAAC::findSyncWord
int findSyncWord(const uint8_t *buf, int nBytes, int start=0)
Finds the mp3/aac sync word.
Definition
HeaderParserAAC.h:41
audio_tools::HeaderParserAAC::parser
ADTSParser parser
Definition
HeaderParserAAC.h:48
audio_tools::HeaderParserAAC::getSampleRate
int getSampleRate()
Definition
HeaderParserAAC.h:33
audio_tools::HeaderParserAAC::getFrameLength
int getFrameLength()
Determines the frame length.
Definition
HeaderParserAAC.h:38
audio_tools::HeaderParserAAC::getChannels
uint8_t getChannels()
Definition
HeaderParserAAC.h:35
audio_tools::HeaderParserAAC::getHeader
ADTSParser::ADTSHeader getHeader()
Definition
HeaderParserAAC.h:45
audio_tools::HeaderParserAAC::isValid
bool isValid(const uint8_t *data, int len)
Definition
HeaderParserAAC.h:20
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
audio_tools::ADTSParser::ADTSHeader
Definition
CodecADTS.h:20
audio_tools::ADTSParser::ADTSHeader::channel_cfg
uint8_t channel_cfg
Definition
CodecADTS.h:28
Generated by
1.9.8