1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- *****************************************************************
- *
- * Audio 变采样使用demo
- *
- *****************************************************************
- */
- #include "asm/includes.h"
- #include "media/includes.h"
- #include "system/includes.h"
- #include "app_config.h"
- #include "audio_config.h"
- #include "audio_decode.h"
- #include "app_main.h"
- #include "Resample_api.h"
- /* #include "audio_dec.h" */
- /* #include "clock_cfg.h" */
- static RS_PARA_STRUCT rs_para_obj;
- static RS_STUCT_API *test_rs_api;
- static s16 sin_48k[48] = {
- 0, 2139, 4240, 6270, 8192, 9974, 11585, 12998,
- 14189, 15137, 15826, 16244, 16384, 16244, 15826, 15137,
- 14189, 12998, 11585, 9974, 8192, 6270, 4240, 2139,
- 0, -2139, -4240, -6270, -8192, -9974, -11585, -12998,
- -14189, -15137, -15826, -16244, -16384, -16244, -15826, -15137,
- -14189, -12998, -11585, -9974, -8192, -6270, -4240, -2139
- };
- static s16 output_buf[96] = {0};
- void audio_resample_demo(void)
- {
- rs_para_obj.nch = 2; //双声道
- rs_para_obj.new_insample = 48000; //输入采样率
- rs_para_obj.new_outsample = 32000;//输出采样率
- test_rs_api = get_rsfast_context();
- s32 rs_bufsize = test_rs_api->need_buf();
- s16 *rs_buf = malloc(rs_bufsize);
- test_rs_api->open(rs_buf, &rs_para_obj);
- s16 *inbuf = sin_48k; //输入数据的buffer
- s16 *obuf = output_buf; //输出数据的buffer
- u32 len = sizeof(sin_48k) / 2; //输入数据的长度
- u32 rdlen = test_rs_api->run(rs_buf, inbuf, len, obuf); //len是n个s16,数据在 inbuf,返回rdlen个s16 是输出数据的长度,输出数据在obuf
- put_buf(obuf, rdlen); //把输出数据打印出来
- }
|