自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (4)
  • 收藏
  • 关注

转载 SoundTouch音频处理库源码分析及算法提取(9)

我们都知道,当播放速度改变的时候,会带来一个副作用,那就是音调也会随着播放的速度而改 变。播放速度加快,声音将升调,变得尖锐,播放速度减慢,声音将降调,变得低沉,当然这是题 外之话。改变音频播放速度的方法有很多,我只针对ST变速算法的核心,也就是线性插值算法的实 现。对于ST的插值算法前面已经提到。   k = (y - y0)/(y1-y0) ->y=(1-k) * y0+k * y1

2015-04-29 17:22:00 706

转载 SoundTouch音频处理库源码分析及算法提取(8)

经过前面几个小节的介绍,各位想必已经对ST有个比较初步的认识。在往后的这些章节里,我将提出ST某些重要的算法以及实现。首先谈谈数字滤波器的实现。纵观整个ST的处理流程,仅仅在对声音样本进行重采样的时候可以通过bool bUseAAFilter的值来判断是否采用数字滤波器,具体在RateTransposer类成员函数processSamples中实现。 // Transposes sample r

2015-04-29 17:21:47 765

转载 SoundTouch音频处理库源码分析及算法提取(7)

上一节说到TDStretch类成员函数processSamples,粗略分析了一下大概。至于流程是通过TDStretch类成员函数putsamples调用processSamples进行处理,我们不难联想到前面对于SoundTouch类成员函数putSamples的分析。TDStretch类成员函数putSamples实现如下: // Adds 'numsamples' pcs of sampl

2015-04-29 17:17:42 763

转载 SoundTouch音频处理库源码分析及算法提取(6)

TDStretch类的实现 SoundTouch类成员函数putSamples(const SAMPLETYPE *samples, uint nSamples)实现如下,根据上篇的分析rate是一个比率,大于1表示速度加快,小于1表示速度减慢,对于播放速度减慢这种情况。 …… #ifndef PREVENT_CLICK_AT_RATE_CROSSOVER     else if (rat

2015-04-29 17:16:46 1088

转载 SoundTouch音频处理库源码分析及算法提取(5)

变速类RateTransposer的实现 回到SoundTouch类成员函数void SoundTouch::putSamples(const SAMPLETYPE *samples, uint nSamples)。定义一个SoundTouch类变量之后,通过简单地调用这个类函数,就可以实现音频的相关处理。分析一下他的调用形式,也很简单,第一个参数SAMPLETYPE *samples,指向一个

2015-04-29 17:14:41 786

转载 SoundTouch音频处理库源码分析及算法提取(4)

SoundTouch构造流程初始化的一点补充。 在SoundTouch类构造函数中,我们留意到有这么一个函数calcEffectiveRateAndTempo() SoundTouch::SoundTouch() {     // Initialize rate transposer and tempo changer instances     pRateTransposer = Ra

2015-04-29 17:12:51 1292

转载 SoundTouch音频处理库源码分析及算法提取(3)

SoundTouch音频处理库初始化流程剖析 2 紧接上文《SoundTouch音频处理库初始化流程剖析》 TDStretch类和基类的关系:FIFOSamplePipe -> FIFOProcessor ->TDStretch SoundTouch类成员class TDStretch *pTDStretch变量的初始化在SoundTouch的构造函数 SoundTouch::Sound

2015-04-29 17:12:34 909

转载 SoundTouch音频处理库源码分析及算法提取(2)

SoundTouch音频处理库初始化流程剖析 定义一个变量SoundTouch m_SoundTouch;   SoundTouch的派生关系 FIFOSamplePipe->FIFOProcessor->SoundTouch (流程[1]) 因此首先构造基类FIFOSamplePipe,接着派生出FIFOProcessor,然后才以FIFOProcessor派生出SoundTouch。

2015-04-29 17:11:42 990

转载 SoundTouch音频处理库源码分析及算法提取(1)

SoundTouch音频处理库的使用异常简单,经过简单的编译之后,设置编译环境,以vc为例 ,直接在include包含SoundTouch目录下的include路径,接着在lib添加SoundTouch目录下 的lib路径,然后在代码的头文件中添加头文件以及引用的库。如下:根据_DEBUG这个宏, 我们可以进行一些编译预处理,假如是以DEBUG编译就采用debug库,其他的话就采用 rel

2015-04-29 17:10:10 1839

iOS 12.0 DeviceSupport 12.0 Xcode

解压到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

2018-11-07

live555实现H264实时流进行RTSP发送

liveMedia 项目(http://www.live555.com/)的源代码包括四个基本的库,各种测试代码以及Media Server。四个基本的库分别是: UsageEnvironment&TaskScheduler, groupsock, liveMedia和BasicUsageEnvironment。UsageEnvironment 和TaskScheduler 类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。另外,还有一个HashTable 类定义了一个通用的hash 表,其它代码要用到这个表。这些都是抽象类,在应用程序中基于这些类来实现自己的子类。groupsock 类是对网络接口的封装,用于收发数据包。正如名字本身,groupsock 主要是面向多播数据的收发的,它也同时支持单播数据的收发。liveMedia 库中有一系列类,基类是Medium,这些类针对不同的流媒体类型和编码。

2017-09-12

XCODE7真机调试ios9.3支持文件

iPhone6p系统升级成了9.3,但是支持iOS9.3的Xcode版本为7.3,而Xcode7.3要求最小系统为10.11.可以先不升级,而增加资源文件的方式解决,把文件下载解压,然后放到Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport文件夹下面就解决问题了。

2016-06-14

64位 Windows Media Encoder 9 支持Win7

64位英文版本Windows Media Encoder 9 支持Win7

2011-11-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除