WAVE DTS 判定

当遇到44100Hz、2通道的WAV文件时,可能存在DTS编码而不是PCM。错误地将其作为PCM解码会导致噪音。因此,需要进行DTS鉴定来避免解码问题。
摘要由CSDN通过智能技术生成

当解析出的pcm wav 为44100Hz  2 channel 时,可能并不是真正的pcm,而是DTS Stream, 当decoder 把DTS当成PCM去解的时候,

显而易见,会出现问题,将是一片杂音;

所以需要鉴定一下是否是DTS


以下offset 为文件起始位置

//get data chunck
lseek(fd, offset+36, SEEK_SET);
do
{
   if(read(fd, chunkHeader, chunkHeaderSize) < chunkHeaderSize){
	   bUseAndroidPlayer = false;
	   lseek(fd, offset, SEEK_SET);
	   return false;
   }
   chunk_size = chunkHeader[7] << 24 | chunkHeader[6] << 16 | chunkHeader[5] << 8 | chunkHeader[4];
   if (memcmp(chunkHeader, "data", 4))
	   lseek(fd, chunk_size, SEEK_CUR);
} while (memcmp(chunkHeader, "data", 4));

uint8_t dtsValue[4];
uint8_t dtsValueSize = 4;
uint32_t value;
read(fd, d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值