libmad 解码库用法
来源:互联网 发布:fileinput.js ie9 编辑:程序博客网 时间:2024/05/19 13:44
//初始化mad_stream_init(&pDecoder->stream);mad_frame_init(&pDecoder->frame);mad_timer_reset(&(pDecoder->timer));mad_synth_init(&pDecoder->synth);mad_stream_options(&pDecoder->stream, MAD_OPTION_IGNORECRC);//解码过程mad_stream_buffer(stream, pBuffer, mlength);while(1){ if(pMad->nMadFlag&MAD_HEADER_FLAG) { if(-1==mad_header_decode(&pMad->frame.header,&pMad->stream)){ if(!MAD_RECOVERABLE(pMad->stream.error)) break; } mResult=wzMadReadHeader(pBuffer,ulSize,&pMad->stream); MADDECODER_ERROR(mResult,nResult); } if(-1==mad_frame_decode(&pMad->frame,&pMad->stream)) { if (!MAD_RECOVERABLE(pMad->stream.error)) break; } else pMad->nBadLastFrame=0; if(pMad->nMadFlag&MAD_FILTER_FLAG) { mResult=wzMadFilter(pBuffer,ulSize, &pMad->stream,&pMad->frame); MADDECODER_ERROR(mResult,nResult); } mad_timer_add(&pMad->timer,pMad->frame.header.duration); mad_synth_frame(&pMad->synth,&pMad->frame); if(pMad->push_buffer) { //write file MADDECODER_ERROR(mResult,nResult); } }//释放资源mad_synth_finish(&pMad->synth);mad_frame_finish(&pMad->frame);mad_stream_finish(&pMad->stream);
以上代码摘自官方例子,自己只是做了一些简单的修改。
以上代码兼容所有平台。
from:http://blog.csdn.net/weinyzhou/article/details/7657958
版权所有,禁止转载
- libmad 解码库用法
- libmad音频解码库分析--libmad简介
- libmad音频解码库简介及其数据结构
- 利用libmad解码mp3
- 利用libmad解码mp3
- libmad MP3解码
- LIBMAD解码播放器
- MP3解码库libmad到OpenCore的移植
- Bellagio中libmad解码库API的使用
- 关于libmad开源mp3音频解码库的使用
- linux下使用libmad库实现mp3文件的解码、播放
- linux下使用libmad库实现mp3文件的解码、播放
- linux 基于alsa 使用libmad 解码库实现MP3文件的播放
- 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
- libmad解码mp3生成pcm文件
- 基于libmad编写mp3解码程序
- libmad库的移植
- libmad
- 2012.06.13简单FTPClient
- 让Linux终端中执行的程序在后台运行
- 笔记
- 解剖Nginx·模块开发篇(6)配置文件config入门
- 用户、权限、概要文件的理解
- libmad 解码库用法
- libmpg123 解码库用法
- Orcale 复习知识点
- 不用循环\不用条件判断..输出1 - 1000
- android camera 2
- android camera 3
- CPSR_cxsf
- QQ空间密码和权限破解的方法.
- android drawable-(hdpi,mdpi,ldpi)的区别和关于surfaceholder.lockCanvas(rect)方法的疑问