天嵌 ARM开发社区

 找回密码
 注册
查看: 1588|回复: 1

MP3解码小问题

[复制链接]
chentian08 发表于 2012-7-1 09:58:15 | 显示全部楼层 |阅读模式
我就是想知道是怎么读取的,因为一个几M的文件,挺大的,不知怎么读取比较好,就按你说的,一个采样率为128kbps的MP3文件,程序先分配1s的内存(128*2*1152=294912字节),那怎么安排解码才好,我就想到搞个循环(读取--解码--放到音频流播放,代码大概就是这样:
LPBYTE buf;
int len;
if(GetNextFrame(&buf, &len)){//读取下一帧,这是未解码的数据
  IN_OUT x = {0, 0};
  x = audio_decode(//解码
   &m_sMPEG,
   (unsigned char *)buf,
   (short *)m_tempbuffer);//m_tempbuffer:用来保存解码后的数据
  BASS_StreamPutData(m_mp3Stream,(void*)m_tempbuffer,x.out_bytes);//将解码后的数据添加到音频输出流),直到读完为止,结果这个过程占用CPU很大,内存也不断的变大;
TQ-lkp 发表于 2012-7-3 09:43:10 | 显示全部楼层
内存大会不会是GetNextFrame(&buf, &len)的时候每次这个函数都重新申请了内存空间,而用完后没有释放?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 15:29 , Processed in 1.031290 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表