ILMRTSPServerSession接口

控件公开的服务器会话接口铅RTSP水槽过滤器。看到使用RTSP接收器创建RTSP服务器主题,以获取如何使用此接口的总体概述。

此界面有助于ILMRTSPServerMedia接口为RTSP命令构建响应,并与ILMRTSPServerMedia接口流数据到RTSP客户端。

接口由铅RTSP水槽过滤器,当它在转换或捕获图中充当接收器时。

数据类型:

LMRTSPStreamType

类型定义枚举RTSPStream_Audio = 1,RTSPStream_Video = 2,RTSPStream_KLV = 0 x20} LMRTSPStreamType;

方法返回的pStreamType参数的有效值GetStreamType方法。

接口属性:

类型

的名字

描述

超时

方法的不活动超时时间(以秒为单位)ILMRTSPServerMedia: OnNotification方法,使用RTSPServerSessionNotification_Timeout通知。

ILMRTSPServerMedia接口通常在创建此服务器会话时设置此属性。

默认值是60(持续60秒)。

SessionID

指定与此服务器会话相关联的会话ID。

ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性(可能使用ILMRTSPServer: GenerateNewSessionID方法)。

类创建的所有服务器会话中该值应该是唯一的ILMRTSPServerMedia对象。

IUnknown *

指定ILMRTSPServerMedia接口拥有此会话。

ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性。

服务器会话使用这个值来知道哪个接口应该处理ILMRTSPServerMedia: OnNotification超时通知。

IUnknown *

安全

指定此会话的安全设置。如果为NULL,则该媒体没有安全限制,也不使用任何身份验证。

ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性。

默认值为NULL(不认证)。

注意,当您将Security属性设置为一个接口时,该属性将保留原始接口。因此,如果您对其进行更改(如添加/删除用户),则更改将反映在此会话的安全设置中。

VARIANT_BOOL

输出

如果设置为VARIANT_TRUE,则RTP输出将被启用。如果设置为VARIANT_FALSE,则RTP输出将被禁用。在执行多个图操作时,这有助于在所有操作完成之前禁止任何RTP输出。

接口方法:

HRESULThandleccommand (IUnknown *pServer, IUnknown *pCommandParser, IUnknown *pResponseBuilder, DWORD_PTR socket)

参数

pServer

指针ILMRTSPServer收到此命令的接口。

pCommandParser

指针ILMRTSPCommandParser命令的接口。

pResponseBuilder

指针ILMRTSPResponseBuilder将包含响应的接口。

套接字

指向接收命令的套接字对象的指针。将使用相同的套接字对象发送响应。

描述

RTSP服务器将调用ILMRTSPServerMedia: HandleCommand方法,当它从客户端接收RTSP命令时。的ILMRTSPServerMedia接口将执行一些处理,然后调用服务器会话的handleccommand来协助进一步处理和准备响应。

看到ILMRTSPServerMedia: HandleCommand使用RTSP接收器创建RTSP服务器主题以获取更多信息。

返回

如果成功则S_OK,如果发生错误则< 0。

常见的错误代码

E_OUTOFMEMORY

内存不足,无法处理此命令。

LTMM_E_BAD_COMMAND

[0x80050043] RTSP命令不被识别或不支持。

LTMM_E_SESSION_NOT_FOUND

未设置SessionID属性

VFW_E_INVALID_MEDIA_TYPE

[0x80040248]源流的任何媒体类型都不支持RTSP水槽过滤器

HRESULTGetStreamType (URL,型LMRTSPStreamType* pStreamType)

参数

URL

包含应检索其流类型的曲目ID的字符串。

pStreamType

指向应该用流类型填充的变量的指针。

描述

在解析RTSP设置命令以查找流类型(RTSPStream_Audio或RTSPStream_Video)时使用此方法。

ILMRTSPServerMedia接口通常会在接收到RTSP设置命令时调用此方法,以了解渲染视频或音频流的流。

description命令的响应通常包含如下信息:

[…—其他数据被忽略了

m=视频0 RTP/AVP

96 H264/90000 = rtpmap:

一个=控制:trackID = 0

96 = fmtp: packetization-mode = 1;概要级别= 874020;aO4NyAA sprop-parameter-sets = Z00AHpcgFoe2AiAAAH0gAB1MEIA =, = = =

m=音频0 RTP/AVP

一个= rtpmap: 97 mpeg4-generic / 48000/2

一个=控制:trackID = 1

97 = fmtp: streamType = 2;模式= AAC-LC;配置= 1190

这说明“trackID=0”标识的是H264压缩的视频流,“trackID=1”标识的是AAC压缩的音频流。

RTSP客户端可能会响应一个SETUP命令,如下所示:

设置rtsp: / / 192.168.0.185 / dvd.mpg trackID rtsp / 1.0 = 0

[…其他数据被忽略了

在这种情况下,ILMRTSPServerMedia接口必须从SETUP命令“rtsp://192.168.0.185/dvd. zip”中收到的URL中确定。mpg/trackID=0”表示RTSP客户端希望对视频流进行流处理(因为'trackID=0'表示在description命令中使用H264压缩的视频)。的ILMRTSPServerMedia接口可以通过解析原始的description命令来确定这是视频流,或者它可以调用ILMRTSPServerSession接口的GetStreamType方法。该LEADTOOLS多媒体的188宝金博怎么下载实现ILMRTSPServerMedia接口调用GetStreamType来确定流类型。

一旦确定了流类型,则ILMRTSPServerMedia接口将随后呈现适当的视频或音频流。

返回

如果成功则S_OK,如果发生错误则< 0。

常见的错误代码

E_INVALIDARG

URL不包含正确的曲目ID或格式不正确。

E_POINTER

pStreamType参数无效(NULL)。

HRESULT关闭()

描述

使用此选项可关闭所有连接并停止发送数据。

ILMRTSPServerMedia接口通常会在需要铅RTSP水槽过滤器以停止发送数据。可能的原因是:

返回

S_OK(此方法目前不返回任何错误代码)

HRESULThandlesecsecurity (IUnknown *pServer, IUnknown *pCommandParser, IUnknown *pResponseBuilder, DWORD_PTR socket)

参数

pServer

指针ILMRTSPServer收到此命令的接口。

pCommandParser

指针ILMRTSPCommandParser命令的接口。

pResponseBuilder

指针ILMRTSPResponseBuilder将包含响应的接口。

套接字

指向接收命令的套接字对象的指针。将使用相同的套接字对象发送响应。

描述

RTSP服务器将调用ILMRTSPServerMedia: HandleCommand方法,当它从客户端接收RTSP命令时。的ILMRTSPServerMedia接口将执行一些处理,然后调用服务器会话的handleccommand来协助进一步处理和准备响应。如果需要验证客户端的安全凭证,在执行任何处理之前,用户可以调用handlesecsecurity。

看到ILMRTSPServerMedia: HandleCommand使用RTSP接收器创建RTSP服务器有关更多信息的主题。

返回

如果成功则S_OK,如果发生错误则< 0。

常见的错误代码

LTMM_E_AUTHENTICATION_REQUIRED

[0x8005004A]需要认证。

LEADTOOLS Filters C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。