HAL 中的 android 音频缓冲区格式是什么?

What is the android audio buffer format in HAL?

我正在尝试在 android 中集成一些库 HAL.I 需要将音频数据以左样本和右样本块的形式传递到我的库,如下所示:

LLLLLRRRRR

其中L和R分别代表左和右。我无法理解 audioflinger 为 HAL 提供缓冲区的格式。有人可以指点一下吗?是下面这个格式吗?

LRLRLRLRLRLLR

Is it in this below format?

LRLRLRLRLRLR

是的,立体声音频数据就是这样交错的。我没有任何文档指向明确说明这一点,但您可以通过查看 Android 源代码中的不同位置来推断情况就是如此。例如,in this function 在将 5.1 音频转换为立体声的 Downmix 效果中,您会看到它为每个 5.1 样本写入一个 int16_t 表示左输出,紧接着是一个 int16_t代表正确的输出。