您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF53x技术支持专区 -> [求助]BF53x上MP3转pcm语句问题求助!!!!... 
本帖共有651个阅读者
发表帖子 发表投票 回复主题
[求助]BF53x上MP3转pcm语句问题求助!!!!!
不要叫我大(论坛新手)
不要叫我大
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:139
积分:5
注册时间:2017/7/19
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF53x上MP3转pcm语句问题求助!!!!!
void main(void)
{
int input_mp3,frame_num,decodedSize;
int output_mp3;
int head_flag;
unsigned short decodedSize_t;
char * decode_flag,*pMp3Stream,*pPCMStream,*mp3_stream_bufend;
char * mp3_stream;
char * dataA;
int result_num;
FILE *output_file;
FILE *input_file;
int result = 0;
frame_num = 0;
result_num = 0;

Set_PLL(16,4);
Init_EBIU();
Init_SDRAM();
mp3_stream = 0x1000;
dataA = 0x300000;
decode_flag = dataA;
int i;
for( i = 0;i<0x100*1248 * 4;i++)
{
*decode_flag++ = 0;//这段代码描述了什么??
}
pMp3Stream = mp3_stream;
    pPCMStream = dataA;

MP3DEC_init();

output_file = fopen("../test.pcm","wb");//加载文件系统能不能用f_open表达?
                                        //如果建立一个数组file_name[],能用output_file = fopen(file_name[i],"wb")表达吗?
input_file = fopen("../test.mp3","rb");
result_num = fread(mp3_stream,1,0x300000-0x1000,input_file);//如果用f_read,该如何表达?
asm("ssync;");

mp3_stream_bufend = &mp3_stream[0] + result_num;//&mp3_stream[0]是不是取*mp3_stream的首地址??

head_flag = find_head(pMp3Stream,mp3_stream_bufend);
decode_flag = pMp3Stream+head_flag;//是用来得到音频帧的起始地址吗??
result = check_data(decode_flag,pPCMStream,&input_mp3,&output_mp3,output_file);
delay(100);
        ............
小白求帮助!!!!!!!!!!。。。。。。还有文件列表函数scan_files可以对工程下文件用吗?怎么用??


「该帖子被 不要叫我大 在 2017-07-29 12:36:17 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/7/27 17:00:42
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5193
金钱:34791
积分:6375
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
fopen是vdsp自带的文件系统,用于打开计算机文件,f_open是自己构建的文件系统,用于打开sd卡文件。数组里如果是正确文件路径,可以打开.忘记那两个是取什么了,印象中mp3 帧长度不一样,通过mp3头里面的数据获取帧的长度,应该是在计算音频数据的位置。那个文件列表函数是SD卡下用的vdsp下文件名不同,可以在vdsp帮助文件里找找函数名是什么。




我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/7/29 17:54:50
不要叫我大(论坛新手)
不要叫我大
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:139
积分:5
注册时间:2017/7/19
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

假如是读取SD卡里的文件。
        result_num = fread(mp3_stream,1,0x300000-0x1000,input_file);
asm("ssync;");
        mp3_stream_bufend = &mp3_stream[0] + result_num;//怎么用f_read获得相同的结果??

        fread的返回值读取元素的个数,那f_read的返回值是什么??怎么用f_read获得相同的结果??


for( i = 0;i<0x100*1248 * 4;i++)
{
*decode_flag++ = 0;
}
这里有什么用???


「该帖子被 不要叫我大 在 2017-07-31 16:36:59 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/7/31 11:49:19
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
改为这样:  


       f_read(output_file, mp3_stream,1,0x300000-0x1000,  result_num );
asm("ssync;");
        mp3_stream_bufend = &mp3_stream[0] + result_num;//怎么用f_read获得相同的结果??

参数含义:
    f_read(文件句柄(由f_open函数返回),读入缓存,读取长度,实际读到长度)

光盘中:
code\ApplicationCode\bf53x_sd_fs 下,有SD卡文件系统使用例子,可以看一下。

code\CompleteApplication\bf53x_mp3player_lcd24
这个是完整MP3播放器的例子,需要2.4寸液晶屏,没有液晶屏,看不到目录,但可以通过板卡按键控制播放音乐。


for( i = 0;i<0x100*1248 * 4;i++)
{
*decode_flag++ = 0;
}

这个是将*decode_flag区域清零
相当于
*decode_flag = 0;
decode_flag++;

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2017/8/1 17:10:08
不要叫我大(论坛新手)
不要叫我大
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:139
积分:5
注册时间:2017/7/19
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢andy和op,但是code里没找到complete.MP3完整的例子哪里可以下


「该帖子被 不要叫我大 在 2017-08-04 16:29:14 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/8/2 7:51:21
ttf236(论坛新手)
ttf236
头衔:社区公民
帮派:无帮无派
帖数:1
金钱:100
积分:0
注册时间:2017/8/2
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我路过,看看

http://www.knightsremoval.com/
http://www.kwdecorators.net/
http://www.funkymonkeycrafts.com/
http://www.gasengineersbournemouth.com/
http://www.gemz-virtual-secretary.com/
等级:论坛新手 参考IP地址:*.*.*.*
2017/8/2 9:52:33
不要叫我大(论坛新手)
不要叫我大
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:139
积分:5
注册时间:2017/7/19
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
光盘中没找到MP3的完整例子,哪里可以下????

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/8/4 20:57:37
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5193
金钱:34791
积分:6375
注册时间:2011/6/7
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
已发送给你邮箱了。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/9/11 8:11:32
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.156069 Call, 1 Queries, Processed in 0.015625 second(s),