- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在学习如何使用 ALSA API 轮询/等待填充声卡缓冲区。我想知道 Paul Davis(JACK 的作者)2002 年标题为“A Minimal Interrupt-Driven Program”的示例代码在今天是否仍然有效:
http://equalarea.com/paul/alsa-audio.html
我还读到 snd_pcm_wait()
使用 poll()
系统调用,所以应该没问题。不使用系统调用的 snd_pcm_avail_update()
是否会返回正确的帧数,因为它是在 snd_pcm_wait()
之后调用的(这可能会更新缓冲区的状态)?
while (1) {
/* wait till the interface is ready for data, or 1 second
has elapsed.
*/
if ((err = snd_pcm_wait (playback_handle, 1000)) < 0) {
fprintf (stderr, "poll failed (%s)\n", strerror (errno));
break;
}
/* find out how much space is available for playback data */
if ((frames_to_deliver = snd_pcm_avail_update (playback_handle)) < 0) {
if (frames_to_deliver == -EPIPE) {
fprintf (stderr, "an xrun occured\n");
break;
} else {
fprintf (stderr, "unknown ALSA avail update return value (%d)\n",
frames_to_deliver);
break;
}
}
frames_to_deliver = frames_to_deliver > 4096 ? 4096 : frames_to_deliver;
/* deliver the data */
if (playback_callback (frames_to_deliver) != frames_to_deliver) {
fprintf (stderr, "playback callback failed\n");
break;
}
}
snd_pcm_close (playback_handle);
exit (0);
}
最佳答案
各种缓冲区指针会在传送中断的每个周期边界自动更新。
snd_pcm_wait()
被这样的中断唤醒,所以直接在调用之后,snd_pcm_avail_update()
读取的状态是正确的。
关于c - Paul Davis 的 2002 "Interrupt Driven"ALSA 示例代码今天仍然有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57222173/
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 去年关闭。 社区2 个月前审核了是否
我正在尝试评估对某些数据进行聚类所需的正确聚类数量。 我知道使用 Davies–Bouldin 指数 (DBI) 可以实现这一点。 要使用 DBI,您必须针对任意数量的集群进行计算,并且最小化 DBI
我正在使用 Jason Davies 的示例词云生成器代码来创建词云。我能够绘制它,但我想要的词云的形状是椭圆形/圆形。我知道有人对 Jason Davies 的词云的圆形形状有疑问,但他们都在谈论对
我可以使用 davisjs 作为 AMD 模块和 requirejs 吗?我尝试过,但也许我忘记了需要配置中的某些内容? requirejs([ "jquery", "davis" ],
我正在编写一种遗传算法,尝试选择一组数据点以最大化簇间距离,同时保持两个簇之间的簇内距离较小。 我认为某些聚类有效性度量(例如 Davies-Bouldin 指数)将是一个很好的适应度函数,但我正在努
我正在尝试计算 Davies-Bouldin Index在 Python 中。 下面是代码尝试重现的步骤。 5 个步骤: 对于每个簇,计算每个点到质心之间的欧氏距离 对于每个集群,计算这些距离的平均值
如何禁用 Chrome 的 pushstate(用于测试目的)? 如果您知道可以轻松切换的插件,将获得奖励 :) 我正在使用 davis.js对于我的推送状态逻辑。 最佳答案 history.push
我正在学习如何使用 ALSA API 轮询/等待填充声卡缓冲区。我想知道 Paul Davis(JACK 的作者)2002 年标题为“A Minimal Interrupt-Driven Progra
所有这 3 个库都允许操作历史对象。好的,backbone 做的更多,但我们只考虑它的历史部分。 http://documentcloud.github.com/backbone/#History h
我正在使用 Joshua Davies 的“使用密码术和 PKI 实现 SSL/TLS”一书实现一个 HTTPS 客户端/服务器示例,只是为了学习目的。它包含一个带有 C 源代码的示例实现。我只是尝试
我是一名优秀的程序员,十分优秀!