月度归档: <span>2017 年 1 月</span>

重编译openCV

现在3.X的openCV似乎默认没有生成x86版本的lib和dll了,需要自己重新生成一份。(使用的环境是Win7x64 + vs2015)

  1. 准备工具
      openCV(3.2.0)
      CMake(3.7.2)


jpeglib的使用(使用VS2010编译)

1、编译环境的安装
  1.1 解压从www.ijg.org上下载的源码,安装VS2010。
  1.2 在打开cmd定位到解压后的jpeg库目录中,并执行 NMAKE /f makefile.vc setup-v10 。(在install.txt的”HINTS FOR SPECIFIC SYSTEMS”一节中)此操作将生成(其实是重命名)vs2010的一系列工程文件。(提示nmake不是有效命令的话则修要设置环境变量的path并重启cmd)


XAudio2 Operation Sets 操作集

部分XAudio2的方法中含有OperationSet参数,这个参数能决定是否延迟执行这些方法(仅添加一个挂起的操作)。然后在某个特定的时间通过调用XAudio2::CommitChanges,并将它的OperationSet参数指定为目标操作的ID,这样就能让XAudio2组件真正执行对应的操作。这个ID没有特殊要求,只要互不相同即可,因此可以用一个全局计数器来作为它们的ID,每次使用后增加计数即可。这样一来,不同代码就可以互不冲突地提交修改(全局计数器同时也可用于区分提交修改的时间先后)。

同时,以原子方式提交的多个操作被确保是以采样率匹配方式混音的(一个混合音轨方面的术语,防止混音时因采样率的不准确而导致播放时长的变化,详见这里)。比如,声音的播放将会是同步的。另一方面,如果用XAUDIO2_COMMIT_NOW(值为0)作为OperationSet参数的值,改动将立即生效。如果以XAUDIO2_COMMIT_ALL(值也为0)参数调用CommitChanges,则所有挂起的操作都将生效,这时OperationSet的ID将被忽略。