0
我正在尝试使用ffmpegs fft实用程序来处理名为real fft(rdft)的音频样本。真正的fft错误 - ffmpeg
但我有SIGSEGV错误。代码非常简单。
static void fft(float* data){
RDFTContext * ctx = av_rdft_init(Globals::WindowSizePower, DFT_R2C)
av_rdft_calc(ctx, data);
av_rdft_end(ctx);
av_free(ctx);
}
定义的常量是
static const int WindowSize = 1024;
static const int WindowSizePower = 10;
谁能告诉我什么,我做错了什么?我试图找到在互联网上使用这个ffmpeg实用程序的例子,但我没有找到任何。
编辑:
这是调用这个函数
void fftInit(float* correction){
m_fft_data = new float[Globals::WindowSize]();
memcpy(m_fft_data, correction, sizeof(float)*Globals::WindowSize);
for(int i = 0; i < Globals::WindowSize; ++i){
m_fft_data[i] *= m_data[i];
}
FFMPEGFFT::fft(m_fft_data);
}
输入数据被正确分配功能。在进入这部分之前,我测试了提取的数据。
分号丢失是复制错误。但是,我在av_rdft_calc函数上出现错误,不晚... – Steva
@Steva:数据分配是否正确?你能展示如何调用'fft'函数吗? – DaBler
当然,我编辑了问题。数据分配正确,我首先进行了测试。 – Steva