CN1791055B - 一种减小数据包播放延时的方法 - Google Patents

一种减小数据包播放延时的方法 Download PDF

Info

Publication number
CN1791055B
CN1791055B CN200410098719XA CN200410098719A CN1791055B CN 1791055 B CN1791055 B CN 1791055B CN 200410098719X A CN200410098719X A CN 200410098719XA CN 200410098719 A CN200410098719 A CN 200410098719A CN 1791055 B CN1791055 B CN 1791055B
Authority
CN
China
Prior art keywords
packet
play
idle queues
current
judge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200410098719XA
Other languages
English (en)
Other versions
CN1791055A (zh
Inventor
王麒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN200410098719XA priority Critical patent/CN1791055B/zh
Publication of CN1791055A publication Critical patent/CN1791055A/zh
Application granted granted Critical
Publication of CN1791055B publication Critical patent/CN1791055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明为一种减小数据包播放延时的方法,该方法包括:步骤a:获取当前数据流的打包时长,根据该打包时长,计算与数据包在通信接收端最大播放延时相对应的数据包个数;步骤b:数据包接收端按照数据包发送时间间隔依次接收数据包并将接收到的数据包依次缓存到播放缓存中,播放缓存按照实际播放时间间隔实际播放数据包,根据缓存到播放缓存中的数据包个数以及播放缓存实际播放的数据包个数,判断播放缓存中当前所缓存的数据包个数是否已经大于或等于与最大播放延时相对应的数据包个数,如果是,则丢弃当前接收到的数据包,否则,执行所述将当前接收到的数据包依次缓存到播放缓存中的步骤。

Description

一种减小数据包播放延时的方法
技术领域
本发明涉及多媒体通信技术领域,尤其涉及一种减小数据包播放延时的方法。
背景技术
当前,基于网络的多媒体通信已经越来越多的应用到各个领域。以音频通信为例,多采用Windows操作系统提供的多媒体软件开发包(SDK)来实现端到端的语音通信。在实现过程中,语音通信的发送端利用SDK的应用编程接口(API)函数waveInStart获取语音,并将该语音以打包时长为单位切割为语音包,然后通过应用程序依次将各个语音包发送给语音通信的接收端;语音通信接收端接收到各个语音包之后,首先利用抖动缓存(JB)队列缓存接收到的语音包,以消除由于网络抖动而造成的语音包乱序或延时差异,该JB队列的出队线程以打包时长为间隔将各个缓存的数据包依次出队,每个数据包一旦出队,则立刻调用API函数waveOutWrite,将该数据包村放到系统提供的播放缓存中,以等待播放,播放缓存最终按照固定的时间间隔将各个数据包依次播放。
上述现有技术虽然能够实现端到端的语音通信,但是,其具有以下缺点:
在采用SDK实现语音通信的过程中,语音通信发送端处理语音的速度通常快于语音通信接收端实际播放语音的速度,也就是说,语音通信发送端以打包时长为间隔向语音通信接收端发送各个语音包,而语音通信接收端的播放缓存只能够以比打包时长稍长的时间作为时间间隔来播放各个语音包,这样,经过一段时间的累积,会在语音通信接收端的播放缓存中堆积过多的语音包,从而增大端到端语音通信的数据包播放延时,影响语音通信的服务质量(QOS)。
以采样率为8KHz,打包时长为60毫秒的语音通信为例,在该于语音通信持续进行15分钟之后,会出现将近2秒的数据包播放延时,从而严重影响了语音通信的QOS。
在采用SDK实现的其它多媒体通信中,由于通信发送端和接收端处理多媒体数据的速度不一致,因此,也会导致如上所述的数据包在通信接收端的播放延时问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种减小数据包播放延时的方法,以减小由于通信发送端和接收端处理数据速度不一致而导致的数据包播放延时问题。
为实现上述目的,本发明提供了一种减小数据包播放延时的方法,该方法包括:
步骤a:获取当前数据流的打包时长,根据该打包时长,计算与数据包在通信接收端最大播放延时相对应的数据包个数;
后续执行下述1)~3)任一方式:
1)设置一个空闲队列,并为该空闲队列申请空闲缓存单元,所申请的空闲缓存单元总数与所述与最大播放延时相对应的数据包个数相等,步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b11:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b12:判断空闲队列中的当前缓存单元个数是否大于等于0,如果是,则执行步骤b13,否则,执行步骤b14;
步骤b13:对空闲队列中的一个空闲缓存单元执行出队操作,将出队的空闲缓存单元分配给当前接收到的数据包,播放缓存利用为数据包所分配的空闲缓存单元,按照数据包到达顺序,缓存当前接收到的数据包;
步骤b14:丢弃当前接收到的数据包,返回步骤b11;
和,在通信接收端播放数据包一侧,执行以下步骤:
步骤b20:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b21:判断当前是否有数据包从播放缓存中实际播放,如果是,执行步骤b22,否则,返回本步骤;
步骤b22:将当前实际播放的数据包所对应的空闲缓存返回该空闲队列;
2)设置一个播放缓存数据包个数变量,用于表示播放缓存中当前缓存的数据包个数,在执行步骤b之前,将该变量初始为0;
步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b31:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b32:判断播放缓存数据包个数变量的当前值是否大于等于与最大播放延时相对应的数据包个数,如果是,则丢弃当前接收到的数据包,然后,返回步骤b31,否则,将当前接收的数据包缓存到播放缓存中,并将播放缓存数据包个数变量的当前值加1,然后返回步骤b31;
在通信接收端播放数据包的一侧,执行以下步骤:
步骤b40:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b41:判断当前是否有数据包从播放缓存中实际播放,如果是,则将播放缓存数据包个数变量的当前值减1,然后返回步骤b40,否则,返回本步骤。
3)设置一个播放缓存数据包个数变量,用于表示与最大延时对应的数据包个数同播放缓存中当前数据包个数的差值,在执行步骤b之前,该差值变量初始值为与最大延时对应的数据包个数;
步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b51:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b52:判断差值变量的当前值是否小于等于0,如果是,则丢弃当前接收到的数据包,然后,返回步骤b51,否则,将当前接收的数据包缓存到播放缓存中,并将差值变量的当前值减1,然后返回步骤b51;
在通信接收端播放数据包的一侧,执行以下步骤:
步骤b60:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b61:判断当前是否有数据包从播放缓存中实际播放,如果是,则将差值变量的当前值加1,然后返回步骤b60,否则,返回本步骤。
其中,在执行步骤b12之后且执行步骤b13之前,该方法进一步包括:
步骤b 131:判断空闲队列当前是否处于操作状态,如果不是,则将空闲队列置为操作状态,和,执行所述步骤b13,否则,返回步骤b131;
执行步骤b13之后,该方法进一步包括:
将空闲队列置为非操作状态;
在执行步骤b21之后且执行步骤b22之前,该方法进一步包括:
步骤b221:判断空闲队列当前是否处于操作状态,如果不是,则将空闲队列置为操作状态,和,执行所述步骤b22,否则,返回步骤b221;
执行步骤b22之后,该方法进一步包括:
将空闲队列置为非操作状态。
其中,所述将空闲队列置为操作状态为:
获取空闲队列的互斥信号量;
所述将空闲队列置为非操作状态为:
释放空闲队列的互斥信号量;
所述判断空闲队列是否处于操作状态为:
判断是否能够获取该空闲队列的互斥信号量,如果是,则判断得到空闲队列处于非操作状态,否则,判断得到空闲队列处于操作状态。
其中,所述将空闲队列置为操作状态为:
将空闲队列操作状态变量置为1;
所述将空闲队列置为非操作状态为:
将空闲队列操作状态变量置为0;
所述判断空闲队列是否处于操作状态为:
判断空闲队列操作状态变量当前值是否为1,如果是,则判断得到空闲队列处于操作状态,否则,判断得到空闲队列处于非操作状态。
其中,所述判断当前是否有数据包实际播放为:
判断是否收到WOM_DONE消息,如果是,则判断得到当前有数据包实际播放,否则,判断得到当前没有数据包实际播放。
其中,所述数据包为语音包。
可见,本发明在判断得到缓存在播放缓存中的数据包个数超过与最大播放延时相对应的数据包个数时,主动丢弃当前接收到的数据包,从而使得该数据包之后的数据包能够相应地提前播放,从而减小了数据包的播放延时,能够保证例如语音通信等数据包通信的服务质量。
附图说明
图1为本发明一实施例中,通信接收端接收数据包一侧的流程图。
图2为本发明一实施例中,通信接收端播放数据包一侧的流程图。
图3为本发明另一实施例中,通信接收端接收数据包一侧的流程图。
图4为本发明另一实施例中,通信接收端播放数据包一侧的流程图。
图5为本发明再一实施例中,通信接收端接收数据包一侧的流程图。
图6为本发明再一实施例中,通信接收端播放数据包一侧的流程图。
具体实施方式
本发明为一种减小数据包播放延时的方法,该方法判断播放缓存中所缓存的数据包个数是否已经达到或超过与最大播放延时相对应的数据包个数,如果是,则通过丢弃当前接收到的数据包,使得后续数据包能够提前播放,从而减小数据包播放延时。
下面对本发明进行详细描述。
实现本发明需要以下步骤:
步骤a:获取当前数据流的打包时长,根据该打包时长,计算与数据包在通信接收端最大播放延时相对应的数据包个数;
步骤b:数据包接收端按照数据包发送时间间隔依次接收数据包并将接收到的数据包依次缓存到播放缓存中,播放缓存按照实际播放时间间隔实际播放数据包,根据缓存到播放缓存中的数据包个数以及播放缓存实际播放的数据包个数,判断播放缓存中当前所缓存的数据包个数是否已经大于或等于与最大播放延时相对应的数据包个数,如果是,则丢弃当前接收到的数据包,否则,执行所述将当前接收到的数据包依次缓存到播放缓存中的步骤。
其中,在所述步骤a中,还可以根据播放需要,进一步更改所述最大播放延时,并利用步骤a计算得到更改后最大播放延时所对应的数据包个数,并不影响本发明的实现。
下面,结合具体实例,对步骤b的具体实现进行详细描述:
在本发明一实施例中,设置一个空闲队列,利用该空闲队列实现步骤b所述的内容,在接收数据流之前,首先根据所述与最大播放延时相对应的数据包个数对该空闲队列进行初始化,具体包括:
为该空闲队列申请空闲缓存单元,所申请的空闲缓存单元总数与所述与最大播放延时相对应的数据包个数相等,并且,初始化该空闲队列的两个参数:空闲队列缓存单元最大个数MaxFreeQueueLen以及空闲队列当前缓存单元个数CurrFreeQueueLen,MaxFreeQueueLen的初始值为所述与最大播放延时相对应的数据包个数,CurrFreeQueueLen的初始值与MaxFreeQueueLen相等;
对空闲队列进行初始化之后,可利用图1和图2所示的步骤实现步骤b:
参见图1,在通信接收端接收数据包一侧,具体执行以下步骤:
步骤101:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤102:判断CurrFreeQueueLen是否大于等于0,如果不是,说明空闲队列中已经没有剩余的空闲缓存单元可供数据包使用,进一步说明播放缓存中所缓存的数据包个数已经达到了与最大播放延时相对应的数据包个数,为避免进一步增大播放延时,不应该再向播放缓存中缓存数据包,并且,为了减小播放延时,应当通过丢包使得当前接收的数据包的后续数据包能够提前播放,则执行步骤109;否则,说明空闲队列中仍有空闲缓存单元可供数据包使用,相应地,播放缓存中所缓存的数据包个数也没有达到与最大播放延时相对应的数据包个数,当前的播放延时并没有超过最大播放延时的限制,从而,可以继续向播放缓存中缓存数据包,则执行步骤103及其后续步骤;
步骤103:判断空闲队列当前是否处于操作状态,如果不是,则执行步骤104,否则,返回步骤103,直至空闲队列处于非操作状态;其中,由于图1所示的步骤105和步骤106以及图2所示的步骤203和步骤204均会对空闲队列执行操作,因此,为了避免同时对空闲队列执行操作从而产生相互冲突,需要在对空闲队列执行操作之前判断该空闲队列是否处于操作状态,以使得仅在空闲队列处于非操作状态的情况下才对空闲队列执行操作;
在本发明实施例中,设置一个用于维护空闲队列数据一致性的互斥信号量,判断是否能够获取该信号量,如果是,则可判断得到空闲队列当前处于非操作状态,否则,判断得到空闲队列处于操作状态;
在本发明其它实施例中,也可设置一个空闲队列操作状态变量,该变量为1时表示空闲队列处于操作状态,该变量为0时表示空闲队列处于非操作状态,通过判断该变量的当前值是否为1即可实现对空闲队列当前状态的判断,并不影响本发明的实现;
步骤104:将空闲队列当前状态置为操作状态,在本发明实施例中,通过获取空闲队列的互斥信号量实现将该空闲队列置为操作状态;在本发明其它实施例中,也可通过将操作状态变量置为1实现置空闲队列为操作状态;
步骤105~步骤106:对空闲对列中的一个空闲缓存单元执行出队操作,将出队的空闲缓存单元分配给当前接收到的数据包,然后,将CurrFreeQueueLen的当前值减1;其中,步骤105和步骤106的执行顺序并不影响本发明的实现;
步骤107~步骤108:播放缓存利用步骤105所分配的空闲缓存单元,按照数据包的到达顺序,缓存当前接收到的数据包,该数据包在播放缓存中等待实际播放,然后,将空闲队列的当前状态置为非操作状态;其中,在本发明实施例中,通过调用waveOutWrite参数将数据包缓存到播放缓存中,通过释放空闲队列的互斥信号量实现将空闲队列当前状态置为非操作状态,如果采用变量表示空闲队列的当前状态,则可通过将该变量置为0实现将空闲队列置为非操作状态,并不影响本发明的实现;
其中,步骤107和步骤108的执行顺序并不影响本发明的实现;
步骤109:由于在步骤102中判断得到CurrFreeQueueLen大于等于0,因此,为了避免进一步缓存数据包从而造成播放延时进一步超过最大播放延时,将当前接收到的数据包丢弃,然后,返回步骤101,按照数据包发送时间间隔,等待接收下一个数据包;由于在实际播放数据包的过程中,仅按照数据包在播放缓存中的缓存顺序实际播放数据包,因此,在步骤109中丢弃一个数据包之后,能够使得该丢弃数据包之后的各个数据包提前一个实际播放时间间隔播放,从而达到减小播放延时的目的,有关播放数据包的具体过程,将结合图2进行详细描述;
参见图2,在通信接收端播放数据包一侧,具体执行以下步骤:
步骤200:通信接收端播放数据包一侧,按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤201:判断当前是否有数据包从播放缓存中实际播放,如果是,则执行步骤202及其后续步骤,否则,返回本步骤,直至有数据包实际播放时再执行步骤202及其后续步骤;
步骤202:判断空闲队列当前是否处于操作状态,如果是,则返回步骤202,否则,执行步骤203及其后续步骤;其中,步骤202中所述的判断方式与图1中步骤103中的判断方式相同;
步骤203:将空闲队列的当前状态置为操作状态,在本发明实施例中,通过获取空闲队列的互斥信号量实现该步骤,也可采用步骤104中所述的其余方式实现该步骤;
步骤204~步骤205:对空闲队列执行入队操作,将当前实际播放的数据包所对应的空闲缓存返回该空闲队列,然后,将CurrFreeQueueLen的当前值加1;其中,步骤204和步骤205之间的执行顺序并不影响本发明的实现;
步骤206:将该空闲队列的当前状态置为非操作状态,然后,返回步骤200,直至通信结束;本发明实施例中,通过释放空闲队列的互斥信号量实现该步骤,也可通过步骤108中所描述的其余方式实现该步骤。
在以上所述实施例中,空闲队列为数据包分配空闲缓存,从而使得在播放缓存中等待播放的数据包无需再占用播放缓存本身的缓存,有利于有效地控制播放缓存中缓存的占用率;在本发明其它实施例中,如果不考虑播放缓存中缓存占用率的问题,还可按照如下方式实现步骤b,具体包括:
设置一个播放缓存数据包个数变量,用于表示播放缓存中当前缓存的数据包个数,在接收数据流之前,将该变量初始为0;
参见图3,在通信接收端接收数据包一侧,执行以下步骤:
步骤301:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤302:判断播放缓存数据包个数变量的当前值是否大于等于与最大播放延时相对应的数据包个数,如果是,则执行步骤305,否则,执行步骤303;
步骤303~步骤304:将当前接收的数据包缓存到播放缓存中,并将播放缓存数据包个数变量的当前值加1,然后返回步骤301,直至通信结束;其中,步骤303和步骤304的执行顺序并不影响本发明的实现;
步骤305:丢弃当前接收到的数据包,然后,返回步骤301,直至通信结束;
参见图4,在通信接收端播放数据包的一侧,执行以下步骤:
步骤400:通信接收端播放数据包一侧,按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤401:判断当前是否有数据包从播放缓存中实际播放,如果是,则执行步骤402及其后续步骤,否则,返回本步骤,直至有数据包实际播放时再执行步骤402及其后续步骤;
步骤402:将播放缓存数据包个数变量的当前值减1,然后返回步骤400,直至通信结束。
类似的,可以设置一个差值变量,用于表示与最大延时对应的数据包个数同播放缓存中当前数据包个数的差值,在接收数据流之前,该差值变量初始值为与最大延时对应的数据包个数,参考图5和图6,可按如下方式实现步骤b:
参见图5,在通信接收端接收数据包一侧,执行以下步骤:
步骤501:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤502:判断差值变量的当前值是否小于等于0,如果是,则执行步骤505,否则,执行步骤503;
步骤503~步骤504:将当前接收的数据包缓存到播放缓存中,并将差值变量减1,然后返回步骤501,直至通信结束;其中,步骤503和步骤504的执行顺序并不影响本发明的实现;
步骤505:丢弃当前接收到的数据包,然后,返回步骤501,直至通信结束;
参见图6,在通信接收端播放数据包的一侧,执行以下步骤:
步骤600:通信接收端播放数据包一侧,按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤601:判断当前是否有数据包从播放缓存中实际播放,如果是,则执行步骤602及其后续步骤,否则,返回本步骤,直至有数据包实际播放时再执行步骤602及其后续步骤;
步骤602:将差值变量加1,然后返回步骤600,直至通信结束。
类似的,只要采用相应数学算法,根据缓存到播放缓存中的数据包个数以及播放缓存实际播放的数据包个数,判断播放缓存中当前所缓存的数据包个数是否大于或等于与最大播放延时相对应的数据包个数,均应在本发明的保护范围之内。
在本发明以上所述实施例中,均可通过判断是否收到WOM_DONE消息来判断当前是否有数据包实际播放:如果收到该消息,则判断得到当前有数据包实际播放,也可采用其它方式实现该判断,并不影响本发明的实现。
在本发明以上所述实施例中,所述的数据包可以为语音包,也可为其它类型的数据包,并不影响本发明的实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种减小数据包播放延时的方法,其特征在于,该方法包括:
步骤a:获取当前数据流的打包时长,根据该打包时长,计算与数据包在通信接收端最大播放延时相对应的数据包个数;
后续执行下述1)~3)任一方式:
1)设置一个空闲队列,并为该空闲队列申请空闲缓存单元,所申请的空闲缓存单元总数与所述与最大播放延时相对应的数据包个数相等,步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b11:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b12:判断空闲队列中的当前缓存单元个数是否大于等于0,如果是,则执行步骤b13,否则,执行步骤b14;
步骤b13:对空闲队列中的一个空闲缓存单元执行出队操作,将出队的空闲缓存单元分配给当前接收到的数据包,播放缓存利用为数据包所分配的空闲缓存单元,按照数据包到达顺序,缓存当前接收到的数据包;
步骤b14:丢弃当前接收到的数据包,返回步骤b11;
和,在通信接收端播放数据包一侧,执行以下步骤:
步骤b20:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b21:判断当前是否有数据包从播放缓存中实际播放,如果是,执行步骤b22,否则,返回本步骤;
步骤b22:将当前实际播放的数据包所对应的空闲缓存返回该空闲队列;
2)设置一个播放缓存数据包个数变量,用于表示播放缓存中当前缓存的数据包个数,在执行步骤b之前,将该变量初始为0;
步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b31:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b32:判断播放缓存数据包个数变量的当前值是否大于等于与最大播放延时相对应的数据包个数,如果是,则丢弃当前接收到的数据包,然后,返回步骤b31,否则,将当前接收的数据包缓存到播放缓存中,并将播放缓存数据包个数变量的当前值加1,然后返回步骤b31;
在通信接收端播放数据包的一侧,执行以下步骤:
步骤b40:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b41:判断当前是否有数据包从播放缓存中实际播放,如果是,则将播放缓存数据包个数变量的当前值减1,然后返回步骤b40,否则,返回本步骤。
3)设置一个播放缓存数据包个数变量,用于表示与最大延时对应的数据包个数同播放缓存中当前数据包个数的差值,在执行步骤b之前,该差值变量初始值为与最大延时对应的数据包个数;
步骤b包括:
在通信接收端接收数据包一侧,执行以下步骤:
步骤b51:通信接收端按照数据包发送时间间隔,依次接收数据包;
步骤b52:判断差值变量的当前值是否小于等于0,如果是,则丢弃当前接收到的数据包,然后,返回步骤b51,否则,将当前接收的数据包缓存到播放缓存中,并将差值变量的当前值减1,然后返回步骤b51;
在通信接收端播放数据包的一侧,执行以下步骤:
步骤b60:按照实际播放时间间隔,依次播放缓存在播放缓存中的各个数据包;
步骤b61:判断当前是否有数据包从播放缓存中实际播放,如果是,则将差值变量的当前值加1,然后返回步骤b60,否则,返回本步骤。
2.根据权利要求1所述的方法,其特征在于,在执行步骤b12之后且执行步骤b13之前,该方法进一步包括:
步骤b131:判断空闲队列当前是否处于操作状态,如果不是,则将空闲队列置为操作状态,和,执行所述步骤b13,否则,返回步骤b131;
执行步骤b13之后,该方法进一步包括:
将空闲队列置为非操作状态;
在执行步骤b21之后且执行步骤b22之前,该方法进一步包括:
步骤b221:判断空闲队列当前是否处于操作状态,如果不是,则将空闲队列置为操作状态,和,执行所述步骤b22,否则,返回步骤b221;
执行步骤b22之后,该方法进一步包括:
将空闲队列置为非操作状态。
3.根据权利要求2所述的方法,其特征在于,所述将空闲队列置为操作状态为:
获取空闲队列的互斥信号量;
所述将空闲队列置为非操作状态为:
释放空闲队列的互斥信号量;
所述判断空闲队列是否处于操作状态为:
判断是否能够获取该空闲队列的互斥信号量,如果是,则判断得到空闲队列处于非操作状态,否则,判断得到空闲队列处于操作状态。
4.根据权利要求2所述的方法,其特征在于,所述将空闲队列置为操作状态为:
将空闲队列操作状态变量置为1;
所述将空闲队列置为非操作状态为:
将空闲队列操作状态变量置为0;
所述判断空闲队列是否处于操作状态为:
判断空闲队列操作状态变量当前值是否为1,如果是,则判断得到空闲队列处于操作状态,否则,判断得到空闲队列处于非操作状态。
5.根据权利要求1~4任意一项所述的方法,其特征在于,所述判断当前是否有数据包实际播放为:
判断是否收到WOM_DONE消息,如果是,则判断得到当前有数据包实际播放,否则,判断得到当前没有数据包实际播放。
6.根据权利要求1~4任意一项所述的方法,其特征在于,所述数据包为语音包。
CN200410098719XA 2004-12-14 2004-12-14 一种减小数据包播放延时的方法 Active CN1791055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200410098719XA CN1791055B (zh) 2004-12-14 2004-12-14 一种减小数据包播放延时的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200410098719XA CN1791055B (zh) 2004-12-14 2004-12-14 一种减小数据包播放延时的方法

