Ita*_*atz 6 iphone audio core-audio ios
在iOS 5.0文档中,声明规范音频数据类型是16位符号int(链接):
用于输入和输出的规范音频数据样本类型.
typedef SInt16 AudioSampleType;
讨论
iPhone OS中用于输入和输出的规范音频样本类型是具有16位整数样本的线性PCM.
但是,如果我右键单击"跳转到定义",AudioSampleType我会看到以下定义CoreAudioTypes.h:
#if !CA_PREFER_FIXED_POINT
typedef Float32 AudioSampleType;
typedef Float32 AudioUnitSampleType;
#else
typedef SInt16 AudioSampleType;
typedef SInt32 AudioUnitSampleType;
#define kAudioUnitSampleFractionBits 24
#endif
Run Code Online (Sandbox Code Playgroud)
当CA_PREFER_FIXED_POINT我看到跳转到def时:
#if !defined(CA_PREFER_FIXED_POINT)
#if TARGET_OS_IPHONE
#if (TARGET_CPU_X86 || TARGET_CPU_X86_64 || TARGET_CPU_PPC || TARGET_CPU_PPC64) && !TARGET_IPHONE_SIMULATOR
#define CA_PREFER_FIXED_POINT 0
#else
#define CA_PREFER_FIXED_POINT 1
#endif
#else
#define CA_PREFER_FIXED_POINT 0
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
在运行时检查我的代码,我发现CA_PREFER_FIXED_POINT在模拟器和iPod上都定义为1.
所以,我的问题:
SInt16在设备上吗?CA_PREFER_FIXED_POINT为0(为iPhone编程时)?阅读链接的内容,然后再次在标题中输入以下内容:
#define kAudioUnitSampleFractionBits 24
Run Code Online (Sandbox Code Playgroud)
音频输入和输出的规范类型等同于SInt16.
其他音频处理的规范类型,例如新的iOS 5过滤器音频单元,是8.24签名的定点.
如果使用不同类型做了近实时的iOS音频处理,基准它自己的DSP代码,如在一些最新的ARM内核的32位浮点序列往往比使用上述任何一种典型类型的快,并以更快的速度编码NEON asm代码.
| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |