Step 7.3: decode HLS TS segments to PCM (own TS demux + AAC decoder)
- main/decoder: MPEG-TS demux (packets reassembled across HTTP chunks, PAT -> PMT -> first ADTS-AAC PID, PES headers stripped) feeding the esp_audio_codec simple AAC decoder (ADTS, AAC-Plus enabled for HE-AAC v1/v2 variants). 7.3 only counts and logs PCM per segment. - esp_audio_codec pinned to ~2.5.0: 2.6+ needs P4 rev >= 3 (this board is rev 1.3). Noted in CLAUDE.md, also for esp_audio_effects < 1.4. - The library's combined TS decoder lost ~8% of the frames (segments decoded to 7.9-9.6 s, "decode error -1"); with the own demux every segment is sample exact: 441344 / 440320 frames = 10.008 / 9.985 s, matching EXTINF 10.0078 / 9.9846 (431 / 430 AAC frames), no errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ Repo: https://gitea.apointless.space/bsncubed/aes67-ESP32-P4
|
||||
- Chip revision < v3.0 (engineering silicon, seen on some of these boards) needs `CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y`.
|
||||
Our board: **v1.3** (set in sdkconfig.defaults, min rev v1.0).
|
||||
- Our board: **32 MB** flash (GigaDevice c8/4019). App slots must stay below 16 MB (cache mapping above 16 MB is experimental in IDF).
|
||||
- Rev < 3 also limits Espressif's prebuilt audio libraries: `esp_audio_codec` must stay < 2.6 and `esp_audio_effects` < 1.4 (newer versions use P4 assembly that needs rev >= 3; the build fails with a message saying so). Check this for any new Espressif binary component.
|
||||
- Embed `web/index.html` via `EMBED_TXTFILES` in `aes67_web`.
|
||||
- Flash over the network (normal way since step 2b; keep USB for recovery):
|
||||
`curl -f --data-binary @build/aes67_p4.bin -H 'Content-Type: application/octet-stream' http://p4-aes67/api/ota`
|
||||
|
||||
Reference in New Issue
Block a user