// aes67_tx: RTP sender task, PTP-paced, pull callback; optional mono sum. // Core component: must not depend on main/ (project code). #pragma once #include #include #include "esp_err.h" // Audio source: fill buf with frames x AES67_TX_SRC_CHANNELS interleaved samples (stereo, full scale = // INT32_MAX), whatever the stream's channel count: TX maps it (mono stream: L, or (L+R)/2 with mono_sum). // Return the number of frames delivered; fewer than asked counts as an underrun (padded with silence). #define AES67_TX_SRC_CHANNELS 2 typedef size_t (*aes67_tx_read_cb_t)(int32_t *buf, size_t frames); // Registers the "aes67" config group and the TX status fields. esp_err_t aes67_tx_init(void); // Start the sender task. Sends while PTP is locked and aes67.enabled is set. esp_err_t aes67_tx_start(void); // Set the audio source. NULL = built-in 1 kHz test tone at -18 dBFS, phase-locked to PTP time. void aes67_tx_set_source(aes67_tx_read_cb_t read);