发明名称 |
一种适配android stagefright 多媒体框架的音频解码系统及方法 |
摘要 |
本发明公开了一种适配androidstagefright多媒体框架的音频解码方法和系统,方法包括以下步骤:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;获取音频的媒体元数据并保存至本地;获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据上下文环境,打开并初始化所述音频解码器中与音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;通过解包装组件读取音频编码数据至输入缓冲,进行音频解码;更新本地的媒体元数据中的采样率数据为音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至输出缓冲,从输出缓冲返回携带时间戳的原始音频数据。本发明能够扩展安卓系统对音频格式的支持。 |
申请公布号 |
CN102857833B |
申请公布日期 |
2015.02.18 |
申请号 |
CN201210389419.1 |
申请日期 |
2012.10.15 |
申请人 |
深圳市佳创软件有限公司 |
发明人 |
温伟;涂睿;高见;胡勇;刘睿 |
分类号 |
H04N21/85(2011.01)I;H04N21/8547(2011.01)I |
主分类号 |
H04N21/85(2011.01)I |
代理机构 |
深圳新创友知识产权代理有限公司 44223 |
代理人 |
江耀纯 |
主权项 |
一种适配android stagefright多媒体框架的音频解码方法,其特征在于,包括以下步骤:音频解码系统构造步骤:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;开始步骤:包括:2‑1)获取所述本地的媒体元数据的地址;2‑2)从所述本地的媒体元数据中获取上下文环境数据项;2‑3)从所述本地的媒体元数据中获取音频流在多媒体源中的编号,通过该编号判断从多媒体源中获取的流是否为音频流,若是,则进行解码,否则跳过;2‑4)申请一个容量大于音频解码最大输出字节数的内存资源作为解码输出缓冲;2‑5)通过ffmpeg工具箱找到并打开与所述上下文环境数据项中的解码格式ID相匹配的解码器;2‑6)申请一个容量大于AUDIO_REFILL_THRESH*2的内存资源作为解码输入缓冲,并将解码输入缓冲中带解码数据的字节数和地址偏移量均初始化为0,其中,AUDIO_REFILL_THRESH为开始音频解码时所需数据量阈值;读取步骤:通过所述解包装组件读取音频编码数据至所述解码输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述解码输出缓冲,从所述解码输出缓冲返回携带时间戳的原始音频数据;停止步骤:释放所述开始步骤中申请的作为解码输出缓冲和解码输入缓冲的内存资源。 |
地址 |
518000 广东省深圳市福田区滨河路以南、沙嘴路以东中央西谷大厦,15层01-08,16层04-06 |