锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / Darwin服务器 / Darwin概念之模块角色 / RTP角色
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

RTP角色


这个部分将描述RTP角色,这个角色主要用于向客户端发送数据,以及在客户会话关闭时进行处理。

RTP Send Packets角色

服务器在调用QTSS_Play函数的时候就会调用模块的RTP Send Packets角色。RTP Send Packets角色的责任是向客户端发送媒体数据,并告诉服务器什么时候模块的RTP Send Packets角色应该再次被调用。

在被调用的时候,RTP Send Packets角色就会收到一个QTSS_RTPSendPackets_Params结构,该结构定义如下:

typedef struct

{

    QTSS_ClientSessionObject    inClientSession;

    SInt64                      inCurrentTime;

    QTSS_TimeVal                outNextPacketTime;

} QTSS_RTPSendPackets_Params;

inClientSession

这是一个QTSS_ClientSessionObject对象,代表客户会话。如果需要客户会话的属性信息,请参见“qtssClientSessionObjectType”部分。

inCurrentTime

当前时间,以服务器的时间单位计算。

outNextPacketTime

间隔时间,以毫秒为单位。在这个角色返回之前,模块需要设定一个合适的outNextPacketTime值,这个值是当前时刻和服务器再次为当前会话调用RTP Send Packets角色的时刻之间的时间间隔。

任何时候,只要模块为客户会话调用QTSS_Play函数,就会激活该会话的RTP Send Packets角色。模块调用QTSS_Write或者QTSS_WriteV来向客户发送数据。

在模块处理RTP Send Packets角色的时候,服务器保证不会调用该模块中任何引用到客户会话的角色,这里的客户会话由inClientSession来表示。

希望自己的RTP Send Packets角色被调用的模块必须在其Register角色中调用QTSS_AddRole函数,并将角色的实参指定为QTSS_RTPSendPackets_Role常数。

在处理完成这个角色之后,模块通常应该返回QTSS_NoErr。


Client Session Closing角色

服务器对模块的Client Session Closing角色的调用,使得模块可以在客户会话的关闭时进行必要的处理。

在被调用的时候,Client Session Closing角色会收到一个QTSS_ClientSessionClosing_Params结构,该结构定义如下:

typedef struct

{

    QTSS_ClientClosing          inReason;

    QTSS_ClientSessionObject    inClientSession;

} QTSS_ClientSessionClosing_Params;

inReason

描述会话关闭的原因。会话被关闭的原因可能是因为客户端发送一个RTSP拆卸(tear down)请求(qtssCliSesClosClientTeardown),也可能是因为会话超时,或者客户端没有发出拆卸请求(qtssCliSesClosClientDisconnect)的情况下断开连接。

inClientSession

这是一个QTSS_ClientSessionObject object对象,表示正在关闭的客户会话。

在任何时候,只要由inClientSession指定的客户会话即将被拆卸,则Client Session Closing角色就会被调用。

在模块处理Client Session Closing角色时,服务器保证不调用该模块中其它引用到客户会话的角色,这里的客户会话角色由inClientSession表示。

希望自己的Client Session Closing角色被调用的模块必须在其Register角色中调用QTSS_AddRole函数,并将角色的实参指定为QTSS_ClientSessionClosing_Role角色。

在处理完成这个角色之后,模块通常应该返回QTSS_NoErr。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内