教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

基于内存缓冲区的流媒体数据缓存(2)

来源:网络收集 时间:2026-02-02
导读: 之间,如果在之间,就丢弃这个数据包,因为这个数据包已经是无效的。 算法框图: 是 是 是 开始 baglength>512K? 否 original 1? 否 force函数强制输出缓冲区数据且更新original、endnumber值 结束 4、重复数据包处

之间,如果在之间,就丢弃这个数据包,因为这个数据包已经是无效的。

算法框图:

开始 baglength>512K? 否 original1? 否 force函数强制输出缓冲区数据且更新original、endnumber值 结束 4、重复数据包处理 算法描述:

重复的数据包对于单用户来说,是无效的,而如果多用户就要发给不

同的文件,而对于其中的每个文件来说,重复的文件也是无效的,所以,决定对于重复的数据包只做丢弃处理,原理上是没有错误的;

解决方法:设置vector barrier数组,用来记录所有已经进入缓冲区的数

据包,而记录的元素为数据包的特征值indataoffset+baglength; 每个数 据包在进入缓冲区前都要调用fence“栅栏”函数进行特征值比较,如果 比较成功,则拦截成功,否则barrier数组记录这个数据包的特征值。

算法框图: 开始

计算数据包特征值:

offset=indataoffset+baglenth;

为数据包最后一个数据的偏

移量 fence栅栏函数比较特征值

return=1?

是 否 数据包进入缓冲区

结束

5、多节目ID数据包处理 算法描述:

即每个数据包都带有节目信息ID;节目类需要进行三个操作,一是

数据包未传送完毕,节目类接收数据包;二是数据包传送完毕,节目类进行缓冲区的清空;三是节目类内存空间的释放。

1、 节目类接收数据包:节目类需要判断此数据包的ID信息是否和当

前类对象的ID信息符合,符合则写在当前类对象所拥有的缓冲区

中,否则查看当前类的指针私有变量是否为NULL,如果非空,就把数据包传送给下一个类对象进行比较;如果为NULL值,就要启动一个新类,新类向缓冲池申请新的缓冲区,如果申请失败,则数据包存储失败,如果申请成功,就将数据包写入新类的缓冲区; 2、 数据包传送完毕:传送完毕时,节目类再次接收到最后一个数据包,

但是decision变为1,即通知节目类数据包传送完毕,当前节目类首先调用clearremainer函数输出缓冲区剩余数据,如果其指针私有变量next为非空,则传递decision为1这个信息,如果为空,则结束;

3、 节目类内存空间的释放:由于设计中的类的应用是用指针加new实

现的,故需要用delete来调用类的析构函数,而delete只能释放类型定义变量,不能释放类内部new出的内存,也不能关闭文件,故需要在析构函数~program中关闭文件、释放当前缓冲区的内存;另如果指针私有变量next为非空,则delete下一个类,启动下一个类的析构函数,如果为空,则结束。

算法框图:

开始

bagnumber=1?

new初节目类original; origianl.ID=databag.ID

初节目类original调用

printdata函数接收

databag

decision=1? 当前节目类调用 clearremainer函数输出缓冲区剩余数据; next=NULL?

当前类 .ID=databag.ID? next=NULL? new新类; 新类调用printdata函数接收数据包 当前类调用printdata函数接收数据包 结束 6、用户需求处理 算法描述:

用户需求问题在整个数据传送过程中,都要加以处理的,即如果缓冲区

进行数据输出,那么缓冲区一次性的数据数据输出量是要满足用户要求的,即一次性的输出量要大于1k;而在整个实验中,有三个位置,缓冲区是进行数据输出的,一是在顺序输出printdata函数中,缓冲区是边接收边输出的,每次输出的一定是连续的数据,且一次性的输出量大于1K;二是在forceout强制输出函数中,由于forceout函数的主要目的并不是让用户使用当前的数据,而是为了容纳当前数据包,因此,forceout函数是优先输出任意大小连续数据块,如果不能找到连续的数据块,那么就输出次连续的数据块;三是在clearremainer输出剩余数据函数中,因为没有了数据输入,因此无论缓冲区中有多少数据,大于1K或者小于1K,无论剩余数据是否连续,都是要一

基于内存缓冲区的流媒体数据缓存(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/521285.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)