#pragma once #ifdef __cplusplus extern "C" { #endif #include #include #include struct audio_repack; typedef int (*audio_repack_func_t)(struct audio_repack *, const uint8_t *, uint32_t); struct audio_repack { uint8_t *packet_buffer; uint32_t packet_size; uint32_t base_src_size; uint32_t base_dst_size; uint32_t extra_dst_size; audio_repack_func_t repack_func; }; enum _audio_repack_mode { repack_mode_8to3ch_swap23, repack_mode_8to4ch_swap23, repack_mode_8to5ch_swap23, repack_mode_8to6ch_swap23, repack_mode_8ch_swap23_swap46_swap57, }; typedef enum _audio_repack_mode audio_repack_mode_t; extern int audio_repack_init(struct audio_repack *repack, audio_repack_mode_t repack_mode, uint8_t sample_bit); extern void audio_repack_free(struct audio_repack *repack); #ifdef __cplusplus } #endif