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 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:
|
inline |
Provides the estimated playing time in seconds based on the bitrate of the first segment