【问题标题】:Do I need my codec to be ALSA or not?我是否需要我的编解码器为 ALSA?
【发布时间】:2014-12-18 07:09:28
【问题描述】:

我有一个正在进行的项目,就这个问题而言,假设它们是无线扬声器。

我们现在正在使用树莓派进行开发,但我们计划转向我们自己的嵌入式解决方案。我们选择的编解码器最适合我们的需求,尽管它不是“支持 ALSA”的编解码器。正如在 ALSA 网页中没有关于它的信息。

我发现在树莓派上开发的大部分 PCM 代码都使用 ALSA 流。为这些类型的项目使用 ALSA 编解码器是标准吗?

我在嵌入式 linux 或 RTOS 方面工作不多。我经常使用裸机系统,但这解释了我对 ALSA 到底是什么的困惑。这似乎是一些奇怪的中间件或其他东西。

【问题讨论】:

  • 您到底想构建什么?您是否正在生成希望播放的音频数据?构建声卡的远程替代品?
  • @ChrisStratton 我正在尝试制作无线扬声器。我没有生成音频,它是通过使用 RTP 协议的连接发送给我的。
  • 那么这一切都无关紧要 - 使用任何适用于您构建的接收器的硬件 - 这将是 RTP 连接的源端看不到的内部细节。
  • @ChrisStratton 好吧,我只是感到困惑,因为看起来 PulseAudio 使用 ALSA,而我找不到任何关于使用我自己的声音驱动程序的文档
  • 您要解决什么问题?接收端?或者您是否想为远程源端提供一个接口,客户端可以将音频放入其中以便通过 RTP 管道将其传送到您的扬声器?

标签: audio embedded pcm alsa


【解决方案1】:

ALSA 是

  • 想要使用声音的应用程序使用的API;和
  • 实现此 API 的库;和
  • 这个库和内核之间的接口;和
  • 此接口的内核实现;和
  • 声音驱动程序使用的框架。

要在 Linux 中支持您的编解码器,您必须编写 ALSA 驱动程序。

【讨论】:

  • 更正:ALSA 是“一种”方法......但不是“唯一”一种。脉冲是另一种常见的。是的,也有一些丑陋的仿真案例,即一个替换另一个。
  • @ChrisStratton 没有 PulseAudio 声音驱动程序; PA 始终使用 ALSA 驱动程序。
  • 不,Pulse 并不总是使用 ALSA 驱动程序——它可以在 OSS 和非 Linux 操作系统上运行。更重要的是,ALSA 并不是用户空间开发人员可以选择的唯一 API(尽管它确实是我倾向于为简单工具选择的 API)
  • 但编写编解码器驱动程序的唯一可用框架是 ALSA。
  • 那你还能怎么写codec驱动呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 2013-01-16
  • 2011-03-30
  • 2022-11-22
  • 1970-01-01
相关资源
最近更新 更多