Publications (2)

Publication Number Publication Date
CN1791055A CN1791055A (zh) 2006-06-21
CN1791055B true CN1791055B (zh) 2010-04-07

Family

ID=36788571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410098719XA Active CN1791055B (zh) 2004-12-14 2004-12-14 一种减小数据包播放延时的方法

Country Status (1)

Country Link
CN (1) CN1791055B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045552B (zh) * 2009-10-14 2012-12-19 中兴通讯股份有限公司 一种多媒体码流发送的方法和系统
CN103391468B (zh) * 2012-05-08 2016-12-14 安凯(广州)微电子技术有限公司 一种基于移动终端的网络视频数据的缓冲控制方法及系统
CN103281528A (zh) * 2013-04-10 2013-09-04 深圳康佳通信科技有限公司 一种流媒体解码方法、系统及移动终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1340954A (zh) * 2000-08-25 2002-03-20 松下电器产业株式会社 实时信息接收装置
WO2003029990A1 (en) * 2001-10-03 2003-04-10 Global Ip Sound Ab Network media playout
CN1432243A (zh) * 2000-05-01 2003-07-23 河流三角洲网络工程有限公司 数据包丢弃
CN1531276A (zh) * 2003-03-13 2004-09-22 华为技术有限公司 用于消除ip语音数据抖动的自适应抖动缓存实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1432243A (zh) * 2000-05-01 2003-07-23 河流三角洲网络工程有限公司 数据包丢弃
CN1340954A (zh) * 2000-08-25 2002-03-20 松下电器产业株式会社 实时信息接收装置
WO2003029990A1 (en) * 2001-10-03 2003-04-10 Global Ip Sound Ab Network media playout
CN1531276A (zh) * 2003-03-13 2004-09-22 华为技术有限公司 用于消除ip语音数据抖动的自适应抖动缓存实现方法

