PortAudio流和实时处理
PortAudio Streaming and processing in real time
我是PortAudio新手。我的目的是从我的pc上的行入输入连续捕获数据并实时处理数据。
我使用44100的采样率和11025的缓冲区大小(frameCount)。我成功地做到了这一点,但是我在portAudio引擎调用的回调函数中进行所有处理。这个回调函数的通用原型:
int recordCallback(const void* inputBuffer, void* outputBuffer, unsigned long frameCount, const PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags statusFlags, void* userData);
在这个回调中做所有音频数据的处理是不好的吗?
由于执行回调函数所花费的时间,我也丢失了数据。
我考虑实现一个合适大小的全局循环缓冲区,以便回调不断填充这个缓冲区,并在准备好时设置一个标志。我的main函数可以轮询这个标志,然后在main函数中进行处理。
然而,我担心的是,是否有可能回调写入这个环缓冲区,而我的主函数也将从它的不同部分读取。
有没有人有一个更好的解决方案,我正在努力实现什么?提前致谢
我想你刚才已经回答了你自己的问题。尝试将其推入缓冲区,然后让另一个线程进行后处理(注意-如果处理速度不够快,您将不得不将其转储到磁盘,否则您将最终耗尽内存)在这个回调中做所有音频数据的处理是不好的吗?
由于执行回调函数所花费的时间,我也丢失了数据。
你说你担心并发-这是合理的,但给它一个尝试,然后发布另一个问题,关于具体问题,当你给它一个尝试。
相关文章:
- 媒体基金会:WavSink以比实时消耗率更快的速度处理音频-是否可以实时限制后台处理
- 完整Windows桌面的实时视频处理
- C++:灰度位图标题和实时绘画+opencv图像处理
- 审核的实时事件处理 C/C++
- 快速C 正弦和余弦替代方案,用于实时信号处理
- Android Camera2 API-实时显示处理的框架
- 从 exe 获取输出C++并在 Python 中实时处理它
- 实时图像处理:HSV图像中的噪声(openCV)
- 使用C 编写的算法对数据进行实时处理
- C++ 是使用 OpenAL 进行实时 PCM fft 音频处理
- 使用机器实时处理
- 实时绘图的信号处理数据(c++中的FFT和GNUPLOT)
- 实时应用中图像采集和图像处理的设计模式或最佳实践
- C++/C 实时闪存流处理
- 实时处理无线电流
- Opencv/在线程中录制实时视频,在另一个线程中处理图像
- PortAudio流和实时处理
- 实时音频处理
- 实时音频处理
- OpenGL和C++:实时处理和绑定缓冲区