n 1,UPnP(UniversalPlug and Play):通用即插即用
n DLNA (Digital Living Network Alliance)数字生活网络联盟。
n DMP(Digital Media Player):数字媒体播放器。
n DMS(Digital Media Server):数字媒体服务器
n SOAP -简单对象存取协议(Simple Object Access Protocol ),它是一种应用程序之间进行数据通讯的机制。它是一种在HTTP上使用XML发送命令并接收值的远程过程调用
n SSDP-A multicast discovery and search mechanism that use a multicastvariant of HTTP over UDP
n CP-控制点,控制点是一个控制器,它可以检索设备和服务描述,发送动作到服务,查询服务的状态变量和从服务接收事件。允许用户使用或运行一个设备,例如CD播放机,的程序可以认为是控制点。
具体步骤:
1:设备寻址,获取网络地址。通过DHCP协议获取IP地址。设备寻址功能可以直接使用机顶盒已实现的功能。
2:DMS 定时广播(advertise)自己的设备描述信息和服务描述信息。发现家庭网络上的UPnP设备.
3:DMP 定时搜索(search)是否有DMS.
从发现消息中得到设备描述的URL,并通过URL取得设备描述 .
4:DMP成为控制点。控制对方UPnP设备,向DMS发送服务的命令。
发出动作实质上是一种远程过程调用,控制点将动作送到设备服务,在动作完成之后,服务返回相应的结果。
n
5:DMS反馈内容。
控制点首先需要向服务订阅相关事件,当mediaserver上这些变量改变时,服务就会发布更新,则控制点就会收到设备事件.
6:DMP端显示内容
n 浏览器装载设备描述文件和媒体资源描述文件,显示给用户。用户同时可以发出控制指令。
DMP 组件的功能有:
2. 根据uPnP协议发现DMS设备并完成交互。
3. 完成主控的操作命令和信息收集命令。
n 主控完成页面的命令分发功能。
n 对于页面的媒体播放命令,音视频播放命令转交vod完成;图片播放命令转交图片解析组件完成;字幕播放命令转交字幕组件完成。
n 对于页面的信息查询命令,主控通过DLNA模块交给DMP组件完成.
n DMS 组件的功能有:
l 初始化DMS系统,包括UPnP协议栈;
l 根据uPnP协议广播DMS设备及服务,并完成与DMP的交互。----广播自己
l 及时收集本地存储内容目录,并以服务的形式供其它互联设备如DMP访问。----遍历U盘,生成媒体库,并实时提供目录服务
l 提供web server服务供其它互联设备如DMP提取描述文件和媒体文件内容。----提供描述文件以及媒体文件下载
n DMS还集成了一个USB监控模块,它以1秒的频率监控/var/mnt/目录下USB设备的插拔情况。不管是插入还是拔出U盘,都会触发内容目录收集模块重新生成媒体库。
n 而内容目录收集模块初始化时,会遍历该发现的U盘目录下的所有文件夹及文件,调用开源代码ffmpeg的接口读取媒体文件的相关信息,生成内容目录存储到媒体库中。
n 此模块首先通过uPnP发布本服务即可执行的动作和事件。内容目录服务(CDS)模块需完成此DMP发来的浏览动作,按规定格式准备好节目目录信息,通过uPnP返回给DMP。CDS提供的数据来源于媒体数据库即由内容目录收集模块遍历生成的媒体库。
n /* List of UPnP ContentDirectory Service actions */
n struct service_action_t cdsServiceActions[] = {
n {SERVICE_CDS_ACTION_SEARCH_CAPS, _cdsGetSrchCap},
n {SERVICE_CDS_ACTION_SORT_CAPS, _cdsGetSortCap},
n {SERVICE_CDS_ACTION_UPDATE_ID, _cdsGetSysUpdateId },
n {SERVICE_CDS_ACTION_BROWSE, _cdsBrowse },
n { NULL, NULL }
n };
n 为了配合UPnP SDK完成HTTP Server的功能,本模块需实现以下接口:
n URLProtocol http_protocol = {
n "http",
n http_open,
n http_read,
n http_write,
n http_seek,
n http_close,
n };
n 当本模块接收到UPnPSDK转发过来的事件注册请求时,根据请求的服务类型,将本模块支持的状态变量反馈给UPnP SDK。由UPnP SDK将状态变量的取值、更新信息通知给DMP设备。