Also Published As

Publication number Publication date
CN1791055A (zh) 2006-06-21

Similar Documents

Publication Publication Date Title
US8000247B2 (en) Bandwidth management apparatus
Chebrolu et al. Communication using multiple wireless interfaces
US10659380B2 (en) Media buffering
KR101005138B1 (ko) 셀들의 캡슐화를 위한 방법 및 시스템
US7903690B2 (en) Method and system of sending an audio stream and a data stream
US20070121504A1 (en) Scheduling incoming packet traffic on an output link of a network device associated with a data network
CN100452876C (zh) 流媒体数据的并行传输调度方法
US20010012300A1 (en) Method and a device for timing the processing of data packets
JPH07221795A (ja) 等時接続処理方法及びパケット交換ネットワーク
EP0921666A2 (en) Speech reception via a packet transmission facility
US20060256723A1 (en) Scheduling incoming packet traffic on an output link of a network device associated with a data network
US20050201403A1 (en) Method and apparatus for data transmission in consideration of transmission scheduling
KR20070075693A (ko) 이동통신 기지국 시스템에서 하향 음성 패킷망 패킷스케줄링 장치 및 방법
WO2010020988A2 (en) System and methods for distributed quality of service enforcement
CN1791055B (zh) 一种减小数据包播放延时的方法
US5870398A (en) Introducing inter-packet gaps in network transmissions
CN101800704B (zh) 一种基于混合动态优先队列的p2p流媒体系统数据请求调度方法
US6912224B1 (en) Adaptive playout buffer and method for improved data communication
KR20030018059A (ko) 공용 전송 매체를 위한 우선 순위 패킷 전송 시스템
CN116889024A (zh) 一种数据流传输方法、装置及网络设备
US7545745B1 (en) Method and apparatus for controlling the quality of service of voice and data services over variable bandwidth access networks
CN107302504B (zh) 一种基于虚拟发送队列的多路传输调度方法及系统
CN1787481B (zh) 一种减小数据包播放延时的方法
CN101252513B (zh) 保障服务质量的片上网络带宽资源调度方法
CN101577609B (zh) 用于处理因特网语音协议封包的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant