35 lines
948 B
C
35 lines
948 B
C
|
#pragma once
|
||
|
#include "foundation/types.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef struct ADTSHeader
|
||
|
{
|
||
|
unsigned int syncword;
|
||
|
unsigned int layer;
|
||
|
unsigned int id;
|
||
|
unsigned int protection;
|
||
|
unsigned int profile;
|
||
|
unsigned int sample_rate_index;
|
||
|
unsigned int private_bit;
|
||
|
unsigned int channel_configuration;
|
||
|
unsigned int original;
|
||
|
unsigned int home;
|
||
|
size_t frame_length;
|
||
|
unsigned int buffer_fullness;
|
||
|
unsigned int num_data_blocks;
|
||
|
} ADTSHeader, *nsaac_adts_header_t;
|
||
|
|
||
|
/* must be 7 bytes */
|
||
|
int nsaac_adts_parse(nsaac_adts_header_t header, const uint8_t *buffer);
|
||
|
unsigned int nsaac_adts_get_samplerate(nsaac_adts_header_t header);
|
||
|
int nsaac_adts_match(nsaac_adts_header_t header1, nsaac_adts_header_t header2);
|
||
|
int nsaac_adts_get_channel_count(nsaac_adts_header_t header);
|
||
|
size_t nsaac_adts_get_header_size(nsaac_adts_header_t header);
|
||
|
size_t nsaac_adts_get_frame_bitrate(nsaac_adts_header_t header);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|