和菜鸟一起学linux之dlna的学习记录
关于DLNA框架
1、Networking & Connectivity
为了解决物理设备连通问题,
主要依赖于Ethernet,802.11,Ipv4协议栈,Ipv6协议栈。
TCP/IP协议栈必须包含Ipv4,TCP,UDP,DHCP,Auto-IP,ARP,ICMP。
2、Device Discovery&Control
为了解决设备发现和互操作问题,实现所谓的“设备零配置”。比如通过电视播放PC媒体的时候,电视设备需要“自动知道”PC媒体服务器的存在,以及其能提供何种服务。
主要依赖于UPnP设备体系结构标准,XML,SOAP,HTTP等。
3、Media Management
为了解决媒体的标志,管理和分发。
主要依赖于UPnP AV v1.0的规格
ContentDirectory(DMS):
浏览/查找所有的媒体文件
包含了metadata,例如标题,创建者,分辨率等。
管理内容,比如创建播放列表,添加新的项目。
RenderingControl(DMP):
控制rendering的特性,比如音量,背光等。
ConnectionManager(DMP,DMS):
列举支持的传输协议和数据格式
列举已经存在的UPnP AV流
AV Transport(DMP,DMS):
控制活动和位置,比如播放,暂停,快进,快退等。
4、Media Transport
解决服务端如何“流化”媒体内容到媒体展示端。
依赖于HTTP1.1,通过关闭TCP连接关闭媒体流。
5、Media Formats
解决媒体内容如何编码和标志。
定义了media format profiles以及媒体交互规则。
miniserver具体的流程如下:
DMR回调处理函数
DMS回调处理函数