现在要处理这样的事:
从网络中收到未解码的h264裸数据; 解码;然后用 draw 画出来。
如果解码一帧画一帧,图像看起来会走走停停。为了有流畅体验,把解码,显示分开线程处理。
这就涉及到解码后的数据要先存起来,由于视频数据大小不一,如果每次存数据都直接向系统申请内存,用完后释放,长久运行,会产生内存碎片,造成内存上升的现象。所以,我写了一个缓冲区,类似内存池。
本程序是依据固有特性写的,不通用,不要理解为普通的内存池。
特性:
1.视频数据,先解码出来的,必将先使用,然后释放;即说明 向 本缓冲区 申请较早的内存,必先于后申请的内存释放,有严格的先后顺序。
2.本缓冲区是连续的,在使用时,只是用标识符标记起始位置;