2012-12-29 16:48:36 +00:00
|
|
|
#ifndef AUDIOEXTRACT_MPG123_H__
|
|
|
|
#define AUDIOEXTRACT_MPG123_H__
|
2012-12-27 17:17:49 +00:00
|
|
|
|
|
|
|
#include "audioextract.h"
|
|
|
|
|
2012-12-29 16:48:36 +00:00
|
|
|
#define IS_MPG123_MAGIC(hdr) \
|
2012-12-27 17:17:49 +00:00
|
|
|
( ( ((uint8_t)(hdr)[0] & 0xFF) == 0xFF) \
|
|
|
|
&& ( ((uint8_t)(hdr)[1] & 0xE0) == 0xE0) /* 3 sync bits */ \
|
|
|
|
&& ( ((uint8_t)(hdr)[1] & 0x18) != 0x08) /* Version rsvd */ \
|
|
|
|
&& ( ((uint8_t)(hdr)[1] & 0x06) != 0x00) /* Layer rsvd */ \
|
|
|
|
&& ( ((uint8_t)(hdr)[2] & 0xF0) != 0xF0)) /* Bitrate rsvd */
|
|
|
|
|
2012-12-29 16:48:36 +00:00
|
|
|
#define MPG123_HEADER_SIZE 4
|
2012-12-27 17:17:49 +00:00
|
|
|
|
2012-12-29 16:48:36 +00:00
|
|
|
struct mpg123_info {
|
2012-12-27 17:17:49 +00:00
|
|
|
uint16_t frame_size;
|
|
|
|
uint8_t version;
|
|
|
|
uint8_t layer;
|
|
|
|
};
|
|
|
|
|
2012-12-31 16:46:07 +00:00
|
|
|
int mpg123_isframe(const uint8_t *data, size_t input_len, struct mpg123_info *info);
|
2012-12-27 17:17:49 +00:00
|
|
|
|
2012-12-29 16:48:36 +00:00
|
|
|
#endif /* AUDIOEXTRACT_MPG123_H__ */
|