|
arduino-audio-tools
|
MP3 header parser that processes MP3 data incrementally and extracts complete MP3 frames. Can validate MP3 data and extract audio information. When used with a Print output, it splits incoming data into complete MP3 frames and writes them to the output stream. More...
#include <HeaderParserMP3.h>
Public Member Functions | |
| HeaderParserMP3 ()=default | |
| Default constructor. | |
| HeaderParserMP3 (Print &output, int bufferSize=2048) | |
| Constructor for write support. | |
| int | findSyncWord (const uint8_t *buf, size_t nBytes, uint8_t synch=0xFF, uint8_t syncl=0xF0) |
| Finds the mp3/aac sync word. | |
| void | flush () |
| int | getBitRate () const |
| Bit rate from mp3 header. | |
| int | getChannels () const |
| Number of channels from mp3 header. | |
| FrameHeader | getFrameHeader () |
| int | getFrameLength () |
| Frame length from mp3 header. | |
| size_t | getFrameRateHz () |
| frame rate in Hz (frames per second) | |
| const char * | getLayerStr () const |
| Provides a string representation of the MPEG layer. | |
| size_t | getPlayingTime (size_t fileSizeBytes) |
| uint16_t | getSampleRate () const |
| Sample rate from mp3 header. | |
| int | getSamplesPerFrame () |
| number of samples per mp3 frame | |
| size_t | getTimePerFrameMs () |
| playing time per frame in ms | |
| const char * | getVersionStr () const |
| Provides a string representation of the MPEG version. | |
| bool | hasValidFrame () const |
| Returns true if we have parsed at least one valid frame. | |
| bool | isValid () |
| Returns true if a valid frame has been detected. | |
| bool | isValid (const uint8_t *data, int len) |
| parses the header string and returns true if this is a valid mp3 file | |
| void | reset () |
| Clears internal buffer and resets state. | |
| void | resize (int size) |
| void | setOutput (Print &output) |
| size_t | write (const uint8_t *data, size_t len) |
| split up the data into mp3 segements and write to output | |
Protected Types | |
| enum class | FrameReason { VALID , INVALID_BITRATE_FOR_VERSION , INVALID_SAMPLERATE_FOR_VERSION , INVALID_MPEG_VERSION , INVALID_LAYER , INVALID_LAYER_II_BITRATE_AND_MODE , INVALID_EMPHASIS , INVALID_CRC } |
Protected Member Functions | |
| bool | contains (const uint8_t *data, const char *toFind, size_t len) |
| bool | processBuffer () |
| Processes the internal buffer to extract complete mp3 frames. | |
| void | readFrameHeader (const uint8_t *data) |
| int | seekFrameSync (const uint8_t *str, size_t len) |
| bool | validate (const uint8_t *data, size_t len) |
| FrameReason | validateFrameHeader (const FrameHeader &header) |
Protected Attributes | |
| SingleBuffer< uint8_t > | buffer {0} |
| size_t | buffer_size = 0 |
| bool | frame_header_valid = false |
| FrameHeader | header |
| size_t | last_frame_size = 0 |
| Print * | p_output = nullptr |
MP3 header parser that processes MP3 data incrementally and extracts complete MP3 frames. Can validate MP3 data and extract audio information. When used with a Print output, it splits incoming data into complete MP3 frames and writes them to the output stream.
Features:
|
strongprotected |
|
default |
Default constructor.
|
inline |
Constructor for write support.
|
inline |
Finds the mp3/aac sync word.
|
inline |
|
inline |
Bit rate from mp3 header.
|
inline |
Number of channels from mp3 header.
|
inline |
|
inline |
Frame length from mp3 header.
|
inline |
frame rate in Hz (frames per second)
Provides the estimated playing time in seconds based on the bitrate of the first segment
|
inline |
Sample rate from mp3 header.
|
inline |
number of samples per mp3 frame
|
inline |
playing time per frame in ms
|
inline |
Returns true if we have parsed at least one valid frame.
|
inline |
Returns true if a valid frame has been detected.
parses the header string and returns true if this is a valid mp3 file
|
inlineprotected |
Processes the internal buffer to extract complete mp3 frames.
|
inline |
Clears internal buffer and resets state.
|
inlineprotected |
split up the data into mp3 segements and write to output
|
protected |
|
protected |
|
protected |
|
protected |