31 const char*
mime =
nullptr;
58 const uint8_t* end = data + size;
60 if (ptr + 4 > end)
return false;
63 if (ptr >= end || *ptr++ != 0x03)
return false;
65 if (ptr +
es_len > end)
return false;
70 if (ptr >= end || *ptr++ != 0x04)
return false;
72 if (ptr +
dec_len > end)
return false;
77 if (ptr >= end || *ptr++ != 0x05)
return false;
95 for (
int i = 0; i < 4 && ptr < end; ++i) {
97 len = (len << 7) | (
b & 0x7F);
98 if ((
b & 0x80) == 0)
break;
169 LOGE(
"No sample size defined: e.g. mdat before stsz!");
175 for (
int j = 0;
j < len;
j++) {
185 LOGI(
"Reached end of box: %s write",
190 LOGE(
"No sample size defined, cannot write data");
259 frame.
size = size + 7;
260 frame.
mime =
"audio/aac";
264 frame.
mime =
"audio/alac";
267 frame.
mime =
"audio/mpeg";
270 frame.
mime =
nullptr;
303 LOGE(
"No callback defined for audio frame extraction");
352 int sampleRateIdx,
int channelCfg,
356 adts[2] = ((aacProfile - 1) << 6) | (sampleRateIdx << 2) |
357 ((channelCfg >> 2) & 0x1);
358 adts[3] = ((channelCfg & 0x3) << 6) | ((
frameLen + 7) >> 11);
456 return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
461 return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
479 if (
buffer ==
nullptr || type ==
nullptr)
return false;
480 bool result =
buffer[offset] == type[0] &&
buffer[offset + 1] == type[1] &&
481 buffer[offset + 2] == type[2] &&
482 buffer[offset + 3] == type[3];
517 int sampleRateIdx = 4;
537 LOGE(
"Failed to parse esds box");
541 "-> esds: AAC objectType: %u, samplingRateIdx: %u, "
680 LOGI(
"===========================");
681 for (
size_t i = 0; i < len; i += 16) {
683 char ascii[17] = {0};
684 for (
size_t j = 0;
j < 16 && i +
j < len; ++
j) {
686 ascii[
j] = (data[i +
j] >= 32 && data[i +
j] < 127) ? data[i +
j] :
'.';
691 LOGI(
"===========================");
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define assert(T)
Definition avr.h:10
uint16_t stsz_sample_size_t
Sample size type optimized for microcontrollers.
Definition M4ACommonDemuxer.h:19