Data Definition
The output data structure of the AO module consists of the extra stream packet information (extData), packet size, and actual data. The data is specified by the AUDIO_RETURN_AUDIO_PLAY_DATA command word in the VmiCmd enumeration and returned to developers through callbacks.
Example:
VmiDataType module = DATA_AUDIO; VmiCmd cmd = AUDIO_RETURN_AUDIO_PLAY_DATA; uint8_t audioPlayData[240]; AudioData audioData; audioData.size = sizeof(audioPlayData); uint8_t *data = new uint8_t[sizeof(AudioData) + sizeof(audioPlayData)]; memcpy(data, &audioData, sizeof(AudioData)); memcpy(data + sizeof(AudioData), audioPlayData, sizeof(audioPlayData)) DataCallback(module, cmd, data, sizeof(AudioData) + audioData.size);
Definition of AudioData
struct AudioData {
ExtDataAudio extData; // Extra information
uint32_t size; // Size
uint8_t data[0]; // Data
} __attribute__((packed));
Definition of ExtDataAudio
struct ExtDataAudio {
uint32_t audioType = OPUS; // Encoding type: OPUS/PCM
uint8_t channels = 2; // Number of audio channels. 1: MONO/2: STEREO (default)
uint8_t audioBitDepth = 16; // Sampling depth in bits: 8 or 16 (default)
uint32_t sampleRate = 48000; // Sampling rate in Hz: 48000 (default)
uint32_t sampleInterval = 10; // Sampling interval in ms: 10 (default)
int64_t timestamp; // Audio data timestamp in ms (UTC time)
} __attribute__((packed));
Parent topic: Audio Output Development