DLNA Guidelines June 2016 - Part 1-1 Architectures and Protocols
DLNA Guidelines June 2016 - Part 1-1 Architectures and Protocols
Fulfilling the promise of the digital home requires a cross-industry effort to develop and promote
a common industry framework for interoperability. This industry framework is expressed
through the DLNA guidelines document that has been developed to provide Consumer
Electronic, Mobile Device and PC companies with the information needed to build interoperable
platforms, devices, and application for the digital home.
Do Not Copy
DIGITAL LIVING NETWORK ALLIANCE (DLNA) HAS BEEN DISSOLVED. THESE GUIDELINES ARE MADE
AVAILABLE TO YOU BY SPIRESPARK INTERNATIONAL, INC. WITH PERMISSION FROM DLNA
DLNA, DLNA CERTIFIED, and the logo are trademarks, registered trademarks, or servicemarks
of Digital Living Network Alliance in the United State or other countries.
Copying or other form of reproductions and/or distribution of these works is strictly prohibited
CONTENTS
1 Scope ............................................................................................................................... 3
2 Normative references ....................................................................................................... 3
3 Terms, definitions, symbols and abbreviations ................................................................ 10
3.1 Terms and definitions ............................................................................................ 10
3.2 Symbols and abbreviations .................................................................................... 19
3.3 Conventions .......................................................................................................... 31
4 DLNA home network architecture ................................................................................... 31
4.1 General ................................................................................................................. 31
4.2 Networking and connectivity .................................................................................. 32
4.3 Device discovery and control ................................................................................. 33
4.4 Media management ............................................................................................... 33
4.5 Media formats ....................................................................................................... 34
4.6 Media transport ..................................................................................................... 34
4.7 Remote UI ............................................................................................................. 34
5 DLNA device model ........................................................................................................ 34
5.1 Overview ............................................................................................................... 34
5.2 Device model elements ......................................................................................... 34
5.3 Device Functions ................................................................................................... 36
5.4 Device Categories ................................................................................................. 37
5.5 Device Classes and roles ...................................................................................... 37
5.6 Device Capabilities and roles ................................................................................ 38
5.7 System usages ...................................................................................................... 38
5.8 Interoperability guidelines usage ........................................................................... 48
6 Guideline terminology and conventions .......................................................................... 50
6.1 Guideline compliance classifiers ............................................................................ 50
6.2 Standard or specification usage classifiers ............................................................ 51
6.3 Guideline font usage conventions .......................................................................... 51
6.4 Guideline syntax notation conventions ................................................................... 51
6.5 Guideline normative and informative text conventions ........................................... 52
6.6 DLNA XML namespaces and schemas .................................................................. 52
6.7 General rules on XML documents and fragments ................................................... 52
7 Guideline requirements overview .................................................................................... 52
7.1 General ................................................................................................................. 52
7.2 Conditions for measuring time in message exchanges ........................................... 55
8 Networking and connectivity ........................................................................................... 56
8.1 General ................................................................................................................. 56
8.2 Networking and connectivity: General capability requirements ............................... 56
8.3 Networking and connectivity: QoS requirements .................................................... 60
8.4 Networking and connectivity: device requirements ................................................. 66
9 Device discovery and control .......................................................................................... 71
9.1 General ................................................................................................................. 71
9.2 Device discovery and control guidelines ................................................................ 72
10 Media management ...................................................................................................... 114
10.1 AV media management ....................................................................................... 114
10.2 Content synchronization MM/CM guidelines ........................................................ 352
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
ii
Figures:
Figure 1 – DLNA functional components ............................................................................... 32
Figure 2 – DLNA device model terms hierarchy..................................................................... 36
Figure 3 – 2-box Pull system usage interaction model ........................................................... 40
Figure 4 – 2-box Push system usage interaction model ......................................................... 41
Figure 5 – 3-box system usage interaction model ................................................................. 41
Figure 6 – Download system usage interaction model ........................................................... 42
Figure 7 – Upload system usage interaction model ............................................................... 43
Figure 8 – Download Synchronization system usage interaction model ................................. 44
Figure 9 – Upload Synchronization system usage interaction model ..................................... 45
Figure 10 – Scheduled Recording system usage interaction model ....................................... 46
Figure 11 – EPG system usage interaction model ................................................................. 47
Figure 12 – Guideline layout and definitions ......................................................................... 53
Figure 13 – Visual map of possible values for the attribute tables ......................................... 55
Figure 14 – DLNA QoS visual organization ........................................................................... 60
Figure 15 – UPnP discovery robustness ................................................................................ 79
Figure 16 – DLNA PlayContainer URI example ................................................................... 238
Figure 17 – Recording conflict behavior .............................................................................. 392
Figure 18 – CDS and SRS object lifetimes .......................................................................... 410
Figure 19 – Extended Tuner and its containers ................................................................... 416
Figure 20 – Modeling DLNA Extended Tuner ...................................................................... 418
Figure 21 – UCDAM summary ............................................................................................. 483
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
iv
Tables:
Table 1 – Key technology ingredients ..................................................................................... 1
Table 2 – DLNA Device Classes in the HND Device Category ............................................... 49
Table 3 – DLNA Device Capabilities ..................................................................................... 49
DLNA guidelines; Part 1-1: Architecture and protocols
v
INTRODUCTION
Overview
Consumers are acquiring, viewing, and managing an increasing amount of digital media (photos,
music, and video) on devices in the Consumer Electronics (CE), Mobile Device, and Personal
Computer (PC) domains. Consumers want to conveniently enjoy that content, regardless of the
source, across different devices and locations in their homes. The digital home vision integrates the
Internet, mobile, and broadcast networks through a seamless, interoperable network, which will
provide a unique opportunity for manufacturers and consumers alike. In order to deliver on this
vision, it was recognized that a common set of industry design guidelines would be required to allow
companies to participate in a growing marketplace, leading to more innovation, simplicity, and value
for consumers.
The Digital living network alliance answered this challenge by taking the initiative to develop a
workable framework for interoperable product design. The DLNA Home Networked Device
interoperability guidelines have been created in a unique cross-industry effort that combined the
efforts of over 100 Consumer Electronics, PC-industry and Mobile Device companies from around
the world that worked together with the aim of achieving the world's first substantial platform for true
interoperability between personal computer and consumer electronic devices. The interoperability
guidelines provide product developers with a long-term architectural view, plus specific guidance for
IP-networked platforms, devices and applications in the home. The interoperability guidelines will
be introduced in phases over several years to accompany the market adoption of usages and the
availability of needed technology and standards.
The interoperability guidelines that are the object of this standard are based on an architecture (see
Clause 4) that defines interoperable components for devices and software infrastructure. It covers
physical media, network transports, device discovery and control, media management and control,
media formats, media transport protocols, and remote user interfaces. Table 1 shows a summary of
the key functional components and technology ingredients that are covered by these interoperability
guidelines.
The protocols defined in this standard are based on the DLNA interoperability guidelines version 4.0.
Device implementations advertise adherence to the protocols selecting value 4.0 in the fields and
flags designed to expose the DLNA protocol version.
• Marketing professionals who specify requirements for home networked media products.
The interoperability guidelines consist of five parts covering Architecture and Protocols, Media
Formats, Link Protection, DRM Interoperability Systems and Device Profiles. This part of DLNA
guidelines provides vendors with the information needed to build interoperable networked platforms
and devices for the digital home. The necessary standards and technologies are now available to
enable products to be built for networked entertainment centric usages. However, standards and
technologies need to be clarified and options limited to ensure interoperability. The five parts of the
DLNA Home Networked Device interoperability guidelines fulfill that role.
2 Normative references
The following documents, in whole or in part, are normatively referenced in this document and are
indispensable for its application. For dated references, only the edition cited applies. For undated
references, the latest edition of the referenced document (including any amendments) applies.
IEC 60169-24, Radio-frequency connectors – Part 24: Radio-frequency coaxial connectors with
screw coupling, typically for use in 75 ohm cable distribution systems (Type F)
IEC 62481-2, Digital living network alliance (DLNA) guidelines – Part 2: Media Format Profiles
IEC 62481-3, Digital living network alliance (DLNA) guidelines – Part 3: Link protection
IEC 62481-6-1, Digital living network alliance (DLNA) guidelines – Part 6-1: Remote User
Interface – HTML5
IEC 62481-6-2, Digital living network alliance (DLNA) guidelines – Part 6-2: RVU
IEC 62481-8, Digital living network alliance (DLNA) guidelines – Part 8: Diagnostics
IEC 62481-10, Digital living network alliance (DLNA) guidelines – Part 10: Low Power ModeI
ISO/IEC 13818-1, Information technology – Generic coding of moving pictures and associated
audio information: Systems
ISO/IEC 13818-9, Information technology – Generic coding of moving pictures and associated
audio information – Part 9: Extension for real time interface for systems decoders, International
Standards Organization.
ISO/IEC 29341-1, Information technology – UPnP Device Architecture – Part 1-1: UPnP Device
Architecture
ISO/IEC 29341-1-2, Information technology — UPnP Device Architecture — Part 1-2: UPnP
Device Architecture Version 2.0
ISO/IEC 29341-3-2, Information technology – UPnP Device Architecture – Part 3-2: Audio Video
Device Control Protocol – Media Renderer Device 1
ISO/IEC 29341-20-3, Information technology – UPnP Device Architecture – Part 20-3: Audio
Video Device Control Protocol – Level 4 – Media Server Device 2
ISO/IEC 29341-14-10, Information technology – UPnP Device Architecture – Part 14-10: Audio
Video Device Control Protocol – Level 3 – Audio Video Transport Service 2
ISO/IEC 29341-14-11, Information technology – UPnP Device Architecture – Part 14-11: Audio
Video Device Control Protocol – Level 3 – Connection Manager Service 2
ISO/IEC 29341-20-12, Information technology – UPnP Device Architecture – Part 20-12: Audio
Video Device Control Protocol – Level 4 – Content Directory Service 2
ISO/IEC 29341-3-13, Information technology – UPnP Device Architecture – Part 3-13: Audio
Video Device Control Protocol – Rendering Control Service 1
ISO/IEC 29341-4-2, Information technology – UPnP Device Architecture – Part 4-2: Audio Video
Device Control Protocol – Level 2 – Media Renderer Device 3
ISO/IEC 29341-4-3, Information technology – UPnP Device Architecture – Part 4-3: Audio Video
Device Control Protocol – Level 2 – Media Server Device 4
ISO/IEC 29341-4-4, Information technology – UPnP Device Architecture – Part 4-4: Audio Video
Device Control Protocol – Level 2 – Audio Video Data Structures 3
ISO/IEC 29341-4-10, Information technology – UPnP Device Architecture – Part 4-10: Audio
Video Device Control Protocol – Level 2 – Audio Video Transport Service 3
ISO/IEC 29341-4-11, Information technology – UPnP Device Architecture – Part 4-11: Audio
Video Device Control Protocol – Level 2 – Connection Manager Service 3
ISO/IEC 29341-4-12, Information technology – UPnP Device Architecture – Part 4-12: Audio
Video Device Control Protocol – Level 2 – Content Directory Service 4
ISO/IEC 29341-4-13, Information technology – UPnP Device Architecture – Part 4-13: Audio
Video Device Control Protocol – Level 2 – Rendering Control Service 3
ISO/IEC 29341-4-14, Information technology – UPnP Device Architecture – Part 4-14: Audio
Video Device Control Protocol – Level 2 – Scheduled Recording Service 3
ISO/IEC 29341-14-3, Information technology – UPnP Device Architecture – Part 14-3: Audio
Video Device Control Protocol – Level 3 – Media Server Device 5
ISO/IEC 29341-14-12, Information technology – UPnP Device Architecture – Part 14-12: Audio
Video Device Control Protocol – Level 3 – Content Directory Service 5
___________
ISO 3166, Codes for the representation of names of countries and their subdivisions
ISO 8601, Data elements and interchange formats – Information interchange – Representation of
dates and times, International Standards Organization.
ETSI TS 102 822-3, Broadcast and On-line Services: Search, select, and rightful use of content
on personal storage systems ("TV-Anytime"), Part 3: Metadata
ETSI TS 102 822-4, Broadcast and On-line Services: Search, select, and rightful use of content
on personal storage systems ("TV-Anytime"); Part 4: Content referencing
ETSI EN 300 468, Specification for Service Information (SI) in DVB systems, Digital Video
Broadcasting (DVB)
IEEE 802.1D, Annex G, IEEE Standard for Information technology – Telecommunications and
information exchange between systems – IEEE standard for local and metropolitan area networks –
Common specifications – Media access control (MAC) Bridges.
http://standards.ieee.org/getieee802/index.html
IEEE 802.1Q, IEEE Standard for Information Technology – Telecommunications and information
exchange between systems – IEEE standard for local and metropolitan area networks – Media
Access Control (MAC) Bridges and Virtual Bridged Local Area Networks--Corrigendum 2: Technical
and editorial corrections.
http://standards.ieee.org/getieee802/index.html
IEEE 802.3, IEEE Standard for Ethernet – Telecommunications and information exchange
between systems – Local and metropolitan area networks – Specific requirements – Part 3: Carrier
sense multiple access with collision detection (CSMA/CD) access method and physical layer
specification.
http://standards.ieee.org/getieee802/index.html
IEEE 802.11, System Interoperability Wi-Fi CERTIFIED™ Test Plan Version 2,0,36, Wi-Fi
CERTIFIED™ ac Interoperability Test Plan v1.0.5 Wi-Fi Alliance
http://www.wi-fi.org/testing_information.php
IEEE 1901, Standard for Broadband Over Power Line Networks: Medium Access Control and
Physical Layer Specifications
http://www.IEEE.org
IETF RFC 826, An Ethernet Address Resolution Protocol – or – Converting Network Protocol
Addresses to 48.bit Ethernet Addresses for Transmission on Ethernet Hardware, David C. Plummer.
http://www.ietf.org/rfc/rfc0826.txt
IETF RFC 1122, Requirements for Internet Hosts – Communications Layers, R. Braden.
http://www.ietf.org/rfc/rfc1122.txt
IETF RFC 1123, Requirements for Internet Hosts – applications and support.
http://www.ietf.org/rfc/rfc1123.txt
IETF RFC 1191, Path MTU Discovery, J. Mogul, DECWRL, S. Deering, Stanford University.
http://www.ietf.org/rfc/rfc1191.txt
IETF RFC 1305, Network Time Protocol (Version 3), Specification, Implementation and Analysis,
David L. Mills, University of Delaware.
http://www.ietf.org/rfc/rfc1305.txt
IETF RFC 1738, Uniform Resource Locators (URL), T. Berners-Lee, CERN, L. Masinter, Xerox
Corporation, M. McCahill, University of Minnesota.
http://www.ietf.org/rfc/rfc1738.txt
IETF RFC 1945, Hypertext Transfer Protocol – HTTP/1.0, T. Berners-Lee, MIT/LCS, R. Fielding,
UC Irvine, H. Frystyk.
http://www.ietf.org/rfc/rfc1945.txt
IETF RFC 2045, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet
Message Bodies, N Freed, N. Borenstein, November 1996
http://www.ietf.org/rfc/rfc2045.txt
IETF RFC 2119, Key words for use in RFCs to Indicate Requirement Levels, S. Bradner.
http://www.ietf.org/rfc/rfc2119.txt
IETF RFC 2145, Use and Interpretation of HTTP Version Numbers, J. C. Mogul, DEC, R. Fielding,
UC Irvine, J. Gettys, DEC, H. Frystyk, MIT/LCS.
http://www.ietf.org/rfc/rfc2145.txt
IETF RFC 2234, Augmented BNF for Syntax Specifications: ABNF, Ed D. Crocker, Internet Mail
Consortium, P. Overell, Demon Internet Ltd.
http://www.ietf.org/rfc/rfc2234.txt
IETF RFC 2250, RTP Payload Format for MPEG1/MPEG2 Video, D. Hoffman, G. Fernando, Sun
Microsystems, Inc., V. Goyal, Precept Software, Inc. M. Civanlar, AT&T Labs – Research.
http://www.ietf.org/rfc/rfc2250.txt
IETF RFC 2279, UTF-8, a transformation format of ISO 10646, F. Yergeau, Alis Technologies.
http://www.ietf.org/rfc/rfc2279.txt
IETF RFC 2326, Real Time Streaming Protocol (RTSP), H. Schulzrinne, Columbia U., A. Rao,
Netscape, R. Lanphier, RealNetworks.
http://www.ietf.org/rfc/rfc2326.txt
DLNA guidelines; Part 1-1: Architecture and protocols
–7–
IETF RFC 2327, SDP: Session Description Protocol, M. Handley, V. Jacobson, ISI/LBNL.
http://www.ietf.org/rfc/rfc0791.txt
IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, MIT/LCS, R.
Fielding, U.C. Irvine, L. Masinter, Xerox Corporation.
http://www.ietf.org/rfc/rfc2396.txt
IETF RFC 2429, RTP Payload Format for the 1988 Version of ITU-T Rec. H.263 Video (H.263+).
http://www.ietf.org/rfc/rfc2429.txt
IETF RFC 2474, Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6
Headers, K. Nichols, Cisco Systems, S. Blake, Torrent Networking Technologies, F. Baker, Cisco
Systems, D.Black, EMC Corporation.
http://www.ietf.org/rfc/rfc2474.txt
IETF RFC 2616, Hypertext Transfer Protocol – HTTP/1.1, R. Fielding, UC Irvine, J. Gettys,
Compaq/W3C, J. Mogul, Compaq, H. Frystyk, W3C/MIT, L. Masinter, Xerox, P. Leach, Microsoft, T.
Berners-Lee.
http://www.ietf.org/rfc/rfc2616.txt
IETF RFC 2766, Network Address Translation – Protocol Translation (NAT-PT), G. Tsirtsis, P.
Srisuresh.
http://www.ietf.org/rfc/rfc2766.txt
IETF RFC 2929, Domain Name System (DNS) IANA Considerations, D. Eastlake, E.
Brunner-Williams, B. Manning.
http://www.ietf.org/rfc/rfc2929.txt
IETF RFC 3261, SIP: Session Initiation Protocol, J. Rosenberg, dynamicsoft, H. Schulzrinne,
Columbia U., G. Camarillo, Ericsson, A. Johnston, Worldcom, J. Peterson, Neustar, R. Sparks,
dynamicsoft, M. Handley, ICIR, E. Schooler, AT&T.
http://www.ietf.org/rfc/rfc3261.txt
IETF RFC 3267, Real-Time Transport Protocol (RTP) Payload Format and File Storage Format for
the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs, J.
Sjoberg, M. Westerlund, Ericsson, A. Lakaniemi, Nokia, Q. Xie, Motorola.
http://www.ietf.org/rfc/rfc3267.txt
IETF RFC 3550, RTP: A Transport Protocol for Real-Time Applications, H. Schulzrinne, Columbia
University, S. Casner, Packet Design, R. Frederick, Blue Coat Systems Inc., V. Jacobson, Packet
Design.
http://www.ietf.org/rfc/rfc3550.txt
IETF RFC 3551, RTP Profile for Audio and Video Conferences with Minimal Control, H.
Schulzrinne, Columbia University, S. Casner, Packet Design.
http://www.ietf.org/rfc/rfc3551.txt
IETF RFC 3555, MIME Type Registration of RTP Payload Formats, S. Casner, Packet Design, P.
Hoschka, W3C/INRIA/MIT.
http://www.ietf.org/rfc/rfc3555.txt
IETF RFC 3556, Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control
Protocol (RTCP) Bandwidth, S. Casner, Packet Design.
http://www.ietf.org/rfc/rfc3556.txt
IETF RFC 3640, RTP Payload Format for Transport of MPEG-4 Elementary Streams, J. van der
Meer, Philips Electronics, D. Mackie, Apple Computer, V. Swaminathan, Sun Microsystems Inc., D.
Singer, Apple Computer, P. Gentric, Philips Electronics.
http://www.ietf.org/rfc/rfc3640.txt
IETF RFC 3927, Dynamic Configuration of IPv4 Link-Local addresses, Stuart Cheshire, Apple
Computer, B. Aboba, Microsoft Corporation, E.Guttman, Sun Microsystems.
http://www.ietf.org/rfc/rfc3927.txt
IETF RFC 3984, RTP Payload Format for H.264 Video, S. Wenger, M. M. Hannuksela, T.
Stockhammer, M. Westerlund, D. Singer.
http://www.ietf.org/rfc/rfc3984.txt
IETF RFC 4184, RTP Payload Format for AC-3 Audio, B. Link T. Hager, Dolby Laboratories, J.
Flanks, Microsoft.
http://www.ietf.org/rfc/rfc4184.txt
IETF RFC 4343, Domain Name System (DNS) Case Insensitivity Clarification.
http://www.ietf.org/rfc/rfc4343.txt
IETF RFC 4352, RTP Payload Format for the Extended Adaptive Multi-Rate Wideband (AMR-WB+)
Audio Codec, Johan Sjoberg, Magnus Westerlund, Ericsson, Ari Lakaniemi, Stephan Wenger,
Nokia.
http://www.ietf.org/rfc/rfc4352.txt
IETF RFC 4585, Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-based
Feedback (RTP/AVPF), Joerg Ott, Uni Bremen TZI, Stephan Wenger, TU Berlin, Noriyuki Sato, Oki,
Carsten Burmeister, Matsushita, Joe Rey, Matsushita.
http://www.ietf.org/rfc/rfc4585.txt
IETF RFC 4588, RTP Retransmission Payload Format, J. Rey, Panasonic, D. Leon, Nokia, A.
Miyazaki, Panasonic, V. Varsa, Nokia, R. Hakenberg, Panasonic.
http://www.ietf.org/rfc/rfc4588.txt
IETF RFC 5452, Measures for Making DNS More Resilient against Forged Answers.
http://www.ietf.org/rfc/rfc5452.txt
IETF RFC 5966, DNS Transport over TCP – Implementation Requirements, Internet Engineering
Task Force (IETF).
http://www.ietf.org/rfc/rfc5966.txt
ANSI/CEA-766-C, U.S. and Canadian Rating Region Tables (RRT) and Content Advisory
Descriptors for Transport of Content Advisory Information Using ATSC Program and System
Information Protocol (PSIP).
ANSI/ICEA S-90-661, Category 3, 5, & 5e Individually Unshielded Twisted Pair Indoor Cable for
Use In General Purpose and LAN Communication Wiring Systems, Insulated Cable Engineers
Association.
http://www.icea.net/
ANSI/SCTE 128, AVC Video Systems and Transport Constraints for Cable Television
http://www.scte.org/documents/pdf/Standards/ANSI_SCTE%20128%202010-a.pdf
AHRA, U.S. Audio Home Recording Act of 1992, United States Public Law 102-563, Subchapter D,
Section 1008.
http://thomas.loc.gov/cgi-bin/query/z?c102:S.1623.ENR:
ATSC Standard A/52B, Digital Audio Compression (AC-3) Rev B, Advanced Television Systems
Committee.
http://www.atsc.org/standards/a_52b.pdf
RTP Payload format, RTP Payload Format for Windows Media Audio (WMA) and Video (WMV),
Microsoft Corporation.
http://download.microsoft.com/download/5/5/a/55a7b886-b742-4613-8ea8-d8b8b5c27bbc/RTPPa
yloadFormat_for_WMAandWMV_v1.doc
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 10 –
Universal Unique Identifier, DCE 1.1 Appendix for Universal Unique Identifiers, The Open Group.
http://www.opengroup.org/onlinepubs/9629399/apdxa.htm
Wi-Fi IEEE 802.11, with WPA2™, WPA™, and WEP System Interoperability Test Plan with ASD
Test Engine for IEEE 802.11a, b, and g Devices, Wi-Fi Alliance.
http://www.wi-fi.org/testing_information.php
WMM Test Plan, Wi-Fi WMM System Interoperability Test Plan, Wi-Fi Alliance.
http://www.wi-fi.org/testing_information.php
W3C XML, Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation.
http://www.w3.org/TR/REC-xml
W3C XQuery, XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)
http://www.w3.org/TR/2010/REC-xpath-functions-20101214/
3GPP TS 23.107, 3rd Generation Partnership Project; Technical Specification Group Services
and System Aspects; Quality of Service (QoS) concept and architecture.
http://www.3gpp.org/ftp/Specs/archive/23_series/23.107/23107-620.zip
3GPP TS 26.244, 3rd Generation Partnership Project; Technical Specification Group Services
and System Aspects;Transparent end to end packet switched streaming service (PSS); 3GPP file
format (3GP).
http://www.3gpp.org/ftp/Specs/archive/26_series/26.244/26244-640.zip
3.1.1
Background Transfer
media transfer mode where the target content binary is transferred at any rate up to the maximum
achievable rate for the communication channel and the two communicating parties
Note 1 to entry: This mode is typically used for example when downloading or uploading content.
3.1.2
Basic Tuner
minimal DLNA tuner implementation based on ISO/IEC 29341-20-12.
3.1.3
Bearer
physical and link-level network transport, such as IEEE 802.11
3.1.4
Byte-based Seek Operations
identify the rendering endpoint request and the content source response that allows the former to
obtain a segment of the content for playback, where such a segment is specified in units of bytes
3.1.5
Cacheable Content
content binaries whose binary representations remain static over time and are considered
cacheable content
Note 1 to entry: By default HTTP allows intermediate HTTP caches to store such items and respond to similar HTTP
requests as a means to accelerate the interaction with the user.
Note 2 to entry: In these interoperability guidelines cacheable content includes (but it is not limited to)
• Image, Audio, AV content that exists as stored files,
• content resulting from transcoding or encoding operations when the output binaries can be preserved over time.
3.1.6
Channel
one or more media streams that, together, constitute a unique entity for the purpose of
announcement, selection, and rendering
Note 1 to entry: For example, for digital television sources, a Channel is equivalent to an ATSC "virtual channel", a DVB
"service", or an MPEG-2 "Program". For digital radio sources, a Channel is equivalent to a single "station".
3.1.7
Channel Lineup Container
available tuner channels exposed in a CDS container for an Extended Tuner
Note 1 to entry: The content may or may not be streamed over the network.
3.1.8
Channelized Content
content that is available via a particular distribution channel such as a tuner and that is available on
that channel according to a schedule
3.1.9
Content
aggregation of one or more works
3.1.10
Comply
to be in accordance with referenced requirements. Where the reference includes both mandatory
and optional requirements, only the mandatory elements are considered necessary for compliance.
Optional requirements continue to be optional. Any variation from these expectations must be
specifically noted. "Comply with" can be used interchangeably with "conform to" (includes variations
of complies, complying, compliant, compliance).
3.1.11
Conform
see "Comply" (includes variations of conforms, conforming, conformant, conformance)
3.1.12
Content Binary
binary representation of content for the purpose of storage or transfer over communication links
3.1.13
Content Transformation
transcoding, transrating, or scaling of a content binary
3.1.14
Content Source
endpoint that places content onto the network for transfer to another endpoint
3.1.15
Content Receiver
endpoint that consumes content received via a network transfer from another endpoint
3.1.16
Controller-byte Seek Operations
identifies the Control Point request and the UPnP AV MediaRenderer response that allows the
former to specify a segment of the content to be rendered by the latter, where such a segment is
specified in units of bytes
3.1.17
Controller-time Seek Operations
identifies the Control Point request and the UPnP AV MediaRenderer response that allows the
former to specify a segment of the content to be rendered by the latter, where such a segment is
specified in units of time
3.1.18
Converted Content
content that is either transcoded, transcripted, remuxed, or transformed in any other way
3.1.19
Decoder Friendly Point
point in the stream where the decoder can begin to process data without any other internal state
information about the stream
Note 1 to entry: The decoder can begin processing at that point and create a valid output rendering.
3.1.20
Device Capability
set of Device Functions (at least 1) aggregated to support a system usage
Note 1 to entry: A Device Capability cannot stand alone, and shall be deployed in conjunction with an implementation of
a valid DLNA Device Class. Since a Device Capability does not stand alone, it is not required to have components in all
layers of the DLNA architecture. A Device Capability can have a one to one correspondence to a Device Function. A
Device Capability is a certifiable entity only when it is implemented as an addition to at least one Device Class.
3.1.21
Device Category
group of Device Classes with the same environmental characteristics and sharing common system
usages that are enabling home networking use case scenarios.
Note 1 to entry: Examples of device categories used within this standard (IEC 62481-1-1) are HND (Home Network
Device), and MHD (Mobile Handheld Device).
Note 2 to entry: While Device Classes are grouped within a Device Category, a single physical device can support Device
Classes that fall into multiple Device Categories.
3.1.22
Device Class
set of Device Functions
Note 1 to entry: A Device Class specifies the features supported on a device regardless of its physical attributes.
Note 2 to entry: Examples used within this standard (IEC 62481-1-1) are DMS (Digital Media Server) and DMP (Digital
Media Player).
Note 3 to entry: A single device can support multiple Device Classes. A DLNA device shall support at least one Device
Class and can support one or more Device Capabilities.
Note 4 to entry: A Device Class is the certifiable entity in DLNA.
3.1.23
Device Function
non-decomposable operational property
EXAMPLE IP Connectivity
Note 1 to entry: Device Functions should be supported by existing standards.
3.1.24
Device Option
optional extensibility to existing DLNA architecture
Note 1 to entry: A Device Option can add optional extensibility to an existing Device Function or add new optional Device
Function to the DLNA architecture
3.1.25
Device Type
device defined by its realization and its usage models
EXAMPLES DVD players, TVs, DVRs, Mobile Phones, Cameras, Picture Frames, etc.
Note 1 to entry: Device Types are primarily used for marketing descriptions, and they should not be used in guideline
definitions.
3.1.26
DLNA Recognized Metatadata Format
valid content metadata that is recognized and accepted by DNLA
Note 1 to entry: DLNA recognizes three formats of content metadata (OpenEPG, TV-Anytime, and DVB-SI).
Note 2 to entry: Mappings for elements of each of these formats are provided for certain native DLNA EPG data items.
3.1.27
DLNA Recognized Rating Authorities
authorities referenced and recogized by DNLA
Note 1 to entry: DLNA recognizes certain rating authorities and their associated rating codes.
Note 2 to entry: These Rating Athorities and their codes are listed in Annex J.
3.1.28
DLNAQOS
DLNA defined QoS model used in this standard (IEC 62481-1-1)
3.1.29
EPG Item
CDS item that describes a piece of content that usually does not reside on the local server
Note 1 to entry: It refers to a broadcast item that is available through a tuner, or it can be content accessible via a URL.
Note 2 to entry: In general there is a time associated with an EPG item that describes the broadcast time and duration of
the content or the time period in which it is available for on demand retrieval via an URL. Items described by an EPG item
can be recorded with the SRS service and can then actually reside on a local server.
3.1.30
Exposed
content that is listed by a UPnP AV ContentDirectory Service (CDS)
Note 1 to entry: Content does not necessarily exist at the time that it is exposed (for example, needs transcoding or
conversion).
3.1.31
Extended Tuner
DLNA tuner implementation based upon the TUNER Feature defined in ISO/IEC 29341-4-12 and
higher specifications
3.1.32
Full TS
piece-wise constant rate MPEG-2 Transport Stream that is fully compliant with ISO/IEC 13818-1,
2.4.2.2
Note 1 to entry: A Full TS is characterized by a consistent temporal relationship (or "even spacing") between any two
adjacent TS Packets.
3.1.33
HD Capable Device
a DLNA Device Class that is certified for a DLNA AV Media Format Profile that has an HD video
component
Note 1 to entry: For example an AV Media Format Profile with a resolution greater than or equal to 1280x720p.
3.1.34
Ideal Network Conditions
network state used only for testing and validation of guideline compliance
Note 1 to entry: The effective network capacity shall be substantially greater than the aggregate bandwidth of the content
under test, and there are no additional devices competing for available network resources at the time of test.
3.1.35
Instance State Variable
state variable defined by AVTransport and RenderingControl services
Note 1 to entry: Instance State Variables are state variables associated with a virtual instance of a service. Both services
use an evented state variable by the name of LastChange, to report a value change of an instance state variable.
3.1.36
Interactive Transfer
media transfer mode where the target content binary is transferred at the maximum achievable rate
for the communication channel and the two communicating parties
Note 1 to entry: This mode is typically used when sending images for immediate display.
3.1.37
Link-level Bearer
restricts the bearer concept to include only the physical layer and link-layers as described for the
ISO's OSI model
3.1.38
Link Protection
protection of a content stream between two devices on a DLNA network from illegitimate
observation or interception
3.1.39
Media Class
type of media a Device Type or Device Class supports
Note 1 to entry: The Media Classes used in this standard are Image, Audio only, and Video with Audio (AV).
3.1.40
Media Collection File
content binary whose purpose is to reference other content binaries usually for sequenced playback
Note 1 to entry: Media collection files are often used for audio or AV playlists or image slideshows.
3.1.41
Media Format
format type for content of a Media Class that is exposed by a UPnP AV MediaServer contained in a
device that acts as a DMS
Note 1 to entry: Examples for the Media Classes are: Image – JPEG; Audio – LPCM; AV – MPEG-2.
3.1.42
Media Stream
single elementary stream or MPEG-2 TS or MPEG-2 PS multiplex
Note 1 to entry: This definition applies to Media Stream as used for the RTP Media Transport.
3.1.43
Media Transfer Mode
type of transfer used to deliver content from a Content Source to a Content Receiver
Note 1 to entry: There are three types of DLNA media transfer modes: Streaming Transfer, Interactive Transfer, and
Background Transfer.
3.1.44
Native Device
device that creates a virtual server and adds functionality to an existing server in the network
Note 1 to entry: The existing server in the network is known as the Native Server.
Note 2 to entry: Either a Native Server or Native Renderer is known as a Native Device. These Native Devices are in
contrast to a Virtual Server or Renderer (see 3.1.76 and 3.1.77).
3.1.45
Native Device
device that creates a virtual renderer and adds functionality to an existing renderer in the network
Note 1 to entry: The existing renderer in the network is known as the Native Renderer.
Note 2 to entry: Either a Native Server or Native Renderer is known as a Native Device. These Native Devices are in
contrast to a Virtual Server or Renderer (see 3.1.76 and 3.1.77).
3.1.46
Network De-Jitter Buffer
Buffer space that is used to store data for de-jittering and de-interleaving, including RTP header and
payload
Note 1 to entry: This definition applies to Network De-Jitter Buffer as used for the RTP Media Transport.
3.1.47
Non-Cacheable Content
content binaries whose binary representations are valid only for one particular transaction at a
particular instant of time
Note 1 to entry: Intermediate HTTP caches need directives to prevent the default caching of such content. In the IEC
62481 series of standards the non-cacheable content includes (but it is not limited to):
• live TV streams;
• content resulting from transcoding or encoding operations when the output binaries have been optimized for a
particular transaction (e.g. encoding to match the channel conditions for a given transaction).
3.1.48
Non-Streamable Channel Object
non-streamable CDS objects (i.e. no <res> property value) which represent a single channel of a
broadcast source that presents content in a “channelized” format
Note 1 to entry: Since these CDS items are not streamable, a <res> property value is not needed. But having a <res>
property without a URI value can be useful by UPnP AV MediaServer control points in determining the Media Format
Profile for the Non-Streamable Channel Object by examining the res@protocolInfo property’s DLNA.ORG_PN value in the
fourth field.
3.1.49
Open-end Recording
recording which the scheduled duration is not specified for
Note 1 to entry: The duration of an open-end recording is determined by the UPnP AV MediaServer.
3.1.50
Partial SPTS
partial MPEG-2 Transport Stream which is also a Single Program Transport Stream (SPTS)
3.1.51
Post-decoder Buffer
buffer space used to store decompressed data before rendering.
Note 1 to entry: This definition applies to Post-decoder Buffer as used for the RTP Media Transport.
3.1.52
Power Save Operation
Support for intermediate power consumption states between zero (power OFF) to nominal power
consumption during active use of a device.
3.1.53
Pre-decoder Buffer
hypothetical reference decoder buffer that is used to contain a media (audio/video) stream after it
has arrived from the network and before it is decoded into a renderable frame
Note 1 to entry: This definition applies to Pre-decoder Buffer as used for the RTP Media Transport.
3.1.54
Primary ProtocolInfo Set
first, second, and third fields of protocolInfo plus the additional DLNA.ORG_PN value which
appears in the fourth field
Note 1 to entry: In other words, the primary set defines a transport method (first value), a mime type (third value), and a
DLNA Media Format Profile.
3.1.55
Receiver Buffer
total buffer space used to store data received from the server before the decoding
Note 1 to entry: This definition applies to Receiver Buffer as used for the RTP Media Transport.
3.1.56
Receiving Endpoint
defined specifically through guideline 11.4.4.5, which requires an RTP client and an RTSP client
3.1.57
Rendering Endpoint
Content Receiver devices with the capability of rendering the content they receive
Note 1 to entry: These devices could play the content at the time of the transfer, right after the transfer has finished, or
at a later time after the transfer has finished.
Note 2 to entry: For the purposes of this standard, devices in the following Device Classes constitute the only known
Rendering Endpoints: DMP, DMR, M-DMP.
3.1.58
Remote UI
user interface provided by an application on a server device, that can be rendered by one or more
client devices
3.1.59
RTP Media Transport
mechanism for real-time media streams between DLNA device classes and capabilities
DLNA guidelines; Part 1-1: Architecture and protocols
– 17 –
Note 1 to entry: This transport mechanism uses RTP, RTCP, RTSP, SDP protocols, and RTP payload formats with their
associated media profiles.
3.1.60
RTP Session
one or more RTP Streams that are transmitted to the same destination IP address and UDP port
Note 1 to entry: Typically, there is a one-to-one mapping between RTP Streams and RTP Sessions, but it is possible for
multiple RTP Streams to use the same RTP Session (port multiplexing). Note that associated RTCP traffic is also part of
that RTP Session although the packets are sent to the next higher UDP port number.
3.1.61
RTP Stream
Media Stream that is encapsulated in RTP
Note 1 to entry: All of the RTP packets have the same SSRC and are transmitted on the same RTP Session.
3.1.62
RTSP Session
complete RTSP "transaction", for example the viewing of a movie
Note 1 to entry: A session typically consists of a client creating one or more RTP Sessions (SETUP), starting the stream
with PLAY or RECORD, and closing the RTSP Session with TEARDOWN. RTSP Sessions are identified using the RTSP
"Session" header.
3.1.63
Scaling
changing the visual extent of an image or video portion of an AV media stream
3.1.64
Serving Endpoint
defined specifically through guideline 11.4.4.4, which includes the RTP server and RTSP server
3.1.65
Streamable Channel Object
Non-Streamable Channel Object with one or more <res> properties containing valid URI values for
an Extended Turner
Note 1 to entry: This enables content for a tuner channel to be streamed over the network.
3.1.66
Streaming Transfer
for Audio and AV streams the packets are transferred minimally at a rate sufficient for real-time
rendering
Note 1 to entry: This definition does not imply that the receiving endpoint will always render content exchanged using
Streaming Transfer (e.g., it might store the content).
3.1.67
System Usage
device interaction model between Device Classes and/or Device Capabilities
Note 1 to entry: System Usages are derived when enabling home networking use case scenarios.
3.1.68
Test Conditions
implies that all of the following conditions are satisfied:
3.1.71
Transcoding
changing of the coding system used for a content binary
3.1.72
Transrating
changing the rate or compression parameters used within the coding system for a content binary
3.1.73
UHD Capable Device
a DLNA Device Class that is certified for a DLNA AV Media Format Profile that has an UHD video
component
Note 1 to entry: For example an AV Media Format Profile with a resolution greater than 1920x1080p.
3.1.74
UPnP
architecture for pervasive peer-to-peer network connectivity of devices of all form factors
Note 1 to entry: It is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged
networks whether in the home, in a small business, public spaces, or attached to the Internet. It is a distributed, open
networking architecture that leverages TCP/IP and Web technologies to enable seamless proximity networking in addition
to control and data transfer among networked devices in the home, office, and public spaces.
3.1.75
Virtual Instance
mechanism by which a UPnP device can have multiple instances of the same UPnP service
Note 1 to entry: Control points that interact with the AVTransport and RenderingControl services shall interact with a
virtual instance of the service. Each virtual instance is identified by a non-negative InstanceID value.
3.1.76
Virtual Renderer
DMR that accepts content and sends it to another DMR within the network for rendering
Note 1 to entry: A Virtual Renderer accepts a wider range of content types, formats, rates, or sizes than the Native
Device.
3.1.77
Virtual Server
DMS or M-DMS which exposes content existing on another DMS or M-DMS, possibly containing
additional media types, through content transformation
3.1.78
Virtual Tuner Container
CDS container for an Extended Tuner that contains only CDS items (Virtual Tuner Objects) that
allow channels to be streamed using a single connection (i.e. switch the content stream from one
channel to another over the same URI connection)
3.1.79
Virtual Tuner Object
CDS item in an Extended Tuner that allow channels to be streamed using a single connection (i.e.
switch the content stream from one channel to another over the same URI connection)
3.1.80
VLAN Tag
field on a layer-2 packet header defined by IEEE 802.1Q
3.2.1
∆T PCR
as used for the RTP Media Transport, this value is the difference in time, measured in 90 kHz clock
units, between successive PCR values in the TS stream. It is represented mathematically as:
3.2.2
3DFC
3D Frame Compatible
3.2.3
ADU
Application Data Unit
as used for the RTP Media Transport: The definition of an ADU is different for each media stream.
For audio media streams, an ADU is typically an audio frame. For video media streams, an ADU is
typically a "slice" (e.g. an NAL unit) or in some cases a complete video picture. Also, as a special
case when MPEG-2 TS encapsulation is used, each TS packet is an ADU.
3.2.4
ACK
Acknowledge
typically used to describe an action following a network packet being successfully received
3.2.5
AFD
Active Format Descriptor
3.2.6
AP
Access Point
a specially configured Network Infrastructure Device on a wireless local area network (WLAN).
Access point acts as a central transmitter and receiver of WLAN radio signals. APs used in home
networks are generally small, dedicated hardware devices featuring a built-in network adapter,
antenna, and radio transmitter. These APs support Wi-Fi wireless communication standards.
3.2.7
ARP
Address Resolution Protocol
protocol in the TCP/IP family that resolves an IPv4 address to a hardware address, such as an
Ethernet address
3.2.8
ATSC
Advanced Television Systems Committee
3.2.9
AV
Audio with Video
3.2.10
AVP
Audio/Visual Profile
3.2.11
AVPF
Extended Audio/Visual Profile for RTCP-based Feedback
3.2.12
AVT
AVTransport Service
UPnP service that provides network-based control for common transport operations such as Play,
Stop, Pause, Next, Previous, and Seek. The AVTransport Service specification is a standard UPnP
DCP.
3.2.13
BK
Background User Priority
3.2.14
BE
Best-Effort User Priority
3.2.15
CDB
Coded Data Buffer
as used for the RTP Media Transport. Buffer space that is used to store compressed data before
decoding.
3.2.16
CDS
ContentDirectory Service
UPnP service that provides network-based discovery of content. The ContentDirectory Service
specification is a standard UPnP DCP.
3.2.17
CE
Consumer Electronics
class of devices used in the home, such as DVD, DVR, PVR, PDA, TV, set top box, cellular phones,
etc.
3.2.18
CMS
ConnectionManager Service
UPnP service that provides information about the supported transport protocols and media formats
of a UPnP device. The ConnectionManager Service specification is a standard UPnP DCP.
3.2.19
CNAME
Canonical Name
3.2.20
CP
UPnP Control Point
3.2.21
CSRC
Contributing Source
3.2.22
CSS
Cascading Style Sheets
3.2.23
DA
Device Architecture 1.0
3.2.24
DCP
Device Control Protocol
specification that is standardized by the UPnP Forum. Related specifications produced by a UPnP
working committee are often identified by the working committee name. For example, UPnP AV 1
DCP.
3.2.25
DDC
Device Discovery and Control
subclause heading in the interoperability guidelines that defines the underlying interoperability
architecture for the discovery and control devices
3.2.26
DHCPv4
Dynamic Host Configuration Protocol for IPv4
protocol to automatically provide IPv4 addresses and other network configuration information to
network nodes
3.2.27
DIDL
Digital Item Declaration Language
3.2.28
DIDL-Lite
Digital Item Declaration Language - Lite
XML schema used by the UPnP Forum for representing the metadata of digital content. The XML
schema uses a subset of the DIDL schema with additional metadata properties defined by the UPnP
Forum.
3.2.29
DLNA
Digital Living Network Alliance
3.2.30
DLNAQOS_UP
DLNA QoS User Priority
DLNA-defined QoS label used to correlate an underlying IEEE 802.1Q User Priority and WMM
Access Category, HomePlug AV Channel Access Priority, or HD-PLC Priority to a DLNA Traffic
Type(s)
3.2.31
DMC
Digital Media Controller
DLNA Device Class having home network environmental characteristics, with the role of finding
content exposed by a DMS or M-DMS and matching it to the rendering capacities of a DMR and
setting up the connections between the DMS and the DMR
3.2.32
DMP
Digital Media Player
DLNA Device Class having home network environmental characteristics, with the role of finding
content exposed by a DMS or M-DMS and rendering the content locally
3.2.33
DMR
Digital Media Renderer
DLNA Device Class having home network environmental characteristics, with the role of rendering
content it receives after being setup by another network entity
3.2.34
DMS
Digital Media Server
DLNA Device Class having home network environmental characteristics, with the role of exposing
and distributing content throughout the home
3.2.35
DNS
Domain Name System
protocol that enables hierarchical names for Internet domains and addresses. The protocol includes
the means to translate between numerical IP addresses and text host names.
3.2.36
DSCP
Differentiated Services (DiffServ) Code Point
QoS field, defined by the DiffServ discipline IETF RFC 2326, found in the layer 3 header of IP
packets
3.2.37
DVB
Digital Video Broadcasting
3.2.38
DVD
Digital Versatile Disc
3.2.39
DVR
Digital Video Recorder
3.2.40
ES
Elementary Stream
general term for a coded video, coded audio or other coded bitstream
3.2.41
GOP
Group Of Pictures
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 24 –
represents a group of successive pictures within a coded video stream and the associated structure
(GOP structure) that specifies the order in which intra- and inter-frames are arranged in MPEG
3.2.42
HD
High Definition
3.2.43
HDTV
High Definition Television
higher quality display, with a vertical resolution display from 720p to 1080i and higher and an aspect
ratio (the width to height ratio of the screen) of 16:9, for a viewing experience similar to watching a
movie.
3.2.44
HND
Home Network Device
Device Category that groups together all the applicable DLNA Device Classes with home network
environmental characteristics (requirements). Device Classes in this Device Category are: DMS,
DMP, DMR and DMC.
3.2.45
HTTP
Hyper Text Transfer Protocol
protocol for transferring files across the Internet. Requires an HTTP client program on one end, and
an HTTP server program on the other end
3.2.46
ICMP
Internet Control Message Protocol
protocol in the TCP/IP family that is used for out-of-band messages related to network operation
3.2.47
IGD
Internet Gateway Device
multifunction Network Infrastructure Device that routes and/or bridges global internet with the local
area network
3.2.48
IP
Internet Protocol
3.2.49
IPv4
Internet Protocol version 4
3.2.50
IPv6
Internet Protocol Version 6
3.2.53
LPCM
Linear Pulse Code Modulation
3.2.54
M-DMC
Mobile Digital Media Controller
DLNA Device Class having mobile handheld environmental characteristics, with the role of finding
content exposed by a DMS or M-DMS and matching it to the rendering capacities of a DMR and
setting up the connections between the DMS or M-DMS and the DMR
3.2.55
M-DMP
Mobile Digital Media Player
DLNA Device Class having mobile handheld environmental characteristics, with the role of finding
content exposed by DMS or M-DMS and rendering the content locally
3.2.56
M-DMS
Mobile Digital Media Server
DLNA Device Class having mobile handheld environmental characteristics, with the role of exposing
and distributing content throughout the home
3.2.57
MF
Media Formats
3.2.58
MHD
Mobile Handheld Device
Device Category that groups together all the applicable DLNA Device Classes with mobile handheld
environmental characteristics (requirements). Device Classes in this Device Category are: M-DMS,
M-DMP and M-DMC.
3.2.59
MIME
Multipurpose Internet Mail Extension
standard system for identifying the type of data contained in a file. MIME is an Internet protocol that
allows sending binary files across the Internet as attachments to e mail messages. This includes
graphics, photos, sound, video files, and formatted text documents.
3.2.60
MM
Media Management
3.2.61
MPEG
Moving Picture Experts Group
3.2.62
MRCP
MediaRenderer Control Point
3.2.63
MRD
MediaRenderer Device (also known as MediaRenderer)
UPnP device that provides network-based control for the rendering of content. Minimally, a
MediaRenderer will have a RenderingControl Service and a ConnectionManager service. The
MediaRenderer specification is a standard UPnP DCP.
3.2.64
MSCP
MediaServer Control Point
3.2.65
MSD
MediaServer Device (also known as MediaServer)
UPnP device that provides network-based discovery of content. Minimally, a MediaServer will have
a ConnectionManager Service and a ContentDirectory Service. The MediaServer specification is a
standard UPnP DCP.
3.2.66
MT
Media Transport
3.2.67
NC
Networking and connectivity
3.2.68
NID
Network Infrastructure Device
devices which provide supporting functionality in the home network such as access points, bridges,
Internet gateways, routers, and switches. These devices facilitate a good user experience with
DLNA devices but are only covered at this time in this standard by informative recommendations in
Annex A.
3.2.69
NTSC*
National Television Systems Committee
3.2.70
OSD
On Screen Display
3.2.71
OSI
Open Systems Interconnection
3.2.72
PAL*
Phase Alternating Line
3.2.73
PC
Personal Computer
3.2.74
PCR
Program Clock Reference
3.2.75
PNG
Portable Network Graphics
3.2.76
PS
Program Stream
3.2.77
PVR
Personal Video Recorder
3.2.78
QoS
Quality of Service
3.2.79
RCS
RenderingControl Service
UPnP service that provides network-based control for the adjustment of rendering attributes such as
volume, brightness, contrast, and mute. The RenderingControl Service specification is a standard
UPnP DCP.
3.2.80
RTP
Real Time Protocol
media transport that provides end-to-end network transport functions for transmitting real-time data,
such as AV. It provides services such as payload type identification, sequence numbering,
time-stamping, and delivery monitoring
3.2.81
RTCP
Real Time Control Protocol
3.2.82
RTSP
Real Time Streaming Protocol
3.2.83
RUI
Remote User Interface
user interface provided by an application on a server device, that can be rendered by one or more
client devices
3.2.84
S3D
Stereoscopic 3D
3.2.85
SAR
Sample Aspect Ratio
3.2.86
SCPD
Service Control Protocol Description
XML-encoded file describing a UPnP service. This is also known as a service description file
3.2.87
SDES
Session Description Item
3.2.88
SDP
Session Description Protocol
3.2.89
SEI
Supplemental Enhancement Information
message format carried in the 3D media content to inform decoders about any special attributes of
the compressed video
3.2.90
SOAP
Simple Object Access Protocol
XML based messaging protocol used to exchange service requests and responses over a network
3.2.91
SPTS
Single Program Transport Stream
3.2.92
SSDP
Simple Service Discovery Protocol
3.2.93
SSRC
Synchronization Source
3.2.94
TCP
Transmission Control Protocol
protocol in the TCP/IP family used for the reliable exchange of data over a network
3.2.95
TS
Transport Stream
3.2.96
TTS
Timestamped Transport Stream
3.2.97
UDP
User Datagram Protocol
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 30 –
protocol in the TCP/IP family used for the unreliable exchange of data over a network
3.2.98
UP
User Priority
3-bit field of the QoS Control field in the WMM Specification WMM Specification and a Tag control
information field in the VLAN tag header of IEEE 802.1Q that defines the relative priority of a packet
3.2.99
URI
Uniform Resource Identifier
W3C's codification of the name and address syntax of present and future objects on the Internet. In
its most basic form, a URI consists of a scheme name (such as file, http, ftp, news, mailto, gopher)
followed by a colon, followed by a path whose nature is determined by the scheme that precedes it.
URI is the umbrella term for URNs, URLs, and all other Uniform Resource Identifiers.
3.2.100
URL
Uniform Resource Locator
type of URI
3.2.101
UTF
Unicode Transformation Format
3.2.102
VI
VIdeo user priority
3.2.103
VLAN
Virtual Local Area Network
3.2.104
VO
VOice user priority
3.2.105
VSI
Vendor-Specific Infoframe
message sent from the HDMI source to inform the display device that the video signal is 3D and the
type of 3D delivery format.
3.2.106
WAN
Wide Area Network
network outside the home or office. Typically in reference to the entire global Internet.
3.2.107
WMM
Wi-fi MultiMedia
describes the QoS guidelines and associated test plans published by the Wi-Fi alliance for
IEEE 802.11 wireless networks
3.2.108
XML
eXtensible Markup Language
text-based declarative language used to describe structured data for information exchange
3.3 Conventions
In this International Standard a number of terms, conditions, mechanisms, sequences, parameters,
events, states, or similar terms are printed with the first letter of each word in uppercase and the rest
lowercase (e.g., Move). Any lowercase uses of these words have the normal technical English
meaning.
IP provides the underlying network communications for applications on the Internet. Based on
industry-standard specifications from the IETF, IP is implemented and supported in a wide range of
devices. IP has several advantages for use by DLNA devices:
• IP has demonstrated that it allows applications to run over different network topologies
transparently;
• IP allows connecting every device in the home to the Internet;
• IP connectivity solutions are widely used and are cost effective. The most common ones are
Ethernet (IEEE 802.3i and IEEE 802.3u) and wireless technologies (IEEE 802.11a,
IEEE 802.11b, IEEE 802.11g and IEEE 802.11n) for devices in the home networking
environment. In the mobile handheld environment, Wi-Fi is the prevalent wireless technology in
use.
Subclause 8 specifies the detailed guidelines to enable interoperability between DLNA devices in
the digital home. In addition, the home environment requires supporting network infrastructure,
such as access points, bridges, Internet gateways, routers, and switches. These non-normative
devices are referred to in this standard as Network Infrastructure Devices (NID). Annex A provides
DLNA guidelines; Part 1-1: Architecture and protocols
– 33 –
The DLNA QoS model is intended to allow DLNA applications that wish to take advantage of User
Priority to have common usage rules for tagging. Devices that do not wish to use QoS shall be
tolerant of tagging. In addition to interoperability, the DLNA QoS model promotes fair and consistent
usage of priorities and balanced performance across all DLNA traffic types, thus enhancing the
overall user experience.
The UPnP AV architecture defines the interaction model between UPnP AV devices and associated
control point applications. UPnP AV devices can instantiate themselves in a variety of form factors,
including (but not limited to) TVs, VCRs, DVD players, Set-Top Boxes, stereo systems, still-image
cameras, portable media players, cell phones, and PCs. The UPnP AV architecture allows devices
to support entertainment content in any format using any media transfer protocol. The UPnP AV
specification defines two types of UPnP devices on the home network: UPnP AV MediaServers and
UPnP AV MediaRenderers. The specifications also define four services hosted by UPnP AV
MediaServers and UPnP AV MediaRenderers, as stated below. The existence of UPnP control
points that interact with UPnP AV devices and services is implied.
Subclause 9.2.37 specifies the detailed guidelines to enable interoperability between DLNA devices
in the digital home.
4.7 Remote UI
Remote UI defines how UI content is described, formatted, and transported from one device to
another over the network. This also includes mechanisms for sending events and UI updates
between different devices.
A system usage describes a device interaction model between Device Classes and/or Device
Capabilities. system usages are derived when enabling home networking use case scenarios. An
example is a rendering device with a dedicated user interface that is browsing, selecting, and
playing content from a media server on the home network, such as the 2-box Pull system usage, see
5.7.2.
A Device Class is a set of Device Functions (at least one) aggregated to be used in a system usage
that enables home networking AV use case scenarios. A Device Class shall provide support for all
layers in the DLNA architecture except when defined within the Home Infrastructure Device
Category which is providing interoperability between one or more layers in the DLNA architecture. A
Device Class is a certifiable entity by DLNA and is derived from system usages. It specifies the
capabilities supported by a device regardless of the device's physical attributes. An example of a
Device Class is a device with the role of exposing and distributing content throughout the home such
as a "DMS". A single physical device can support multiple Device Classes.
A Device Capability is a set of Device Functions (at least one) aggregated to be used in a system
usage that is enabling home networking AV use case scenarios. A Device Capability does not
provide support for all layers in the DLNA architecture. It typically contains Device Functions at the
Device Discovery and Control, Media Management, and Media Transport layers only. A Device
Capability is not a Device Class and cannot stand alone. It shall always be deployed in conjunction
with an implementation of a valid Device Class. A Device Class might already contain some of the
Device Functions required to provide a Device Capability. An example of a Device Capability is any
DLNA device that incorporates the additional feature (capability) of pushing content to a rendering
device, such as a "Push Controller".
A Device Option provides optional extensibility to an existing Device Class definition, such as
upload or scheduled recording functionality added to a MediaServer Device (MSD), or it provides a
new optional Device Function to the DLNA architecture, such as RTP. A Device Option differs from
a Device Class or Device Capability in that it normally enables a Device Class or Device Capability
to perform an existing system usage in a different way (e.g., RTP). In the case where a Device
Option achieves a new system usage, it adds functionality to an existing Device Class or Device
Capability to support a new interaction such as the Upload system usage.
• IP Connectivity – Network Connectivity and Network stack (8). This incorporates Ethernet
(IEEE 802.3) and IEEE 802.11, with IP networking using the IPv4 protocol suite.
• IPv6 Connectivity – a Device Function that builds upon the basic connectivity of IP Connectivity
by adding IPv6 to the Network Connectivity and Network stack.
• UPnP Device and UPnP Control Point (UPnP CP) – Device Discovery and Control based upon
the UPnP Device Architecture (9). This incorporates the baseline device architecture used by all
Device Classes and Device Capabilities.
• UPnP AV MediaServers (MSD), UPnP AV MediaServer control point (MSCP), UPnP AV
MediaRenderer (MRD) and UPnP AV MediaRenderer control point (MRCP) – Media
Management (9.2.37). This incorporates the control functionality that is layered on top of a
UPnP Device or a UPnP control point to fulfill a role for a Device Class or a Device Capability in
a system usage. An MSD provides methods to access content. An MSCP is a controller that can
browse and select content provided by an MSD. An MRD provides methods to render content.
An MRCP is a controller that selects the content to be rendered by an MRD.
• Media Transport Server and Media Transport Client – Media Transport (11). These are the
Device Functions for the transport of content. The mandatory transport for content is HTTP
which has the components of an HTTP Server and an HTTP Client. An optional transport for
content is RTP which has the components of an RTP Serving Endpoint and an RTP Receiving
Endpoint. RTP is an example of a Device Option which provides optional extensibility to system
usages utilizing a Media Transport.
• Content – interoperability guidelines Media Formats, IEC 62481-2, defines the DLNA mandatory
and optional Media Format Profiles for content.
• Generic HTTP URLs (GENURL) – Media Management (7.4). This incorporates the DNS Client
functionality which resolves domain names into IPv4 addresses. A GENURL Device Function
provides support or HTTP protocol messages to request and receive media resources from
servers internal or external to the home network.
5.4 Device Categories
Device Categories are a grouping of Device Classes that share common environmental
characteristics (requirements) with system usages. There were no Device Categories explicitly
defined in version 1.0 of the interoperability guidelines, as all of the Device Classes operated in the
same environment. All of the version 1.0 guidelines were defined as if the following Device Category
applied:
• Home Network Devices (HNDs) are a group of Device Classes that share system usages in the
home network with the same media format and network connectivity requirements.
In these interoperability guidelines, the following two additional Device Categories are defined:
• Mobile Handheld Devices (MHDs) are a group of Device Classes that share the same system
usages as the HND Device Category, but have different requirements for media format and
network connectivity.
5.5 Device Classes and roles
In version 1.0 of the interoperability guidelines, the following two Device Classes were defined to
support the 2-box Pull system usagefor the HND Device Category.
• A Digital Media Server (DMS) with the role of exposing and distributing content.
• A Digital Media Player (DMP) with the role of finding content exposed by a DMS and playing the
content locally on the DMP.
In these interoperability guidelines, the following three additional Device Classes are defined for the
HND Device Category.
• A Digital Media Renderer (DMR) with the role of playing content it receives after being setup by
another network entity.
• A Digital Media Controller (DMC) with the role of finding content exposed by a DMS and
matching it to the rendering capacities of a DMR and setting up the connections between the
DMS and DMR.
The following Device Classes are defined for MHD Device Category.
• A Mobile Digital Media Server (M-DMS) with the role of exposing and distributing content.
• A Mobile Digital Media Player (M-DMP) with the role of finding content exposed by an M-DMS
and playing the content locally on the M-DMP.
• A Mobile Digital Media Controller (M-DMC) with the role of finding content exposed by an
M-DMS and matching it to the rendering capabilities of a DMR and setting up the connections
between the server and renderer.
Many of these mobile Device Classes have counterparts in the HND Device Category; however,
they differ from their counterpart at the network connectivity layer and at the media format layer in
the DLNA architecture. For example, an M-DMC can be connected via mobile specific network
connectivity while a DMC has to meet the HND network connectivity requirements. This should not
be taken to imply that MHD and HND devices cannot interact directly. The discussion above and in
the definition of terms of the MHD and HND Device Classes, mobile Device Classes interact with
other mobile Device Classes, such as an M-DMP interacting with an M-DMS. However, if the mobile
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 38 –
and home devices have compatible network connectivity, and can exchange compatible Media
Format Profiles, nothing in these statements should be taken to imply that an M-DMP cannot directly
connect to a DMS to complete a system usage. See Table 2, and Table 4 for a listing of the required
device interoperations and those that are only possible in consideration of compatible network and
Media Format Profile capabilities.
The Device Functions that are incorporated in these Device Classes are illustrated in the figures
that provide the details for system usages and their respective device interaction models in 5.7.2
through 5.7.10.
• A Push Controller (+PU+) with the role of pushing its local content to a DMR.
• An Upload Controller (+UP+) with the role of sending content to a DMS or M-DMS with upload
functionality.
• A Download Controller (+DN+) with the role of downloading content from a DMS or M-DMS to
itself.
• An Upload Synchronization Controller (+UPSYNC+) with the role of keeping locally changing
content synchronized with a DMS or M-DMS supporting the Content Synchronization Device
Option.
• A Download Synchronization Controller (+DNSYNC+) with the role of keeping remotely
changing content synchronized with the local system. The remotely changing content shall be
located on a DMS or M-DMS supporting the Content Synchronization Device Option.
• A Scheduled Recording Controller (+SR+) with the role of instructiong a DMS or M-DMS to
browse, create, modify, and/or cancel scheduled recordings of content.
• An EPG Controller (+EPG+) with the role of fetching EPG metadata from a DMS or M-DMS.
The Device Functions that are incorporated in these Device Capabilities are illustrated in the figures
that provide the details for system usages and their respective device interaction models in 5.7.2
through 5.7.10.
In these interoperability guidelines, the following system usages are defined that map to all of the
use case scenarios being enabled by the detailed guidelines.
This usage involves a user at a DMC or an M-DMC, which enables the user to find content on a
DMS or M-DMS that in turn will be played on a user selected DMR.
• Upload Synchronization system usage
This usage involves a user at an Upload Synchronization Controller, which enables the user to
reflect any changes to the local store of content into a DMS or an M-DMS with the Content
Synchronization Device Option so that the DMS or the M-DMS can receive and distribute the
new or changed content to other endpoints.
• Download Synchronization system usage
This usage involves a user at a Download Synchronization Controller, which enables the user to
obtain any changes to the store of content on a DMS or an M-DMS supporting the Content
Synchronization Device Option.
• Scheduled Recording system usage
This usage involves a user at a Scheduled Recording Controller, which enables the user to
instruct a media server (DMS/M-DMS) to browse, create, modify, and cancel scheduled
recordings.
• EPG system usage
This usage involves a user at an EPG Controller, which enables the user to view EPG metadata
exposed by a DMS or M-DMS.
Subclauses 5.7.2 through 5.7.10 will briefly describe each of the system usages and their respective
device interaction models. For clarity, the device interaction model diagrams in 5.7.2 through 5.7.10
show HND and MHD devices interacting directly. All these system usages are shown with Device
Functions that are media transport agnostic. All of these system usages imply HTTP as the
mandatory media transport and other optional media transports, such as RTP, can be substituted.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.2 for description of impacts to these steps.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.3 for description of impacts to these steps.
Figure 5 illustrates this device interaction model. The following steps are performed in this system
usage.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.4 for description of impacts to these steps.
Figure 6 illustrates this device interaction model. The following steps are performed in this system
usage.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.2 for description of impacts to these steps.
Figure 7 illustrates this device interaction model. The following steps are performed in this system
usage.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.2 for description of impacts to these steps.
1) Invoke UPnP actions to create a CDS entry for the content to be uploaded.
2) Transport the content being uploaded to the DMS or the M-DMS.
Note that the Upload Controller Device Capability functionality can only be incorporated as part of
any physical device with a valid DLNA Device Class. It shall never appear as a stand-alone device.
This is how the Upload Controller Device Capability inherits other Device Functions (e.g. IP
connectivity) at other layers in the DLNA Device Architecture.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.2 for description of impacts to these steps.
1) The Download Synchronization Controller invokes UPnP actions to obtain a list of changes on
the Media Server since the last synchronization.
2) The Download Synchronization Controller receives the resulting information from the Media
Server on the changes that have occurred in the database.
3) The Download Synchronization Controller decides what actions to carry out to synchronize its
local storage with the changes present on the Media Server.
4) The Download Synchronization Controller obtains the information necessary to download the
required information (URLs and metadata)
5) If necessary, the Download Synchronization Controller transfers the relevant content from the
Media Server to the controller.
Note that the Download Synchronization Controller Device Capability functionality can only be
incorporated as part of any physical device with a valid DLNA Device Class. It shall never appear as
a stand-alone device. This is how the Download Synchronization Controller Device Capability
inherits other Device Functions (e.g. IP connectivity) at other layers in the DLNA Device
Architecture. Figure 8 shows a model of a Download Synchronization.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 and
5.7.11.2 for description of impacts to these steps.
1) The Upload Synchronization Controller determines that changes have been made in the local
content storage area.
2) The Upload Synchronization Controller invokes UPnP actions on the media server to obtain a list
of changes since the last synchronization.
3) The Upload Synchronization Controller receives the resulting information from the media server
on the changes that have occurred in the CDS.
4) The Upload Synchronization Controller determines what changes need to occur on the DMS or
M-DMS to properly represent the local changes.
5) The Upload Synchronization Controller performs OCM operations to reflect the local changes
onto the media server.
6) If necessary the Upload Synchronization Controller tranfers the relevant content from the
controller to the media server.
Note that the Upload Synchronization Controller Device Capability functionality can only be
incorporated as part of a physical device with a valid DLNA Device Class. It shall never appear as
a stand-alone device. This is how the Upload Synchronization Controller Device Capability inherits
other Device Functions (e.g. IP connectivity) at other layers in the DLNA Device Architecture.
Please note that the Upload Synchronization Controller Device Capability contains the ability to use
the OCM operations on the server to carry out the actions required for synchronization. Figure 9
shows a model of a Upload Synchronization.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 for
description of impacts to establishing UPnP Communications.
1) Invoke UPnP actions to obtain some or all of the values for the input parameters needed for
setting up a scheduled recording.
2) Invoke UPnP actions to create a scheduled recording using the input parameters obtained in
step 1.
3) Invoke UPnP actions to allow for the browsing, modification, and cancellation of existing
scheduled recordings.
Note that the SR Controller Device Capability functionality can only be incorporated as part of any
physical device with a valid DLNA Device Class. It shall never appear as a stand-alone device. This
is how the SR Controller Device Capability inherits other Device Functions (e.g. IP connectivity) at
other layers in the DLNA Device Architecture. Also note that the UPnP Scheduled Recording
Service Device Option is a UPnP service integrated into a UPnP MediaServer Device. The SR
Controller includes a MSCP with functionality for scheduled recording.
+ Indicates additional functionality from previous versions of the Interoperability Guide lines for a Device Function to
implement this system usage.
Where IPv6 Connectivity Device Function is present in addition to IP Connectivity, see 5.7.11.1 for
description of impacts to establishing UPnP Communications.
1) Invoke UPnP actions to search EPG metadata in the CDS based on certain criteria.
2) Optionally invoke UPnP actions to obtain channel line-up information.
Note that the EPG Controller Device Capability functionality can only be incorporated as part of any
physical device with a valid DLNA Device Class. It shall never appear as a stand-alone device. This
is how the EPG Controller Device Capability inherits other Device Functions (e.g. IP connectivity) at
other layers in the DLNA Device Architecture.
To enable this system usage the EPG Server Device Option shall be implemented in a DMS or an
M-DMS. The EPG Server obtains EPG metadata from an external source, and maps a set of
mandatory properties to the Server’s Content Directory Service. Mapping definitions are provided
for OpenEPG, TV-Anytime, and DVB-SI. Servers can choose to export rich data provided by an
OpenEPG, or TV-Anytime service by exposing such XML based information as Foreign Metadata
embedded in EPG Items in the CDS. Figure 11 shows a EPG system usage interaction model.
+ Indicates additional functionality from previous versions of the Interoperability Guide lines for a Device Function to
implement this system usage.
A UPnP CP that contains the IPv6 Connectivity Device Function will search for and discover the
(M-)DMS using both IPv4 and IPv6 addresses.
If the (M-)DMS responds with only an IPv4 address, the IPv4 address will be used for future UPnP
Communication.
If the (M-)DMS responds with both IPv4 and IPv6 addresses, the IPv4 address will be used for future
UPnP Communication.
If the (M-)DMS responds with only an IPv6 address, the IPv6 address will be used for future UPnP
Communication.
5.7.11.2 Impacts to 2-box Pull, Download, Upload, Download Sync, Upload Sync
These system usages involve a UPnP Device that serves (and stores) content and a UPnP CP that
renders (but may also store) content.
If the IPv6 Connectivity Device Function is present on the DMP (2-box Pull), Download
Synchronization Controller (Download Sync), or Upload Synchronization Controller (Upload Sync),
then additional steps are required to ensure that any IP addresses in URIs provided by the DMS or
M-DMS match the IP address family used for UPnP Connectivity between the UPnP CP and
(M-)DMS.
The logic for determining which URIs will be returned by the (M-)DMS in these system usages are as
follows:
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 48 –
1) If an IPv4 address is used for UPnP Communications and no filters (ALLIP, ALLINTIP) are
specified, the (M-)DMS will respond to Browse/Search requests with URIs containing IPv4
addresses.
2) If an IPv6 address is used for UPnP Communications, the (M-)DMS will respond to
Browse/Search requests with URIs containing IPv6 addresses.
5.7.11.3 Impacts to 2-box Push
These system usages involve a UPnP Device that renders content and a UPnP CP that serves
content.
If the IPv6 Connectivity Device Function is present on the Push Controller (2-box Push), then
additional steps are required to ensure that any IP addresses in URIs provided by the DMR or
XDMR match the IP address family used for UPnP Connectivity between the UPnP CP and UPnP
Device.
The logic for determining which URIs to send in these system usages is as follows:
The UPnP CP invokes UPnP actions that involve the sending of URIs that point to content on the CP.
URIs with literal IP addresses will include an IP address consistent with the IP address used for
UPnP communications.
If the IPv6 Connectivity Device Function is present on the DMC or M-DMC (3-box), then additional
steps are required to ensure that any IP addresses in URIs provided by the (M-)DMC match the IP
address family used for UPnP Connectivity between the UPnP CP and rendering UPnP Device
(DMR or XDMR).
The logic for determining which URIs to send to the rendering device in these system usages is as
follows:
1) If an IPv4 address is used for UPnP Communications between the UPnP CP and the content
server UPnP Device and no filters (ALLIP, ALLINTIP) are specified, the content server UPnP
Device will respond to Browse/Search requests with URIs containing IPv4 addresses.
3) If an IPv6 address is used for UPnP Communications, the content server UPnP Device will
respond to Browse/Search requests with URIs containing IPv6 addresses.
4) The UPnP CP invokes UPnP actions that involve the sending of URIs to the rendering UPnP
device that point to content on the serving UPnP device. URIs with literal IP addresses will
include an IP address consistent with the IP address used for UPnP communications with the
rendering device.
5.8 Interoperability guidelines usage
The guideline requirements' tables presented in Clause 7 contain a column that specifies which
Device Classes apply to a requirement. For the v1.0 interoperability guidelines, only DMS and DMP
were applicable. For these interoperability guidelines, two new Device Classes are defined in
addition to the two above for the HND Device Category. They are a DMC and DMR. The MHD
Device Category with four new Device Classes is introduced in this version of the guidelines. Table
2 summarizes all of the Device Classes in the HND Device Category and the mnemonics used within
these interoperability guidelines. Table 3 summarizes all of the Device Capabilities that can be
deployed with any Device Class and the mnemonics used within these interoperability guidelines.
Table 4 summarizes all of the Device Classes in the MHD Device Category and the mnemonics used
for these Device Classes..
A new concept introduced in this version of the interoperability guidelines is a Device Capability. A
Device Capability can be applied to any valid DLNA Device Class from any Device Category. Device
Capabilities inherit the IP connectivity from the Device Category of the Device Classes it is
combined with. There are no baseline (i.e. mandatory) Media Format interoperability requirements
for Device Capabilities, unless otherwise specified by explicit guidelines. Table 3 summarizes all of
the Device Capabilities used in the system usages and the mnemonics used within these
interoperability guidelines to specify which requirements apply to them.
The MHD Device Category has different media format and network connectivity requirements
because of various device constraints. Table 4 summarizes all of the Device Classes in the MHD
Device Category and the mnemonics used within these interoperability guidelines.
[M] Required, Shall: This is the minimum set of requirements that will ensure interoperability and/or
robust operation between devices. All devices are expected to comply with these requirements
when expressed in unconditional form. A conditional requirement expressed in the form, "If X, then
Y shall be implemented", means that the requirement "Y" shall be met when the conditional aspect
"X" applies to a given implementation.
[S]hould, Recommended: Recommended items are optional items that are strongly recommended
for inclusion in products. The difference between "recommended" items and "optional" items, below,
is one of priority. When considering features for inclusion in a product, recommended items should
be included first.
[O]ptional, May: Optional items are suggestions for features that will enhance the user experience
or are offered as a less preferred choice relative to another recommended feature. If optional
features are included, they shall comply with the requirement to ensure interoperability with other
implementations.
[F]ixing: A guideline that intentionally supersedes and fixes aspects of a standard or specification
that is incorrect and would otherwise provide a poor user experience or prevent device
interoperability.
[L]imiting: A guideline that narrows or specifies an exact behavior in areas where a standard or
specification provides for greater degrees of latitude in implementation.
• Linear whitespace (LWS) characters, such as carriage returns, spaces, tabs, or line feeds, are
not implied anywhere in any of the syntax (BNF) definitions used within the interoperability
guidelines.
• The use of LWS characters is restricted within the interoperability guideline unless explicitly
specified in any of the syntax definitions with reference to UPnP HTTP communications.
• By default, text tokens and values have a case-sensitive treatment unless explicitly noted in the
guidelines. This convention also applies to BNF definitions, XML tag names, XML tag values,
capability IDs, and HTTP header values for HTTP headers used by the DLNA guidelines. One of
the exceptions to this rule applies to the names of HTTP headers. HTTP header names have a
case-insensitive treatment. For example TimeSeekRange.dlna.org is the same as
timeseekrange.dlna.org. (See 11.4.3.7)). Other exceptions are described in each guidelines
which define BNF syntax.
6.5 Guideline normative and informative text conventions
All text that appears in the DLNA interoperability guidelines is to be considered normative unless
explicitly stated otherwise, such as informative references and informative annexes. Normative text
includes text before guideline attribute tables, but testable guidelines are only contained within
subclause guideline attribute tables.
urn:schemas-dlna-org:device-1-0 Used for XML elements and attributes defined by DLNA interoperability
guidelines for use in UPnP device description files.
urn:schemas-dlna-org:metadata-1-0/ Used for XML elements and attributes defined by DLNA interoperability
guidelines for use in DIDL-Lite documents and fragments.
• DLNA Device Classes and DLNA Device Capabilities that source XML documents or fragments
have the responsibility to provide valid (semantically and syntactically correct) and well-formed
XML documents and fragments. This also includes DLNA Device Classes and DLNA Device
Capabilities that receive XML documents or fragments and modify them syntactically,
semantically, or both.
• DLNA Device Classes and DLNA Device Capabilities that receive XML documents or fragments
from DLNA Device Classes and DLNA Device Capabilities can assume that the received XML
documents or fragments are valid and can forward them to other devices without validation.
a) Name: A label for the guideline set. The label is preceded with a sequentially increasing number
to allow easy lookup.
b) Guidelines: The actual normative text of a guideline. A guideline is preceded with a sequentially
increasing number in each part to allow easy lookup and the beginning of the paragraph starts
with “[G UIDELINE ]”.
c) Attribute table: A summary of the essential attributes of a guideline. The table is preceeded with
the paragraph text “[ATTRIBUTES ]” and is a single row with the following definitions for the
columns:
• Compliance classifier: M/S/O (See 6.1 for the definition of guideline compliance classifiers).
• The specification usage classifier: A/C/F/L/R: for the guideline. (See 6.2 for the definition of
specification usage classifiers.)
• HND Device Classes and Device Capabilities (see Table 2 and Table 3 for definitions).
Device Capabilities are always listed in the HND column of the attribute table. Device
Capabilities can also apply equally to the MHD Device Category but have been omitted from
the MHD column in the attribute table to provide for better readability.
• MHD Device Classes(see Table 4 for definitions).
• Standards citation: Standards that are referenced by the guideline. Standards citations are
declared in Clause 2 and Bibliography.
• Guideline unique number: an alpha-numeric string that uniquely identifies a guideline in all
parts of this series of International Standards.
• Change indicator: documents that indicate the change in the guideline that occurred since
the last edition of the guideline (see Table 6 for definitions).
• Guideline attribute columns that do not have a value have the designation "n/a" (not
applicable). A visual map of possible values for the attribute tables is in Figure 13.
d) Add supplementary informative information about a guideline such as a justification for the
guideline, the specific interoperability issue that is addressed, etc. The first paragraph is
preceeded by the text “[C OMMENT]”.
Table 6 – Allowed values for change indicator fields in attribute tables
Value Meaning
<blank> No changes in the text or figures from the immediately-preceding version of this guideline.
A Attribute table itself, excluding the change indicator, has changed. For example, a new device class
was added.
C Changes made to the guideline modify the testing, intent, or other normative behavior relative to the
immediately-preceding version of this guideline.
D Guideline has been deleted.
E Changes made that do not modify testable guideline, intent, or other normative behavior.
N New. guideline did not exist in previous versions.
• The two communicating endpoints should establish communications under Ideal Network
Conditions.
• Time measurements at a given layer assume that the underlying layers preserve the
communication channel. For example, time measurements at the HTTP layer cannot be valid if
the underlying TCP/IP channel breaks during the measurements.
• Unless specified otherwise, time measurements assume that the communicating devices are
both in active mode. This means that time measurements should not include transitions from
sleep mode to active mode.
The Networking and connectivity guidelines are organized in the following subclauses.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Gigabit Ethernet is becoming available and affordable for home networks.
the Tagged MAC Frame. Here, tolerate means that the packet payload of any received tagged or
untagged packet shall be properly passed up to the higher layers in the network stack.
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the only QoS mechanism available on Ethernet at the link layer.
Many devices on home networks are already capable of sending tagged frames, so all devices need
to be able to tolerate them. For guidelines on tagging, see 8.3.2.1 and 8.3.2.2.
• IEEE 802.11a
• IEEE 802.11b
• IEEE 802.11g
• IEEE 802.11n
• Wi-Fi Direct
For example, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11a/b, IEEE 802.11b/g, and
IEEE 802.11a/b/g all meet this requirement.
[ATTRIBUTES ]
[C OMMENT] There is no implied requirement that a device needs to support multiple radios nor is it
prohibited.
See Annex A for recommendations on Wireless Access Points and how they will help enable
interoperability between products with different radio selections.
8.2.3.1.2
[G UIDELINE ] If IEEE 802.11 is supported, the implementation shall support infrastructure mode
operation.
[ATTRIBUTES ]
[C OMMENT] Some DLNA Device Classes might be required to support Ad-hoc (IBSS) mode for
Wi-Fi conformance. However, the interoperability guidelines do not provide any requirements for
Ad-hoc (IBSS) operation. Devices can assume infrastructure mode as the default.
[ATTRIBUTES ]
[C OMMENT] WFA is the industry consortium that does IEEE 802.11 compatibility testing. Wi-Fi
interoperability requirements are increasing with time as new capabilities and features are specified
by IEEE 802.11.
Wi-Fi Direct devices that pass the P2P System Interoperability Test Plan Wi-Fi Direct System
Interoperability will pass one or more of the following: IEEE 802.11 a/g Interoperability Test Plan
Wi-Fi IEEE 802.11, or IEEE 802.11n System Interoperability Test Plan IEEE 802.11. Additional
Wi-Fi Direct perquisites include Wi-Fi WSC Test Plan Wi-Fi Simple Configuration and WMM Test
Plan WMM Test Plan. IEEE 802.11b is not supported by Wi-Fi Direct.
8.2.3.2.2
[G UIDELINE ] If Wi-Fi Direct is a supported radio interface, then the device will be WFA Wi-Fi Direct
certified to support Intra-BSS Distribution.
[ATTRIBUTES ]
[C OMMENT] Wi-Fi Intra-BSS Distribution is the name of the feature for bridging between members
of the group.
8.2.3.2.3
[G UIDELINE ] If Wi-Fi Simple Config is supported, the implementation shall conform to Wi-Fi Simple
Config test plan requirements at the time the product is offered to the market.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] MoCA is the Multimedia over Coax Alliance – an industry consortium that defines
specifications for networking over the in-home coaxial cable MoCA MAC/PHY.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
While there are eight priority categories defined by IEEE 802.1D, Annex G, HPNA (ITU-T G.9954),
Wi-Fi (WMM Specification, WMM Test Plan) and HomePlug AV only defines four categories and
MoCA MAC/PHY only defines three. Table 7 directly correlates IEEE 802.1Q, WMM, MoCA, HPNA,
HomePlug AV, HD-PLC and DSCP IETF RFC 2474 tags without any overlap, i.e. multiple
IEEE 802.1Q/DSCP values for a single WMM access class or MoCA Priority, or HomePlug AV
priority, but single 802.1Q/DSCP values for single HD-PLC priority.
DLNAQO DLNA traffic IEEE WMM MoCA HPN HomePlu HD-PLC DSCP Subclause
S_UP types 802.1Q Access priority A g AV Priority details
User Category Channel
Priority Access
Priority
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the QoS mechanism used for wired networks.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that priorities above the values specified in Table 7 are not to
be used.
For exchanges involving a request and response, the implementation returning a response might
not know the required DLNAQOS_UP value until it has parsed the request. It is at that time when it
needs to apply the appropriate DLNAQOS_UP value.
There can be TCP network traffic during connection establishment that uses an inappropriate
DLNAQOS_UP value.
For an HTTP streaming operation, the server needs to ensure the appropriate DLNAQOS_UP value
(or lower) is used for the Entity Body.
8.3.2.2.2
[G UIDELINE ] The phrase "or a lower DLNAQOS_UP" value means that the highest permitted
DLNAQOS_UP value should be used.
[ATTRIBUTES ]
8.3.2.2.3
[G UIDELINE ] The phrase "or a lower DLNAQOS_UP" value also means that a lower DLNAQOS_UP
value (indicated in the guideline) may be used.
[ATTRIBUTES ]
8.3.2.2.4
[G UIDELINE ] For best-effort traffic on Ethernet, the implementation may omit the IEEE 802.1Q
VLAN tag because frames with no tag are handled best-effort by default.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] WMM provides the base level QoS specification for IEEE 802.11 network devices.
[ATTRIBUTES ]
[C OMMENT] IEEE 802.1Q and DSCP correlation is in agreement with the WMM test plan
recommendation.
This guideline indicates that priorities above the values specified in Table 7 are not to be used.
For exchanges involving a request and response, the implementation returning a response might
not know the required DLNAQOS_UP value until it has parsed the request. It is at that time when it
needs to apply the appropriate DLNAQOS_UP value.
There can be TCP network traffic during connection establishment that uses an inappropriate
DLNAQOS_UP value.
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the QoS mechanism used for wired networks. MoCA requires an
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 64 –
Ethernet convergence layer so that Ethernet packets are transported transparently across the
MoCA network.
[ATTRIBUTES ]
[C OMMENT] This guideline indictes that priorities above the values specified in Table 7 are not to
be used.
For exchanges involving a request and response, the implementation returning a response might
not know the required DLNAQOS_UP value until it has parsed the request. It is at that time when it
is expected to apply the appropriate DLNAQOS_UP value.
There can be TCP network traffic during connection establishment that uses an inappropriate
DLNAQOS_UP value.
For an HTTP streaming operation, the server needs to ensure the appropriate DLNAQOS_UP value
(or lower) is used for the Entity Body.
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the QoS mechanism used for wired networks. HPNA requires an
Ethernet convergence layer so that Ethernet packets are transported transparently across the
HPNA network.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that priorities above the values specified in Table 7 are not to
DLNA guidelines; Part 1-1: Architecture and protocols
– 65 –
be used.
For exchanges involving a request and response, the implementation returning a response might
not know the required DLNAQOS_UP value until it has parsed the request. It is at that time when it
is expected to apply the appropriate DLNAQOS_UP value.
There can be TCP network traffic during connection establishment that uses an inappropriate
DLNAQOS_UP value.
For an HTTP streaming operation, the server needs to ensure the appropriate DLNAQOS_UP value
(or lower) is used for the Entity Body.
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the QoS mechanism used for wired networks. Homeplug AV requires
an Ethernet convergence layer so that Ethernet packets are transported transparently across the
Powerline network
[ATTRIBUTES ]
[C OMMENT]
[ATTRIBUTES ]
[C OMMENT] Packet tagging is the QoS mechanism used for wired networks. HD-PLC requires an
Ethernet convergence layer so that Ethernet packets are transported transparently across the
Powerline network
[ATTRIBUTES ]
[C OMMENT]
[ATTRIBUTES ]
[C OMMENT] A DNS client is omitted because it is not strictly needed for UPnP operations on the
network. Native IP addresses actually simplify the use of UPnP. Inclusion of DNS clients is
out-of-scope for DLNA. This means that vendors are not prohibited from including a DNS client, but
DLNA guidelines will not specify how to use DNS clients nor will the certification process test such
behaviors.
[ATTRIBUTES ]
[C OMMENT] UPnP ISO/IEC 29341-1-2 Annex A references a number of IETF RFCs that specify
IPv6 behavior.
[ATTRIBUTES ]
[C OMMENT] This guideline includes an assumption that devices need to transition from DHCPv4 to
Auto-IP, when devices fail to renew an expired IPv4 address (that was assigned by a DHCPv4
server). Likewise, Auto-IP requires the devices to make periodic attempts (once every 5 min) to
acquire a DHCPv4-assigned IP address, when operating with a self-assigned IP address.
8.4.2.3.2
[G UIDELINE ] DLNA Device Classes that allocate addresses with the Auto-IP link local address
allocation system of ISO/IEC 29341-1 should adhere to all aspects of 2.7 of IETF RFC 3927. No
packet generated by a DLNA Device Class with an Auto-IP allocated address as the source or
destination address should be sent to a router for forwarding.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 68 –
[ATTRIBUTES ]
[C OMMENT] Subclause 2.7 of IETF RFC 3927 contains information how Auto-IP addresses are
impacted by routed subnets.
8.4.2.3.3
[G UIDELINE ] DLNA Device Classes that allocate addresses with the DHCP address allocation
system should adhere to all aspects of 2.7 of IETF RFC 3927. No packet generated by a DLNA
Device Class with an Auto-IP allocated address as the destination address should be sent to a
router for forwarding.
[ATTRIBUTES ]
[C OMMENT] Subclause 2.7 of IETF RFC 3927 contains information how Auto-IP addresses are
impacted by routed subnets.
8.4.2.3.4
[G UIDELINE ] DLNA Device Classes that allocate addresses with the Auto-IP link local address
allocation system of ISO/IEC 29341-1 should attempt to interoperate with DLNA Device Classes
that have allocated DHCPv4 addresses as indicated in Clause 3 of IETF RFC 3927 as to the
interaction between link-local and non-link-local addresses. A DLNA Device Class should attempt to
send all packets on the local link.
[ATTRIBUTES ]
8.4.2.3.5
[G UIDELINE ] DLNA Device Classes that allocate addresses with the DHCPv4 address allocation
system should attempt to interact with endpoints that have allocated link-local Auto-IP addresses as
indicated in Clause 3 of IETF RFC 3927. A DLNA Device Class should attempt to send all packets
bound to a link-local address on the local link.
[ATTRIBUTES ]
8.4.2.3.6
[G UIDELINE ] When the lease on an IPv4 address expires, and the DLNA Device Class is unable to
renew the lease on that IPv4 address, or obtain a lease on a new IPv4 address, the Device Class
shall use an Auto-IP address. The Auto-IP address can be acquired before or after the DHCPv4
lease expires.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies that a DLNA Device Class will not utilize an expired DHCPv4
IPv4 address. The Auto-IP address can be previously obtained and defended while the DHCPv4
lease was active. Alternatively the Device Class can obtain a new Auto-IP address as defined in
8.4.2.3.1.
[ATTRIBUTES ]
8.4.2.4.2
[G UIDELINE ] If DLNAQOS is supported on an Ethernet network interface by a DLNA Device Class,
then it shall be conformant to all [NC Ethernet DLNAQOS:] labeled requirements in 8.3
[ATTRIBUTES ]
8.4.2.4.3
[G UIDELINE ] If DLNAQOS is supported on an IEEE 802.11 network interface by a DLNA Device
Class, then it shall be conformant to all [NC IEEE 802.11 DLNAQOS:] labeled requirements in 8.3
[ATTRIBUTES ]
8.4.2.4.4
[G UIDELINE ] If DLNAQOS is supported on a MoCA network interface by a DLNA Device Class, then
it shall be conformant to all [NC MoCA DLNAQOS:] labeled requirements in 8.3
[ATTRIBUTES ]
8.4.2.4.5
[G UIDELINE ] If DLNAQOS is supported on an HPNA network interface by a DLNA Device Class,
then it shall be conformant to all [NC HPNA DLNAQOS:] labeled requirements in 8.3
[ATTRIBUTES ]
8.4.2.4.6
[G UIDELINE ] If DLNAQOS is supported on a HomePlug AV PHY network interface by a DLNA
Device Class, then it must be conformant to all [NC HomePlug AV DLNAQOS:] labeled
requirements in the Networking and connectivity: QoS Requirements
[ATTRIBUTES ]
8.4.2.4.7
[G UIDELINE ] If DLNAQOS is supported on an HD-PLC PHY network interface by a DLNA Device
Class, then it must be conformant to all [NC HD-PLC DLNAQOS:] labeled requirements in the
Networking and connectivity: QoS Requirements
[ATTRIBUTES ]
• Ethernet conformant to all [NC Ethernet:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• IEEE 802.11 conformant to all [NC IEEE 802.11:] labeled requirements in the General
Capability Requirements subclause of 8.2.
[ATTRIBUTES ]
8.4.3.1.2
[G UIDELINE ] DLNA Device Classes may support the following connectivity selections:
• MoCA conformant to all [NC MoCA:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• HPNA conformant to all [NC HPNA:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• Homeplug AV PHY conformant to all [NC HomePlug AV:] labeled requirements in the General
Capability Requirements subclause of 8.2
• HD-PLC PHY conformant to all [NC HD-PLC:] labeled requirements in the General Capability
Requirements subclause of 8.2.
[ATTRIBUTES ]
[C OMMENT] MoCA, HPNA, HomePlug AV and HD-PLC are optional networks and connectivity for
DLNA Device Classes in the HND Device Category.
• Ethernet conformant to all [NC Ethernet:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• IEEE 802.11 conformant to all [NC IEEE 802.11:] labeled requirements in the General
Capability Requirements subclause of 8.2.
Any of the above selections can be supported via an add on card, dongle, or equivalent.
[ATTRIBUTES ]
[C OMMENT] This guideline is intended to ensure that a consumer does not have to understand the
different network connectivity types when purchasing a DLNA product. A consumer will be assured
a newly purchased product will work with other previously purchased DLNA products.
• Ethernet conformant to all [NC Ethernet:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• IEEE 802.11 conformant to all [NC IEEE 802.11:] labeled requirements in the General
Capability Requirements subclause of 8.2.
[ATTRIBUTES ]
8.4.4.1.2
[G UIDELINE ] DLNA Device Classes may support the following connectivity selections:
• MoCA conformant to all [NC MoCA:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• HPNA conformant to all [NC HPNA:] labeled requirements in the General Capability
Requirements subclause of 8.2.
• Homeplug AV PHY conformant to all [NC HomePlug AV:] labeled requirements in the General
Capability Requirements subclause of 8.2
• HD-PLC PHY conformant to all [NC HD-PLC:] labeled requirements in the General Capability
Requirements subclause of 8.2.
[ATTRIBUTES ]
[C OMMENT] MoCA, HPNA, HomePlug Av and HD-PLC are optional networks and connectivity for
DLNA Device Classes in the HND Device Category.
• UPnP endpoints: Refers to both UPnP devices and UPnP control points.
• HTTP clients: Refers to the HTTP clients used for UPnP communications. HTTP client
guidelines in this subclause do not apply to HTTP transport for content transfers or playback.
• HTTP servers: Refers to the HTTP servers used for UPnP communications. HTTP server
guidelines in this subclause do not apply to HTTP transport for content transfers or playback.
The general rules for handling XML documents and fragments are specified in 6.7.
[ATTRIBUTES ]
[C OMMENT] DLNA specifies UPnP Device Architecture 1.0 (UPnP DA) as the basic protocol
framework for Device Classes.
9.2.1.2
[G UIDELINE ] A UPnP control point designed for a version of a UPnP Device Architecture, shall also
be able to interoperate with later versions of the UPnP Device Architecture that have the same
major versions.
"Interoperate" means that a control point that has certain capabilities for older devices can at least
provide the same capabilities for newer devices. For example, a control point that can discover an
older UPnP device, parse its device and service description files, and invoke its UPnP actions shall
be able to do those same things with a UPnP device with a newer minor revision of the UPnP Device
Architecture.
[ATTRIBUTES ]
[C OMMENT] Clause 1 of ISO/IEC 29341-1 indicates that advances in minor version of the UPnP
Device Architecture are a superset of earlier (minor) versions with the same major version. This
means that future UPnP devices with a newer minor revision will implement all of the behavior
required of the previous device architectures.
Although not explicitly stated by the UPnP Device Architecture, the intent of such backwards
compatibility rules is to enable forward compatibility of control points with newer, minor revisions of
the UPnP device architecture. Guidelines 9.2.1.2 and 9.2.1.3 formally require forward compatibility
of control points, which is necessary for future interoperability.
Version of the UPnP Device Architecture appears in the <specVersion> element of the device and
service descriptions and the SERVER header in SSDP, SOAP, and GENA messages.
One way to implement 9.2.1.2 is for the UPnP control point to treat the minor version a UPnP device
architecture as 0 (i.e. ignore the minor version).
9.2.1.3
[G UIDELINE ] A UPnP control point designed for a version of a UPnP device type or service type
shall be able to interoperate with later versions of the same device type or service type.
"Interoperate" means that a control point that has certain capabilities for an older device can at least
provide the same capabilities for a newer device of the same type and services. For example, a
control point that can discover an older UPnP AV MediaServer and invoke its CDS:Browse action
shall be able to discover and invoke CDS:Browse on a newer UPnP MediaServer. The newer UPnP
device can be newer because the device type and/or one of its associated UPnP services are of a
newer version.
[ATTRIBUTES ]
[C OMMENT] 2.1 of ISO/IEC 29341-1states that standardized device types and service types are
required to be a superset of all previous versions of the same device/service type. This means that
future UPnP device and service types will require all of the behavior defined for previous versions.
Device version appears as part of the value in a <deviceType> element of a device description file.
Similarly, the service version appears as part of the value in a <serviceType> element of a service
description file. Version numbers also appear in NT, ST, and USN headers of SSDP messages.
Furthermore, a service version appears in the xmlns namespace attributes of SOAP messages.
Older control points that interact with newer UPnP device/service types are not expected to
interoperate with conventions established for the newer device or service type, but they will still use
parts of the UPnP device/service that are compatible with the older conventions.
9.2.1.4
[G UIDELINE ] If a SOAP action was defined in the specification of a previous service version, a
UPnP control point may specify the xmlns namespace attribute for the service type and the SOAP
ACTION header in the SOAP request with the earlier service version.
[ATTRIBUTES ]
[C OMMENT] In other words, if a SOAP action was defined in the specification of a previous service
version (e.g. version 1), then a UPnP control point can invoke the SOAP action with the earlier
service version regardless of the service version described in the device description.
9.2.1.5
[G UIDELINE ] If a DLNA Device Class and Device Capability implements the IPv6 Connectivity
Optional Device Function then it shall conform to the ISO/IEC 29341-1-2 Annex A for discovery,
description, control, eventing and presentation.
[ATTRIBUTES ]
[C OMMENT] ISO/IEC 29341-1-2 Annex A references a number of IETF RFCs that specify IPv6
behavior.
9.2.1.6
[G UIDELINE ] If a UPnP Control Point that incorporates the IPv6 Connectivity Device Function is
presented with both IPv4 and IPv6 addresses for UPnP Communications, then it shall use the IPv4
address for subsequent communications.
[ATTRIBUTES ]
9.2.1.7
[G UIDELINE ] DLNA Device Classes and Device Capabilities shall implement the IPv6 Connectivity
Device Function.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] DLNA Device Classes that do not properly support DHCPv4 and AutoIP as required by
the UPnP DA can cause IPv4 addressing problems for other UPnP entities.
9.2.2.2
[G UIDELINE ] Whenever a UPnP device switches to a new IPv4 address (whether assigned through
Auto-IP or DHCPv4), the device should send an ssdp:byebye message for (and on) the old IPv4
address.
For (and on) the old IPv4 address means that the IPv4 address indicated in the (UDP header of the)
ssdp:byebye matches the old IPv4 address of the UPnP device.
DLNA guidelines; Part 1-1: Architecture and protocols
– 75 –
[ATTRIBUTES ]
[C OMMENT] This allows control points that discovered the UPnP device on the old IPv4 address to
know that the UPnP device is no longer available at the old address. However, this behavior is not
always possible for implementations built on some platforms.
9.2.2.3
[G UIDELINE ] If UPnP devices and control points use a self-assigned IPv4 address, then they shall
implement duplicate address detection before assigning the address.
[ATTRIBUTES ]
[C OMMENT] This guideline repeats a UPnP DA requirement that prevents the assignment of
conflicting IPv4 addresses (see subclauses 0.2 and 0.3 of ISO/IEC 29341-1).
9.2.2.4
[G UIDELINE ] If a DLNA device class implements a DHCPv4 server, it shall provide a mechanism to
disable and enable the DHCPv4 server.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the condition for DHCPv4 server support in a DLNA device. The
user needs to be able to disable the DHCPv4 server function to avoid the presence of multiple
DHCPv4 servers providing different network configurations on the same home network.
[ATTRIBUTES ]
[C OMMENT] This requirement ensures that devices always listen on port 1900. Devices respond to
M-SEARCH messages according to ISO/IEC 29341-1.
9.2.3.2
[G UIDELINE ] UPnP control points should receive and process NOTIFY messages on port 1900.
[ATTRIBUTES ]
[C OMMENT] This guideline encourages UPnP control points to listen on port 1900 and use the
information from NOTIFY messages (ssdp:alive and ssdp:byebye). However, some UPnP control
points rely on M-SEARCH messages instead of NOTIFY messages to keep track of UPnP devices.
For example, if UPnP control points connect sporadically to the network to perform media-related
tasks.
9.2.3.3
[G UIDELINE ] UPnP devices shall always explicitly specify port 1900 in every HOST header tag for
every SSDP message.
[ATTRIBUTES ]
9.2.3.4
[G UIDELINE ] UPnP control points receiving an SSDP message without the port number in the
HOST header tag, shall infer the port number is 1900.
[ATTRIBUTES ]
9.2.3.5
[G UIDELINE ] UPnP control points shall send M-SEARCH messages using a source port greater
than 1024 and not 1900.
[ATTRIBUTES ]
[C OMMENT] These guidelines are based on a Microsoft technical advisory regarding security
concerns for UPnP.
9.2.3.6
[G UIDELINE ] UPnP devices may ignore M-SEARCH messages if the originating source port is less
than or equal to 1024 or equal to 1900.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This suggestion avoids SSDP discovery flooding on home networks that contain a
large number of UPnP endpoints.
9.2.4.2
[G UIDELINE ] UPnP network devices shall not send more than 10 ssdp:alive messages from a single
IP address in any given 200 ms period.
[ATTRIBUTES ]
[C OMMENT] This guideline prevents lost packets caused by buffer overflow of Ethernet drivers by
UPnP devices with many services or embedded devices in the device hierarchy.
9.2.4.3
[G UIDELINE ] UPnP devices shall send each advertisement set more than once on a single network
interface. It is recommended that UPnP devices send a total of 2 or 3 advertisement sets.
An advertisement set refers to the set of 3+2d+k ssdp:alive messages that UPnP device sends as
part of its periodic advertisements.
The transmission windows for advertisement sets and duplicate sets cannot overlap in time.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies how a UPnP device needs to retransmit its advertisements.
However, implementers are reminded that advertising too frequently runs the risk of flooding the
SSDP channel.
9.2.4.4
[G UIDELINE ] A UPnP device that uses the same UDN on multiple network interfaces, shall send
each individual ssdp:alive message (from an advertisement set) on all interfaces within a 10 s
transmission window.
Time intervals between individual ssdp:alive messages on a single interface are not restricted by
this requirement.
[ATTRIBUTES ]
[C OMMENT] Control Points need a way to determine the most reliable network route to the UPnP
device. This guideline ensures that control points will receive an individual ssdp:alive message on
all network interfaces within a 10 s transmission window.
9.2.4.5
[G UIDELINE ] The interval of sending these advertisement groups on a single network interface
shall be less than half of the CACHE-CONTROL value.
The first advertisement set and the duplicate sets (transmitted on a single network interface) make
up an advertisement group.
[ATTRIBUTES ]
[C OMMENT] For consistency and interoperability, devices need to advertise more often than their
notification cycle. However, implementers are reminded that advertising too frequently runs the risk
of flooding the SSDP channel.
9.2.4.6
[G UIDELINE ] The CACHE-CONTROL value should be at least 1800, as recommended in the UPnP
device architecture.
[ATTRIBUTES ]
[C OMMENT] Most devices that remain on the network for long periods have a CACHE-CONTROL
value of 1800. However, some devices (mobile, wireless, etc.) might want a smaller
CACHE-CONTROL value.
Key
A One or more ssdp:alive messages, within advertisement sets and duplicate sets.
B Advertisement set of 3+2d+k ssdp:alive messages.
C Duplicate set of 3+2d+k ssdp:alive messages. (see 9.2.4.3)
D Combined advertisement set and duplicate sets make an advertisement group (see 9.2.4.5).
E Delay between advertisement groups on same network is less than half of a CACHE-CONTROL value (see 9.2.4.5).
F Any arbitrary window of 200 ms have 10 or fewer ssdp:alive messages (see 9.2.4.2). An entire advertisement set need
not fit inside the 200 ms window.
G An individual ssdp:alive message shall have all corresponding ssdp:alive sent within a 10 s transmission window (see
9.2.4.4).
H This delay is not drawn to scale.
9.2.4.7
[G UIDELINE ] Due to the unreliable nature of UDP, control points should send each M-SEARCH
message more than once, not to exceed 10 M-SEARCH requests in a 200 ms period. An
M-SEARCH message and its repeated duplicates should all be sent within a 10 s period. See Figure
15 for an example of UPnP discovery robustness.
[ATTRIBUTES ]
[C OMMENT] Wireless access points do not retry multicast traffic and can cause UPnP discovery
problems. This recommendation repeats advice from the UPnP DA.
The 10 M-SEARCH messages per 200 ms period is consistent with maximum saturation limit of 10
ssdp:alive messages per 200 ms period for UPnP devices (9.2.4.2). Likewise, the sending of all the
M-SEARCH messages in a window of 10 s is consistent with the requirement where all duplicates of
an individual ssdp:alive message are sent within 10 s (9.2.4.4).
9.2.4.8
[G UIDELINE ] The control point should wait at least the amount of time specified in the MX header
for responses to arrive from devices. The time waited for responses should be extended by
additional time (a second or two) to allow for network propagation and processing delays.
[ATTRIBUTES ]
9.2.4.9
[G UIDELINE ] Upon startup, UPnP devices should broadcast an ssdp:byebye before sending the
initial ssdp:alive onto the local network.
[ATTRIBUTES ]
[C OMMENT] The UPnP device architecture specification does not account for devices that reset
without sending an ssdp:byebye. If devices do not send an ssdp:byebye when returning to the
network after such an event, control points cannot tell if the received announcement is for a new
device instance, or is merely a periodic announcement for the same device instance.
Sending an ssdp:byebye as part of the normal start up process for a UPnP device ensures that
UPnP control points with information about the previous device instance will safely discard state
information about the previous device instance before communicating with the new device instance.
9.2.4.10
[G UIDELINE ] UPnP control points after acquireing a new IP address shall initiate searches (e.g.
M-SEARCH) from the new IP address.
[ATTRIBUTES ]
[C OMMENT] This guideline ensures a Control Point always discovers the available UPnP devices
after the acquisition of the new IP address, independent of whether the IP address is IPv4 or IPv6.
The timing of issuing M-SEARCH is as specified in guideline 9.2.4.1 as guidance.
For SSDP communications, UPnP endpoints shall use the HTTP/1.1 message format defined in
ISO/IEC 29341-1.
[ATTRIBUTES ]
[C OMMENT] SSDP messages are based on the HTTP/1.1 message format with method and header
extensions.
9.2.5.2
[G UIDELINE ] UPnP devices shall support HTTP/1.1.
[ATTRIBUTES ]
9.2.5.3
[G UIDELINE ] HTTP servers of UPnP control points shall support HTTP/1.1.
[ATTRIBUTES ]
9.2.5.4
[G UIDELINE ] HTTP clients of UPnP control points should use and support HTTP/1.1.
[ATTRIBUTES ]
9.2.5.5
[G UIDELINE ] The message format of HTTP responses (sent by HTTP servers of both devices and
control points) shall be compliant with the version number specified by the request.
[ATTRIBUTES ]
[C OMMENT] The clarifying IETF specification (IETF RFC 2145) states that HTTP/1.1 servers
should return HTTP/1.1 even if the HTTP server receives a request marked with HTTP/1.0. The
robustness rules, specified by the HTTP specification, enables clients and servers that employ
different HTTP version numbers to coexist properly.
9.2.5.6
[G UIDELINE ] HTTP/1.1 servers of UPnP endpoints (devices and control points) should return HTTP
version 1.1 in the response header, regardless of the version specified in the HTTP client's request.
[ATTRIBUTES ]
9.2.5.7
[G UIDELINE ] HTTP servers of UPnP endpoints (devices and control points) shall not report a higher
version of HTTP than is actually supported by the implementation.
[ATTRIBUTES ]
9.2.5.8
[G UIDELINE ] The HTTP servers and clients of UPnP endpoints (devices and control points) shall be
able to properly parse all HTTP headers provided to them. In particular, they shall support HTTP
header tags in any order and accept the tag name in a case insensitive manner and associated data
in a case sensitive manner. If a header tag is not recognized by a UPnP endpoint, it shall ignore the
header and continue parsing the packet.
This guideline applies to all HTTP headers, regardless of whether the DLNA guidelines define a
BNF syntax for the HTTP header value. In other words, all endpoints shall implement a "parse and
interpret" or "parse and ignore" when parsing an HTTP header field.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies a minimal robustness level for parsing HTTP headers. The
HTTP headers include both HTTP headers defined in IETF RFC 2616 and other headers, such as
DLNA defined and vendor defined headers, used for DLNA interoperability.
9.2.5.9
[G UIDELINE ] The HTTP servers and clients of UPnP endpoints (devices and control points) shall
include the Content-Type header tag in every UPnP-related TCP-based HTTP transaction (SOAP,
GENA, and device/service description) that contains an XML body. This content type shall always
be marked as the following:
• text/xml; charset="utf-8"
Note that charset parameter value is case insensitive and double quotations may be omitted.
UPnP endpoints (devices and control points) that receive a content type of text/xml shall infer UTF-8
character set encoding.
[ATTRIBUTES ]
9.2.5.10
[G UIDELINE ] If the DLNA guidelines define a BNF syntax for an HTTP header, then the HTTP
servers and clients of UPnP endpoints shall not include white spaces in the header-value of HTTP
headers unless SP and LWS are explicitly specified in the syntax (BNF) definitions.
If the DLNA guidelines do not define a BNF syntax for an HTTP header, then the header shall
conform to the message-header syntax in 4.2 of IETF RFC 2616, regardless of whether the HTTP
header is defined in IETF RFC 2616 or if the HTTP header is vendor-defined. Note that the syntax
for field-value permits LWS to separate tokens and other data in the field-value.
Implied LWS between the HTTP header-name and the HTTP header-value are permitted as
specified in IETF RFC 2616, regardless of whether the DLNA guidelines specify a BNF syntax for
the HTTP header.
[ATTRIBUTES ]
[C OMMENT] Conformance to 6.4, the restriction on the use of SP and LWS characters, is applied in
UPnP HTTP communications. White spaces between header-name and header-value are still
acceptable.
The header-name and header-value are defined by the field-name and field-value tokens of the
message-header syntax in 4.2 of IETF RFC 2616.
[C OMMENT] The use of the Content-Length field greatly reduces the parsing complexity of HTTP
message bodies on a UPnP control point.
When an HTTP server responds to an HTTP/1.0 request without closing the socket, the
Content-Length field is the only method that a client can use to determine that the entire response
was received.
9.2.6.2
[G UIDELINE ] If a UPnP device's HTTP server responds to a SOAP request as part of an HTTP/1.0
transaction, then the UPnP device shall close the TCP connection after the response has been sent.
[ATTRIBUTES ]
[C OMMENT] This is the proper behavior for a UPnP device, as it follows standard HTTP rules.
9.2.6.3
[G UIDELINE ] If a UPnP control point's HTTP server responds to a GENA event as part of an
HTTP/1.0 transaction, then the control point shall close the TCP connection after the response has
been sent.
[ATTRIBUTES ]
[ATTRIBUTES ]
9.2.7.2
[G UIDELINE ] A UPnP control point's HTTP server shall close the TCP connection after responding
to an event that was sent with the CONNECTION: CLOSE token.
[ATTRIBUTES ]
9.2.7.3
[G UIDELINE ] HTTP clients of UPnP endpoints (devices and control points) shall not report support
for HTTP/1.1 unless they also support Chunked Transfer Coding and correctly parse a 100
(Continue Response), as required by the HTTP/1.1 specification.
[ATTRIBUTES ]
[C OMMENT] Only HTTP clients that support Chunked Transfer Coding and 100 (Continue
Response) messages can initiate HTTP/1.1 transactions.
9.2.7.4
[G UIDELINE ] The HTTP servers of UPnP endpoints (devices and control points) shall use the
Content-Length HTTP header tag at all times, unless the connection will be closed after the
response is sent or Chunked Transfer Coding is used.
[ATTRIBUTES ]
[C OMMENT] When an HTTP/1.1 server sends a response back to the client without closing the
socket afterwards, the client will not know when the entire response was received, unless the
response was encoded with Chunked Transfer Coding, without interpreting the Content-Length
header.
9.2.7.5
[G UIDELINE ] The HTTP clients of UPnP endpoints (devices and control points) may issue
HTTP/1.1 requests encoded with Chunked Transfer Coding.
[ATTRIBUTES ]
[C OMMENT] These guidelines repeat the HTTP specification by noting the permitted use of
Chunked Transfer Coding for HTTP/1.1 requests. HTTP clients of UPnP devices can use Chunked
Transfer Coding for delivery of UPnP GENA events. HTTP clients of UPnP control points can use
Chunked Transfer Coding for delivery of UPnP SOAP actions. As such, HTTP/1.1 servers of UPnP
endpoints are required to support HTTP/1.1 requests encoded with Chunked Transfer Coding.
9.2.7.6
[G UIDELINE ] The HTTP servers of UPnP endpoints (devices and control points) shall accept,
decode, and respond to HTTP/1.1 requests encoded with Chunked Transfer Coding.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Persistent HTTP connections allow devices and control points to use fewer resources
when communicating. Pipelining adds the ability for control points to queue requests onto an
existing session.
9.2.8.2
[G UIDELINE ] The HTTP clients of UPnP endpoints should use persistent HTTP/1.1 connections.
[ATTRIBUTES ]
[C OMMENT] The default behavior for HTTP/1.1 is a persistent connection. Persistent connections
result in no accumulation of TCP TIME-WAIT because the originator of the connection closes the
socket.
9.2.8.3
[G UIDELINE ] The HTTP clients of UPnP endpoints shall fall back to non-pipelining if the connection
is closed after the first request and a second (or more) request from the same network entity is
pending.
[ATTRIBUTES ]
[C OMMENT] This guideline ensures consistent and correct behavior between mixes of UPnP
endpoints that might or might not support HTTP pipelining.
9.2.8.4
[G UIDELINE ] The HTTP servers of UPnP endpoints (devices and control points) that do not support
persistent connections shall answer the first HTTP request from the requesting UPnP control point
and close the TCP connection to correctly ignore other requests.
[ATTRIBUTES ]
9.2.8.5
[G UIDELINE ] The HTTP clients of UPnP endpoints that send multiple requests in a single HTTP
session shall be ready to open new HTTP sessions if the device does not respond to all requests on
the initial HTTP session.
[ATTRIBUTES ]
9.2.8.6
[G UIDELINE ] The HTTP clients of UPnP endpoints shall close a persistent connection (HTTP/1.1)
within 60 s of inactivity (i.e., no traffic and no pending requests).
This guideline applies to both UPnP devices and control points. Context of this guideline is specific
to UPnP related communications, excluding SSDP communications. This guideline does not apply
to the transport layer communications for media content transfers.
[ATTRIBUTES ]
[C OMMENT] This prevents control points and devices from holding network sockets for an
unnecessarily long period.
That being stated, the original inspiration for these guidelines is that some UPnP AV MediaServer
devices cannot guarantee that a response will complete within 30 s for a variety of reasons. Network
bandwidth, query complexity, and hardware performance can vary. This being the case, such
devices shall still begin their response within 30 s.
Also note that a UPnP AV MediaServer can reduce a long transmission time for a SOAP response
(for a CDS:Browse or CDS:Search action) by reducing the number of returned items in the result.
See guideline 10.1.4.10.7 for more information.
9.2.9.2
[G UIDELINE ] UPnP devices shall begin the transmission of a SOAP response within 27 s of
receiving a complete SOAP request.
[ATTRIBUTES ]
9.2.9.3
[G UIDELINE ] UPnP devices should begin the transmission of SOAP responses as soon as possible.
[ATTRIBUTES ]
9.2.9.4
[G UIDELINE ] UPnP devices should complete the transmission of a SOAP response within 29 s.
[ATTRIBUTES ]
9.2.9.5
[G UIDELINE ] A UPnP control point may terminate the TCP connection for a SOAP response
transmission that exceeds 30 s.
[ATTRIBUTES ]
[ATTRIBUTES ]
9.2.10.2
[G UIDELINE ] DLNA UPnP devices shall employ the <dlna:X_DLNADOC> XML element inside the
<device> element of the device description document to indicate adherence to a particular DLNA
Home Networked Device interoperability guidelines document version. The value of this element is
the DLNA Device Class or DLNA Device Capability, a dash character, followed by the numeric
version value of the interoperability guidelines document.
The <dlna:X_DLNADOC> element indicates DLNA compliance for a specific <device>, excluding its
embedded devices listed in <deviceList>.
The value of the <dlna:X_DLNADOC> element is a string as defined below. Linear white spaces
(LWS) are not implied in this definition below.
• major-version = DIGIT
• minor-version = DIGIT DIGIT
The dlna-dev-class represents a Device Class of a DLNA device.
The capability-host represents a DLNA Device Class that hosts a DLNA Device Capability.
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">
DMS-4.0
</dlna:X_DLNADOC>
[ATTRIBUTES ]
[C OMMENT] Provides an easy way of distinguishing UPnP devices that are claimed as being DLNA
Device Classes or DLNA Device Capabilities.
This guideline specifies the scoping rules for the <dlna:X_DLNADOC> element. Essentially, UPnP
devices (in a device hierarchy) are to be marked explicitly as being DLNA devices. Although the
subject matter is technically out of the scope of this guideline, the device hierarchy permits a non
DLNA UPnP device to be listed in a device hierarchy that has DLNA devices.
The <dlna:X_DLNADOC> element can appear multiple times such as is the case for a DMS and
M-DMS combination device.
9.2.10.3
[G UIDELINE ] The<dlna:X_DLNADOC> element may appear multiple times.
[ATTRIBUTES ]
9.2.10.4
[G UIDELINE ] UPnP control points shall be matched against multiple <dlna:X_DLNADOC> elements.
Specifically, a control point that claims to discover a particular type DLNA device class or device
capability shall be able to discover that type of DLNA device class or device capability, even if the
specific <dlna:X_DLNADOC> element of interest is not the first <dlna:X_DLNADOC> in the device
description document.
[ATTRIBUTES ]
9.2.10.5
[G UIDELINE ] The namespace "urn:schemas-dlna-org:device-1-0" shall be specified in the <root>
element or the <dlna:X_DLNADOC> element and the namespace prefix shall be "dlna:".
[ATTRIBUTES ]
9.2.10.6
[G UIDELINE ] UPnP control points shall ignore the element value of <dlna:X_DLNADOC>. For
example, DLNA control points shall not filter out a DLNA device because the version value is
different from what is expected.
[ATTRIBUTES ]
[C OMMENT] In the near-term, the <dlna:X_DLNADOC> version number is useful for testing
purposes. Future guidelines will specify behavior for interoperability between newer and older
DLNA devices and the purpose of this field might change.
9.2.10.7
[G UIDELINE ] If a vendor builds an implementation of a Device Class (with zero or more Device
Capabilities or Device Options) or a discoverable Device Capability, then the implementation shall
comply with all mandatory portions of the interoperability guidelines for the specified dlna-version
token 9.2.10.2. If a vendor implements an older version of the interoperability guidelines, then the
vendor shall not implement guidelines defined in newer versions of interoperability guidelines with
the following exception:
• Devices that implement older versions of the interoperability guidelines may support Media
Format Profiles defined in newer versions.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies that Vendors are not to selectively implement portions of
newer versions of DLNA's interoperability guidelines.
For example, if a vendor wants to build a DMS that supports RTP in the DLNA-defined manner, then
the vendor will implement the DMS according to the 1.50 (or newer) version of the interoperability
guidelines, which includes using a value of "1.50" for the dlna-version token. A DMS implementation
that uses a "1.00" value for the dlna-version but implements guidelines that are specific to newer
versions of interoperability guidelines is a violation of this guideline.
The primary reason for this guideline is to ensure that newer implementations participate in the
DLNA networking ecosystem in a manner that is consistent with the assumptions of those guidelines.
Newer versions of interoperability guidelines are drafted with compatibility for previous versions,
but newer versions sometimes have new mandatory requirements. The new mandatory guidelines
often ensure the robustness of the network, which is needed when interoperability guidelines
increase network complexity through new usages.
This guideline makes no claim on policy decisions about granting a DLNA logo/certification to
implementations that use older versions of interoperability guidelines. DLNA reserves the right to
require a baseline version of interoperability guidelines for future implementations.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point will handle DLNA devices that include a combination or an
aggregate of devices and services. A specific limit sets a bound on memory and processing
requirements for control points.
9.2.11.2
[G UIDELINE ] UPnP control points shall support device hierarchies that have up to a total of 6 DLNA
devices with a maximum depth of 4. Root devices have a depth of 1.
[ATTRIBUTES ]
9.2.11.3
[G UIDELINE ] DLNA UPnP devices shall be functionally independent even if they are in the same
device hierarchy. In other words,
[ATTRIBUTES ]
[C OMMENT] These guidelines simplify control point implementations by not requiring them to know
about any functional dependencies between DLNA UPnP devices found in a device hierarchy.
Although the subject matter is technically out of scope, this guideline does not prohibit the use of a
UPnP device that has functional dependence on another UPnP device. However, a device that has
a functional dependence cannot be marked with a <dlna:X_DLNADOC> element.
9.2.11.4
[G UIDELINE ] DLNA control points shall not assume any functional dependency between embedded
devices that contain the <dlna:X_DLNADOC> element.
For example, a control point that requires UPnP actions to be called on one of the UPnP devices
before calling UPnP actions on another UPnP device (both UPnP devices belong to the same
hierarchy and have the <dlna:X_DLNADOC> element) is in violation with this requirement.
[ATTRIBUTES ]
9.2.11.5
[G UIDELINE ] UPnP devices may be implemented as a descendent of a UPnP root device, which
might or might not be a standard UPnP device type.
[ATTRIBUTES ]
9.2.11.6
[G UIDELINE ] UPnP control points shall interoperate with embedded DLNA devices that exist in
device hierarchies where the root happens to be a non-standard UPnP device type (i.e.
vendor-defined UPnP device type).
[ATTRIBUTES ]
9.2.11.7
[G UIDELINE ] UPnP devices that are not DLNA-compliant may be listed in a device hierarchy.
These non-DLNA UPnP devices count against the maximum number of 6 total UPnP devices in the
device hierarchy, indicated in 9.2.11.1.
[ATTRIBUTES ]
[C OMMENT] This guideline permits that a device hierarchy to have UPnP devices that do not have
the <dlna:X_DLNADOC> element.
[ATTRIBUTES ]
[C OMMENT] UPnP devices fully and accurately reflect capabilities required by the standardized
Device Control Protocol (DCP) and listed in the UPnP device's service control protocol document
(SCPD).
9.2.12.2
[G UIDELINE ] A UPnP state variable shall not be present unless it meets at least one of the following
characteristics.
• The UPnP state variable is actually used by the device, either as an evented state variable or as
an action parameter.
• The UPnP state variable is normatively defined by a UPnP service to neither be evented nor
used for an action parameter.
[ATTRIBUTES ]
[C OMMENT] This guideline is in consideration of the fact that control points can run on a platform
with limited resources.
9.2.12.3
[G UIDELINE ] If an allowed value list or value range is specified, UPnP devices should accept all
values in the state variable range, regardless of the stepping (as indicated by a <step> element of
the UPnP state variable).
[ATTRIBUTES ]
[C OMMENT] Although it is preferable for control points to employ logic for correctly checking an
argument for compliance against a device's stepping, this is not always the case. For broader
interoperability, this guideline is suggested for UPnP devices, but it is not mandatory. Note that the
AVTransport, ContentDirectory, and ConnectionManager services do not have state variables that
use stepping by default.
9.2.12.4
[G UIDELINE ] Services with evented state variables shall support SUBSCRIBE and UNSUBSCRIBE
operations.
[ATTRIBUTES ]
[C OMMENT] Specifies normative behavior for services with evented state variables.
9.2.12.5
[G UIDELINE ] DCP-required or SCPD-specified state variables with the attribute SendEvent="Yes"
shall actually be evented.
[ATTRIBUTES ]
9.2.12.6
[G UIDELINE ] Service description files shall not exceed 51 200 B (50 KiB). This byte limit includes
the HTTP headers.
[ATTRIBUTES ]
[C OMMENT] This provides a reasonable maximum length for service description files.
[ATTRIBUTES ]
[C OMMENT] All standard elements in device and service descriptions do not use a namespace
prefix.
[ATTRIBUTES ]
9.2.14.2
[G UIDELINE ] A UPnP device shall parse and interpret a SOAP action request in which the number,
names and ordering of input arguments are identical to what is specified in the corresponding SCPD
(which is the same as specified in the standardized DCP).
[ATTRIBUTES ]
9.2.14.3
[G UIDELINE ] A UPnP device response to a SOAP action shall contain the number, name, and
ordering of output arguments that are identical to what is specified in the corresponding SCPD
(which is the same as specified in the standardized DCP).
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline provides control points with a minimal SOAP packet size (total size for
headers and body). It is understood that the support of larger SOAP requests is permitted.
9.2.15.2
[G UIDELINE ] UPnP control points shall be able to accept SOAP responses that are up to 204 800 B
(200 KiB) in size. This byte limit includes the HTTP headers.
[ATTRIBUTES ]
[C OMMENT] Security recommendations call out 200 KiB as a reasonable upper bound for SOAP
responses (total size for headers and body).
9.2.15.3
[G UIDELINE ] UPnP control points may refuse SOAP responses that are more than 204 800 B
(200 KiB) in size. This byte limit includes the HTTP headers.
DLNA guidelines; Part 1-1: Architecture and protocols
– 97 –
Control points may implement the not accept SOAP response behavior by terminating the TCP
connection after 200 KiB is reached.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This requirement covers the proper expected behavior for any UPnP endpoint and is
repeated here due to its importance in gracefully recovering from error conditions on a distributed
home network.
9.2.16.2
[G UIDELINE ] UPnP control points shall be able to tolerate unknown method error codes for UPnP
actions
[ATTRIBUTES ]
[C OMMENT] Ideally, UPnP control points treat all unknown method error codes for UPnP actions as
a generic error condition.
9.2.16.3
[G UIDELINE ] HTTP clients for UPnP endpoints (devices and control points) are not required to
understand unknown HTTP status code values, but they shall understand the class of the status
code. The class of the status code is indicated by the first digit of the status code numeric value.
HTTP clients shall treat unrecognized status code values as equivalent to the x00 code of the class.
[ATTRIBUTES ]
9.2.16.4
[G UIDELINE ] UPnP devices should not use the UPnP error code value of 402 when a received
SOAP action request contains arguments with unknown argument names.
[ATTRIBUTES ]
[C OMMENT] The proper way of handling a SOAP action request that contains arguments with
unknown argument names is to ignore those arguments (9.2.23) and process the request as if those
arguments have never existed.
The UPnP DA 1.0 requires devices to ignore unknown elements in all XML fragments, including
unknown arguments in SOAP requests. However, the UPnP DA 1.0 also allows the use of the UPnP
error code value of 402 (Invalid Args) to indicate that unknown arguments are found in SOAP
requests. This error in the specification has since been acknowledged and corrected in the draft
version of the UPnP DA v1.1. As a result of this ambiguity, certain existing devices issue the UPnP
error code value of 402 (Invalid Args) in the event of unknown arguments. This behavior is
discouraged, but it does enable backward compatibility.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum capability of control points to receive events of
20 KiB in size (for headers and body). Control points are permitted to support larger GENA events.
9.2.17.2
[G UIDELINE ] UPnP control points may choose not to accept GENA event transmissions that are
more than 20 KiB in size.
Control points may implement the not accept GENA event behavior by terminating the TCP
connection after 20 KiB is reached.
[ATTRIBUTES ]
+EPG+
The only exception to this rule is if the device can guarantee that a TCP FIN packet is sent before
the initial event message is sent to the subscribing control point.
[ATTRIBUTES ]
[C OMMENT] In order for a control point to receive the initial event from a UPnP device, a control
point needs to know the Subscription ID (SID) value.
The SID is obtained in the response to a SUBSCRIBE request.
Therefore, a control point will receive the entire SUBSCRIBE response before it receives the first
event.
The HTTP clients of control points only have two ways to know when the SUBSCRIBE response has
finished. The first is to complete the transaction when the Content-Length:0 values are specified.
The second is to receive the TCP FIN flag in the TCP stream.
9.2.18.2
[G UIDELINE ] UPnP devices shall assign a globally unique SID, where the global context is defined
as the UPnP network. The format for the uuid is as specified in 9.2.19.
[ATTRIBUTES ]
Example:
uuid:00000000-0000-0000-0000-000000000000
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] There are several ways to generate a UUID value. The best way to generate a UUID
involves using some form of a network address and the current time, such as the algorithm
described in Universal Unique Identifier.
9.2.21.2
[G UIDELINE ] If UPnP control points want to continue receiving UPnP events, then they shall renew
their subscriptions before the negotiated subscription TIMEOUT expires.
[ATTRIBUTES ]
The UPnP device behavior of enforcing this 5 min TIMEOUT value is implemented by specifying
"TIMEOUT: second-300" as an HTTP header/value pair.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point that subscribes to events and then subsequently leaves the
UPnP network will cause a UPnP device to possess an event subscription to an invalid address. The
device will not hold up events to other subscribing control points while, for example, the HTTP
session with the absent UPnP control point times out. This scenario has been a major cause of
UPnP control point disruption and usability problems. UPnP control points that stop receiving
events might incorrectly indicate to the user that a device is stalled or is malfunctioning.
9.2.22.2
[G UIDELINE ] UPnP devices should monitor their subscription lists and remove control points that
fail to renew their subscription within the negotiated time.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline addresses forward compatibility and also ensures broader
interoperability between implementations that employ vendor extensions in the manner described
by the guideline.
• SOAP actions
• GENA events
• Device description files
• Service description (SCPD) files
• UPnP presentation files
• SSDP messages
[ATTRIBUTES ]
[C OMMENT] These guidelines are mandatory because DLNA Device Classes cannot depend on
DNS infrastructure within a home network environment.
9.2.24.2
[G UIDELINE ] The a.b.c.d format for IPv4 addresses shall be used for UPnP communications, using
IPv4, where each quad represents a byte in network byte order form.
[ATTRIBUTES ]
9.2.24.3
[G UIDELINE ] IPv6 addresses used for UPnP communications shall be formatted according to
guidance in ISO/IEC 29341-1-2 Annex A Clause A.4.
[ATTRIBUTES ]
9.2.24.4
[G UIDELINE ] HTTP URI escaping is always performed according to the URI specification IETF RFC
1738 as required in 3.2.1 of the HTTP/1.1 specification IETF RFC 2616.
[ATTRIBUTES ]
9.2.24.5
[G UIDELINE ] All URIs used for UPnP communications shall not exceed 256 B in URI-escaped
UTF-8 encoded form. This guideline applies to both absolute URIs and complete URIs (relative
URIs combined with a base path).
UPnP communications does not cover informational URIs for the manufacturer or product/model
used inside UPnP Device Descriptions. It also does not cover indirectly referenced content, such as
URIs inside the presentation files.
[ATTRIBUTES ]
[C OMMENT] These guidelines provide a maximum URI length for the UPnP layer. See guideline
10.1.3.10 subguideline 10.1.3.10.4 for the maximum URI length at the UPnP AV layer.
According to 2.10 of W3C XML, white spaces are significant (i.e. non-markup characters) in XML
elements that contain character data. Therefore XML elements that contain a single (absolute or
relative) URI value cannot have preceding or trailing white spaces.
9.2.24.6
[G UIDELINE ] All URIs (not used for UPnP communications) shall not exceed 1 024 B, in the
URI-escaped UTF-8 encoded form. This guideline covers URIs, such as (but not limited to)
9.2.24.7
[G UIDELINE ] UPnP devices should not use the <URLBase> element in the device description
document.
[ATTRIBUTES ]
[C OMMENT] These requirements have several benefits. Since the device description and service
description documents will no longer include IP addresses and port numbers, UPnP devices are
simplified. The document can be sent even if the IP address changes or the device is multi homed.
UPnP control points will have an easier time dealing with UPnP devices that meet these
requirements, and will be able to handle any situation that arises.
The terms Base URI, Relative URI, and Absolute URI are used here in a manner consistent with
their definitions introduced in IETF RFC 2396.
9.2.24.8
[G UIDELINE ] If a URI in a device description is used for SOAP actions, GENA events, SCPD files,
or UPnP presentation files, then the URI may be a Relative URI as defined in IETF RFC 2396 with
its Base URI as defined in guideline 9.2.24.12.
[ATTRIBUTES ]
9.2.24.9
[G UIDELINE ] UPnP control points shall work with UPnP devices that use a <URLBase> element and
with those that do not use a <URLBase> element. Control points shall also work with UPnP devices
that use Absolute or Relative URIs.
[ATTRIBUTES ]
+EPG+
9.2.24.10
[G UIDELINE ] UPnP devices shall use the CALLBACK URI value sent by control points for event
delivery, provided that the CALLBACK URI value is consistent with guidelines 9.2.24.1 to 9.2.24.5.
[ATTRIBUTES ]
9.2.24.11
[G UIDELINE ] UPnP control points shall not specify more than one CALLBACK URI value for the
CALLBACK header in a request with the SUBSCRIBE method.
[ATTRIBUTES ]
9.2.24.12
[G UIDELINE ] If the <URLBase> element is used, it shall define the Base URI to be used for
declaring Relative URIs. When this element is omitted, the LOCATION value (URL) in the device
advertisement shall define the Base URI.
[ATTRIBUTES ]
9.2.24.13
[G UIDELINE ] Relative URI and a Base URI shall be resolved into an Absolute URI according to the
process defined in IETF RFC 3986.
Examples.
[C OMMENT] In terms of syntax, reference IETF RFC 3986 defines an Absolute URI and a Relative
URI. A Relative URI is further classified as belonging to one of three types:
In the example introduced in guideline 9.2.24.13, the <SCPDURL> value is an example of a Relative
URI with an Absolute path. The <controlURL> value is an example of a Relative URI with a Relative
path. The <eventSubURL> value is an example of an Absolute URI.
[C OMMENT] UPnP control points often bind UDN values to device representations. Therefore, a
device that changes its logical representation causes problems if it uses the same UDN. This
guideline does not apply if the device sends an ssdp:byebye message. In such cases, the device
can still keep its UDN value and change its logical representation before rejoining the UPnP
network.
9.2.25.2
[G UIDELINE ] A DLNA UPnP control point that removes a UPnP device from its list of active devices
shall also invalidate its local representation of the device.
The control point removes a device for a variety of reasons, such as a CACHE-CONTROL timeout.
Invalidating the local representation of the device means that the control point shall reload the
device description and service description files.
[ATTRIBUTES ]
[C OMMENT] This guideline obligates a control point to refresh device description and service
description documents the next time the device is discovered. This, for example, allows a device to
add additional supported actions or services (via firmware update), without having to change the
UDN of the device.
[ATTRIBUTES ]
[C OMMENT] Implementing this guideline enables usages such as my favorite devices. Preferably,
UPnP device UDN values will be long-lived.
UPnP DA states as follows:
UDN: Shall be the same over time for a specific device instance (i.e., shall survive reboots).
9.2.26.2
[G UIDELINE ] UPnP devices shall not change the UDN if only the <friendlyName> or IP addresses
values are changed.
[ATTRIBUTES ]
[C OMMENT] UPnP control point can identify UPnP devices even if FriendlyName or IP addresses
are changed.
9.2.26.3
[G UIDELINE ] In conjunction with the restrictions in 9.2.26.2, UDN may be changed if a UPnP device
changes its device description or any of its supported services.
[ATTRIBUTES ]
9.2.26.4
[G UIDELINE ] If a UPnP device UDN changes, it shall re-advertise on the network using the new
UDN.
[ATTRIBUTES ]
[C OMMENT] Control Points that receive the advertisement know that a new UPnP device is
available. This is required by guideline 9.2.15.2.
9.2.26.5
[G UIDELINE ] If a UPnP device UDN changes, it shall send an ssdp:byebye for the old UDN.
[ATTRIBUTES ]
[C OMMENT] Without this guideline, UPnP control points will have no idea that the old UDN is no
longer valid. This is required by guideline 9.2.15.2.
9.2.26.6
[G UIDELINE ] A UPnP device shall limit their UDN to a UTF-8 encoded string value containing
"uuid:" followed by a UUID as specified in 9.2.19.
[ATTRIBUTES ]
[C OMMENT] See 9.2.20 for a way to generate a globally unique 128-bit value for the UDN.
9.2.27.2
[G UIDELINE ] When a UPnP device has multiple IP addresses, the device may advertise on those IP
addresses with the same or different UDN.
[ATTRIBUTES ]
[C OMMENT] Multiple home network segments, wireless networking, and Auto IP can combine to
create usability problems that can be avoided by following the specified rules.
9.2.27.3
[G UIDELINE ] The LOCATION URL value in a UPnP device advertisement shall contain the source
IP address of the advertisement.
[ATTRIBUTES ]
9.2.27.4
[G UIDELINE ] Upon receiving multiple advertisements for the same UPnP device UDN, a UPnP
control point should select the vendor-defined preferred advertisement as the route to the device.
[ATTRIBUTES ]
9.2.27.5
[G UIDELINE ] When a UPnP control point gets an advertisement for a UPnP device UDN on a
different IP address from the one it has previously selected, it may continue to use its selected IP
address provided that it has received an advertisement on the selected IP address in the last 10 s.
Otherwise, if the UPnP control point does not receive an advertisement for its selected IP address
in the next 10 s, it may change its selection to the new IP address. Even if the control point keeps
the selected IP address in this case, it should change its selection to the new IP address when an
access to the selected IP address fails.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This requirement will ensure device icon compatibility and good authoring practices.
The reason for requiring PNG icons is that the lossless compression is much better for small size
images. Furthermore, alpha-blending makes it possible to present better user interfaces.
9.2.28.2
[G UIDELINE ] UPnP devices may provide additional icons in other formats besides PNG and JPEG.
[ATTRIBUTES ]
9.2.28.3
[G UIDELINE ] UPnP devices shall use <mimetype>, <width>, <height>, <depth>, and <url>
sub-elements for an <icon> element within its device description.
The value of <mimetype>, <width>, and <height> elements for DLNA device icons shall conform to
the DLNA icon Media Format Profiles 7.1.8 (GUN OFWYD) of IEC 62481-2, 7.1.9 (GUN VVWJZ) of
IEC 62481-2, 7.2.2 (GUN 6AXLT) of IEC 62481-2 and 7.2.3 (GUN SMM78) of IEC 62481-2,
respectively.
Values in Table 8 are recommended for the <depth> element which indicates color bits per pixel for
PNG and JPEG device icons.
[ATTRIBUTES ]
[C OMMENT] UPnP defines the way to indicate profiles for icon images.
Since <depth> value is unclear for PNG grayscale/index colored /alpha blending and JPEG, this
guideline encourages use of the values for <depth> element required by the UPnP DA. Note that the
values for PNG do not help to identify color types.
[ATTRIBUTES ]
[C OMMENT] Specifying UTF-8 as the encoding method for UPnP communications provides the
right balance for supporting a wide variety of languages without necessarily requiring devices to
support all languages.
Although UTF-8 has characters that are encoded in 6 B, W3C XML spec states that XML processors
accept any character in Unicode. This means XML parsers will decode up to 4 B of character.
Specifically, see 2.2 of W3C XML for more information. It calls out any Unicode character, excluding
the surrogate blocks, FFFE, and FFFF.
9.2.30.2
[G UIDELINE ] UPnP endpoints (devices and control points) shall never source XML with comments.
[ATTRIBUTES ]
9.2.30.3
[G UIDELINE ] UPnP endpoints (devices and control points) may reject any XML provided with
comments.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This simplifies control point implementations and also reduces the size of some UPnP
traffic.
[ATTRIBUTES ]
[C OMMENT] The HTTP specifications specify the format of the USER-AGENT HTTP header and
header value.
9.2.32.2
[G UIDELINE ] The syntax of DLNA-CP-version is a subset of the product token syntax (defined by
HTTP) and is described below.
Examples:
• USER-AGENT: DLNADOC/4.0
• USER-AGENT: UPnP/1.0 DLNADOC/4.0
• USER-AGENT: CERN-LineMode/2.15 libwww/2.17b3 DLNADOC/4.0 UPnP/1.0
[ATTRIBUTES ]
[C OMMENT]
a) The DLNA-CP-version token uses the syntax of a product token (as defined in the HTTP
specifications) to identify the DLNA guidelines version.
b) Space and separators cannot be used in a token, and the USER-AGENT header field uses the
token syntax. For example, "My DLNA Device / 1234" does not comply with the token syntax
because spaces are used in the string that is supposed to follow the token syntax.
9.2.32.3
[G UIDELINE ] UPnP devices shall be tolerant of UPnP action requests that specify a newer
dlna-version in the DLNA-CP-version token.
Tolerance means that the UPnP device responds according to the version indicated by the device's
<dlna:X_DLNADOC> value.
[ATTRIBUTES ]
[C OMMENT] This guideline is another clarification of the 9.2.23 in that it requires tolerance of
unknown HTTP headers and values.
This guideline essentially requires a DLNA-compliant UPnP device to respond to newer control
points using the DLNA-defined rules employed by the UPnP device.
[ATTRIBUTES ]
9.2.33.2
[G UIDELINE ] The HTTP client of UPnP endpoints (devices and control points) should specify a
relative URI in the HTTP request.
[ATTRIBUTES ]
The total HTTP header size is the total number of bytes from the first byte in the start-line token and
the last byte of the CRLF token, as used in the generic-message token defined in 4.1 of IETF RFC
2616: 1998, as quoted in the syntax below.
[C OMMENT] This provides a reasonable assumption as to how much memory is necessary for all
HTTP headers used in a single transaction related to UPnP communication.
The name space for the <dlna:X_DLNACAP> shall be "urn:schemas-dlna-org:device-1-0" and the
namespace prefix shall be "dlna:".
Example:
<dlna:X_DLNACAP
xmlns:dlna="urn:schemas-dlna-org:device-1-0">av-upload,image-upload,audio-upload</dlna:
X_DLNACAP>
[ATTRIBUTES ]
[C OMMENT] Other guidelines define the Capability ID values that are permitted in the
<dlna:X_DLNACAP> element. The discovery of DLNA RUI Device Capabilities uses element
<dlna:X_DLNADOC> defined in IEC 62481-6-1.
9.2.35.2
[G UIDELINE ] UPnP control points shall be tolerant of unknown Capability ID values.
Tolerant behavior is defined as being able to successfully "parse and interpret" or "parse and
ignore" the unknown text.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
10 Media management
10.1 AV media management
10.1.1 General
This subclause of the DLNA Home Networked Device interoperability guidelines covers the
guidelines for implementing media management using the UPnP AV architecture.
DLNA Home Networked Device interoperability guidelines version 1.0 had requirements for
metadata that is distributed on the home network. These guidelines are now updated with new
language for new Device Classes and Capabilities that implement the new system usages of DLNA
v1.5.
It is important to note that DIDL-Lite can be used in multiple contexts such as the following items.
• Some UPnP AV action request can carry DIDL-Lite metadata as input argument values (e.g.
CDS:CreateObject and AVT:SetAVTransportURI requests).
• Some UPnP AV action responses can carry DIDL-Lite metadata as output argument values (e.g.
CDS:CreateObject, AVT:GetMediaInfo, and AVT:GetPositionInfo request).
• Some UPnP AV events can carry DIDL-Lite metadata (e.g. AVT.LastChange and virtual instance
state variables such as AVT.CurrentTrackMetaData).
The general rules for handling XML documents and fragments are specified in 6.7.
• 10.1.2 specifies the UPnP AV components that are needed for a DLNA Device Class or a DLNA
Device Capability. For example, this subclause provides the guideline that specifies that a DMP
shall implement a UPnP AV MediaServer control point.
• 10.1.3 specifies general UPnP AV requirements that are used by a variety of UPnP AV devices
and control points. Guidelines that dictate rules for items like DIDL-Lite metadata, protocolInfo
values, and DLNA-defined parameters for the 4th field of protocolInfo values are in this
subclause.
• 10.1.4 provides guidelines that are specific to UPnP AV MediaServer devices. Occasionally, a
related guideline that specifies behavior for a UPnP AV MediaServer control point will also
appear in this subclause.
• 10.1.6 provides guidelines that are specific to UPnP AV MediaRenderer devices. Occasionally,
a related guideline that specifies behavior for a UPnP AV MediaRenderer control point will also
appear in this subclause.
• 10.1.7 provides UPnP AV guidelines that are related to the Upload system usage. Guidelines
that specify behavior for CDS:CreateObject and CDS:DestroyObject transactions appear in this
subclause.
10.1.2 Device Classes and Device Capabilities requirements
10.1.2.1 MM UPnP AV compliance
10.1.2.1.1
[G ENERAL ] The following requirements define which version of the UPnP AV specifications are
required to implement one or more DLNA system usages by DLNA Device Classes and Device
Capabilities.
10.1.2.1.2
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement one or more of the
MSCP, MSD, MRCP, and MRD Device Functions, as defined in 5.3, shall be compliant to the
appropriate version of UPnP AV specifications as defined in guidelines 10.1.2.1.3 through
10.1.2.1.7.
[ATTRIBUTES ]
10.1.2.1.3
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement one or more of the
MSCP, MSD, MRCP, and MRD Device Functions, as defined in 5.3, shall implement at a minimum
all of the mandatory portions for the appropriate ISO/IEC 29341-3-2 and ISO/IEC 29341-20-3
specifications to implement the Device Functions of the following system usages, as defined in 5.7,
unless overridden by 10.1.2.1.6.
• 2-box Pull,
• 2-box Push,
• 3-box,
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 116 –
• Download,
• Upload.
[ATTRIBUTES ]
[C OMMENT] ISO/IEC 29341-3-2 and ISO/IEC 29341-20-3 specifications are the baseline
architecture for the specified DLNA system usages.
10.1.2.1.4
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement one or more of the
MSCP and MSD Device Functions, as defined in 5.3, shall implement at a minimum all of the
mandatory portions for the ISO/IEC 29341-4-3 specification to implement the Device Functions of
the following system usage, as defined in 5.7, unless overridden by 10.1.2.1.6.
• Scheduled Recording.
[ATTRIBUTES ]
[C OMMENT] ISO/IEC 29341-4-3 is the baseline architecture for the specified DLNA system usage.
10.1.2.1.5
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement one or more of the
MSCP and MSD Device Functions, as defined in 5.3, shall implement at a minimum all of the
mandatory portions for the ISO/IEC 29341-14-3 specification to implement the Device Functions of
the following system usages, as defined in 5.7:
• Upload Synchronization;
• Download Synchronization;
• EPG.
[ATTRIBUTES ]
[C OMMENT] ISO/IEC 29341-14-3 is the baseline architecture for the specified DLNA system usage.
10.1.2.1.6
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement the MSD Device
Function, as defined in 5.3, to participate in more than one of the system usages, as defined in 5.7,
shall implement at a minimum all of the mandatory portions for the highest UPnP AV version
baseline requirement as defined in guidelines 10.1.2.1.3 through 10.1.2.1.5.
[ATTRIBUTES ]
[C OMMENT] The baseline AV architecture for a UPnP AV MediaServer is the highest mandated
baseline for all of the system usages implemented on a UPnP AV MediaServer. For example, a DMS
that implements the 2-box Pull, 3-box and the Upload Synchronization system usages, will need to
implement to the ISO/IEC 29341-14-3 specification (i.e. cannot implement to a mixture of AV
specification versions on a UPnP AV MediaServer).
10.1.2.1.7
[G UIDELINE ] The DLNA Device Classes and Device Capabilities that implement one or more of the
MSCP, MSD, MRCP, and MRD Device Functions, as defined in 5.3 and 5.7, may implement the
mandatory portions of the UPnP AV specifications above its required baseline (i.e. higher version)
for any of the DLNA system usages.
[ATTRIBUTES ]
O R DMS DMP DMR DMC M-DMS M-DMP n/a ISO/IEC 29341-14-10 JZ3X6
+DN+ +UP+ +PU+ M-DMC ISO/IEC 29341-4-10
+UPSYNC+ ISO/IEC 29341-14-11
+DNSYNC+ +SR+ ISO/IEC 29341-4-11
+EPG+ ISO/IEC 29341-20-12
ISO/IEC 29341-4-12
ISO/IEC 29341-14-12
ISO/IEC 29341-3-2
ISO/IEC 29341-4-2
ISO/IEC 29341-20-3
ISO/IEC 29341-4-3
ISO/IEC 29341-14-3
ISO/IEC 29341-3-13
ISO/IEC 29341-4-13
ISO/IEC 29341-4-14
ISO/IEC 29341-4-4
[C OMMENT] Any of the DLNA system usages can be implemented using a version of the UPnP AV
specification beyond its baseline. For example, devices implementing the 2-box Pull system usage
need to implement to ISO/IEC 29341-3-2 and ISO/IEC 29341-20-3 at a minimum. But they are
allowed to implement to the ISO/IEC 29341-4-2, ISO/IEC 29341-4-3 and ISO/IEC 29341-14-3, or
any future versions of the UPnP AV specifications.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that a DMP Device Class will use a UPnP control point that
controls a UPnP AV MediaServer for browsing content.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.1.2.4.2
[G UIDELINE ] A Download Controller shall implement a UPnP AV MediaServer control point for
browsing a ContentDirectory service on a DMS or M-DMS.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that a Download Controller Device Capability will use a UPnP
control point that controls a UPnP AV MediaServer for browsing content.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that an Upload Controller Device Capability will use a UPnP
control point that controls a UPnP AV MediaServer for sending content to the MediaServer.
See 10.1.8.3.2 and 10.1.8.3.3 for the functionality that needs to be implemented.
10.1.2.5.2
[G UIDELINE ] An Upload Controller that only implements the upload AnyContainer operation may
implement the CDS:Browse action as mandated in ISO/IEC 29341-20-12. This guideline overrides
the CDS:Browse action mandate for a UPnP AV MediaServer control point in 10.1.2.1.3.
[ATTRIBUTES ]
[C OMMENT] An Upload Controller (+UP+) is not obligated to implement the CDS:Browse action
when only implementing the upload AnyContainer operation.
[ATTRIBUTES ]
[C OMMENT] DMR device will implement the baseline services for a UPnP AV MediaRenderer. This
is in conjunction with the requirements for Rendering Endpoints described in 11.
10.1.2.6.2
[G UIDELINE ] A UPnP AV MediaRenderer shall identify in the Device Description Document the
AVTransport service, the RenderingControl service, and the ConnectionManager service using
serviceType and serviceId elements with the values given in Table 9.
serviceType urn:schemas-upnp-org:service:ConnectionManager:V a
ConnectionManager service
serviceID urn:upnp-org:serviceId:ConnectionManager
serviceType urn:schemas-upnp-org:service:AVTransport:V a
AVTransport service
serviceID urn:upnp-org:serviceId:AVTransport
serviceType urn:schemas-upnp-org:service:RenderingControl:V a
RenderingControl service
serviceID urn:upnp-org:serviceId:RenderingControl
a where V is the version number of the service.
[ATTRIBUTES ]
[C OMMENT] The serviceType and serviceId values uniquely identify the type of service. The table
above lists the element values in compliance with the related UPnP specifications.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum requirements for a DMR's AVTransport service.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum requirements for a DMR's ConnectionManager
service.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum requirements for a DMR's RenderingControl
service.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that the DMC and M-DMC Device Classes will use a UPnP
control point that controls a UPnP AV MediaServer and a UPnP AV MediaRenderer.
[ATTRIBUTES ]
10.1.2.11.2
[G UIDELINE ] A Push Controller shall implement a UPnP AV MediaRenderer control point that
interacts with the AVTransport service and the ConnectionManager service to verify that the
MediaRenderer can play the content and to start and stop the playback.
[ATTRIBUTES ]
[C OMMENT] A Push Controller is a capability that controls a DMR and serves the content directly to
the DMR. In addition to this guideline, a Push Controller needs to implement additional guidelines
related to MediaRenderer control points and Content Source endpoints.
[ATTRIBUTES ]
[C OMMENT] DMS and M-DMS devices implement the minimum baseline services for a UPnP AV
MediaServer.
10.1.2.12.2
[G UIDELINE ] A UPnP AV MediaServer shall identify in the Device Description Document the
ContentDirectory service and the ConnectionManager service using serviceType and serviceId
elements with the values given in Table 10.
[ATTRIBUTES ]
[C OMMENT] These serviceType and serviceId values uniquely identify the type of service. Table 10
above lists the element values in compliance with the related UPnP specifications.
10.1.2.12.3
[G UIDELINE ] A DMS and M-DMS may have a ScheduledRecording service in the UPnP AV
MediaServer device.
[ATTRIBUTES ]
10.1.2.12.4
[G UIDELINE ] If a DMS or an M-DMS contains a ScheduledRecording service then it shall implement
the DLNA ScheduledRecording Device Option as specified in 10.3.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum requirements for a DMS's and M-DMS's
ConnectionManager service.
Tolerant behavior is defined as being able to successfully "parse and interpret" or "parse and
ignore" the DIDL-Lite XML elements and attributes.
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that a UPnP AV MediaServer control point will continue to
behave properly even if a UPnP AV MediaServer device improperly implements its support of the
Filter argument for CDS:Browse and CDS:Search.
• [CDATA] payloads
• <!...> XML comments
DIDL-Lite documents and fragments are always assumed to have a UTF-8 encoding. The XML for
DIDL-Lite documents and fragments shall never contain XML comments. UPnP AV endpoints may
reject any XML that is not encoded with these restrictions.
[ATTRIBUTES ]
[C OMMENT] The flexibility of XML can cause problems for a number of XML parsers, especially
those on resource-limited platforms. These requirements balance the needs of control points with
the limitations of some devices.
The assumption of using only UTF-8 encoded DIDL-Lite documents and fragments enables wide
language support without requiring control points to handle multiple encoding formats.
Length-unlimited data types are the data types with an unspecified maximum length in string form.
These include string, URI, bin.hex, and base64 values.
[ATTRIBUTES ]
[C OMMENT] This guideline puts a worst-case limit on all other metadata values found in a DIDL-Lite
document or fragment. This allows for smaller limits to be specified, but that at this time this is a true
maximum.
This guideline applies only to simple element values that are string, URI, bin.hex and base64 values.
It does not apply to element values of other data types. It also does not apply to complex elements
that contain sub-elements.
10.1.3.3.2
[G UIDELINE ] In DIDL-Lite documents or fragments, element and attribute values that are
length-limited shall not exceed their implied lengths.
Length-limited data types are the data types with an implied maximum length in string form. These
include signed/unsigned integers, floating point numbers, Boolean values, etc. Table 11 defines the
maximum byte length for these data types that are used by the CDS and UPnP device architecture.
Data type in CDS Data type in UpnP device architecture Maximum byte
length
boolean boolean 5
unsigned integer ui4 10
integer i4 11
unsigned long n/a 20
long n/a 21
n/a ui1 3
n/a ui2 5
n/a i1 4
n/a i2 6
n/a int 11
n/a r4 14
n/a r8 22
n/a number 22
n/a fixed.14.4 20
Data type in CDS Data type in UpnP device architecture Maximum byte
length
n/a float
110 a
n/a char 1
n/a date 10
n/a dateTime 19
n/a dateTime.tz 29
n/a time 8
n/a time.tz 18
a Float shall be in the canonical representation.
[ATTRIBUTES ]
[C OMMENT] A float value is m × 2^e, where m is an integer whose absolute value is less than 2^24,
and e is an integer between −149 and 104, inclusive.
float-value:= mantissa [("E" | "e") exponent] | "0" | "-0" | "INF" | "-INF" | "NaN"
mantissa:= [“+" | "-"] 1*DIGIT ["." 1*DIGIT]
exponent:= ["+" | "-"] 1*DIGIT
The canonical representation is defined; but in the non-canonical representation, the byte length
can be infinite. In the canonical representation, the maximum byte length is 110.
For example, −1E4, 1267.43233E12, 12.78e − 2, 12 and INF are all legal literals for float.
See: http://www.w3.org/TR/xmlschema-2/#float.
A boolean value can be either "0", "1", "true", or "false". The maximum length is set to 5 which is the
size for the value "false". Even though guideline 9.2.31 restricts using boolean values to "0" and "1"
for DLNA Device Classes, it needs to be tolerant that "true" or "false" might be encountered for non
DLNA devices. Hence the reason for setting the maximum length to 5.
10.1.3.3.3
[G UIDELINE ] The dc:title metadata property should not exceed 256 B in the XML-escaped form
encoded in UTF-8.
[ATTRIBUTES ]
[C OMMENT] Although the maximum length for the dc:title is 1 024 B, many titles can fit in 256 B.
The primary reason why title values are allowed to exceed 256 B is to accommodate the guideline
10.1.4.19.
10.1.3.3.4
[G UIDELINE ] The following metadata properties shall not exceed 256 B each in the XML-escaped
form encoded in UTF-8.
• upnp:class
• Any length-unlimited metadata property in Table 13. Recommended Metadata Properties.
• All length-unlimited DIDL-Lite schema defined attributes for <res>, except for the following:
o URI properties (The length for URI is governed by guideline 10.1.3.10.)
o res@protocolInfo property (The length is governed by 10.1.3.3.1) unless limited by
guideline 10.1.3.3.5
[ATTRIBUTES ]
[C OMMENT] This guideline provides devices and control points that receive metadata with some
information about how much memory will be needed to represent a CDS object.
For example URIs include res@importUri, res@dlna:ifoFileURI, and res@dlna:importIfoFileURI.
10.1.3.3.5
[G UIDELINE ] The res@protocolInfo metadata property shall not exceed 256 B when interacting (i.e.
action request, action response, eventing state variables) with UPnP devices or UPnP control points
implemented to a version of the DLNA protocol before 1.51. A UPnP Device implemented to a
version of the DLNA protocol shall be as defined in 9.2.10.2. A UPnP control point implemented to
a version of the DLNA protocol shall be as defined in 9.2.32.2.
[ATTRIBUTES ]
[C OMMENT] To maintain backwards compatibility with older DLNA Certified devices the size for
res@protocolInfo is limited to 256 B. For example when a DMP browses a DMS for CDS objects, a
DMC issues a AVT:SetAVTransportURI action with metadata to a DMR, a DMR events track
metadata to a DMC. To limit the size of res@protocolInfo property value when sending to a device
with a DLNA protocol version before 1.51, parameters such as other-param, ps-param,
maxsp-param, and ci-param can be omitted or modified from the 4th field of res@protocolInfo until
the size of the res@protocolInfo metadata property is 256 B or less.
10.1.3.4.2
[G UIDELINE ] UPnP AV endpoints (devices and control points) shall use non-empty and
non-whitespace values for metadata properties in a DIDL-Lite XML fragment. The term, metadata
properties, refers specifically to elements and attributes defined by the DIDL-Lite schema and
applies only to guideline entries of 10.1.3.3.5.
Exceptions are explicitly allowed in other guidelines, such as 10.1.8.19 and 10.1.8.23.
DLNA guidelines; Part 1-1: Architecture and protocols
– 127 –
[ATTRIBUTES ]
10.1.3.4.3
[G UIDELINE ] UPnP AV endpoints (devices and control points) shall be tolerant of DIDL-Lite
attributes and elements (whether defined by DIDL-Lite schema or not) that have empty values.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This simplifies control point implementations and also reduces the size of some UPnP
traffic.
10.1.3.5.2
[G UIDELINE ] UPnP AV endpoints (devices and control points) may parse and interpret DIDL-Lite
Boolean values of "yes" and "true" as true ("1"), and "no" and "false" as false ("0"). Such values are
interpreted in a case-sensitive manner.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.1.3.6.2
[G UIDELINE ] A UPnP AV MediaServer control point shall be tolerant ("parse and interpret" or
"parse and ignore") of unknown upnp:class values.
[ATTRIBUTES ]
[C OMMENT] Tolerance of unknown values is required, regardless of whether the control point
intends to show the CDS objects to a user.
• CCYY-MM-DD
• CCYY-MM-DDThh:mm:ss
• CCYY-MM-DDThh:mm:ssZ
• CCYY-MM-DDThh:mm:ss+hh:mm
• CCYY-MM-DDThh:mm:ss-hh:mm
• CCYY-MM-DDThh:mm:ss.sss
• CCYY-MM-DDThh:mm:ss.sssZ
• CCYY-MM-DDThh:mm:ss.sss+hh:mm
• CCYY-MM-DDThh:mm:ss.sss-hh:mm
When the offset of local time to UTC cannot be determined, the <dc:date> string shall have no
characters for the <time-offset> part of the date grammar.
[ATTRIBUTES ]
[ATTRIBUTES ]
M R DMC DMS DMR +UP+ M-DMS M-DMC n/a IETF RFC KFB4S
+PU+ 2234
[ATTRIBUTES ]
10.1.3.9.2
[G UIDELINE ] The XML-based metadata contained within a <desc> element shall have its XML
namespace defined within the containing DIDL-Lite document and its value shall be the same as
that of the nameSpace attribute.
EXAMPLE 2:
<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns:ve="http://some.example.org/foobar/">
<container id="0000000000000016" searchable="1"
parentID="000000000000000A" restricted="0" childCount="1">
<dc:title>
some title
</dc:title>
<upnp:class>object.item</upnp:class>
<desc id="someid" nameSpace="http://some.example.org/foobar/">
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 130 –
<ve:yada>
some desc data
</ve:yada>
</desc>
</container>
</DIDL-Lite>
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that content URIs will use absolute URIs that use IPv4 or
IPv6 addresseswhen the content is located within the home network.
Content Binaries that are located on a device with an IP address outside the LAN can use a domain
name in the URI, however legacy DMPs and DMRs with a version less than 1.6 might not support the
GENURL requirements so might not be able to resolve domain names.
10.1.3.10.2
[G UIDELINE ] URIs shall be properly URI-escaped in a UTF-8 encoded form.
[ATTRIBUTES ]
M L DMS DMC +PU+ +UP+ M-DMS M-DMC n/a IETF RFC G6YNK
1738
ISO/IEC
29341-20-12
[C OMMENT] This guideline requires UPnP AV endpoints to provide URI values that are
URI-escaped in a UTF-8 encoded form. This guideline also allows a UPnP AV MediaServer control
point to assume that URIs obtained from a UPnP AV MediaServer do not need any escaping.
10.1.3.10.3
[G UIDELINE ] HTTP URI escaping shall be performed according to the URI specification IETF RFC
1738 as required in 3.2.1 of the HTTP/1.1 specification IETF RFC 2616.
[ATTRIBUTES ]
M L DMS DMC +PU+ +UP+ M-DMS M-DMC n/a IETF RFC UNQQR
1738
IETF RFC
2616
10.1.3.10.4
[G UIDELINE ] URI values that appear in DIDL-Lite documents or fragments shall not exceed 1 024 B,
in the URI-escaped UTF-8 encoded form.
URI values shall not have preceding or trailing white space characters.
[ATTRIBUTES ]
M L DMS DMC +PU+ +UP+ M-DMS M-DMC n/a IETF RFC NQQRV
1738
ISO/IEC
29341-20-12
W3C XML
[C OMMENT] URI values are theoretically infinite in length. This guideline puts a reasonable limit on
the length of advertised content URI values.
10.1.3.10.5
[G UIDELINE ] If a content binary does not conform to a DLNA Media Format Profile, then the URI
value may be a URI, with a domain name.
[ATTRIBUTES ]
[C OMMENT] This guideline permits the use of content URIs that use domain names when content is
not marked as conformant to a DLNA Media Format Profile. Content sourced from the Internet is
considered out of range for DLNA. However, a ContentDirectory service still has a way of
advertising Internet content in a DLNA manner using IP addresses. Rendering Endpoints that wish
to support these types of URIs will need a DNS client. Inclusion of DNS clients is out-of-scope for
DLNA. This means that vendors are not prohibited from including a DNS client, but DLNA guidelines
will not specify how to use DNS clients nor will the certification process test such behaviors.
10.1.3.10.6
[G UIDELINE ] All IP addresses appearing in a <res> element shall have the same address family.
[ATTRIBUTES ]
[C OMMENT] For example if the <res> value is an IPv4 address, then the ifoFile value should be an
IPv4 address as well. This guideline ensures address family consistency within a <res> element.
• URI values that comply with guideline 10.1.3.10 (MM URI Rules), and
• Generic HTTP URL values defined in section 3.2.2 of IETF RFC 3986
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that a DMR is designed to work with URIs constrained to
numeric IP addresses (as defined in guideline 10.1.3.10), but also with any type of URI that
complies with HTTP URL specifications defined in IETF RFC 3986. Generic HTTP URLs can be
located anywhere in the local network or outside the local network.
[ATTRIBUTES ]
[C OMMENT]
a) All Device Classes and Device Capabilities that implements the GENURL Device Function,
implement a DNS resolver and a mechanism to use this resolver to convert host names to IP
addresses. A DNS resolver communicates with a DNS server as explained in IETF RFC 1123.
b) The class of Digital Media Renderers does not need to implement DNS resolver functionality
(see for example the notes for guidelines 8.4.2.1 and 9.2.24.1). Consequently, DLNA-compliant
Control Points always send HTTP URLs that include numeric IPv4 address to DMR devices not
implementing the GENURL Device Function. A UPnP Control Point that interacts with an DMR
can send non-numeric URLs because a DMR implementing the GENURL Device Function is
designed to resolve the URLs into numeric addresses using DNS.
10.1.3.11.3 DNS Server IPv4 address
[G UIDELINE ] The DHCPv4 client for DLNA Device Classes and Device Capabilities shall support
DHCPv4 Option 6 IETF RFC 2131 and obtain DNS server IPv4 address(es) from a home network
DHCPv4 server if present.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates the protocol that a DMR uses to obtain the IPv4 address (or
addresses) for a DNS server.
As described in guideline 11.4.3.32.2), the default transfer modes are ‘streaming’ for the audio and
AV Media Classes, and ‘interactive’ for all other content binaries.
[ATTRIBUTES ]
[C OMMENT] The DLNA guidelines indicate that client endpoints need to tolerate the absence of the
transferMode.dlna.org header for DMS v1.0 servers. This guideline says that DMRs need to tolerate
this omission for any type of server. Some of the HTTP URLs could point to servers located in the
Internet, which are not capable of including this header in response messages.
[ATTRIBUTES ]
[C OMMENT] The DLNA guidelines indicate that client endpoints need to tolerate the absence of the
transferMode.dlna.org header for DMS v1.0 servers and use the best effort QoS level. This
guideline indicates that DMRs need to use the same approach for all servers that omit the
transferMode.dlna.org header in the response.
[ATTRIBUTES ]
[C OMMENT]
a) Some legacy devices have been designed to retrieve res@protocolInfo information using the
contentFeatures.dlna.org header instead of using the available resource metadata. Generic
HTTP URLs could point to servers located in the Internet, which are not capable of including this
header in a response message.
b) The contentFeatures.dlna.org HTTP header carries the same information as the
res@protocolInfo property, which is always available for a Rendering Endpoint.
Content that conforms to the DLNA "Audio" Media Class shall use object.item.audioItem or a
derived class for the upnp:class value.
Content that conforms to the DLNA "AV" Media Class shall use object.item.videoItem or a derived
class for the upnp:class value.
[ATTRIBUTES ]
10.1.3.12.2
[G UIDELINE ] Metadata properties defined in Annex B of ISO/IEC 29341-20-12 (ContentDirectory
Service specification) shall use the following namespace prefixes, see Table 12.
Namespace Prefix
DIDL-Lite n/a
Dublin Core dc:
UPnP upnp:
[ATTRIBUTES ]
10.1.3.12.3
[G UIDELINE ] A UPnP AV MediaServer device should provide non-empty and non-whitespace
values for metadata properties as shown in Table 13 for the purpose of content selection.
This guideline also applies to classes derived from those listed in Table 13.
As a note, the dc:creator property is understood to contain a value representing the artist name or
some equivalent content creator. Whenever possible, the original artist name or content creator
should be used for dc:creator. In some cases, such as an audio playlist, a user is the original content
creator of the media collection. While it might be appropriate to specify the user's name as the
dc:creator for a playlist, it is not recommended to specify the user's name as the dc:creator value for
individual audio items in the playlist.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends that some additional metadata properties be used for
different Media Classes. Although not required, providing the user with an information-rich user
experience is desirable.
When an Upload Controller creates an object on the MediaServer it will preferably provide these
values as part of the DIDL-Lite in the CDS:CreateObject request, see guidelines 10.1.8.23.4 and
10.1.8.24.2 for this requirement.
10.1.3.12.4
[G UIDELINE ] A UPnP AV MediaServer device shall provide non-empty and non-whitespace values
for metadata properties as shown in Table 14 that represent the maximum combined value for that
parameter for the item for the purpose of content selection.
This guideline also applies to classes derived from those listed in Table 14.
[ATTRIBUTES ]
10.1.3.12.5
[G UIDELINE ] A UPnP AV MediaServer device shall, in response to a CDS
"upnp:resExt::componentInfo#" value (case sensitive) included as part of the Filter argument (in a
CDS:Browse or CDS:Search request), provide a upnp:resExt::componentInfo metadata property as
shown in Table 15 for the purpose of content selection for Media Format Profiles containing two or
more audio streams, video streams or audio plus video streams. If the
"upnp:resExt::componentInfo#" value is not included in the CDS:Browse or CDS:Search then the
upnp:resExt::componentInfo metadata shall not be returned.
object.item.audioItem upnp:resExt::componentInfo
object.item.videoItem upnp:resExt::componentInfo
This guideline also applies to classes derived from those listed in Table 15.
[ATTRIBUTES ]
10.1.3.12.6
[G UIDELINE ] A UPnP AV MediaServer device shall, in response to a CDS
"upnp:resExt::componentInfo#" value (case sensitive) included as part of the Filter argument (in a
CDS:Browse or CDS:Search request), provide non-empty and non-whitespace values for metadata
properties as shown in Table 16.
• "Audio" • upnp:resExt::componentInfo::componentGroup::component::contentType@bitrate
• upnp:resExt::componentInfo::componentGroup::component::contentType@sampleFrequency
• upnp:resExt::componentInfo::componentGroup::component::contentType@nrAudioChannels
• "Video" • upnp:resExt::componentInfo::componentGroup::component:: contentType@bitrate
• upnp:resExt::componentInfo::componentGroup::component::contentType@resolution
• upnp:resExt::componentInfo::componentGroup::component:: contentType@framerate
This guideline also applies to classes derived from those listed in Table 16.
[ATTRIBUTES ]
</item>
10.1.3.12.7
[G UIDELINE ] If a UPnP AV MediaServer control point lists CDS objects with a particular base-class
upnp:class value to users, then it shall also list CDS objects that have a upnp:class value that is
derived from the supported base-class.
For example, a MediaServer control point displays content listings for images with a upnp:class
value object.item.imageItem needs also to display CDS objects with a upnp:class value of
object.item.imageItem.xyz.
[ATTRIBUTES ]
[C OMMENT] Control Points will not match exclusively on base-class values because guideline
10.1.3.12.1 allows MediaServers to use derived-class values. Derived-class values allow a DMS to
provide more information about a CDS object. Control points can use this additional information in
a variety of ways, but using the upnp:class value to prevent users accessing valid content is not
acceptable behavior.
10.1.3.12.8
[G UIDELINE ] CDS objects that use either object.item.videoItem or object.item.imageItem or a
derived class value from either class may include <res> elements that describe image-based
thumbnails
[ATTRIBUTES ]
[C OMMENT] Guideline 10.1.4.7.3 describes the mandatory requirements for thumbnails if a device
chooses to use them
10.1.3.12.9
[G UIDELINE ] If a Content Source declares res@colorDepth for media resources of the Image Media
Class the value shall be one of the values defined in Table 8.
[ATTRIBUTES ]
29341-20-12
IEC 62481-2
10.1.3.12.10
[G UIDELINE ] If a Content Source declares res@resolution for media resources of the Image or AV
Media Classes the device shall use the two-number format “HxV” described in ISO/IEC 29341-20-12,
whereby the first number (H) defines the horizontal frame resolution and the second number (V)
defines the vertical frame resolution of the encoded raw-data stream.
The encoded raw-data stream is defined as the byte stream that represents the compressed image
or video carried as payload in a file or transport format. The horizontal and vertical values in
res@resolution describe values applicable to the raw-data stream before performing any
transformations specified as file metadata.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of resolution for images or video resources. The
resolution is defined as two integer numbers represented jointly as HxV. The H value indicates the
number of scanned pixels in the horizontal dimension. The V value indicates the number of scanned
pixels in the vertical dimension. For example, the maximum size of a JPEG_SM image is 640 x 480,
a typical size for HD video is 1 920 x 1 080, etc.
This guideline clarifies that the resolution is always computed from the encoded raw-data stream.
The raw-data stream represents the compressed image or video carried as the payload of some file
or transport format. Some file or transport formats include additional metadata to perform
transformations on the raw-data stream. For example, a JPEG image of size 600 x 400 (raw-data)
can have Exif orientation metadata to rotate the image 90 degrees.
Even though the Exif metadata leads to a final image displayed with a resolution of 400 x 600, the
Content Source declares the image resolution as:
res@resolution=”600x400”
Similarly, MP4 files include a transformation matrix that can be used to rotate the video frames at
the time of rendering
10.1.3.12.11
[G UIDELINE ] A Content Source must use the resolution or the encoded raw-data stream, as defined
in 10.1.3.12.9, in order to assign a Profile ID to a media resource of the image or AV Media Classes.
[ATTRIBUTES ]
[C OMMENT] Many of the DLNA-defined Media Format Profiles include constraints on the resolution
of image or video resources. This guideline clarifies that the resolution of an image or an A/V
resource is defined in a manner consistent with the definition of res@resolution.
10.1.3.12.12
[G UIDELINE ] A Content Source may use the res@dlna:rotation property to advertise a rotation
angle to be applied at the time of rendering a resource of the image or AV Media Class
[ATTRIBUTES ]
[C OMMENT] JPEG/Exif images and MP4 files can include a file property that indicates the rotation
angle that should be applied at the time of rendering the resource. This guideline gives Content
Sources the option to expose such an angle as a CDS property
10.1.3.12.13
[G UIDELINE ] The res@dlna:rotation property value must be of type ui4, between 0 and 359. This
value represents the rotation angle in degrees such that when applied to an image or to video
frames, it results in an image or video displayed with the correct orientation. The angle is measured
using a counterclockwise direction.
[ATTRIBUTES ]
[C OMMENT] This guideline defines an optional property used to advertise the rotation angle that
Content Receivers need to apply to an image or to video frames in order to display an image or
video with the correct orientation.
For example, consider the case of a UPnP AV MediaServer that exposes an image with a resolution
of 640 x 480. If the raw-data image is:
E
And, if the correct orientation for this image is:
L
Then the Content Source exposes a rotation angle of 90 degrees. The rotation angle is always
measured counterclockwise.
Some Content Sources will read the rotation metadata and perform rotation of the frame(s) before
sending a resource across the network. These Content Sources do not expose the
res@dlna:rotation property because the resource no longer needs to be rotated by the Content
Receiver.
10.1.3.12.14
[G UIDELINE ] If a Content Source uses the res@dlna:rotation property, its value must be compatible
with the value of the rotation (or orientation) angle described as a property in the file format.
[ATTRIBUTES ]
[C OMMENT] JPEG/Exif images and MP4 files can include a file property that indicates the rotation
angle that should be applied at the time of rendering the resource. The value in the file property
needs to be compatible with the value exposed in the CDS property
10.1.3.12.15
[G UIDELINE ] If a Content Source declares res@bitRate for media resources of the Audio or AV
Media Classes then the value of res@bitRate shall correspond to the sum of the individual video
component bitrate + audio component bitrate + average system overhead bitrate.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of bitrate. An example of a maximum combined
value for a bitrate parameter for an object.item.videoitem containing a video component of 5 Mbps,
an audio track of 1 Mbps, and system overhead bitrate of 30 Kbps would be 6030000.
10.1.3.12.16
[G UIDELINE ] If a Content Source declares res@sampleFrequency for media resources of the Audio
Class or AV Media Class then the value of res@sampleFrequency shall correspond to the highest
sample rate value of the individual audio tracks and shall be expressed in Hertz.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of sampleFrequency. For example an audio
raw-data stream encoded at a sample rate of 44,1 kHz would have
res@sampleFrequency="44100".
If a content binary has multiple audio tracks then this guideline clarifies that the
res@sampleFrequency represents the highest, eg if there are two audio tracks, one with a sample
frequency of 44,1 kHz and another with 48 kHz then the value would be
res@sampleFrequency=”48000”.
10.1.3.12.17
[G UIDELINE ] If a Content Source declares res@nrAudioChannels for media resources of the Audio
Class or AV Media Class then the value of res@ nrAudioChannels shall correspond to the highest
"number of channels" value of the individual audio tracks for the raw audio stream.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of nrAudioChannels. For example, if the audio
raw-data stream is encoded as Dolby 6.1 then res@nrAudioChannels="7", or if the audio raw-data
stream is encoded as 2 channel stereo then res@nrChannels="2".
If a content binary has multiple audio tracks then this guideline clarifies that the
res@nrAudioChannels represents the highest, eg if there are two audio tracks, one with 2 audio
channels and another with 2 audio channels then the value would be res@nrAudioChannels=”6”.
10.1.3.12.18
[G UIDELINE ] If a Content Source declares res@frameRate for media resources of the AV Media
Class then the value of res@frameRate shall correspond to the maximum frame rate of the
individual video tracks for the encoded video raw-data stream.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of frameRate for video bit streams. For example, if
the videoraw-data stream is encoded at 29,97 Hz interlaced then res@frameRate="29.97i", or if the
video raw-data stream is 60 Hz progressive then res@frameRate="60p".
If a content binary has multiple video tracks then this guideline clarifies that the res@frameRate
represents the highest, eg if there are two video tracks, one with 29,97 Hz interlace and another
with 60 Hz progressive then the value would be res@frameRate=”60p”.
10.1.3.12.19
[G UIDELINE ] For CDS items exposed with a upnp:resExt::componentInfo element, one
upnp:resExt::componentInfo::componentGroup element shall be exposed for each Audio or Video
stream included in the content.
[ATTRIBUTES ]
10.1.3.12.20
[G UIDELINE ] For each upnp:resExt::componentInfo::componentGroup element the following
attributes shall be included:
• upnp:resExt::componentInfo::componentGroup@groupID,
• upnp:resExt::componentInfo::componentGroup@required.
[ATTRIBUTES ]
10.1.3.12.21
[G UIDELINE ] The value of the upnp:resExt::componentInfo::componentGroup@groupID attribute
shall be unique within the containing upnp:resExt:componentInfo element and shall not exceed 32
characters.
[ATTRIBUTES ]
[C OMMENT] This is a unique identifier for groups within a multi-component <res> element.
10.1.3.12.22
[G UIDELINE ] For each upnp:resExt::componentInfo::componentGroup element exposed one
upnp:resExt::componentInfo::componentGroup::component sub-element shall be exposed.
Exposure in a flat heirachy is only required for devices exposing a dlna-version of "1.6". Future
versions could enable other hierarchies.
[ATTRIBUTES ]
10.1.3.12.23
[G UIDELINE ] For each upnp:resExt::componentInfo::componentGroup::component element the
following attributes shall be included:
• upnp:resExt::componentInfo::componentGroup::component@componentID.
[ATTRIBUTES ]
10.1.3.12.24
[G UIDELINE ] The value of the
upnp:resExt::componentInfo::componentGroup::component@componentID attribute shall be
unique within the containing upnp:resExt:componentInfo element and shall not exceed 32
characters.
[ATTRIBUTES ]
[C OMMENT] This is a unique identifier for groups within a multi-component <res> element.
10.1.3.12.25
[G UIDELINE ] For each upnp:resExt::componentInfo::componentGroup::component element
exposed one each of the following required sub-elements shall be exposed:
• upnp:resExt::componentInfo::componentGroup::component::componentClass,
• upnp:resExt::componentInfo::componentGroup::component::contentType.
[ATTRIBUTES ]
10.1.3.12.26
[G UIDELINE ] For CDS items exposed with a upnp:resExt::componentInfo element one
upnp:resExt::componentInfo::componentGroup element and its required sub- elements shall be
exposed for each Audio or Video stream included in the content item, The required sub-elements
are:
• upnp:resExt::componentInfo::componentGroup::component::contentType@MIMEType,
• upnp:resExt::componentInfo::componentGroup::component::contentType@extendedType
[ATTRIBUTES ]
10.1.3.12.27
[G UIDELINE ] The value of the
upnp:resExt::componentInfo::componentGroup::contentType@MIMEType attribute shall be
"mime/x-audio" and "mime/x-video" for audio raw-data streams and video raw-data streams
respectively. It shall also include the codec extension parameter in the @MIMEType string as
defined in IETF RFC 2045.
[ATTRIBUTES ]
10.1.3.12.28
[G UIDELINE ] The value of the
upnp:resExt::componentInfo::componentGroup::componentType@extended attribute shall be "*".
[ATTRIBUTES ]
10.1.3.12.29
[G UIDELINE ] The value of the upnp:resExt::componentInfo::componentGroup::component::class
element shall be either "Audio" if the upnp:resExt::componentInfo::componentGroup::component
DLNA guidelines; Part 1-1: Architecture and protocols
– 145 –
[ATTRIBUTES ]
[C OMMENT] Only audio and video multi-component <res> information is defined in ISO/IEC
29341-20-12.
10.1.3.12.30
[G UIDELINE ] If the value of the upnp:resExt::componentInfo::componentGroup::component::class
element is "Audio" then the following attributes shall be provided:
• upnp:resExt::componentInfo::componentGroup::component::contentType@bitrate,
• upnp:resExt::componentInfo::componentGroup::component::contentType@sampleFrequency,
• upnp:resExt::componentInfo::componentGroup::component::contentType@nrAudioChannels.
[ATTRIBUTES ]
[C OMMENT] These are the attributes required to describe audio raw-data streams.
10.1.3.12.31
[G UIDELINE ] In the case where the
upnp:resExt::componentInfo::componentGroup::component::contentClass is "Audio" the value of
the upnp:resExt::componentInfo::componentGroup::component::contentType@bitRate shall
correspond to the bitrate of the audio raw-data stream which is highest (system overhead is not
included).
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of bitrate for individual audio raw-data streams
inside a multi-component <res> element.
10.1.3.12.32
[G UIDELINE ] If a Content Source declares
upnp:resExt::componentInfo::componentGroup::component::contentType@sampleFrequency for
media resources of the Audio Class then the value of
upnp:resExt::componentInfo::componentGroup::component::contentType@sampleFrequency
shall correspond to the sample rate value described in IEC 62481-2 and shall be expressed in Hertz.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of sampleFrequency for individual audio raw-data
streams inside a multi-component <res> element.
10.1.3.12.33
[G UIDELINE ] If a Content Source declares
upnp:resExt::componentInfo::componentGroup::component::contentType@nrAudioChannels for
media resources of the Audio Class then the value of
upnp:resExt::componentInfo::componentGroup::component::contentType@nrAudioChannels shall
correspond to the "number of channels" value described in IEC 62481-2 for the audio raw-data
stream.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of nrAudioChannels for individual audio raw-data
streams inside a multi-component <res> element. See example in 10.1.3.12.6.
10.1.3.12.34
[G UIDELINE ] If the value of the upnp:resExt::componentInfo::componentGroup::component::class
element is "Audio" then the following sub-element shall be provided:
• upnp:resExt::componentInfo::componentGroup::component::language.
[ATTRIBUTES ]
10.1.3.12.35
[G UIDELINE ] If the value of the upnp:resExt::componentInfo::componentGroup::component::class
element is "Video" then the following attributes shall be provided:
• upnp:resExt::componentInfo::componentGroup::component::contentType@bitrate,
• upnp:resExt::componentInfo::componentGroup::component::contentType@resolution,
• upnp:resExt::componentInfo::componentGroup::component::contentType@frameRate.
[ATTRIBUTES ]
[C OMMENT] These are the attributes required to describe video raw-data streams. See examples in
10.1.3.12.6.
10.1.3.12.36
[G UIDELINE ] In the case where the
upnp:resExt::componentInfo::componentGroup::component::contentClass is "Video" the value of
the upnp:resExt::componentInfo::componentGroup::component::contentType@bitRate shall
correspond to the bitrate of the video raw-data stream which is highest. If the actual bitrate is not
known (e.g., live content), then the maxium bit rate for the video raw data streams as defined for the
Media Format Profile shall be used.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of bitrate for individual video raw-data streams
inside a multi-component <res> element. See examples in 10.1.3.12.6.
10.1.3.12.37
[G UIDELINE ] If a Content Source declares
upnp:resExt::componentInfo::componentGroup::component::contentType@resolution then the
value of the upnp:resExt::componentInfo::componentGroup::component::contentType@resolution
shall correspond to the HxV value of the video track having the highest HxV pixel count.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of resolution for individual video raw-data streams
inside a multi-component <res> element. See example in 10.1.3.12.6.
10.1.3.12.38
[G UIDELINE ] If a Content Source declares
upnp:resExt::componentInfo::componentGroup::component::contentType@frameRate then the
value of upnp:resExt::componentInfo::componentGroup::component::contentType@frameRate
shall correspond to the maximum frame rate described in IEC 62481-2 for the video raw-data
stream.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the concept of frameRate for individual video raw-data streams
inside a multi-component <res> element. See example in 10.1.3.12.6.
[ATTRIBUTES ]
10.1.3.13.2
[G UIDELINE ] The phrase “match by protocolInfo format” shall mean the following.
Given two protocolInfo values, the values shall match if both protocolInfo values have the same
values as follows:
[C OMMENT]
a) This phrase is used throughout the guidelines related to protocolInfo values. The phrase applies
to any protocolInfo value, regardless from where the values were obtained. ProtocolInfo values
can be found on DMS and DMR devices, typically associated with res@protcolInfo metadata or
UPnP AV connection information.
b) If the DLNA.ORG_PN parameter in the fourth field of protocolInfo matches then there is a
greater chance that the content will be able to be played back.
c) This guideline is to require Rendering Endpoints to try and render a content binary if it supports
just the underlying protocol and MIME type in protocolInfo. This will enable DLNA Rendering
Endpoints to match and play content not advertised with the DLNA profile ID, a DLNA Profile ID
that’s not supported, or a new DLNA Profile ID defined in the future.
d) This requirement is also on a controller (e.g. application) to try and ask a UPnP AV
MediaRenderer to play content where the UPnP AV MediaRenderer indicates it supports just the
MIME type and protocol.
10.1.3.13.3
[G UIDELINE ] If a UPnP AV MediaServer or UPnP AV MediaRenderer exposes a res@protocolInfo
with a <res> element that includes a URI value, then the context of the protocolInfo shall be to
describe the content and/or transport layer features for the indicated <res> URI value.
DLNA guidelines; Part 1-1: Architecture and protocols
– 149 –
[ATTRIBUTES ]
A DMR can create DIDL-Lite metadata to describe what it is currently rendering. See 10.1.3.13.16
for more information.
10.1.3.13.4
[G UIDELINE ] If a UPnP AV MediaServer exposes a res@protocolInfo with a <res> element that
omits the URI value but includes a res@importUri property, then the context of the protocolInfo shall
be to describe the content that MediaServer expects to receive in a content transfer process.
[ATTRIBUTES ]
[C OMMENT] When used with a <res> element that omits a URI value but includes a res@importUri
property, the DLNA.ORG_PN parameter identifies the DLNA Media Format Profile that the DMS
expects to receive for that particular <res> element. In some cases, DMS implementations will
specify various parameters and flags in the 4th field that will become applicable after the content is
uploaded and the DMS can serve the content.
10.1.3.13.5
[G UIDELINE ] If a UPnP AV MediaServer exposes a res@protocolInfo with a <res> element that
omits both the URI value and the res@importUri property in a CDS object with the upnp:class
property value of object.item.epgItem,object.item.epgItem, object.item.video.videoBroadcast,
object.item.audio.audioBroadcast or any of their derived classes, then the context of the
protocolInfo shall be to describe the content and/or transport layer features of the content item
associated with the CDS object, or of the media resource that the MediaServer expects to expose at
a future time.
[ATTRIBUTES ]
[C OMMENT] When used with a <res> element that omits both the URI value and the res@importUri
property, the DLNA.ORG_PN parameter identifies the DLNA Media Format Profile of the content
resource that the DMS expects to become available later for that particular <res> element. The
additional information can allow controllers to make advance arrangements or decisions regarding
the content even before it is available. For example, a +SR+ controller can utilize this information to
set up a future recording.
10.1.3.13.6
[G UIDELINE ] If a UPnP AV MediaServer exposes a res@protocolInfo with a <res> element that
omits the URI value but includes a res@importUri property, then the protocolInfo 4th field may
contain parameters and flags intended for use when the <res> URI value is finally created by the
MediaServer.
[ATTRIBUTES ]
10.1.3.13.7
[G UIDELINE ] A UPnP AV MediaServer’s list of protocolInfo values in the CMS.SourceProtocolInfo
state variable shall contain an additonal protocolInfo value with only an “*” in the fourth field (wildcard)
for each supported protocolInfo value with a DLNA.ORG_PN parameter in the fourth field.
[ATTRIBUTES ]
10.1.3.13.8
[G UIDELINE ] A UPnP AV MediaServer’s list of protocolInfo values in the CMS.SourceProtocolInfo
state variable shall be condensed into a single protocolInfo value for duplicate protocolInfo values in the
CMS.SourceProtocolInfo state variable.
[ATTRIBUTES ]
[C OMMENT] Guideline 10.1.3.13.7 could potentially create duplicate protocolInfo values and this
guideline requires that they are condensed into a single protocolInfo value in the
CMS.SourceProtocolInfo state variable.
10.1.3.13.9
[G UIDELINE ] If a UPnP AV MediaServer lists a protocolInfo in the CMS.SourceProtocolInfo state
variable, then the context of the protocolInfo shall be to describe the MediaServer's ability to
support the described feature or content for the following:
[ATTRIBUTES ]
[C OMMENT] The phrase “MediaServer's ability to support the described feature or content” means
that the UPnP AV MediaServer is capable of serving content binaries that are characterized by the
protocolInfo. More specifically, for each protocolInfo listed in SourceProtocolInfo the UPnP AV
MediaServer exposes zero or more content binaries that “match by protocolInfo format”. In practice,
UPnP AV MediaServers in some cases expose a static list of protocolInfo values to indicate all
possible Media Format Profiles that they can serve. In other cases UPnP AV MediaServers will
expose a dynamic list of protocolInfo values to indicate the Media Format Profiles that they can
currently serve.
For example, if a MediaServer lists
"http-get:*:audio/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=
AD500000000000000000000000000000" then the MediaServer is capable of serving MPEG_PS_NTSC content with the
following characteristics.
• Some of that content might support the Range HTTP header under the "Full Random Access
Data Availability" model due to the DLNA.ORG_OP value.
• Some of that content might support the Range HTTP header under the "Limited Random Access
Data Availability" model because the lop-bytes flag is true.
• Some of that content might have the sp-flag set to true.
• Some of the content might have beginning point that increases with time (e.g. live content)
because the s 0 -increasing flag is true.
• Some of the content might have an ending point that increases with time (e.g. infinitely long live
content or live content that is currently being saved to disk and will eventually reach a finite
length) because the s N -increasing flag is true.
• Some of the content might support Streaming and Background Transfer modes because the
tm-s and tm-b flags are true.
The pn-param (DLNA.ORG_PN) is the only required parameter for DLNA Media Format Profiles. All
other parameters and flags are optional for the syntax. (See also 10.1.3.15.3.)
10.1.3.13.10
[G UIDELINE ] A UPnP AV MediaRenderer’s list of protocolInfo values in the CMS.SinkProtocolInfo
state variable shall contain an additional protocolInfo value with only an “*” in the fourth field (wildcard)
for each supported protocolInfo values with a DLNA.ORG_PN parameter in the fourth field. Duplicate
protocolInfo values in the CMS.SinkProtocolInfo state variable can be condensed to a single protocolInfo
value.
[ATTRIBUTES ]
10.1.3.13.11
[G UIDELINE ] A UPnP AV MediaRenderer’s list of protocolInfo values in the CMS.SinkProtocolInfo
state variable shall be condensed into a single protocolInfo value for duplicate protocolInfo values in the
CMS.SourceProtocolInfo state variable.
[ATTRIBUTES ]
[C OMMENT] Guideline 10.1.3.13.10 could potentially create duplicate protocolInfo values and this
guideline requires that they are condensed into a single protocolInfo value in the
CMS.SinkProtocolInfo state variable.
10.1.3.13.12
[G UIDELINE ] If a UPnP AV MediaRenderer lists a protocolInfo in the CMS.SinkProtocolInfo state
variable, then the context of the protocolInfo shall be to describe the MediaRenderer's ability to
support that the indicated feature or content.
(That is, the parameters and flags represent a union of the MediaRenderer's features/capabilities
for the specified DLNA Media Format Profile).
[ATTRIBUTES ]
[C OMMENT] The phrase “MediaRenderer's ability to support that the indicated feature or content”
means that the DMR can use the specified feature when rendering content that is a “match by
protocolInfo format”. It is not a guarantee that the DMR will use that feature when rendering such
content. Each DMR implementation determines when and how features are used to deliver a
playback experience.
For example, if a MediaRenderer lists
"http-get:*:audio/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=BD1000000000000
00000000000000000" then the MediaRenderer is capable of rendering MPEG_PS_NTSC content for a variety of
scenarios.
The pn-param (DLNA.ORG_PN) is the only required parameter for DLNA Media Format Profiles. All
other parameters and flags are optional for the syntax.
10.1.3.13.13
[G UIDELINE ] If a UPnP AV MediaServer or UPnP AV MediaRenderer uses a protocolInfo value in
the ProtocolInfo output argument of a CMS:GetCurrentConnectionInfo response, then the context of
the protocolInfo shall describe the content and the transport layer capabilities of the UPnP AV
connection.
[ATTRIBUTES ]
[C OMMENT] In this context, the protocolInfo value describes the content and/or transport layer
capabilities of the UPnP AV connection from the server-side.
For example, if a UPnP AV connection indicates
"http-get:*:audio/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=0510000000000000
0000000000000000" then the transport layer associated with the UPnP AV connection is configured to work in the
following ways.
• The MPEG_PS_NTSC content has the sp-flag set to false and the tm-s flag is set to true to
indicate that transport layer is using a Streaming transfer where the Content Source is not the
Clock Source. This means the Content Source will ensure that it transmits at a throughput
necessary for rendering but will also preserve the entire content bitstream even for lower
transmission throughputs when network conditions are not able to support the bandwidth
needed for the Streaming transfer.
• The Range HTTP header is available only under the "Full Random Access Data Availability"
model.
• The content is growing with a fixed beginning because the s 0 -increasing flag is false and the
s N -increasing flag is true.
The phrase “describe the content and the transport layer capabilities of the UPnP AV connection”
does not imply that actual data is actually being transported on the UPnP AV connection at the
current moment because the Content Receiver endpoint might be in a playback state (such as stop
or pause) that does not involve the ongoing transmission of content data.
10.1.3.13.14
[G UIDELINE ] If a UPnP AV MediaServer control point creates a res@protocolInfo value for use with
a CDS:CreateObject request that qualifies as one of the listed operations, then the context of the
protocolInfo shall be to describe the content that is going to be uploaded to the MediaServer through
a content transfer process.
• upload AnyContainer
• OCM: upload content
Furthermore, the default behavior of the control point shall be to exclude 4th field parameters
(except the DLNA.ORG_PN parameter, described in 10.1.3.18) or specify the parameter with a false
value (such as in the case of the lop-npt flag, described in 10.1.3.28.4).
[ATTRIBUTES ]
[C OMMENT] Unless specified otherwise, 4th field parameters do not apply to what the Upload
Controller can do. Rather, the DMS will provide the appropriate 4th field parameters during the
course of an Upload system usage or an optional content management operation. See 10.1.3.13.4
and 10.1.3.13.6 for more information.
10.1.3.13.15
[G UIDELINE ] If a UPnP AV MediaRenderer control point creates a protocolInfo or res@protocolInfo
value, then the context of the protocolInfo shall be to describe the Content Source's capabilities for
the associated UPnP AV connection or <res>.
• res@protocolInfo values that appear in CDS or DIDL-Lite metadata used as input arguments for
AVT:SetAVTransportURI, or other UPnP AV actions.
[ATTRIBUTES ]
10.1.3.13.16
[G UIDELINE ] A UPnP AV MediaRenderer may use res@protocolInfo values in the following ways.
• res@protocolInfo values may appear in any AVTransport virtual instance state variable,
including but not limited to: AVT.NextAVTransportURIMetaData, AVT.CurrentTrackMetaData,
and AVT.AVTransportURIMetaData.
• res@protocolInfo values may appear in output arguments of any AVTransport actions, including
but not limited to:
– CurrentURIMetaData of AVT:GetMediaInfo
– NextURIMetaData of AVT:GetMediaInfo, or
– TrackMetadata of AVT:GetPositionInfo.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies where a DMR can use res@protocolInfo values.
CMS:GetProtocolInfo shall return the same protocolInfo list for SinkProtocolInfo output argument as
the current list indicated by the CMS.SinkProtocolInfo state variable.
CMS:GetProtocolInfo shall return the same protocolInfo list for SourceProtocolInfo output argument
as the current list indicated by the CMS.SourceProtocolInfo state variable.
[ATTRIBUTES ]
The first three fields of the listed protocolInfo value shall be identical to the first three fields of the
individual protocolInfo values. The pn-param (DLNA.ORG_PN) value in the fourth field shall be
identical to the pn-param (DLNA.ORG_PN) value in the fourth fields of these protocolInfo values.
If additional parameters are included in the fourth field of the listed protocolInfo value, they shall
appear in the order defined in 10.1.3.17, and their values shall be obtained as defined in
10.1.3.15.5.
[ATTRIBUTES ]
[C OMMENT] This guideline makes it easier for control points to find servers that provide content for
a given profile.
Use of the http-get:*:*:* protocolInfo does not sufficiently communicate the supported Media Format
Profiles. This guideline also requires implementations to explicitly list the individual protocolInfo
values for supported DLNA Media Format Profiles.
10.1.3.15.2
[G UIDELINE ] The sets of protocolInfo values returned in CMS:GetProtocolInfo shall list the
protocolInfo values that use the http-get media transport and DLNA Media Format Profiles first.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 156 –
[ATTRIBUTES ]
[C OMMENT] Although the number of returned protocolInfo values might be large, control points can
use this guideline to capture the subset of relevant DLNA protocolInfo values.
10.1.3.15.3
[G UIDELINE ] The fourth field of the protocolInfo values (obtained from the ConnectionManager
service) that have the pn-param parameter in the fourth field shall follow one of the formatting
conventions.
• In addition to pn-param, provide one or more of the additional parameters as defined in guideline
10.1.3.17.1 (HTTP), or guideline 10.1.3.17.2 (RTP/RTSP).
• Provide only the pn-param parameter, as defined in guideline 10.1.3.18
[ATTRIBUTES ]
This guideline also allows UPnP AV MediaRenderer implementations to employ only primary
protocolInfo sets (non-verbose listing), or in addition, to extend the list of declared 4th field
parameters (verbose listing).
10.1.3.15.4
[G UIDELINE ] If a CSV (Comma Separated Value) list contained in a CMS:GetProtocolInfo response
has one or more embedded comma(s) in the individual substring entries of the CSV list, then those
embedded commas shall be escaped as "\," in ISO/IEC 29341-20-12, 2.3.1.
[ATTRIBUTES ]
[C OMMENT] There is no embedded comma escaping rules in ISO/IEC 29341-14-11. This guideline
applies embedded comma escaping rules in CSV lists defined in ISO/IEC 29341-20-12 to
CMS:GetProtocolInfo response values.
10.1.3.15.5
[G UIDELINE ] If a UPnP AV MediaServer lists additional parameters (besides the pn-param) in the
4th field of protocolInfo when combining multiple protocolInfo values as defined in 10.1.3.15.1, then
they shall be obtained as follows.
• op-param: If none of the individual protocolInfo values contain an op-param value, the combined
protocolInfo value shall omit the op-param value. If the a-val of the op-param in any of the
individual protocolInfo values is "1", the a-val of the op-param in the combined protocolInfo
value shall be "1". Otherwise, the a-val of the op-param in the combined protocolInfo value shall
be "0". Similarly, if the b-val of the op-param in any of the individual protocolInfo values is "1",
the b-val of the op-param in the combined protocolInfo value shall be "1". Otherwise, the b-val of
the op-param in the combined protocolInfo value shall be "0".
• ps-param: If none of the individual protocolInfo values contain a ps-param value, the combined
protocolInfo value shall omit the ps-param value. Otherwise, the ps-param value of the
combined protofocolInfo value shall be a comma-separated list of all the distinct ps-param
values of the individual protocolInfo values.
• ci-param: If none of the individual protocolInfo values contain a ci-param value, the combined
protocolInfo value shall omit the ci-param value. If the ci-param value in any of the individual
protocolInfo values is "1", the ci-param value in the combined protocolInfo value shall be "1".
Otherwise, the ci-param value in the combined protocolInfo value shall be "0".
• flags-param: If none of the individual protocolInfo values contain a flags-param value, the
combined protocolInfo value shall omit the flags-param value. For each bit in the flags-param
value, if the corresponding bit in any of the individual protocolInfo values is "1", that bit in the
combined protocolInfo value shall be "1". Otherwise, that bit shall be "0".
• maxsp-param: If none of the individual protocolInfo values contain a maxsp-param value, the
combined protocolInfo value shall omit the maxsp-param value. Otherwise, the maxsp-param
value of the combined protocolInfo value shall be the maximum of all the maxsp-param values of
the individual protocolInfo values.
• other-param: If none of the individual protocolInfo values contain an other-param value, the
combined protocolInfo value shall omit the other-param value. Otherwise, the combined
protocolInfo value shall contain the concatenated list of all the distinct other-param values in
individual protocolInfo values.
Note that the combined protocolInfo value might not be a valid res@protocolInfo value for content
items in a content directory. For example, it might contain contradicting flags which are prohibited
by the DLNA guidelines.
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;
DLNA.ORG_PS=2
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=10
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_PS=4
is either one of the following (depending on whether additional fourth-field parameters are included)
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=11;
DLNA.ORG_PS=2,4
[ATTRIBUTES ]
10.1.3.15.6
[G UIDELINE ] The ConnectionManager service of a UPnP AV MediaRenderer shall list the collection
of distinct Primary protocolInfo Sets that it is capable of rendering.
If one or more of the declared Primary protocolInfo Sets include additional 4th field parameters, they
shall appear in the order defined in 10.1.3.17, and their values shall be as defined in 10.1.3.15.7.
[ATTRIBUTES ]
10.1.3.15.7
[G UIDELINE ] If a UPnP AV MediaRenderer lists additional parameters (besides the pn-param) in
the 4th field of protocolInfo when declaring the Primary protocolInfo Sets as defined in 10.1.3.15.6,
then they shall comply with the following rules:
• http-get
[ATTRIBUTES ]
For requirements around protocolInfo values used in the upload process, see guideline 10.1.8.19.1.
Reiterates the protocol string value for DLNA content transported across HTTP. Note that the
converse is not always true. Some scenarios involving upload operations can result with a <res>
element that has no value (i.e. empty URI) but the res@protocolInfo value has "http-get" in the first
field.
10.1.3.16.2
[G UIDELINE ] If the <res> value contains an RTP URL, then the first field of the res@protocolInfo
value shall be as shown below.
• rtsp-rtp-udp
[ATTRIBUTES ]
10.1.3.16.3
[G UIDELINE ] The third field of a protocolInfo value shall use the MIME types specified in Clause 5
of IEC 62481-2 for DLNA normative Media Format Profiles when the protocol is "http-get" or
"rtsp-rtp-udp".
[ATTRIBUTES ]
[C OMMENT] This guideline is consistent with the UPnP AV specifications for the case of "http-get",
but this guideline also conflicts in the case of "rtp-rtsp-udp".
The UPnP AV specification indicates that the 4th field for RTP URIs is the payload type, but such a
model fails to take into account that streaming of AV content with RTP generally requires multiple
RTP payload types. For this reason, the DLNA guidelines require that the 3rd field is populated with
the DLNA-specified mime-type of the Media Format Profile indicated in the pn-param.
10.1.3.16.4
[G UIDELINE ] UPnP AV endpoints (devices and control points) shall use the DLNA.ORG_PN
parameter (10.1.3.18) in the 4th field of protocolInfo for the following operations
[C OMMENT] The MIME-type in the 3rd field of res@protocolInfo alone is not always sufficient to
identify DLNA content.
10.1.3.16.5
[G UIDELINE ] If a protocolInfo value has the first value of "http-get" and the 4th field includes the
DLNA.ORG_PN parameter (10.1.3.18), then the binary data conformant to a DLNA Media Format
Profile identified by the DLNA.ORG_PN parameter shall be transmitted via the HTTP Media
Transport, without transport layer encryption.
[ATTRIBUTES ]
[C OMMENT] This means that the binary data via the HTTP Media Transport is not encrypted unless
the guidelines of the DLNA Media Format Profile explicitly states it.
EXAMPLE 1: The following are example scenarios of creating 4th field values, and the DLNA device classes capabilities
that apply to them.
[C1] DMS, M-DMS: These endpoints populate res@protocolInfo in metadata responses and protocolInfo used in
CMS:GetProtocolInfo.
[C2] DMS, M-DMS, +PU+: These endpoints populate values for contentFeatures.dlna.org at the transport layer, either
by creating a brand new 4th field value or modifying from existing 4th field value.
[C3] DMC, M-DMC, +PU+: The control points of these endpoints can create a 4th field value for metadata given to a
DMR, either by creating a brand new 4th field value or modifying an existing 4th field value.
[C4] DMR: When reporting metadata of content that is currently playing, these endpoints can create a new 4th field
value by modifying an existing 4th field value acquired from a DMS, DMC, or +PU+.
[C5] +UP+: These endpoints create res@protocolInfo values in CDS:CreateObject requests and also create the
contentFeatures.dlna.org value during the content transfer process.
EXAMPLE 2: The following are example scenarios of parsing 4th field values, and the DLNA device classes capabilities
that apply to them.
[P1] DMP, M-DMP DMR, DMC, M-DMC, +UP+, +DN+: Control points of these endpoints parse 4th field values in
metadata responses obtained from a DMS or M-DMS.
[P2] DMP, M-DMP, DMR, +DN+: These endpoints parse 4th field values from contentFeatures.dlna.org, at the
transport layer.
[P3] DMR: These endpoints can receive 4th field values in DIDL-Lite metadata, provided by a control point.
[P4] DMC, M-DMC, +PU+: The control points of these endpoints can receive 4th field values in DIDL-Lite metadata
that is exposed by a DMR.
[P5] DMS, M-DMS: These endpoints parse res@protocolInfo values in CDS:CreateObject requests and also parse the
contentFeatures.dlna.org value during the content transfer process.
10.1.3.17 MM protocolInfo values: 4th field
10.1.3.17.1
[G UIDELINE ] If a protocolInfo value has "http-get" as the first field value and the 4th field includes
the pn-param token, then the following syntax shall be used for the fourth field.
The syntax and definition of pn-param, op-param, ps-param, ci-param, flags-param, and
*(other-param) are defined in the guidelines below.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the syntax of the fourth field for a res@protocolInfo value that
indicates content that is transported across HTTP.
This syntax prohibits the use of the "*" value for content that conforms to a DLNA Media Format
Profile. Content that does not conform to a DLNA Media Format Profile can use the "*" value in the
4th field.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2] , [C3], [C4], [P1], [P2],
[P3], and [P4].
Examples [C5] and [P5] do not apply to this guideline because 10.1.8.19 covers these cases.
10.1.3.17.2
[G UIDELINE ] If a protocolInfo value has "rtsp-rtp-udp" as the first field value and the 4th field
includes the pn-param token, then the following syntax shall be used for the fourth field.
[C OMMENT] The 4th field syntax for rtsp-rtp-udp URIs is the same as for http-get URIs.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] , [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
+DN+ is listed because the associated control point is required to tolerate <res> elements that use
the RTP Media Transport when browsing a MediaServer.
10.1.3.17.3
[G UIDELINE ] If a protocolInfo value has the first field value that is neither equal to "http-get" nor
"rtsp-rtp-udp", then the fourth field may have a syntax that differs from 10.1.3.17.1 and 10.1.3.17.2.
[ATTRIBUTES ]
[C OMMENT] This guideline permits a different syntax for the fourth field of a protocolInfo value
when the content is not transported over a DLNA-specified transport.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
CDS:CreateObject syntax has restrictions on the 4th field syntax, as described in 10.1.8.19.
Examples of protocolInfo values that include the 4th field are shown below:
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=10
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=10;
DLNA.ORG_PS=-1,30,-30
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_PS=-1,30,-30
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;
DLNA.ORG_PS=-1,30,-30;VENDORXYZ.COM_FOO=bar
• http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_CI=1;
VENDORXYZ.COM_FOO=bar
• rtsp-rtp-udp:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=10;
DLNA.ORG_PS=-1,2/3,4;DLNA.ORG_FLAGS=03100000000000000000000000000000;
DLNA.ORG_MAXSP=9.75
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 162 –
The pn-param is reserved for use with contexts where content conforms to a DLNA Media Format
Profile. Use of pn-param for content not conformant with a DLNA Media Format Profile is expressly
prohibited.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the syntax of the DLNA.ORG_PN parameter. This parameter is
used to identify DLNA content. This parameter cannot be used for non-DLNA content.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] , [C2] , [C3], [C4], [C5], [P1], [P2],
[P3], [P4], and [P5].
[ATTRIBUTES ]
29341-20-12
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
10.1.3.19.2
[G UIDELINE ] If the op-param is present and if either a-val or b-val is "1", then the "Full Random
Access Data Availability" model shall be the data access model that applies in the context of the
protocolInfo value.
Specifically, this means that the transport operation (that is indicated by the a-val or b-val) shall be
supported for the entire content binary, as defined in 11.4.2.15.1.
If the flags-param token is included in the 4th field, then the s 0 -increasing, lop-npt, and lop-bytes
bits of the primary-flags token shall be set to false.
[ATTRIBUTES ]
[C OMMENT] The DLNA.ORG_OP parameter indicates support for transport layer headers
responsible that facilitate random access operations on content binaries, under the "Full Random
Access Data Availability" model.
For more information on the "Full Random Access Data Availability" model, see the following
guidelines:
10.1.3.19.3
[G UIDELINE ] In conjunction with the rules defined in 10.1.3.19.1 and 10.1.3.19.2, the fourth field of
a protocolInfo may use the op-param for non-DLNA Media Format Profiles.
[ATTRIBUTES ]
[C OMMENT] This guideline permits the use of DLNA.ORG_OP for both DLNA and non-DLNA
content, provided the DLNA-defined syntax and semantics are used.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.19.4
[G UIDELINE ] If the b-val token is true and s N -increasing flag is false, then the Content Source shall
provide content length information in the res@size value of the CDS object.
[ATTRIBUTES ]
[C OMMENT] This guideline helps resolve dependency issues that Content Receivers have on
knowing the content length, and where Content-Length is not provided in a chunked response.
Content Sources are also encouraged to provide a res@size value even in scenarios where byte
Range is not supported.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.19.5
[G UIDELINE ] If the a-val token is true and s N -increasing flag is false, then the Content Source shall
provide duration information in the res@duration value of the CDS object.
[ATTRIBUTES ]
[C OMMENT] This guideline resolves dependency issues that Content Receivers have on knowing
the content duration. If Content Sources support TimeSeekRange.dlna.org, duration information is
important, and Content Sources are urged to provide it.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.19.6
[G UIDELINE ] If the Pause media operation is supported, Rendering Endpoints shall support the
Pause Release media operation even in the absence of Content-Length, res@size, or res@duration
information.
[ATTRIBUTES ]
[C OMMENT] Rendering Endpoints can issue a Range request using the "beginrange-" notation so
as to avoid specifying an invalid range. Rendering Endpoints can issue a TimeSeekRange.dlna.org
request using the "begintime-" notation so as to avoid specifying an invalid range.
The variants of examples [P1] and [P2] (see 10.1.3.16.5) that involve rendering of audio or AV
content apply to this guideline.
• a-val: indicates support of the TimeSeekRange.dlna.org HTTP header (see 11.4.3.23) for the
context of the protocolInfo under the "Full Random Access Data Availability" model.
• b-val: indicates support of the Range HTTP header (see 11.4.3.22) for the context of the
protocolInfo under the "Full Random Access Data Availability" model.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the op-param token's a-val and b-val tokens when HTTP is the
transport protocol.
When used with a context involving HTTP, the DLNA.ORG_OP parameter identifies if the server
supports the TimeSeekRange.dlna.org or Range HTTP headers for the associated content binary
under the "Full Random Access Data Availability" model.
For more information on the "Full Random Access Data Availability" model for HTTP and these
HTTP headers, see the following guidelines:
10.1.3.20.2
[G UIDELINE ] If the associated HTTP Server Endpoint returns HTTP error code 406 (Not Acceptable)
because an HTTP specifies one of the above HTTP headers, then the op-param shall indicate that
the HTTP header is not supported by using a value of "0" for the appropriate a-val or b-val.
[ATTRIBUTES ]
[C OMMENT] HTTP Server Endpoints use the 406 (Not Acceptable) status code to indicate that an
HTTP request can never be satisfied with the specified HTTP headers.
10.1.3.20.3
[G UIDELINE ] If the associated HTTP Server Endpoint always returns 406 (Not Acceptable) in
response to requests that use either HTTP header for the context of the protocolInfo, then the 4th
field shall omit the op-param.
[ATTRIBUTES ]
[C OMMENT] Including an op-param with a value of "00" is prohibited. In cases where neither the
TimeSeekRange.dlna.org nor the Range header are supported, the op-param is omitted.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2] .
10.1.3.20.4
[G UIDELINE ] If the associated HTTP Server Endpoint is capable of responding with a Target
Response that appropriately corresponds to the data range indicated in the HTTP request's
TimeSeekRange.dlna.org header value, then the a-val token shall be true.
(That is, the associated HTTP Server Endpoint does not return error code 406 (Not Acceptable),
unless other HTTP headers are the cause of the error.)
Lastly, the Content Source shall be able to support TimeSeekRange.dlna.org on the entire content
binary, as required by 10.1.3.19.2.
[ATTRIBUTES ]
[C OMMENT] An HTTP Server that can respond with content data occupying a particular npt time
range needs to advertise this capability in the 4th field.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.20.5
[G UIDELINE ] If the associated HTTP Server Endpoint is capable of responding with a Target
Response that corresponds exactly to the data range indicated in the HTTP request's Range header
value, then the b-val token shall be true.
(That is, the associated HTTP Server Endpoint does not return error code 406 (Not Acceptable),
unless other HTTP headers are the cause of the error.)
Lastly, the Content Source shall support Range on the entire content binary, as required by
10.1.3.19.2.
[ATTRIBUTES ]
[C OMMENT] An HTTP Server that can respond with content data occupying a particular byte range
needs to advertise this capability in the 4th field.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.20.6
[G UIDELINE ] If the associated HTTP Server Endpoint supports the realTimeInfo.dlna.org HTTP
header with a finite max-lag-time value (as described in 11.4.3.56.2), then
[C OMMENT] The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2] .
• a-val: indicates support of the Range header (see 11.4.4.168 and 11.4.4.169) for the context of
the protocolInfo under the "Full Random Access Data Availability" model.
• b-val: In scenarios involving the RTP Media Transport, the b-val shall have a value of "0".
[ATTRIBUTES ]
[C OMMENT] For more information about the RTP Media Transport and the "Limited Random
Access Data Availability" model, see the following guidelines:
10.1.3.21.2
[G UIDELINE ] If the Content Source assigns "0" to both a-val and b-val of the op-param, then the
op-param shall be omitted from the 4th field.
[ATTRIBUTES ]
[C OMMENT] The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
The format of each play-speed value shall conform to the TransportPlaySpeed string, as specified in
ISO/IEC 29341-14-10, 2.2.8.
If used in conjunction with a protocolInfo indicating "http-get" in the first field, then the use of the
PlaySpeed.dlna.org HTTP header applies to the context of the protocolInfo. See 11.4.3.53 for more
information.
If used in conjunction with a protocolInfo indicating "rtsp-rtp-udp" in the first field, then the use of the
RTSP Scale header applies to the context of the protocolInfo. See 11.4.4.170 for more information.
If using the 4th_field syntax defined in 10.1.3.17.1 or 10.1.3.17.2 and if ps-param follows another
parameter, then the ps-param shall include the ps-param-delim.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the DLNA.ORG_PS parameter. The parameter indicates the
transport layer's supported play-speeds.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4]. The ps-param is not used for image content.
A ps-value can have "," characters as delimiters for supporting server-side play-speeds and the
DLNA guidelines defines a embedded comma escaping rule for a value of a CMS:GetProtocolInfo
response. Refer to 10.1.3.15.4 for more information.
Each of the play-speed values in ps-param is listed as an integer or as a ratio of two integer values.
It is highly recommended that implementers list play-speed values as close as possible to the actual
speed used in the distribution of the content. Specifically, implementers need to avoid the use of
rounding. For example, a speed value of 1,8× is represented as 9/5 and not rounded to 2. UPnP
control points use the speed value in ps-param to compute elapsed time. Rounding errors
accumulate quickly resulting in differences between the actual playtime and the value computed by
the UPnP control point. The computed value is typically displayed in the control point UI.
10.1.3.22.2
[G UIDELINE ] If the ps-param token appears in a res@protocolInfo or a protocolInfo of a UPnP AV
connection, and if the first field of protocolInfo is "http-get", then the Content Source shall be
capable of responding (with a Target Response) to requests that indicate a valid and supported
play-speed for the content binary.
(That is, the associated HTTP Server Endpoint does not return error code 406 (Not Acceptable),
unless other HTTP headers are the cause of the error.)
[ATTRIBUTES ]
[C OMMENT] When used with a <res> element or UPnP AV connection, the DLNA.ORG_PS
parameter identifies whether the server supports one or more optional server-side play-speed
operations.
Guideline 11.4.3.53 describes more information about responding to HTTP requests that use the
PlaySpeed.dlna.org HTTP header.
Variants of the [C1] and [C2] examples that involve sources of audio and/or AV content apply to this
guideline.
10.1.3.22.3
[G UIDELINE ] In conjunction with the rules defined in 10.1.3.22.1 and 10.1.3.22.2, the fourth field of
a res@protocolInfo may use the ps-param for non-DLNA Media Format Profiles.
[ATTRIBUTES ]
[C OMMENT] This guideline permits the use of DLNA.ORG_PS for both DLNA and non-DLNA
content. This guideline also permits the parameter to be used for HTTP and RTP and other
transports not specified by DLNA.
The following examples (see 10.1.3.16.5) apply to this guideline row: [C1], [C2], [C3], [C4], [P1],
[P2], [P3], and [P4]. Although the download usage does not employ play-speeds to achieve the
system usage in a normative way, control points that parse 4th field parameters need to tolerate the
presence of the ps-param.
CDS:CreateObject syntax has restrictions on the 4th field syntax, as described in 10.1.8.19.
[ATTRIBUTES ]
This guideline also applies in upload AnyContainer and optional content management (OCM)
operations. In those cases, a control point is responsible for setting this parameter when it knows
the content related to the operation is a converted content binary. This applies to content that is
DLNA guidelines; Part 1-1: Architecture and protocols
– 171 –
intended for a content transfer process, as well as operations that involve a URI specified by the
control point.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [C5], [P1],
[P2], [P3], [P4], and [P5].
10.1.3.23.2
[G UIDELINE ] In conjunction with the rules defined in 10.1.3.23.1, the fourth field of a
res@protocolInfo may use ci-param for the following scenarios.
[C OMMENT] This guideline permits the use of DLNA.ORG_CI for both DLNA and non-DLNA content.
This guideline also permits the parameter to be used for HTTP and RTP and other transports not
specified by DLNA.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [C5], [P1],
[P2], [P3], [P4], and [P5].
10.1.3.23.3
[G UIDELINE ] If the UPnP MediaServer knows that the content of a <res> element is a converted
content binary, then the MediaServer should use the ci-param in the protocolInfo value.
[ATTRIBUTES ]
[C OMMENT] The ci-param is not mandatory, but its use is strongly encouraged, especially for
converted content.
How a Content Source knows if content is converted is out of scope for the guidelines. In some
cases, the Content Source knows because it is the entity that actually converts the content. In other
cases, the Content Source might know because the Content Source was informed in an
implementation-specific manner.
This guideline applies to MediaServers because of examples [C1] and [C2] (see 10.1.3.16.5).
10.1.3.23.4
[G UIDELINE ] The ci-param may be omitted.
[ATTRIBUTES ]
[C OMMENT] The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4],
[C5], [P1], [P2], [P3], [P4], and [P5].
10.1.3.23.5
[G UIDELINE ] If a protocolInfo value omits the ci-param, then UPnP MediaServer control points shall
infer that the associated content is not converted content.
[ATTRIBUTES ]
[C OMMENT] The following examples (see 10.1.3.16.5) apply to this guideline: [P1], [P2], [P3], [P4].
Example
• DLNA.ORG_FLAGS=03100000000000000000000000000000.
[ATTRIBUTES ]
[C OMMENT] Many DLNA binary-value flags that belong in the fourth field are encapsulated in this
parameter. This helps reduce the length of the 4th field as the number of binary-value parameters
increases in the future. In a simple usage, a single bit in the binary representation of flags-value
maps to a single binary-value parameter. In some cases, DLNA might choose to define that a series
of bits represents a small integer.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
10.1.3.24.2
[G UIDELINE ] The primary-flags token shall be exactly 8 hexadecimal digits, and it shall represent a
value composed of 32 binary bits. Each bit shall represent a binary flag. The least significant bit
corresponds to bit-0 and the most significant bit corresponds to bit-31 (e.g.
10000000000000000000000000000000b = 0x80000000 where bit-31 is the only bit set to true).
[ATTRIBUTES ]
[C OMMENT] The first 8 hexadecimal digits represent 32 binary flags. DLNA defines meaning for
some of these bits. Other bits are reserved for future definition and are required to have a value of
false at this time.
The usages of defined bits are defined in other DLNA guidelines.
When a protocolInfo represents the capabilities of a content binary, the bits are intended to be a
representation of the applicability to the content binary, not on the current conditions of the network
or the server's ability to stream data at the current time. When a stream is attempted on a content
binary with the tm-s flag set, the DMS is still free to return an error that the stream cannot be
completed at the current time due to internal conditions.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4]. In some cases, the flags-param will provide information that is of no use to certain
endpoints. However, endpoints that parse the 4th field are required to tolerate the presence of the
flags-param.
10.1.3.24.3
[G UIDELINE ] The reserved-data shall be exactly 24 hexadecimal digits. These hexadecimal digits
are reserved for future use and shall have a value "0".
[ATTRIBUTES ]
[C OMMENT] The first 8 hexadecimal digits are used for primary-flags and the rest are reserved and
undefined at this time.
When DLNA defines new normative flags and/or parameters for the 4th field, those flags and
parameters are expected to be defined here. The alternative of declaring a new 4th field parameter
is strongly discouraged for future authors of DLNA guidelines.
In general, definitions of new flags or parameters (that will occupy the current space allocated for
reserved-bytes) need to define a syntax and semantics for DMS, DMR, DMC, and Push Controllers.
Furthermore, parameter values that have short hexadecimal representations (such as new binary
flags) preferably occupy hexadecimal digits that are more significant while parameter values that
have longer hexadecimal representations occupy the less significant hexadecimal digits.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
10.1.3.24.4
[G UIDELINE ] UPnP AV MediaServer control points shall be tolerant of reserved-data tokens that do
not have "0" value hexadecimal digits.
[ATTRIBUTES ]
[C OMMENT] The following examples (see 10.1.3.16.5) apply to this guideline: [P1], [P2], [P3], and
[P4].
• Bits [31,21] and Bits [16,14] (inclusive) of the primary-flags token are valid for use (i.e. those bits
are valid for use).
• Bits [19,17] and Bits [13,0] of the primary-flags token have undefined values.
If the dlna-v1.5-flag of the primary-flags token is false, then it shall mean the following.
[C OMMENT] Bits [31,22] and Bits [16,14] are not defined for previous versions of the DLNA
guidelines.
Bit-21 is the only bit defined in an erratum for the DLNA v1.0 guidelines.
If maxsp-param is specified, then the RTP Serving Endpoint shall support the Speed header in a
RTSP PLAY request if the value of the "Speed" header is less than or equal to the attribute value of
maxsp-param. The RTSP "Speed" header is defined in IETF RFC 2326, 12.35.
[ATTRIBUTES ]
M A DMP DMS DMC DMR M-DMP M-DMS n/a IETF RFC W7RAO
+DN+ +UP+ +PU+ M-DMC 2326
ISO/IEC
29341-14-10
ISO/IEC
29341-14-11
ISO/IEC
29341-20-12
[C OMMENT] Excluding the variants that involve download, the following examples (see 10.1.3.16.5)
apply to this guideline: [C1] , [C2], [C3], [C4], [P1], [P2], [P3], and [P4]. Endpoints that parse 4th field
parameters need to tolerate the presence of this parameter.
[C OMMENT] This defines the syntax for vendor extensions in the fourth field of protocolInfo values.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2] , [C3] , [C4], [P1], [P2], [P3],
and [P4].
10.1.3.27.2
[G UIDELINE ] Vendors may use other-param for vendor-specific parameters in the fourth field of a
protocolInfo value.
[ATTRIBUTES ]
[C OMMENT] This guideline permits the use of vendor extensions in the fourth field.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [C5], [P1],
[P2], [P3], and [P4].
10.1.3.27.3
[G UIDELINE ] A UPnP AV MediaServer that receives a CDS:CreateObject request to create a <res>
element with a res@protocolInfo that has optional and/or vendor-defined 4th field parameters and if
the MediaServer returns a success response, then the MediaServer shall omit the unsupported 4th
field parameters from the created <res> element.
[ATTRIBUTES ]
[C OMMENT] DMS devices are not required to interpret, understand, store, or maintain
vendor-defined parameters in the 4th field.
This guideline is an extension of guideline 10.1.8.24.3, which requires a DMS to return only the
supported metadata properties in a success response.
The following examples (see 10.1.3.16.5) apply to this guideline: [P5]. As a corollary, control points
involved in example [C5] are expected to tolerate responses that omit unsupported 4th field
parameters.
[C OMMENT] The sp-flag provides a way for the Content Source to indicate that it will send packets
at the rate of the normal Clock Source.
In normal HTTP operation the Content Receiver endpoint is the source for the Playback Clock which
controls the pace of the rendering. The Content Receiver endpoint uses TCP flow control to match
the pace of the transfer of content to the pace of the playback. In some cases, the Content Source
might be the Content Clock Source, such as in the case of live broadcast content. This means that
if the actual throughput (including any transmission delays caused by additional transmission loads
on the network) is not sufficient for the Content Clock Source, then the Content Source will take
steps to ensure that the transmitted content binary matches the indicated Media Format Profile, but
the bitstream can show discontinuities such as dropped frames.
Likewise, in RTP the Serving Endpoint is typically the Clock Source and controls the rate at which
the content is sent to the network.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1], [C2], [C3], [C4], [P1], [P2],
[P3], and [P4].
10.1.3.28.2
[G UIDELINE ] In the context of SourceProtocolInfo values obtained from CMS:GetProtocolInfo for a
UPnP AV MediaServer, the sp-flag shall mean the following.
• False = The Content Source is never the Content Clock Source for a protocolInfo when there is
a “match by protocolInfo format”.
• True = The Content Source is capable of being the Content Clock Source for a protocolInfo when
there is a “match by protocolInfo format”.
[ATTRIBUTES ]
[C OMMENT] Variants of the [C1] and [C2] examples that involve MediaServers apply to this
guideline (see 10.1.3.16.5).
10.1.3.28.3
[G UIDELINE ] In the context of SinkProtocolInfo values obtained from CMS:GetProtocolInfo for a
UPnP AV MediaRenderer, the sp-flag shall always be true or the flags-param shall be omitted.
[ATTRIBUTES ]
[C OMMENT] Like DMP devices, DMR devices are required to support rendering of content,
regardless of whether the Content Clock Source is determined by the Content Source.
10.1.3.28.4
[G UIDELINE ] When a Content Source streams live content and does not support any UCDAM
random access modes for that content, the Content Source shall set the sp-flag (Sender Paced Flag,
described in 10.1.3.28.1) to “true”.
[ATTRIBUTES ]
[C OMMENT] Setting the sp-flag indicates that a Content Source will send packets based on the
clock of the live content source when streaming from the “live position” (see 10.1.3.33.2 or
11.4.2.16.2 for more information). Live content refers to content that is available only up to the “live
position” at any given time.
Specifically, this means that the transport operation (that is indicated by the lop-npt or lop-bytes or
lop-cleartextbytes) shall be supported for a limited data range for the context of the protocolInfo, as
defined in 11.4.2.16.
The meaning of the lop-npt bit and the lop-bytes and lop-cleartextbytes flags are described in these
guidelines, depending on whether the context is for the HTTP Media Transport or the RTP Media
Transport.
[C OMMENT] The lop-npt indicates that the transport layer supports random access on a limited
range of npt playback positions. Likewise the lop-bytes indicate that the transport layer supports
random access on a limited range of byte positions.The lop-cleartextbytes flag indicates that the
transport layer supports random access on a limited range of byte positions within the cleartext byte
domain.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
10.1.3.29.2
[G UIDELINE ] Content Receiver endpoints or UPnP AV MediaServer control points that acquire
content data from a limited random access data range (defined in 11.4.2.16.1 shall be able to
properly request a valid range, even if the limited data range continuously changes with time.
[ATTRIBUTES ]
[C OMMENT] Content receiver endpoints and control points cannot assume anything special about
the data range because the absolute beginning can change and the content can have no end (i.e.
live content). See the following for more general information and examples of how this guideline
applies to HTTP:
The server defines when "Limited Random Access Data Availability" applies to the scenario using
one or more of the lop-npt, lop-bytes and/or lop-cleartextbytes flags (see 10.1.3.24.2) in a content
binary’s res@protocolInfo 4th field
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 182 –
An HTTP Client Endpoint is required to support seek operations (see 10.1.6.31.1) on all supported
Media Format Profiles (see 11.4.3.52.1) regardless of the data availability model.
• lop-npt: indicates support of the TimeSeekRange.dlna.org HTTP header for the context of the
protocolInfo under the "Limited Random Access Data Availability" model.
• lop-bytes: indicates support of the Range HTTP header for the context of the protocolInfo under
the "Limited Random Access Data Availability" model.
• lop-cleartextbytes: indicates support of the Cleartext Byte Seek Request Header for the context
of the protocolInfo under the "Limited Random Access Data Availability" model.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the lop-npt, lop-cleartextbytes and lop-bytes bits, when HTTP is
the transport protocol.
When used with a context involving HTTP, these bits identify if the server supports the
TimeSeekRange.dlna.org or Range HTTP headers or the Cleartext Byte Seek Request Header for
the associated content binary under the "Limited Random Access Data Availability" model.
For more information on the "Limited Random Access Data Availability" model for HTTP and these
HTTP headers, see the following guidelines:
• Clause A.5.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
• lop-npt: indicates support of the Range header for the context of the protocolInfo under the
"Limited Random Access Data Availability" model.
• lop-bytes: In scenarios involving the RTP Media Transport, the lop-bytes bit shall be set to false.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the lop-npt and lop-bytes bits, when RTP is the transport
protocol.
When used with a context involving RTP, these bits identify if the server supports the Range header
for the associated content binary under the "Limited Random Access Data Availability" model.
For more information on the "Limited Random Access Data Availability" model for RTP and these
RTP headers, see the following guidelines:
The playcontainer-param flag shall be false when the context of the protocolInfo involves media
collection binaries (e.g. DIDL_S and DIDL_V playlist files). Furthermore, when performing a DLNA
PlayContainer URI, the MediaRenderer shall not render media collection binaries when traversing
the CDS hierarchy. Note that this restriction against playing media collection binaries applies only to
media collection binaries defined by the DLNA guidelines.
[ATTRIBUTES ]
[C OMMENT] A DLNA PlayContainer URI allows a control point to instruct a DMR to browse a DMS
and play content from it.
The playcontainer-param is used on a per-profile basis. For example, if the protocolInfo for
"http-get" and "MPEG2_PS_NTSC" has playcontainer-param set to true, then MPEG2_PS_NTSC
content will be played in playcontainer operation.
This guideline also applies to DMR devices because they can expose protocolInfo that has the
playcontainer-param set to true through CMS:GetProtocolInfo.
This guideline also applies to control points that invoke CMS:GetProtocolInfo on a DMR because
they have to parse 4th field values.
Since the res@dlna:trackTotal attribute is not required, there is not a consistent way to represent
the individual tracks of media collection binaries. Furthermore, DLNA has no interoperability
guidelines for navigating the tracks within a media collection binary. Therefore, these guidelines
prohibit playback of media collection binaries until a future set of DLNA guidelines can adequately
address these issues.
10.1.3.32.2
[G UIDELINE ] In the context of the Source argument's protocolInfo values obtained from
CMS:GetProtocolInfo for a UPnP AV MediaServer, the playcontainer-param flag shall always be
false if the flags-param is included for a protocolInfo value.
Likewise, 4th field values provided by a Content Source shall set the playcontainer-param flag to
false if the flags-param is included in the protocolInfo value.
[ATTRIBUTES ]
[C OMMENT] The DMR device class is the only device class that sets the playcontainer-param to
true.
The following examples (see 10.1.3.16.5) apply to this guideline: [C1] and [C2].
[C OMMENT] If true, then the content does not have a fixed beginning. Otherwise, the content does
have a fixed beginning (i.e. npt=0 and byte-pos=0 map to the beginning). Note that the s 0 data
boundary can reset, as described in the comments 11.4.2.16 guideline 11.4.2.16.3.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.33.2
[G UIDELINE ] If the s 0 -increasing flag is true then the following shall apply to the context of the
protocolInfo.
• If the s N data boundary is changing with time, then the "live position" shall shift forward in
real-time.
• If the Content Source receives a transport layer request that is not a random access request (e.g.
HTTP request that omits Range and TimeSeekRange.dlna.org) then the Content Source shall
respond with content data from the "live point".
• If either lop-npt or lop-bytes is true, then the "Limited Random Access Data Availability" model
shall apply. See 11.4.2.16 for more information.
The rules in this guideline shall apply even in scenarios where the transport server does not support
random access requests (e.g. HTTP requests with Range or TimeSeekRange.dlna.org) for a
content binary.
[ATTRIBUTES ]
[C OMMENT] When s 0 -increasing is true, then the content binary has a beginning that can change.
Since it is possible to set the s 0 -increasing flag to true and not support random access requests, it
is necessary for this guideline to be applied in all scenarios.
For HTTP, this means that omitting the Range and TimeSeekRange.dlna.org headers in an HTTP
GET request results in the HTTP Server Endpoint returning content data bytes from a "live position"
(as described in 11.4.3.20.9). Furthermore npt = 0 or byte-pos = 0 has no meaning (as described by
11.4.3.20.16).
If lop-npt or lop-bytes is true, then the access model is governed by what is returned by
availableSeekRange.dlna.org (as described in 11.4.3.19.10).
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.33.3
[G UIDELINE ] If the s 0 -increasing flag is false, then the following shall apply to the context of the
protocolInfo.
[ATTRIBUTES ]
[C OMMENT] When s 0 -increasing is false, then the content binary has a fixed beginning. Since it is
possible to set the s 0 -increasing flag to false and not support random access requests, it is
necessary for this guideline to be applied in all scenarios.
For HTTP, this guideline means that HTTP requests that omit the Range and
TimeSeekRange.dlna.org headers results in the HTTP Server Endpoint returning content data from
the absolute beginning of the content (as described in 11.4.3.19).
These assumptions and the required behavior are consistent with assumptions of previous versions
of the DLNA guidelines.
s 0 -increasing = false permits mutually exclusive use of either the op-param or the lop-npt/lop-bytes
with values of true, while s 0 -increasing = true prohibits use of the op-param but allows use of lop-npt
and lop-bytes.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.33.4
[G UIDELINE ] In the context of Sink argument's protocolInfo values obtained from
CMS:GetProtocolInfo for a UPnP AV MediaRenderer, the s 0 -increasing flag shall always be true or
the flags-param shall be omitted.
[ATTRIBUTES ]
[C OMMENT] Like DMP devices, DMR devices are required to support normal playback rendering of
content, regardless of the server's buffering model.
[ATTRIBUTES ]
[C OMMENT] If true, then the content does not have a fixed ending. Otherwise, the content has a
fixed ending.
In conjunction with 10.1.3.33, it is possible to determine whether the server exhibits a growing or
sliding buffering model.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.34.2
[G UIDELINE ] In the context of SinkProtocolInfo values obtained from CMS:GetProtocolInfo for a
UPnP AV MediaRenderer, the s N -increasing flag shall always be true or the flags-param shall be
omitted.
[ATTRIBUTES ]
[C OMMENT] Like DMP devices, DMR devices need to support normal playback rendering of content,
regardless of the server's buffering model.
[ATTRIBUTES ]
[C OMMENT] See Table 40 for more information about Streaming Mode Transfer.
Content Sources can generate an error response if it does not have the resources to respond at the
current time.
The tm-s flag is not equivalent to the sp-flag. When the tm-s flag is true, it means that the Content
Source is able to transmit fast enough for immediate rendering. If the sp-flag is false and the
sustained throughput is less than what is needed for immediate rendering, then the Content Source
will preserve the content binary's bitstream because the Content Source does not act as the Clock
Source.
When the sp-flag is also true, it means that the Content Source is also the Clock Source for the
content, which means that the Content Source will take steps to ensure that the content binary
meets the expectations of the Media Format Profile, but the rendering stream can have
discontinuities (such as dropped frames).
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.35.2
[G UIDELINE ] The tm-s flag shall be set to true for protocolInfo values where the pn-param indicates
a Media Format Profile for audio-only or AV Media Class. Setting the tm-s flag to true for Images or
media collection binaries is expressly prohibited.
This requirement does not apply in scenarios where a res@protocolInfo value exists for a <res>
element that does not have a URI value. (That is, a CDS object that was created in an upload
AnyContainer operation and has yet to receive the actual content binary.)
[ATTRIBUTES ]
[C OMMENT] This ensures backwards compatibility with earlier DMP devices that always assume
that audio-only and AV content is available for streaming.
See guideline 11.4.2.3.1 (MT Transfer Mode Support) for information on the transfer modes that a
Content Receivers can specify when issuing requests.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
[ATTRIBUTES ]
[C OMMENT] See Table 40 for more information about Interactive Mode Transfer.
Content Sources can generate an error response if it does not have the resources to respond at the
current time.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
10.1.3.36.2
[G UIDELINE ] The tm-i flag shall be set to true for protocolInfo values where the pn-param indicates
a Media Format Profile for the Image Media Class or a media collection binary. Setting the tm-i flag
to true for Audio-only or AV content is expressly prohibited.
This requirement does not apply in scenarios where a res@protocolInfo value exists for a <res>
element that does not have a URI value. (That is, a CDS object that was created in an upload
AnyContainer operation and has yet to receive the actual content binary.)
[ATTRIBUTES ]
[C OMMENT] This ensures backwards compatibility with earlier DMP devices that always assume
that image content is available for immediate rendering.
See guideline 11.4.2.3.1 (MT Transfer Mode Support) for information on the transfer modes that
Content Receivers can specify when issuing requests.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
• If the http-stalling flag is true, then tm-b flag shall be set to true.
• If the sp-flag is true, then tm-b flag shall be false.
[ATTRIBUTES ]
[C OMMENT] See Table 40 for more information about Background Mode Transfer.
Content Sources can generate an error response if it does not have the resources to respond at the
current time.
Unlike the tm-s and tm-i flags, the tm-b flag can be used with all Media Classes.
A server that supports the http-stalling flag will also support the tm-b flag because a device that
supports indefinite stalling implicitly supports lower transmission throughputs that can result from
actively managing TCP flow control for a Background transfer. The converse is not true becase the
ability to support a Background transfer does not necessarily imply the ability to support indefinite
stalling via TCP flow control.
Background transfer cannot be used in conjunction with server-paced content. Lower transmission
throughputs resulting from a Background transfer can cause the server's buffer to overflow. Content
Receivers that want to download content that have sp-flag = true need to use the streaming
download media operation.
See guideline 11.4.2.3.1 (MT Transfer Mode Support) for information on the transfer modes that a
Content Receivers can specify when issuing requests.
The [C1] and [C2] examples (see 10.1.3.16.5) apply to this guideline.
[ATTRIBUTES ]
[C OMMENT] The Connection Stalling is a mechanism where a Content Receiver and a Content
Source cooperatively use standard TCP flow control to temporarily pause the transmission of data.
HTTP Server Endpoints are not to misinterpret HTTP-level transport inactivity as a symptom of a
TCP disconnect because a properly stalled HTTP Client Endpoint will use standard TCP flow control
to keep the TCP connection alive. HTTP Server Endpoints also need to be careful to not overflow
their local network buffers when theConnection Stalling method is being used.
The [C1] and [C2] examples apply to this guideline when the scenario involves audio or AV content.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 190 –
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer that implements this type of behavior uses ConnectionID "0"
to represent one or more transport layer connections. Specifically, UPnP AV MediaServers are
required to have at least one UPnP AV connection with ConnectionID of "0" to represent an
unknown number of connections (zero or more) to Content Receivers.
10.1.3.39.2
[G UIDELINE ] A UPnP AV MediaRenderer shall have a connection with a ConnectionID value of "0"
to represent the default connection whose access is always available to any UPnP AV
MediaRenderer control point in the network.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers maintain a default connection that can be accessed at any
time by any networked UPnP AV MediaRenderer control point (DMC, M-DMC, +PU+). A
ConnectionID value of "0" identifies this default connection.
[ATTRIBUTES ]
[C OMMENT] In the case of the UPnP AV connection "0", the information is assumed to be
inaccurate because the context of ConnectionID = "0" represents numerous requests for different
content. For example, the same ConnectionID of value "0" can be used for simultaneously serving
an image and an audio stream. Each of the media resources served in this scenario will have its own
protocolInfo.
10.1.3.40.2
[G UIDELINE ] When a UPnP AV MediaRenderer responds to a CMS:GetCurrentConnectionInfo
request, the value of the ProtocolInfo output argument shall contain information that corresponds to
the URI in the AVT.CurrentTrackURI virtual instance state variable of the corresponding
DLNA guidelines; Part 1-1: Architecture and protocols
– 191 –
AVTransport virtual instance. The corresponding AVTransport virtual instance has an InstanceID
equal to the value of the AVTransportID output argument of the same response.
If content has been assigned to the AVTransport virtual instance (i.e. the corresponding
AVT.CurrentTrackURI virtual instance state variable is not equal to the empty string), the value of
the ProtocolInfo output argument to the CMS:GetCurrentConnectionInfo request shall at least
include the Primary protocolInfo Set that describes the content.
If content has not been assigned yet to the AVTransport virtual instance (i.e. the corresponding
AVT.CurrentTrackURI virtual instance state variable equals the empty string), the value of the
ProtocolInfo output argument to the CMS:GetCurrentConnectionInfo request shall be an empty
string.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers always include the proper ProtocolInfo value when
responding to CMS:GetCurrentConnectionInfo requests.
[ATTRIBUTES ]
[C OMMENT] Typically, UPnP AV MediaServers and UPnP AV MediaRenderers include only the
value of 0 when responding to CMS:GetCurrentConnectionIDs. However, devices that implement
CMS:PrepareForConnection and/or DLNA BCM guidelines will respond with a list that includes
additional non-zero ConnectionID values.
10.1.3.41.2
[G UIDELINE ] If a UPnP AV MediaServer does not implement the AVTransport service, then it shall
return the value of "−1" for the AVTransportID argument in the CMS:GetCurrentConnectionInfo
action.
[ATTRIBUTES ]
10.1.3.41.3
[G UIDELINE ] A UPnP AV MediaRenderer shall return the value of "0" in the AVTransportID and
RcsID arguments in response to a CMS:GetCurrentConnectionInfo request where the ConnectionID
argument has the value of "0".
[ATTRIBUTES ]
[C OMMENT] Guidelines 10.1.6.2 and 10.1.6.3 require the "default" virtual instances to be always
present in the AVTransport and RenderingControl services. This guideline further requires these
"default" virtual instances to be always associated with the "default" connection of the Connection
Manager service.
10.1.3.41.4
[G UIDELINE ] UPnP AV MediaServer and UPnP AV MediaRenderer value for the
CMS.CurrentConnectionIDs state variable shall be a comma-separated list of all current
ConnectionID values.
[ATTRIBUTES ]
10.1.3.41.5
[G UIDELINE ] A UPnP AV MediaServer and a UPnP AV MediaRenderer shall respond to
CMS:GetCurrentConnnectionIDs requests. The ConnectionIDs output argument value shall have
the same value as the CMS.CurrentConnectionsIDs state variable.
[ATTRIBUTES ]
10.1.3.41.6
[G UIDELINE ] UPnP AV MediaServers and UPnP AV MediaRenderers shall include a ConnectionID
value of zero in the CMS.CurrentConnectionIDs state variable.
[ATTRIBUTES ]
10.1.3.41.7
[G UIDELINE ] A UPnP AV MediaServer shall return the value of "−1" for the RcsID argument in the
CMS:GetCurrentConnectionInfo action.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline is a requirement repeated from ISO/IEC 29341-20-12. This guideline's
scope for uniqueness is for the entire CDS hierarchy.
10.1.4.1.2
[G UIDELINE ] UPnP AV MediaServers should maintain the object ID value on a persistent basis.
[ATTRIBUTES ]
[C OMMENT] The purpose of this recommendation is to allow control points to implement features
like "my favorite content". Although control points cannot assume that object ID values are persisted,
this recommendation allows a control point to easily check if a CDS object is still available on the
network.
The reason why this is not mandatory is that some embedded devices can have difficulty in
persisting object ID values across device reboots.
10.1.4.1.3
[G UIDELINE ] A UTF-8 encoded object ID shall not exceed 256 B in the XML escaped form encoded
in UTF-8.
[ATTRIBUTES ]
[C OMMENT] Provides a reasonable maximum length for objectID values, which are essential for
CDS object declarations.
10.1.4.1.4
[G UIDELINE ] DIDL-Lite documents or fragments that contain one or more CDS objects (i.e. <item>
or <container> element) shall have a unique value for each object's @id attribute.
[ATTRIBUTES ]
[C OMMENT] This is a requirement of the CDS specification. This guideline's scope for uniqueness
is limited to the DIDL-Lite document or fragment. For example, a UPnP AV MediaRenderer that
reports metadata for a media collection cannot use the same object ID for each of the items in the
media collection.
[ATTRIBUTES ]
[C OMMENT] This requirement is implied in the CDS specification because the StartingIndex and
RequestedCount input arguments are designed for incrementally browsing a CDS container. The
only time when the unsorted order can be different between two CDS:Browse requests will be when
the UpdateID output argument values are different in the two responses.
A UPnP AV MediaServer control point implemented to a version of the DLNA protocol shall be as
defined in 9.2.32.2.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that at least one <res> element in the CDS object is identified
with a Mandatory Media Format Profile ID. An exception is to this guideline is when interacting with
legacy UPnP AV MediaServer control points.
This guideline allows a UPnP AV MediaServer to expose a <res> element of a CDS object in a
format for which there is no matching DLNA Media Format Profile provided that for interoperability
purpose this CDS object also features at least one other <res> element in a Mandatory Media
Format Profile.
As an example, an audio asset for which there is no matching DLNA Media Format Profile could be
exposed through a CDS object featuring the two following <res> elements:
• A <res> element using the LPCM DLNA Media Format Profile, for interoperability purpose
• A <res> element without any DLNA Media Format Profile, featuring the appropriate MIME type
for the audio asset.
10.1.4.4 MM DIDL-Lite Multiple Res: Formats
10.1.4.4.1
[G UIDELINE ] If exposing the same content in different Media Format Profiles, then the different
Media Format Profiles shall be exposed through multiple <res> elements in a single CDS object.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates a UPnP AV MediaServer device to expose multiple <res>
elements for a single CDS object. This allows a UPnP AV MediaServer control point to present a
single CDS object to the user, without necessarily presenting each variant of the same content.
This guideline will enable a UPnP AV MediaRenderer to have access to all <res> elements during
content playback to selected an alternative content variant that it can actually playback.
This guideline applies when the DMS can determine that content binaries contain the same content.
The following are some examples of how multiple <res> elements can be used.
• The DMS acquired the content binaries in such a way that it knows that they are the same
content.
This guideline is required because the MediaServer can always determine if it is providing a content
transformation (Converted Content).
10.1.4.4.2
[G UIDELINE ] A CDS object item marked as an object.item.imageItem or any of its derived classes
shall contain at least one <res> element that represents an Image Media Class Mandatory Media
Format Profile. Within the context of this guideline the Image Media Class DLNA Mandatory Media
Format Profiles shall be as defined in guideline 6.2.1 (GUN 69K5T) in IEC 62481-2
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an Image Media Class Mandatory Media Format Profile to improve content playback
interoperability.
10.1.4.4.3
[G UIDELINE ] A CDS object item marked as an object.item.audioItem or any of its derived classes
shall contain at least one <res> element that represents an Audio Media Class Mandatory Media
Format Profile.
Within the context of this guideline the Audio Media Class DLNA Mandatory Media Format Profiles
shall be as defined in guideline 6.2.3 (GUN Q77AY) in IEC 62481-2
[ATTRIBUTES ]
[C OMMENTS ] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an Audio Media Class Mandatory Media Format Profile to improve content playback
interoperability.
10.1.4.4.4
[G UIDELINE ] A CDS object item marked as an object.item.videoItem or any of its derived classes
shall contain at least one <res> element that represents an AV Media Class Mandatory Media
Format Profile.
Within the context of this guideline the AV Media Class DLNA Mandatory Media Format Profiles
shall be as defined in guideline 6.2.5.2 (GUN QOSMM), 6.2.5.3 (GUN FHMVO), 6.2.5.4 (GUN
OMCJY), 6.2.5.5 (GUN ZV5D5) and 6.2.5.6 (GUN E6DI6) in IEC 62481-2.
[ATTRIBUTES ]
[C OMMENTS ] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an AV Media Class Mandatory Media Format Profile to improve content playback
interoperability.
10.1.4.4.5
[G UIDELINE ] If the native content binary contains an HD video component, then a CDS object
exposing AV Media Class content shall contain at least one <res> element that represents an HD
Mandatory Media Format Profile as defined in guideline 6.2.5.3 (GUN FHMVO) and 6.2.5.5 (GUN
ZV5D5) in IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer expose an alternate <res>
element in an HD Mandatory Media Format Profile for any HD native content so an HD mandatory
variant is available to an HD Capable Device for rendering.
This is in addition to exposing the content in the Mandatory Media Format Profile as defined in
10.1.4.4.2
10.1.4.4.6
[G UIDELINE ] If the native content binary contains an UHD video component, then a CDS object
exposing AV Media Class content shall contain at least one <res> element that represents an UHD
Mandatory Media Format Profile as defined in guideline 6.2.5.6 (GUN E6DI6) in IEC 62481-2.
[ATTRIBUTES ]
[C OMMENTS ]
a) This guideline mandates that a UPnP AV MediaServer expose an alternate <res> element in
an UHD Mandatory Media Format Profile for any UHD native content so an UHD mandatory
variant is available to an UHD Capable Device for rendering.
b) This is in addition to exposing the content in the Mandatory Media Format Profile as defined
in 10.1.4.4.2.
c) This is in addition to exposing the content in the HD Mandatory Media Format Profile as
defined in 10.1.4.4.3.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 198 –
10.1.4.4.7
[G UIDELINE ] When a UPnP AV MediaServer is interacting with a UPnP AV MediaRenderer that
belongs to the HND Device Category and is implemented to a version of the DLNA protocol before
4.0, a CDS object item marked as an object.item.audioItem or any of its derived classes shall
contain at least one <res> element that conforms to the LPCM Audio Format Profile as defined in
guideline 8.5 of IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an Audio Media Class Media Format Profile supported by UPnP AV MediaRenderers that
belong to the HND Device Category and implement to a version of the DLNA protocol before 4.0, to
improve content playback interoperability.
10.1.4.4.8
[G UIDELINE ] When a UPnP AV MediaServer is interacting with a UPnP AV MediaRenderer that
belongs to the MHD Device Category and is implemented to a version of the DLNA protocol before
4.0, a CDS object item marked as an object.item.audioItem or any of its derived classes shall
contain at least one <res> element that conforms to either:
a) the MP3 Audio Format Profile as defined in guideline 8.8 of IEC 62481-2, or
b) the AAC_ISO_320 Audio Format Profile as defined in guideline 8.9 of IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an Audio Media Class Media Format Profile supported by UPnP AV MediaRenderers that
belong to the MHD Device Category and implement to a version of the DLNA protocol before 4.0, to
improve content playback interoperability.
10.1.4.4.9
[G UIDELINE ] When a UPnP AV MediaServer is interacting with a UPnP AV MediaRenderer that
belongs to the HND Device Category and is implemented to a version of the DLNA protocol before
4.0, a CDS object item marked as an object.item.videoItem or any of its derived classes shall
contain at least one <res> element that conforms to a Regional AV Format Profile as defined in
Table 21 of IEC 62481-2 for each geographical region supported by the UPnP AV MediaServer.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an AV Media Class Media Format Profile supported by UPnP AV MediaRenderers that
belong to the HND Device Category and implement to a version of the DLNA protocol before 4.0, to
improve content playback interoperability.
10.1.4.4.10
[G UIDELINE ] When a UPnP AV MediaServer is interacting with a UPnP AV MediaRenderer that
belongs to the MHD Device Category and is implemented to a version of the DLNA protocol before
4.0, a CDS object item marked as an object.item.videoItem or any of its derived classes shall
contain at least one <res> element that conforms to the AVC_MP4_BL_CIF15_AAC_520 AV Format
Profile as defined in guideline 9.3 of IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] This guideline mandates that a UPnP AV MediaServer exposes an alternate <res>
element in an AV Media Class Media Format Profile supported by UPnP AV MediaRenderers that
belong to the MHD Device Category and implement to a version of the DLNA protocol before 4.0, to
improve content playback interoperability.
10.1.4.4.11
[G UIDELINE ] If a CDS Object contains multiple <res> elements, then the URI values shall be such
that the UPnP AV MediaServer will correctly return the contentFeatures.dlna.org HTTP header (see
11.4.3.11.6) for each <res> element.
[ATTRIBUTES ]
[C OMMENT] This is to prevent issues for content binaries that match multiple Media Format Profiles
and expose a <res> element for each matching Media Format Profile. This can be accomplished by
having unique URIs for each <res> element.
10.1.4.4.12
[G UIDELINE ] A UPnP AV MediaServer, in addition to exposing a Mandatory Media Format Profile in
a CDS object, may concurrently expose additional optional Media Format Profiles in the CDS object.
[ATTRIBUTES ]
[C OMMENT] This guideline is to provide implementation guidance that a single CDS object could
contain additional DLNA Optional Media Format Profiles which could also be Converted Content
(e.g. transcoded content).
[ATTRIBUTES ]
URIs with domain names may appear in these types of SOAP responses, according to the rules
specified in 10.1.3.10.
This guideline applies to any URI value that uses an IP network address, regardless of whether the
content conforms to a DLNA Media Format Profile.
[ATTRIBUTES ]
[C OMMENT] These guidelines explain how a UPnP AV MediaServer is to handle the reporting of
<res> elements when the UPnP AV MediaServer has multiple network interfaces.
Essentially, the default behavior is that a UPnP AV MediaServer will only return <res> elements
where the URIs are known (or assumed to be) routable from the network interface that received the
request. However, if a UPnP AV MediaServer control point wants to receive URIs for all network
interfaces, then the DMP can specify the ALLIP value as part of the Filter argument. In such a
scenario, a UPnP AV MediaServer is obliged to return all of the <res> elements for all of the active
network interfaces that the UPnP AV MediaServer uses for media transport.
Because the guidelines language uses the UPnP AV MediaServer of a given UDN, a UPnP AV
MediaServer device that uses a different UDN for each network interfaces (equivalent to multiple
UPnP AV MediaServers for a single UPnP AV MediaServer device) does not need to return the
<res> elements that are accessible on a different network interface (e.g., res element found on a
different logical UPnP AV MediaServer).
Annex C describes the subtleties of multiple network interfaces and the role of these guidelines in
more detail.
10.1.4.6.2
[G UIDELINE ] A UPnP AV MediaServer that receives the ALLIP value in the Filter argument of a
CDS:Browse or CDS:Search request shall return all URIs associated with the UPnP AV
MediaServer of a given UDN, regardless of whether the URI is thought to be routable from the
network interface that received the SOAP request.
A UPnP AV MediaServer shall expose all URI values either through multiple <res> elements for
each CDS object or multiple CDS objects. Please see guidelines 10.1.4.6.3 and 10.1.4.6.4 for how
all URI values are exposed through multiple <res> elements or multiple CDS objects.
URIs with domain names may appear in these types of SOAP responses, according to the rules
specified in 10.1.3.10.
This guideline applies to any URI value that uses an IPv4 or IPv6 network address, regardless of
whether the content conforms to a DLNA Media Format Profile.
[ATTRIBUTES ]
10.1.4.6.3
[G UIDELINE ] In conjunction with guideline 10.1.4.6.2, a UPnP AV MediaServer that receives the
ALLIP value should return CDS objects with multiple <res> elements, such that some of these <res>
elements are URI values that point to the same content available on different network interfaces.
[ATTRIBUTES ]
[C OMMENT] This guideline allows a UPnP AV MediaServer to report content availability on multiple
networks through multiple <res> elements. The presence of multiple <res> elements is still
governed by 10.1.4.6.2.
10.1.4.6.4
[G UIDELINE ] A UPnP AV MediaServer that does not receive the ALLIP value (possibly with other
filter values, including the asterisk,*, value) may return CDS objects with zero or more <res>
elements.
Note that it is generally true that a UPnP AV MediaServer may return CDS objects with zero or more
<res> elements.
[ATTRIBUTES ]
[C OMMENT] Although it is implied that a UPnP AV MediaServer is not required to provide a <res>
element for a CDS object, this guideline states it explicitly. This guideline allows implementations
that rely on multiple CDS objects (instead of multiple <res> elements to represent different versions
of the same content) to comply with 10.1.4.6.1.
10.1.4.6.5
[G UIDELINE ] A UPnP AV MediaServer that receives the ALLINTIP value in the Filter argument of a
CDS:Browse or CDS:Search request shall return all URIs (both IPv4 and IPv6) associated with the
network interface of the UPnP AV MediaServer that received the SOAP request.
A UPnP AV MediaServer shall expose all URI values through multiple <res> elements for each CDS
object.
URIs with domain names may appear in these types of SOAP responses, according to the rules
specified in 10.1.3.10.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 202 –
This guideline applies to any URI value that uses an IPv4 or IPv6 network address, regardless of
whether the content conforms to a DLNA Media Format Profile.
[ATTRIBUTES ]
[C OMMENT] This guideline introduces a new Filter argument, ALLINTIP that is designed to support
IPv6 URIs. A DMS will respond with IPv6 URIs associated with a network interface in addition to any
IPv4 URIs associated with the same network interface when it receives the ALLINTIP Filter
argument in a CDS:Browse or CDS:Search request. This functionality is being implemented to
protect legacy IPv4-only devices from receiving IPv6 URIs that may not be supported.
This ALLINTIP filter differs from the ALLIP filter in that the ALLINTIP filter is relevant to a single
network interface whereas the ALLIP filter is applicable to all network interfaces on a device. IPv6
support brings with it the new concept of network interfaces now supporting multiple IP addresses.
This was not the case with IPv4 in which multiple IPv4 addresses referencing the same element in
URIs implied a single UPnP MediaServer instance was functioning on multiple network interfaces.
The inclusion of other values in a filter argument such as an asterisk *, are not prohibited when the
ALLINTIP filter is present, but these arguments would typically not be used in conjunction with this
new Filter argument.
10.1.4.6.6
[G UIDELINE ] If the DMC negotiates an IPv6 address for UPnP Communications with a DMS, the
DMC shall use an IPv6 address for UPnP Communication with a DMR.
[ATTRIBUTES ]
[C OMMENT] In a 3-box system usage, the DMC is responsible for negotiating the address family
needed to communicate between the DMS and the DMR. If the DMC determines that the DMS is
only reachable using an IPv6 address, it must attempt UPnP Communications with the DMR using
an IPv6 address to support communication between the DMS and DMR. If the DMR is not accessible
using an IPv6 address, then it is not possible to provide a URI to the DMR.
10.1.4.6.7
[G UIDELINE ] If the DMC negotiates an IPv6 address for UPnP Communications with a DMR, the
DMC shall use an IPv6 address for UPnP Communication with a DMS.
[ATTRIBUTES ]
[C OMMENT] In a 3-box system usage, the DMC is responsible for negotiating the address family
needed to communicate between the DMS and the DMR. If the DMC determines that the DMR is
only reachable using an IPv6 address, this guideline ensures that the DMC will perform UPnP
Communications with the DMS using an IPv6 address to support communication between the DMS
and DMR. This guideline overrides the default guideline to prefer IPv4 over IPv6 for UPnP
DLNA guidelines; Part 1-1: Architecture and protocols
– 203 –
Communications (9.2.1.6). If the DMS is not accessible using an IPv6 address, then it is not
possible to provide a URI to the DMR.
10.1.4.6.8
[G UIDELINE ] When communicating with a DMR, the DMC’s UPnP control point shall only send URIs
containing IP addresses that are consistent with the IP address used for UPnP communication
between the DMC and DMR.
[ATTRIBUTES ]
[C OMMENT] This guideline adds support for the IPv6 Connectivity function in a 3-box usage. The
DMC in this usage needs to verify that the URIs being sent to the DMR contain an IP address that is
reachable by the DMR.
10.1.4.6.9
[G UIDELINE ] Rendering and Serving Endpoints shall use the <dlna:X_DLNACAP> element in the
Device Description Document (as a child of the <device> element that represents the
MediaRenderer or MediaServer Device) and include a Capability ID value of “IPv6” as described in
9.2.35.1 if they support the IPv6 Connectivity Device Function.
[ATTRIBUTES ]
10.1.4.6.10
[G UIDELINE ] If a UPnP AV MediaServer receives a CDS:Search or CDS:Browse action, and the
action does not include the ALLIP or ALLINTIP filter parameter, then the response shall only include
URIs using the same IP address family (and for IPv6, the same IPv6 prefix) as was used to invoke
the UPnP action.
[ATTRIBUTES ]
[C OMMENT] This means that when browsing a DMS using IPv4, it only returns IPv4 addresses, and
when browsing a DMS using IPv6, it only returns IPv6 addresses, unless the request includes the
ALLIP or ALLINTIP filter parameters.
10.1.4.6.11
[G UIDELINE ] A UPnP AV MediaRenderer that supports the IPv6 Connectivity Device Function shall
tolerate URIs with IPv4 and IPv6 addresses regardless of which IP address family is used when
invoking an AVTransport service action.
[ATTRIBUTES ]
SetNextAVTransportURI request, it shall tolerate IPv6 URIs even if the request was received over
IPv4, and vice versa.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer devices that implement thumbnail support reduce the network
load for themselves and for control points that display thumbnails to the user.
10.1.4.7.2
[G UIDELINE ] If a UPnP AV MediaServer exposes a CDS object with a <upnp:class> designation of
object.item.videoItem (or any class derived from it), then the UPnP AV MediaServer should provide
a <res> element for the thumbnail resource. (Multiple thumbnail <res> elements are also allowed.)
[ATTRIBUTES ]
10.1.4.7.3
[G UIDELINE ] If a UPnP AV MediaServer exposes thumbnail images for image or video content,
then a UPnP AV MediaServer shall provide a thumbnail that conforms to guideline 7.1.7 (GUN
6SXDY) in IEC 62481-2 Media Format Profile and be declared with the JPEG_TN designation in the
fourth field of the res@protocolInfo attribute.
[ATTRIBUTES ]
[C OMMENT] When thumbnails are provided, the minimal expectation is to provide JPEG thumbnails.
However, vendors can also provide additional thumbnails using the JPEG_TN or PNG_TN profiles.
10.1.4.7.4
[G UIDELINE ] If a UPnP AV MediaServer exposes thumbnail images for image or video content,
then a UPnP AV MediaServer may provide additional <res> elements for thumbnail images.
[ATTRIBUTES ]
10.1.4.7.5
[G UIDELINE ] A UPnP A/V Media Server shall not expose a <res> element with a thumbnail Media
Format Profile ID (i.e. JPEG_TN, PNG_TN), without exposing at least one additional <res> element
that is not one of the thumbnail Media Format Profile IDs.
DLNA guidelines; Part 1-1: Architecture and protocols
– 205 –
[ATTRIBUTES ]
[C OMMENT] Thumbnails are designed to augment other content items of any Media Class (Audio,
AV, or Images) which can include non-DLNA content. They are not meant to represent standalone
images.
Images that will not be used as thumbnails but which match the thumbnail resolution will preferably
be exposed using the appropriate smallest image Media Format Profile ID (e.g. JPEG_SM).
10.1.4.7.6
[G UIDELINE ] If an UPnP AV MediaServer exposes video content, then the <item> element that
describes the video content may include zero or more <res> elements that reference companion
images of any size.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServers that expose a video item can include in the <item> element
zero or more <res> elements referencing companion images that provide additional descriptive
information. Examples of companion images include larger versions of thumbnails, posters
describing a movie, and others.
[ATTRIBUTES ]
[C OMMENT] Unlike image or video content, thumbnails for audio content will preferably be
presented through the <upnp:albumArtURI> element.
10.1.4.8.2
[G UIDELINE ] If a UPnP AV MediaServer exposes one or more <upnp:albumArtURI> elements for a
single CDS object, then at least one of the URI values should point to thumbnail album art
conforming to guideline 7.1.7 (GUN 6SXDY) in IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] If album art thumbnails are provided, the desired expectation is to have JPEG
thumbnails. Additional thumbnails can also be provided.
10.1.4.8.3
[G UIDELINE ] If a UPnP AV MediaServer exposes a <upnp:albumArtURI> element with a URI
pointing to a thumbnail conforming to a DLNA Media Format Profile, then the <upnp:albumArtURI>
shall have the albumArtURI@dlna:profileID attribute that identifies the DLNA profile ID of the
thumbnail.
<upnp:albumArtURI dlna:profileID="JPEG_TN"
xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
http:/192.168.1.1/album/albumArt1.jpg
</upnp:albumArtURI>
[ATTRIBUTES ]
[C OMMENT] This guideline allows control points a convenient way to identify thumbnails that
conform to a DLNA Media Format Profile.
Note that this guideline does not apply in the scenario where a DMS exposes a content binary that
was imported by the DMS, except when such content is received from a DLNA source.
All guidelines in 10.1.4.9 do not apply in scenarios involving URIs and/or <res> elements for RTP
Media Transport because RTP encapsulation and padding make the offsets in the IFO file
inaccurate.
[ATTRIBUTES ]
[C OMMENT] Some decoders cannot handle the SCR/PTS discontinuous PS stream without proper
additional decoder-specific control. This guideline provides the method that allows the DMP to
obtain the information about the SCR/PTS discontinuous regions in program stream-profiled
content.
The following are examples of content where a UPnP AV Media Server needs to comply with this
guideline when exposing such content.
• A DMS application running on an open platform, such as a PC, that directly records, generates,
or edits content.
The following are examples of content where a UPnP AV Media Server does not have to comply with
this guideline when exposing such content:
• A DMS application running on an open platform, such as a PC, that receives or copies content
from a non-DLNA source (e.g. Internet)
• A DMS application running on an open platform, such as a PC, which has other separate
applications that record, create, or edit content or that import content from non-DLNA sources
(e.g. Internet).
Although the above comments give examples where this guideline does not apply, it is still strongly
encouraged that vendors provide IFO files in all cases when exposing mandatory format profiles as
specified in IEC 62481-2 that have a discontinuity.
10.1.4.9.2
[G UIDELINE ] If a UPnP AV MediaServer exposes a content binary profiled according to
MPEG_PS_NTSC or MPEG_PS_PAL profiles (IEC 62481-2), along with an associated IFO file, then
it shall also expose the IFO file through the res@dlna:ifoFileURI attribute to present the URI for the
IFO file as defined in 10.1.4.9.9.
[ATTRIBUTES ]
10.1.4.9.3
[G UIDELINE ] If a Push Controller serves a content binary profiled according to MPEG_PS_NTSC or
MPEG_PS_PAL profiles (IEC 62481-2), along with an associated IFO file, directly to a UPnP AV
MediaRenderer, then the Push Controller shall include the res@dlna:ifoFileURI attribute in the
CurrentURIMetaData input argument for the AVT:SetAVTransportURI request as defined in
10.1.6.8.3. The res@dlna:ifoFileURI attribute contains the URI for the IFO file as defined in
10.1.4.9.9.
[ATTRIBUTES ]
10.1.4.9.4
[G UIDELINE ] If a UPnP AV MediaServer exposes a content binary profiled according to
MPEG_PS_NTSC or MPEG_PS_PAL profiles (IEC 62481-2), without SCR or PTS discontinuities,
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 208 –
the UPnP AV MediaServer may provide a res@ dlna:ifoFileURI attribute to present the URI for the
IFO file as defined in 10.1.4.9.9.
[ATTRIBUTES ]
[C OMMENT] An IFO file can contain other metadata which might be useful to the Rendering
Endpoint.
10.1.4.9.5
[G UIDELINE ] If a Push Controller serves a content binary, profiled according to MPEG_PS_NTSC
or MPEG_PS_PAL profiles (IEC 62481-2), without SCR or PTS discontinuities, directly to a
MediaRenderer, then the Push Controller may include the res@dlna:ifoFileURI attribute in the
CurrentURIMetaData input argument for the AVT:SetAVTransportURI request as defined in
10.1.6.8.3. The res@dlna:ifoFileURI attribute contains the URI for the IFO file as defined in
10.1.4.9.9.
[ATTRIBUTES ]
10.1.4.9.6
[G UIDELINE ] If an IFO file is provided for a MPEG_PS_NTSC or MPEG_PS_PAL profiled content
binary via an associated res@dlna:ifoFileURI attribute and/or the transport layer (such as described
in 11.4.3.12), Rendering Endpoints shall render the content item even if the MPEG stream contains
discontinuous SCR and/or PTS.
[ATTRIBUTES ]
[C OMMENT] If a MediaServer does not provide an IFO file (e.g. res@dlna:ifoFileURI is omitted) and
a content binary, profiled according to MPEG-2 AV Format, usage of Profile IDs, Profiles:
MPEG_PS_NTSC and MPEG_PS_PAL, IEC 62481-2, has discontinuities, then the Rendering
Endpoint can choose not to render the content binary.
10.1.4.9.7
[G UIDELINE ] If a Rendering Endpoint attempts to render a content binary that is profiled according
to MPEG-2 AV Format, usage of Profile IDs, Profiles: MPEG_PS_NTSC and MPEG_PS_PAL, IEC
DLNA guidelines; Part 1-1: Architecture and protocols
– 209 –
62481-2 that has discontinuities and no IFO file is available, then the Rendering Endpoint shall
gracefully recover from the failure condition caused by any discontinuity.
[ATTRIBUTES ]
10.1.4.9.8
[G UIDELINE ] An SCR or PTS discontinuity is defined as the occurrence of one of the following
conditions in an MPEG2 PS (IEC 62481-2) content binary.
Condition1:
Or
Condition2:
where
"The Program Stream shall be constructed such that the time interval between the bytes
containing the last bit of system_clock_refrence_base fields in successive packs shall be less
than or equal to 0,7s."
All the mathematical equations on calculating SCR/PTS discontinuity are expected to be performed
using unsigned integer arithmetic as described in ISO/IEC 13818-1: 2.4.3.7.
10.1.4.9.9
[G UIDELINE ] If a UPnP AV MediaServer provides an IFO file, then the URI of the IFO file shall be
specified.
IFO file URIs are governed by guidelines in 10.1.3.10, except that the maximum length for an IFO
file URI is 900 B.
Example:
[ATTRIBUTES ]
[C OMMENT] Content Receivers can get the IFO file by issuing HTTP GET requests using this URI.
The reason for a shorter IFO file URI is because they are included in HTTP headers where the
length is constrained.
• @id
• @parentID
• @restricted
• dc:title
• upnp:class
[ATTRIBUTES ]
[C OMMENT] The Filter argument of the CDS:Browse and CDS:Search action instructs a UPnP AV
MediaServer ContentDirectory to return only the specified metadata properties in the DIDL-Lite
response of the Result output argument. This guideline clarifies that some metadata properties are
required to be present even if they are not specified in the Filter argument.
10.1.4.10.2
[G UIDELINE ] If an element of metadata property is specified, then the required attributes of the
metadata element shall be presented.
For example:
10.1.4.10.3
[G UIDELINE ] A UPnP AV MediaServer control point should explicitly specify the desired metadata
properties in the Filter input argument of a CDS:Browse or CDS:Search request.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends control points to limit the requested metadata to only the
metadata that will be used by the control point. A Filter value of asterisk "*" will likely cause the
UPnP AV MediaServer to send more metadata than what the control point can actually use.
10.1.4.10.4
[G UIDELINE ] A UPnP AV MediaServer in conjunction with 10.1.4.10.1 and 10.1.4.10.7, shall not
return metadata properties unless specified in the Filter argument.
For example:
• If a control point does not specify res@importUri in the Filter, then it is not returned.
Note that having an attribute property in the Filter automatically requires the MediaServer to return
the element to which the attribute belongs.
For example:
• If the control point specifies res@importUri (without "res"), then the "res" is also returned.
[ATTRIBUTES ]
10.1.4.10.5
[G UIDELINE ] A UPnP MediaServer shall return DLNA metadata (i.e. attributes or elements with the
dlna: prefix) only when the Filter argument indicates a request for the particular DLNA attribute(s) or
element(s).
[ATTRIBUTES ]
[C OMMENT] This behavior is required by the ContentDirectory specification and is consistent with
the guideline 10.1.4.10.4.
Guidelines that require DLNA-defined metadata do not overrule underlying rules specified by the
UPnP AV ContentDirectory service.
For example, guideline 10.1.4.8.3 requires albumArtURI@dlna:profileID, but a MediaServer only
includes albumArtURI@dlna:profileID in a response when the Filter argument indicates a request
for it.
10.1.4.10.6
[G UIDELINE ] A UPnP MediaServer should declare the dlna: namespace (i.e.
"urn:schemas-dlna-org:metadata-1-0/") only when the Filter argument indicates a request for one or
more DLNA attributes or elements and one or more DLNA attributes are included in the DIDL-Lite
response.
[ATTRIBUTES ]
[C OMMENT] This guideline reduces the computational requirements of control points that employ
validating schemas.
Although some guidelines require DLNA-defined elements and attributes in certain situations, the
DLNA schema does not play a syntax enforcement role as all DLNA-defined elements and attributes
are considered optional from the schema's perspective.
For example, guideline 10.1.4.8.3 albumArtURI@dlna:profileID when the associated URI points to
an image that is compliant to a DLNA Media Format Profile. Since it is impossible for the DLNA
schema to determine if a URI points to a DLNA Media Format Profile, the
albumArtURI@dlna:profileID is considered optional attribute (from a schema perspective) even
though it is required from a guidelines perspective.
10.1.4.10.7
[G UIDELINE ] A UPnP AV MediaServer should respond to a CDS:Browse or CDS:Search request
with any additional mandatory metadata properties above those required in requirement 10.1.4.10.1
in the DIDL-Lite response when required by the value in the upnp:class property or derived classes
for that value, even if the metadata properties are not specified in the Filter argument of a
CDS:Browse or CDS:Search request.
[ATTRIBUTES ]
[C OMMENT] The UPnP CDS specification ISO/IEC 29341-20-3 defines some additional classes
through the upnp:class property that contains mandatory CDS properties above the 5 required in
requirement 10.1.4.10.1. For example, there are derived classes of object.container that increases
the number of required properties beyond the 5 basic properties defined in 10.1.4.10.1 as follows:
• The transmission of a SOAP response with a huge byte length (>204 800 B).
• The transmission of a SOAP response that exceeds 30 s for the transmission time.
[ATTRIBUTES ]
[C OMMENT] This guideline allows a UPnP AV MediaServer to limit the number of CDS objects
returned in the SOAP response, even if the control point specified a desire for more CDS objects in
the RequestedCount input argument. The reason for permitting such behavior is to allow UPnP AV
MediaServer implementations to comply with other guidelines: 9.2.15 and 9.2.9.
10.1.4.11.2
[G UIDELINE ] The number of CDS object entries (total <item> and <container> elements) in the
Result output argument (containing the DIDL-Lite metadata) shall match the value specified in the
NumberReturned output argument.
[ATTRIBUTES ]
[C OMMENT] This guideline will be followed, even if a UPnP AV MediaServer reduces the number of
CDS objects returned in the SOAP response.
10.1.4.11.3
[G UIDELINE ] If a UPnP AV MediaServer device reduces the number of CDS objects in a
CDS:Browse(BrowseDirectChildren) or CDS:Search response then the number of returned CDS
objects (as parsed in Result) shall be equal to the value of NumberReturned, which is less than
RequestedCount.
[ATTRIBUTES ]
ISO/IEC
29341-20-3
[C OMMENT] A UPnP AV MediaServer that limits the number of CDS objects is obligated to return a
NumberReturned value that is consistent with the RequestedCount input argument.
10.1.4.11.4
[G UIDELINE ] If a UPnP AV MediaServer control point uses a CDS:Browse with the
BrowseMetadata option, then it shall use a RequestedCount of 0 or 1 and StartingIndex of 0.
This guideline does not apply to an Upload Controller that only implements the CDS:CreateObject
action for only the upload AnyContainer operation..
[ATTRIBUTES ]
[C OMMENT]
[ATTRIBUTES ]
10.1.4.11.6
[G UIDELINE ] If the UPnP AV MediaServer device returns more than zero CDS objects in a response
to a CDS:Browse or CDS:Search query and if the UPnP AV MediaServer device does not provide an
accurate value for the TotalMatches output argument, then the TotalMatches output value shall be
set to zero.
[ATTRIBUTES ]
[C OMMENT] This guideline allows control points to conclude that a TotalMatches == 0 condition
indicates that the UPnP AV MediaServer could not accurately calculate the value in cases where the
UPnP AV MediaServer actually returned CDS objects.
Although some UPnP AV MediaServer implementations might choose to report the accurate
TotalMatches value, at the expense of violating the 30 s timeout rule, DLNA does not encourage
DLNA guidelines; Part 1-1: Architecture and protocols
– 215 –
that implementation option. The 9.2.9 guideline indicates that a control point is permitted to
terminate a SOAP response that exceeds a 30 s transmission time.
10.1.4.11.7
[G UIDELINE ] If a UPnP AV MediaServer device cannot find more than zero CDS objects (in 27 s, as
described in 9.2.9.2), for a response to a CDS:Browse or CDS:Search query and if the UPnP AV
MediaServer cannot calculate an accurate value for the TotalMatches output argument, then the
UPnP AV MediaServer should return a SOAP error response code of 720 (Cannot process the
request).
[ATTRIBUTES ]
[C OMMENT] This guideline covers the scenario where a UPnP AV MediaServer can neither find any
CDS objects that satisfy the query nor calculate the TotalMatches output argument accurately.
Although some UPnP AV MediaServer implementations might choose to report the accurate
TotalMatches value, at the expense of violating the 27 s timeout rule, such behavior is not
encouraged for the same reason stated in the previous guideline.
10.1.4.11.8
[G UIDELINE ] A UPnP AV MediaServer control point should specify the desired number of CDS
objects in the RequestedCount input argument of a CDS:Browse or CDS:Search query.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends control points to request a reasonable number of CDS
objects in a single CDS query. The number of CDS objects that can be displayed to the user at a
single time is a good measure of reasonableness. Using a RequestedCount of zero might cause the
transmission of a huge SOAP response, which is undesirable.
10.1.4.11.9
[G UIDELINE ] A UPnP AV MediaServer control point should specify smaller (about 10 to 30)
RequestedCount input values for CDS:Browse and CDS:Search requests to receive a faster
response time.
[ATTRIBUTES ]
[C OMMENT] Generally speaking, control points that specify smaller RequestedCount values will
receive the response from the device sooner than if a larger value were specified.
10.1.4.11.10
[G UIDELINE ] A UPnP AV MediaServer control point shall not assume that a UPnP MediaServer will
return all of the CDS objects requested in a Browse request.
[ATTRIBUTES ]
[C OMMENT] This places requirements on an AV MediaServer control point to not assume that its
Browse request will return all of the CDS objects it requested.
10.1.4.11.11
[G UIDELINE ] If a UPnP AV MediaServer control point wants to retrieve the remaining items in a
reduced response, the UPnP AV MediaServer control point shall issue additional Browse requests
to complete the original Browse request for CDS objects.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline is a benefit to both devices and control points, although lightweight
UPnP AV MediaServer ContentDirectory Service (CDS) implementations might have difficulty
implementing it. The rationale for this guideline stems from the fact that UPnP AV MediaServer
control points can rely on the CDS.ContainerUpdateIDs state variable to minimize the number of
CDS:Browse requests. A control point that relies solely on the CDS.SystemUpdateID state variable
will browse the entire CDS hierarchy. Use of the CDS.ContainerUpdateIDs state variable can limit
the browse requests to the container objects that observed the metadata changes.
• dc:title
• upnp:class
• res@protocolInfo
• @refID
• @parentID
• @id
[ATTRIBUTES ]
[C OMMENT] This guideline mandates support for CDS:Search and describes the search
capabilities for a UPnP AV MediaServer that supports search operations.
10.1.4.13.2
[G UIDELINE ] All searchable properties shall be listed in the return value of
CDS:GetSearchCapabilities if the device implements CDS:Search.
[ATTRIBUTES ]
10.1.4.13.3
[G UIDELINE ] If a UPnP AV MediaServer supports CDS:Search for an indicated property or a
property with an indicated type, then it shall minimally support the operators as indicated in Table 17
for the specified property types. Note that rows in the table are not additive.
Property Operators
@id =, exists
@refID =, exists
@parentID =, exists
Any date, time, duration-based property types < , <= , >= , > , = , !=, exists
Integer or numerical property types < , <= , >= , > , = , !=, exists
Vendors are free to apply additional CDS-normative operators for these properties or property
types.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the minimum behavior and capabilities for various query
operators.
Vendors cannot change (overrule) the default behavior of these required operations as specified;
but additions of standard operators are allowed.
The existing operator only allows a value of "true" or "false" and those values are not quoted when
used.
[ATTRIBUTES ]
[C OMMENT] For example, if a UPnP AV MediaServer reports its search capabilities to be only
dc:title, then it only needs to implement the exists, contains, and = operators.
10.1.4.13.5
[G UIDELINE ] In response to a CDS:Search action a UPnP AV Media Server may return CDS objects
that represent content binaries that cannot be identified as a DLNA Mandatory Media Format Profile
or converted in to a DLNA Mandatory Media Format Profile.
[ATTRIBUTES ]
[C OMMENT]
a) This guideline provides a method for UPnP AV MediaServers to expose content that is not
accessable by the noramal CDS:Browse due to 10.1.4.3.
b) A UPnP AV MediaServer control point can override this behaviour (as defined in 10.1.4.13.6) as
mandated by a combination of 10.1.4.13.1and 10.1.4.13.3.
10.1.4.13.6
[G UIDELINE ] If a UPnP AV MediaServer controll point only supports DLNA Media Format Profiles
then it shall include ‘upnp:res@protocolInfo contains “DLNA.ORG_PN”’ in the SearchCriteria
argument when invoking CDS:Search action
[ATTRIBUTES ]
[C OMMENT] This ensures that the UPnP AV MediaServer will only return content that is in a DLNA
Media Format Profile in response to a CDS:Search request, as with CDS:Browse.
DLNA guidelines; Part 1-1: Architecture and protocols
– 219 –
• ContainerID: 0
• SearchCriteria: upnp:class derivedfrom "[a upnp class for a supported Media Class]" and
@refID exists false.
[ATTRIBUTES ]
[C OMMENT] A ContentDirectory service can expose CDS objects in different collections, such as,
lists by genres, lists by artists, lists of favorite items, etc. In such cases, reference items, which have
@refID are used to represent CDS items that are references to other CDS items in the CDS
hierarchy.
In some use case scenarios, a UPnP AV MediaSerer control point wants to locate a set of CDS
objects, excluding their duplicate references. For example, a UPnP AV MediaServer control point
regenerates another presentation of CDS objects by using metadata properties of CDS objects. In
this case, this search can be used.
Live AV and audio tuner content are also located by searching for
object.item.videoItem.videoBroadcast and object.item.audioItem.audioBroadcast (and their
derived classes). Note that the search results do not include the CDS container (i.e. ContainerID)
that was specified in the request.
10.1.4.14.2
[G UIDELINE ] If the UPnP AV MediaServer supports a DLNA Media Class, it shall support a
corresponding object class as indicated in Table 18.
Audio object.item.audioItem
Image. object.item.imageItem
AV object.item.videoItem
The following is an example to search all video items which are stored in the ContentDirectory
service.
request:
Search( "0", "upnp:class derivedfrom "object.item.videoItem" and @refID exists false",
"dc:date,upnp:genre,res@duration", 0, 40, "" )
response:
Search("<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
<item id="10" parentID="4" restricted="0">
<dc:title>Desire stones</dc:title>
<dc:date >2004-07-04T20:00:00</dc:date>
<upnp:genre>Movie</upnp:genre>
<upnp:class>object.item.videoItem</upnp:class>
<res protocolInfo="http-get:*:
video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_FLAGS=01100000000000000000000000000000"
duration="0:59:53">http://192.168.1.1/res?id=10
</res>
</item>
<item id="13" parentID="12" restricted="0">
<dc:title>Music Street in Asia</dc:title>
<dc:date>2004-07-04T23:30:00</dc:date>
<upnp:genre>Music</upnp:genre>
<upnp:class>object.item.videoItem</upnp:class>
<res protocolInfo="http-get:*:
video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_FLAGS=01100000000000000000000000000000"
duration="0:29:54">http://192.168.1.1/res?id=13</res>
</item>
</DIDL-Lite>",
2, 2, 10434)
[ATTRIBUTES ]
10.1.4.14.3
[G UIDELINE ] UPnP AV MediaServer responses for CDS:Search should only list CDS containers
once. Duplicate CDS containers should be omitted from the results set.
Duplicate CDS containers are CDS containers that provide the same set of child CDS items.
[ATTRIBUTES ]
10.1.4.14.4
[G UIDELINE ] The UPnP AV MediaServer that supports the recommended search criteria of
guideline 10.1.4.14.1 shall return a SearchCaps output value (from CDS:GetSearchCapabilities)
that includes upnp:class and @refID.
Example:
• request: GetSearchCapabilities
• response: GetSearchCapabilities("upnp:class,@refID")
The ContentDirectory service of this MediaServer shall provide the following properties and the
values as metadata of the root Container.
• @searchable="1"
• <upnp:searchClass includeDerrived="1">[upnp class]</upnp:class> or <upnp:searchClass
includeDerrived="0">[upnp class]</upnp:class>
The following DIDL-Lite fragment is an example of metadata for a root Container in the
ContentDirectory service that supports Audio, Image and AV Media Classes.
Example:
<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
<container id="0" parentID="-1" childCount="3" restricted="1" searchable="1">
<dc:title>Root Container</dc:title>
<upnp:class>object.container</upnp:class>
<upnp:searchClass
includeDerived="1">object.item.audioItem</upnp:searchClass>
<upnp:searchClass
includeDerived="1">object.item.imageItem</upnp:searchClass>
<upnp:searchClass
includeDerived="1">object.item.videoItem</upnp:searchClass>
</container>
</DIDL-Lite>
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer control point can know whether a ContentDirectory service
supports the search defined in guideline 10.1.4.14.1 by checking the search capabilities and the
metadata of the root container.
[ATTRIBUTES ]
[C OMMENT] Some control points with an alphanumeric input mechanism (keyboards, virtual
keyboards, cell phone keypad, etc.) can benefit from keyword searching capabilities.
10.1.4.16.2
[G UIDELINE ] If a UPnP AV MediaServer implements a Basic Tuner, then it shall conform to all of the
requirements for a Basic Tuner as defined in 10.1.4.16.3 to 10.1.4.16.6 and 10.1.4.17 to 10.1.4.23.
[ATTRIBUTES ]
[C OMMENT] It is optional for a UPnP AV MediaServer to implement a Basic Tuner. The Basic Tuner
implementation can be implemented by any version of the UPnP AV specifications.
10.1.4.16.3
[G UIDELINE ] A UPnP AV MediaServer tuner should be represented as a container with a class of
object.container or any derived class. A Basic Tuner container should have an associated name.
The name is given by property dc:title.
[ATTRIBUTES ]
[C OMMENT] This guideline allows multiple tuners to be represented in CDS with a friendly name.
Tuner channel ordering allows the control point to implement up/down by selecting the next item in
the container.
See Annex B for recommendations on how to represent a turner container.
Control Points: note that in compliance with UPnP guidelines (10.1.4.10), conformant DMS devices
will not return the dlna:containerType property unless it is specifically requested as part of a
CDS:Browse Filter argument.
10.1.4.16.4
[G UIDELINE ] A UPnP AV MediaServer Basic Tuner container shall have a dlna:containerType
property and the property shall have a value of Tuner_1_0.
The name space for DLNA defined properties shall be "urn:schemas-dlna-org:metadata-1-0/" and
the namespace prefix shall be "dlna:".
[ATTRIBUTES ]
10.1.4.16.5
[G UIDELINE ] A UPnP AV MediaServer Basic Tuner container shall contain object items of class
object.item.videoItem.videoBroadcast or object.item.audioItem.audioBroadcast or both. (Objects
derived from either class also qualify.)
[ATTRIBUTES ]
10.1.4.16.6
[G UIDELINE ] The order of the object items (order of <item> elements in a CDS:Browse response) in
a UPnP AV MediaServer Basic Tuner container should correspond to the tuner up/down operation.
For example, channel number or channel preset order.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] These guidelines allow control points to identify content sourced from a tuner.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This is to clarify the meaning of a title in context of a tuner. Some vendors might
interpret the title as channel name.
[ATTRIBUTES ]
10.1.4.20.2
[G UIDELINE ] If a UPnP AV MediaServer CDS object contains the upnp:channelNr property, then
each upnp:channelNr number shall be unique within the context of its container.
[ATTRIBUTES ]
[C OMMENT] For usages where the same upnp:channelNr number indicates different media formats
for the same content (e.g. SD and HD content), this would be realized by using the recommended
practice in DLNA to use multiple <res> elements in the same CDS object 10.1.4.4.1.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline essentially requires tuner content to be advertised and accessible
through a URI.
[ATTRIBUTES ]
[C OMMENT] Because there is no feed back mechanism between the tuner and the control point, it
is not possible to know the current channel when there are multiple Content Receivers connected as
clients or if the tuner is being used by a local output device.
The <dlna:takeOut > is a non-empty string value with a maximum length of 256 B.
The name space for DLNA defined properties shall be "urn:schemas-dlna-org:metadata-1-0/" and
the namespace prefix shall be "dlna:".
[ATTRIBUTES ]
[C OMMENT] The guidelines for takeOut enable unidirectional synchronization scenarios. This
allows a device to easily find a group of content that is intended for download. Control points find
groups by using CDS:Search and specifying the <dlna:takeOut> property with the desired group
name.
The general assumption is that a control point (bundled with a Download Controller) will find content
with a particular group name and download it (unless it has already acquired it). The <dlna:takeOut>
tag will generally persist on the DMS or M-DMS, such that if a CDS object is no longer part of a
group, then the control point will know to remove the content from its local storage during the
synchronization operation.
The process of assigning the value of the <dlna:takeOut> tag is vendor defined. One way is for the
DMS or M-DMS to assign the value for a user when the user creates the group. Another way is to
allow the user to name the group. An extremely simple way is to assign the same group name to all
CDS objects.
DLNA suggests that DMS or M-DMS implementations provide a way for a user to specify a maximum
storage quota when creating a group. This type of user interface feature is useful because users are
generally aware that downloading endpoints have storage limitations for downloading groups.
This guideline does not imply any requirement that the downloader mirrors the CDS hierarchy when
it downloads content from the CDS. This is especially true when the takeOut group includes CDS
containers (i.e. the CDS container has the <dlna:takeOut> element).
10.1.4.24.2
[G UIDELINE ] A CDS object (advertised by a UPnP AV MediaServer) may contain more than one
<dlna:takeOut> element.
[ATTRIBUTES ]
This guideline provides for basic unidirectional synchronization of content from a DMS to UPnP
Control Points. The primary mechanism used by a control point to identify content between reboots
or application launches is through the object ID. The mechanism to indicate if content has been
modified is to change the object ID but to change the value of the URI (i.e. value of the <res>
element).
10.1.4.24.3
[G UIDELINE ] If a UPnP AV MediaServer provides the <dlna:takeOut> property to a CDS object and
wants to indicate that the content is identical between reboots or application launch/shutdown, then
it shall not change the object ID of the CDS object.
[ATTRIBUTES ]
10.1.4.24.4
[G UIDELINE ] If a UPnP AV MediaServer control point is synchronizing a particular take-out group,
then under normal test conditions the control point should only transfer content binaries belonging
to CDS objects that are part of the take-out group.
(That is, if a UPnP AV MediaServer control point is not able to find a take-out CDS object that was
synchronized on a previous session or if the CDS object of the same @id value no longer has the
<dlna:takeOut> property with the same group name, then the control point should assume that the
CDS object is no longer part of the take-out group.)
[ATTRIBUTES ]
[C OMMENT] The phrase under normal test conditions means no resource and network limitations.
DLNA guidelines; Part 1-1: Architecture and protocols
– 227 –
10.1.4.24.5
[G UIDELINE ] If a UPnP AV MediaServer control point is synchronizing a particular take-out group
and finds a take-out CDS object that was not synchronized on a previous session, then under
normal test conditions it should attempt to transfer at least one content binary from the associated
CDS object.
(That is, if a UPnP AV MediaServer control point finds a take-out CDS object that was not
synchronized on a previous session, then it should assume that the CDS object is a new member of
the take-out group.)
[ATTRIBUTES ]
[C OMMENT] The phrase under normal test conditions means no resource and network limitations.
10.1.4.24.6
[G UIDELINE ] If a UPnP AV MediaServer provides the <dlna:takeOut> property to a CDS object and
wants to indicate that a content binary is modified (e.g. editing), it shall change the @id value to a
new and unique value, relative to the entire CDS hierarchy.
[ATTRIBUTES ]
10.1.4.24.7
[G UIDELINE ] If a UPnP AV MediaServer supports the <dlna:takeOut> property, then it shall support
the DLNA- defined CDS:X_GetTakeOutGroupNames action.
<action>
<name>X_GetTakeOutGroupNames</name>
<argumentList>
<argument>
<name>GroupNames</name>
<direction>out</direction>
<relatedStateVariable>
X_A_ARG_Type_GroupNames
</relatedStateVariable>
</argument>
</argumentList>
</action>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_GroupNames</name>
<dataType>string</dataType>
</stateVariable>
The GroupNames output argument is a comma-separated value list of all take-out group names.
[ATTRIBUTES ]
[C OMMENT] The CDS:GetTakeOutGroupNames action allows a control point to easily acquire the
list of group names for use in a CDS:Search request. DLNA has two normative search templates for
finding groups. The only difference between the two is that vendors can specify a upnp:class value
if desired.
10.1.4.24.8
[G UIDELINE ] If a UPnP AV MediaServer supports the <dlna:takeOut> property, then it shall support
searching the CDS as defined in guideline 10.1.4.14 and the additional searches with the following
input parameters.
10.1.4.24.9
[G UIDELINE ] A UPnP AV MediaServer that supports the search defined in guideline 10.1.4.24.8
shall return the SearchCaps that includes the <dlna:takeOut> element to the
CDS:GetSearchCapablities action.
Example:
• request: CDS:GetSearchCapabilities()
• response: CDS:GetSearchCapabilities("upnp:class,@refID, dlna:takeOut")
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer control point can know whether a ContentDirectory service
supports the search defined in guideline 10.1.4.24.8 by checking the search capabilities.
[ATTRIBUTES ]
[C OMMENT] Using this model for media collections allows rendering devices to render media
collections. Media collection file formats are useful in various ways, but v1.0 DMPs might lack the
ability to parse media collection files.
10.1.4.25.2
[G UIDELINE ] A UPnP AV MediaServer may associate a <res> element with a CDS container or item
such that the <res> element's URI value points to a media collection file conforming to a Media
Format Profile defined in Media Collection Profile guidelines, see Clause 10 of IEC 62481-2 (e.g.
DIDL_S, DIDL_V).
[ATTRIBUTES ]
[C OMMENT] Media collection files are a convenient way to allow a rendering device (e.g. DMR) to
play a media collection.
10.1.4.25.3
[G UIDELINE ] A UPnP AV MediaServer that advertises a <res> element for a media collection file
should also use the res@dlna:trackTotal attribute, which is a ui4 value.
This guideline applies only to media collection files that are normative to the DLNA guidelines (e.g.
DIDL_S and DIDL_V).
[ATTRIBUTES ]
[C OMMENT] Controlling devices (e.g. DMC, M-DMC) can use this value when the calculating track
index for the currently playing content in a DLNA PlayContainer URI operation.
10.1.4.25.4
[G UIDELINE ] If present, the value of res@dlna:trackTotal shall equal the number of content entries
(also known as sequenced tracks) in the media collection file.
[ATTRIBUTES ]
10.1.4.25.5
[G UIDELINE ] If a UPnP AV MediaServer wants to convey that the items (or tracks) in a media
collection file have a 1:1 mapping to the child CDS objects in a particular container, then the UPnP
AV MediaServer should associate the <res> element (for the media collection file) with the CDS
container that has the child CDS objects. The ordering of the 1:1 mapping is the same for both the
media collection file and the CDS objects in the CDS container (as obtained from a CDS:Browse
request with an unspecified sorting criteria).
This methodology should be used even when the media collection file uses or references content
intended for presentation-layer details. A UPnP AV MediaServer that uses this methodology claims
an intent that the content in the media collection file maps to the child objects of the associated
container.
Note that CDS container in this guideline means any CDS object with the object.container or
similarly derived upnp:class designation.
[ATTRIBUTES ]
[C OMMENT] This guideline urges UPnP AV MediaServer that wants to represent the child CDS
objects encapsulated by a CDS container to associate a playlist file with the parent CDS container.
This guideline is only a recommendation because the file format of the media collection file could
reference things intended for the presentation layer. For example, a slideshow file might have URI
values that point to proprietary background music instructions and transitions. In such a case, the
MediaServer associates the slideshow file with a container that was the parent of image items
because the general intent is to have a 1:1 mapping.
10.1.4.25.6
[G UIDELINE ] If a UPnP AV MediaServer wants to convey that the items (or tracks) in media
collection file do not have a direct mapping to a particular container, then the MediaServer should
associate the <res> element (for the media collection file) with a CDS item that has the
object.item.playlistItem (or similarly derived upnp:class) designation.
This methodology should be used whenever the media collection file has an intentional mapping of
content in multiple CDS containers. Likewise, this methodology should be used when the media
collection file references content (that is not associated with presentation-layer details).
[ATTRIBUTES ]
[C OMMENT] In cases where a vendor wants to provide a playlist file without implying any intent
about the mapping of that content to a particular CDS container, then the vendor is encouraged to
associate the media collection file with a CDS item object. This particular model (while easier for the
DMS or M-DMS) can disadvantage rendering devices (e.g. DMP) that do not support media
collection files because they rely solely on the CDS hierarchy to provide the rendering experience.
[ATTRIBUTES ]
[C OMMENT] DMP, M-DMP and DMR devices are not required to render media collection files.
10.1.4.26.2
[G UIDELINE ] A UPnP AV MediaRenderer should support playback of a DLNA PlayContainer URI.
[ATTRIBUTES ]
[C OMMENT] DMR devices are not required to support rendering of a DLNA PlayContainer URI
because the feature requires the DMR to have a MediaServer control point. However, this feature is
recommended for a DMR because DLNA recommends that DMS devices expose media collections
through CDS container objects that have a set of child CDS item objects.
Implementing this feature implies adherence to additional guidelines, such as those in 10.1.6.10
and 10.1.4.29.
10.1.4.26.3
[G UIDELINE ] If a UPnP AV MediaRenderer supports the DLNA PlayContainer URI operation, then
it shall specify the <dlna:X_DLNACAP> element (as a child of the <device> element that represents
the MediaRenderer) with the playcontainer-depth-strict token.
Capability ID Description
[ATTRIBUTES ]
[C OMMENT] Guideline 9.2.35.1 provides the syntax for the <dlna:X_DLNACAP> element.
In addition to indicating that the DLNA PlayContainer URI operation is supported by the
MediaRenderer, the capability ID also indicates the URI limitations that are imposed by the
MediaRenderer. The depth portion of the syntax allows the MediaRenderer to restrict the CDS
container depth of a media collection. The strict portion of the syntax allows the MediaRenderer to
require the first played CDS item to be an immediate child of the media collection's top CDS
container. 10.1.4.29 gives more information on the DLNA PlayContainer URI syntax.
[ATTRIBUTES ]
[C OMMENT] A DLNA PlaySingle URI is a URI that allows a DMS or M-DMS to reference a CDS
object on the same or different DMS or M-DMS. This can be used for a variety of things, including a
media collection composed of content from multiple DMS or M-DMS devices or for DMS
virtualization.
10.1.4.27.2
[G UIDELINE ] A <res> element with a DLNA PlaySingle URI value shall have a similar
res@protocolInfo value as one of the <res> elements of the referenced CDS object.
• The first field shall be a string in the form of "playsingle-"<transport>, where the transport shall
be the DLNA transport identifier of the referenced <res> element.
• The 2nd, 3rd, and 4th fields shall be copied identically from the referenced <res> element.
Examples:
playsingle-http-get:*:audio/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;
DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01100000000000000000000000000000
playsingle-rtsp-rtp-udp:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;
DLNA.ORG_OP=10;DLNA.ORG_PS=-1,2/3,4;
DLNA.ORG_FLAGS=03100000000000000000000000000000;DLNA.ORG_MAXSP=9.75
[ATTRIBUTES ]
[C OMMENT] DLNA PlaySingle URI values can only have a single protocolInfo value. Therefore, a
single CDS object can have more than one <res> element with the same DLNA PlaySingle URI
value and the different protocolInfo values. This allows UPnP AV MediaServer control points to
know the media formats that are available on the referenced CDS object.
10.1.4.27.3
[G UIDELINE ] A UPnP AV MediaServer may have more than one <res> element with the same DLNA
PlaySingle URI associated with a CDS item object.
[ATTRIBUTES ]
10.1.4.27.4
[G UIDELINE ] A CDS item that has one or more DLNA PlaySingle URI <res> elements may have
other <res> elements that do not have a DLNA PlaySingle URI as a value.
[ATTRIBUTES ]
[C OMMENT] A MediaServer's CDS item can mix <res> elements that have different types of URI
values. For example, a virtual DMS might have DLNA PlaySingle URI values for original content
served by a different DMS while using RTP and HTTP URI values for the converted content that the
virtualizing DMS will serve.
10.1.4.27.5
[G UIDELINE ] A UPnP AV MediaServer shall only associate DLNA PlaySingle URI <res> elements
with CDS item objects. DLNA PlaySingle URI <res> elements shall not be associated with CDS
container objects. DLNA PlaySingle URI <res> elements shall not reference CDS container objects.
[ATTRIBUTES ]
[C OMMENT] DLNA PlaySingle URI values are allowed only when used in conjunction with audio,
audio/video, or image content. Using DLNA PlaySingle URI <res> elements to reference CDS
containers, media collection files, or other CDS objects with a DLNA PlaySingle URI <res> element
can result in circular references.
10.1.4.27.6
[G UIDELINE ] The res@protocolInfo value of a DLNA PlaySingle URI <res> element shall reference
content that qualifies as audio, audio/video, or image content.
A res@protocolInfo value that identifies a media collection file is prohibited. Similarly, a <res> DLNA
PlaySingle URI value that references a media collection file is also prohibited.
[ATTRIBUTES ]
10.1.4.27.7
[G UIDELINE ] A DLNA PlaySingle URI shall only reference a CDS item object that does not have a
DLNA PlaySingle URI <res> element.
[ATTRIBUTES ]
10.1.4.27.8
[G UIDELINE ] A DLNA PlaySingle URI shall only reference a CDS item object with a upnp:class that
is the same or derived from one of the following:
• object.item.audioItem.
• object.item.videoItem.
• object.item.imageItem.
[ATTRIBUTES ]
10.1.4.27.9
[G UIDELINE ] A CDS item that has a DLNA PlaySingle URI <res> element shall have the same
upnp:class value as the CDS object that is referenced or one of its super classes.
[ATTRIBUTES ]
10.1.4.27.10
[G UIDELINE ] A DLNA PlaySingle URI may be used with Media Format Profiles that are not defined
by DLNA.
[ATTRIBUTES ]
[C OMMENT] The DLNA PlaySingle URI values can be used with undefined media formats. In such
scenarios, the DLNA PlaySingle URI value still needs to comply with all the rules declared in
guidelines of 10.1.4.27.
10.1.4.27.11
[G UIDELINE ] The syntax of DLNA PlaySingle URI is as follows.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.1.4.28.2
[G UIDELINE ] DLNA device classes and capabilities with a UPnP AV MediaServer control point and
appropriate transport layer components may support the rendering or transporting of content
referenced by DLNA PlaySingle URI values.
[ATTRIBUTES ]
[C OMMENT] DMP, DMR, and Download Controllers are not required to render or transport DLNA
PlaySingle URIs.
10.1.4.28.3
[G UIDELINE ] A UPnP AV MSCP+MRCP that wants to instruct a UPnP AV MediaRenderer to play a
DLNA PlaySingle URI shall resolve the DLNA PlaySingle URI to a URI for the actual audio,
audio/video, or image content for use with the AVT:SetAVTransportURI request.
[ATTRIBUTES ]
[C OMMENT] Prior to invoking a AVT:SetAVTransportURI, the control point will set up a UPnP AV
connection between the DMR and the Content Source. Since a DLNA PlaySingle URI is a URI
pointer to a CDS object (and is not a pointer to an actual content binary), the MediaRenderer control
point does not have sufficient information to create the logical connection prior to invoking
AVT:SetAVTransportURI.
• container-id-val = <The @id string value of the CDS container that represents the top container
of the media collection.>
• first-item-id-arg = "&fid=" first-item-id-val
• first-item-id-val = <The @id string value of the first CDS item that will be played as part of the
PlayContainer URI operation. Note that 10.1.4.26.3 (MM Rendering Media Collection Files)
places restrictions on first-item-id-val. Specifically, if the strict-token (defined in 10.1.4.26.3) is
"1", then first-item-id-val shall be a CDS item that is an immediate child of container-id-val. If
strict-token is "0", then first item-id-val shall be a CDS item that is descended from
container-id-val, whose parent container has a container depth that is less than or equal to the
depth-token (defined in 10.1.4.26.3).>
• first-item-index-arg = "&fii=" first-item-index-val first-item-index-val = <a ui4 value, as used in a
CDS:Browse request. This value shall represent the zero-based index of the first-item-id-val
CDS item, such that a CDS:Browse request where the following argument values will result in a
response where the first returned CDS item has @id = first=item-id-val.
– ObjectID = parent container of first-item-id-val
– BrowseFlag = "BrowseDirectChildren",
– SortCriteria = sort-arg, and
– StartingIndex = first-item-index-val
• sort-arg = "&sc=" sort-val
• sort-val = <A SortCriteria string, as defined for a CDS:Browse request. Equivalently, the value
shall comply with the A_ARG_TYPE_SortCriteria syntax, defined by the ContentDirectory
service. If sort-arg is omitted, then assume an effective value of an empty string.>
• max-depth-arg = "&md=" max-depth-val
• max-depth-val = <A ui4 value that specifies the maximum descent level in the container. If
max-depth-arg is omitted, then the value infers an effective value of "0". Note that 10.1.4.26.3
(MM Rendering Media Collection Files) places restrictions on max-depth-arg. Specifically the
max-depth-val shall be less than or equal to the depth-token, as defined in 10.1.4.26.3.>
The cds-udn, service-id-val, object-id-val, sort-val, object-index-val, and max-depth-val tokens
shall be URI-escaped according to IETF RFC 2396.
[ATTRIBUTES ]
10.1.4.29.2
[G UIDELINE ] If a UPnP AV MediaRenderer supports the DLNA PlayContainer URI operation, then
the MediaRenderer shall support the sort-arg and max-depth-arg portions of the
dlna-playcontainer-uri syntax.
• sort-arg: This value determines the playback order, such that the playback order matches the
order as observed from an equivalent CDS:Browse response.
• max-depth-arg: This value determines the maximum depth the MediaRenderer traverses when
encountering child/descendent containers. A value of "0" means that child/descendent are not
traversed.
[ATTRIBUTES ]
[C OMMENT] These guidelines clarify that control points are not required to specify all parameters in
a DLNA PlayContainer URI, but a DMR will operate correctly if a control point does provide the
optional parameters.
A DLNA PlayContainer URI does not necessarily mean that the DMR will issue a single type of
CDS:Browse request. For example, the DMR's control point might progressively issue multiple
CDS:Browse requests that result in fewer results to ensure that the 200 KiB response limit is not
exceeded by the DMS.
10.1.4.29.3
[G UIDELINE ] If a UPnP AV MediaRenderer supports the DLNA PlayContainer URI operation and
the URI specifies a max-depth-val that is greater than depth-token, as defined in 10.1.4.26.3, then
the MediaRenderer shall return a UPnP AV error code of 716 (Resource not found) in the
AVT:SetAVTransportURI response.
[ATTRIBUTES ]
10.1.4.29.4
[G UIDELINE ] If performing a DLNA PlayContainer URI operation, a UPnP AV MediaRenderer shall
only play CDS items as part of the DLNA PlayContainer URI and shall only render <res> elements
of images, Audio-only, and AV content. This guideline works in conjunction with 10.1.3.32.1 (MM
playcontainer-param (DLNA PlayContainer Flag), which prohibits the playcontainer-param from
having a value of true for <res> elements of media collection binaries.
[ATTRIBUTES ]
10.1.4.29.5
[G UIDELINE ] MediaRenderer control points may omit the sort-arg, and max-depth-arg tokens in the
dlna-playcontainer-uri syntax.
[ATTRIBUTES ]
[C OMMENT]
“i9” “c1” “i9” “1” Value .>= i9, i10, i11, i12, “i9”à10, “i12”à13,
“2” i1, i2, i3, i4, i5, “i1”à1, “i4”à4,
i6, i7, i8 “i5”à5, “i8”à8; d
a Although “p1” is child of “c4”, it is a CDS object with DIDL playlist file so it is automatically skipped.
b “c2” is a child of “c1” that appears before “i9” when browsing the DMS.
c This scenario is only permitted when playcontainer-strict is false.
d Tracks after “i9” have an index number that is off by one because of p1, which is a CDS object with a
DIDL-Lite playlist file. Also note that CDS containers are not rendered during a PlayContainer URI operation.
e DMR shall follow the current AVT.PlayMode (i.e. in case of NORMAL play mode, it shall stop after playing the
track of maximum AVT.CurrentTrack).
[ATTRIBUTES ]
[C OMMENT] The usage of the DLNA PlayContainer URI requires the existence of a CDS at the
content source. For this reason, a +PU+ can send the DLNA PlayContainer URI when its hosting
Device Class contains a CDS or can interact with a CDS on the network.
10.1.4.30.2
[G UIDELINE ] If a UPnP AV MediaRenderer control point that invokes AVT:SetAVTransportURI with
the CurrentURI input argument set to a DLNA PlayContainer URI, then the UPnP AV
MediaRenderer control point shall only do so with UPnP AV MediaRenderer devices that have at
least one protocolInfo value in the SinkProtocolInfo that has the playcontainer-param flag set to
true.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] DMS devices are not required to support basic connection management (BCM). A
DMS with BCM reports the existence of transport layer connections by using UPnP AV connections,
which might be enumerated and terminated. This feature helps 3rd party controllers and DMPs offer
the users the ability to manage the connections according to their own desires (mainly for
termination). This feature does not require any control point to support Basic Connection
Management in order to operate basic browse/play operations. This feature does not require a
control point to interact with the user.
Transport clients are encouraged to implement these guidelines to allow MediaServers with BCM
support to properly deliver BCM functionality:
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 240 –
10.1.5.1.2
[G UIDELINE ] If a UPnP AV MediaServer supports the BCM, then it shall create a UPnP AV
Connection with a unique ConnectionID for each new Transport Layer request corresponding to a
content request, including Background, Interactive, and Streaming requests. (Creating UPnP AV
Connections for upload-related content transfer process is out-of-scope.)
The list of Transport Layer requests corresponding to a media stream request includes HTTP GET
requests and the RTSP SETUP command. The list of Transport Layer requests excludes HTTP
HEAD and HTTP POST requests and all HTTP requests not related to a content URI (i.e. URI for a
<res> element exposed by a UPnP AV MediaServer).
[ATTRIBUTES ]
[C OMMENT] The creation of UPnP AV Connection is a result of a Transport Layer (HTTP or RTSP)
connection request for a new media stream. (See 10.1.5.2 for request for an existing media stream).
All other non media stream connection requests do not require the creation of UPnP AV Connection.
The media stream is identified by the content URI in the transport layer request.
The UPnP AV Media Server preferably stores internally all necessary information along with the
newly created ConnectionID for later actions (CMS:ConnectionComplete and
CMS:GetCurrentConnectionInfo). For example, relevant information is, but is not limited to,
protocolInfo, URI, and TCP/IP socket handles. The protocolInfo is already available in the DMS to
satisfy 11.4.3.11.
10.1.5.1.3
[G UIDELINE ] A UPnP AV MediaServer that assigns a ConnectionID value in the range from "1" to
"2147483647" should assign the value in an increasing manner with a rollover value of "1" when the
vendor-defined-maximum-value is exceeded.
[ATTRIBUTES ]
ISO/IEC
29341-20-3
10.1.5.1.4
[G UIDELINE ] A UPnP AV MediaServer that assigns a ConnectionID value in the range from "1" to
"2147483647" should start value assignment with a random value.
[ATTRIBUTES ]
10.1.5.1.5
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall expose the UPnP AV
Connections using CMS:GetCurrentConnectionIDs.
[ATTRIBUTES ]
10.1.5.1.6
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall remove the ConnectionID from
the list of connections provided in CMS:GetCurrentConnectionIDs, when all transport layer
connections (associated with the ConnectionID) are closed/terminated.
[ATTRIBUTES ]
[C OMMENT] The guideline clarifies the life-cycle of a ConnectionID. An active and advertised
ConnectionID will be associated with at lease one active media transport connection.
10.1.5.1.7
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall maintain the
CMS.CurrentConnectionIDs state variable and deliver an event for the ConnectionManager service
to signal that an update to the connection information has occurred.
[ATTRIBUTES ]
10.1.5.1.8
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall implement
CMS:GetCurrentConnectionInfo for all UPnP AV Connections reported by
CMS:GetCurrentConnectionIDs.
10.1.5.1.9
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall use the following notation to
advertise a DMP or M-DMP user friendly name (when provided) in the PeerConnectionManager
parameter, returned by CMS:GetCurrentConnectionInfo.
[C OMMENT] The DMP user friendly name is provided on the Media Transport layer connection (see
11.4.3.36 or 11.4.4.156) and is used to identify the Content Receiver connected to the DMS or
M-DMS.
The format of the PeerConnectionManager is different from the UPnP Architecture in such a way
that it cannot be confused with a non-existing CMS Service (i.e: no CMS on DMP).
Example: "fnam:LivingRoom TV/" where "fnam" replaces "uuid" and the ServiceId token is left
empty.
10.1.5.1.10
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall implement
CMS:ConnectionComplete.
[ATTRIBUTES ]
[C OMMENT] The requirement for CMS:ConnectionComplete does not imply to support and
implement CMS:PrepareForConnection in the ConnectionManager service.
CMS:ConnectionComplete is the UPnP action that instructs a UPnP MediaServer to tear down a
UPnP AV Connection (and its underlying transport layer connection) when it is no longer required.
When CMS:ConnectionComplete is executed for a given ConnectionID, the device is expected to
respond with a success and terminate the associated HTTP or RTSP transport connections related
to the UPnP AV Connection. Subsequently, all resources related to the connection are released.
This behavior is similar to a termination initiated by the connection creator on the Content Receiver
endpoint. When a connection is terminated (e.g. DMP performs a Stop media operation, AVT:Stop
is invoked on a DMR, the transport layer connection is broken, CMS:ConnectionComplete is called,
etc.) it is expected that proper resource clean up takes place.
[ATTRIBUTES ]
[C OMMENT] This guideline provides a mechanism to identify a multiple transport layer request
separated in time but related to the same media stream (identified by the URI). For example, during
a pause operation and/or consecutive random access requests the HTTP Client might indicate in
the HTTP Get request that all transport layer requests are related to the same media stream which
does not require a new ConnectionID. With such mechanism the UPnP AV MediaServer is not
required to maintain a local table containing the most recent requested URI with the associated
ConnectionID per HTTP client. It is the HTTP client's responsibility to indicate the relationship
between HTTP requests.
[ATTRIBUTES ]
Likewise, the corresponding ConnectionID shall be removed from the list of connections provided in
CMS:GetCurrentConnectionIDs.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the expected behavior when UPnP MediaServers responds
successfully to a CMS:ConnectioComplete. The guideline does not prohibit a UPnP MediaServer to
return an error code (for example 704 Local Restriction) to indicate the impossibility to close the
Transport Layer connections.
10.1.5.4.2
[G UIDELINE ] If a UPnP AV MediaServer supports BCM, then it shall return 704 Local Restriction to
the CMS:ConnectionComplete request if it does not accept to close all related Transport Layer
connections.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] DMR devices that claim support for a DLNA Media Format Profile will be able to render
that content when instructed to do so by a DMC. A DMR device that supports playback of content but
requires a control point to send a URI to a media collection file or a DLNA PlayContainer URI in the
AVT:SetAVTransportURI request is not permissible.
10.1.6.1.2
[G UIDELINE ] A UPnP AV MediaRenderer that supports playback of media collection files shall
include the media collection file's protocolInfo value in its list of SinkProtocolInfo (as observed from
the Sink output argument in CMS:GetProtocolInfo responses and its CMS.SinkProtocolInfo state
variable).
[ATTRIBUTES ]
[C OMMENT] DMR uses protocolInfo values to report support for media collection files. Media
collection files have mime types and Media Format Profile IDs. DMR devices are not required to
support playback of media collection files because the feature requires a DMR to implement a
MediaServer control point.
[ATTRIBUTES ]
[C OMMENT] This represents the "default" instance of the AVTransport service. This allows UPnP
AV MediaServer control points to assume that the virtual instance with InstanceID value of "0" is
always available. There is no need to invoke CMS:PreparForConnection when using default
instances.
[ATTRIBUTES ]
[C OMMENT] This represents the "default" instance of the RenderingControl service. This allows
UPnP AV MediaRenderer control points to assume that the virtual instance with InstanceID value of
"0" is always available. There is no need to invoke CMS:PrepareForConnection when using default
instances.
[ATTRIBUTES ]
[C OMMENT] Multiple virtual instances of the AVTransport service will include the default instance
(InstanceID = 0) as per guideline 10.1.6.2. Multiple virtual instances of the AVTransport service are
permitted but DLNA defines no interoperability guidelines for InstanceIDs that are not equal to "0".
[ATTRIBUTES ]
[C OMMENT] Multiple virtual instances of the RenderingControl service will include the default
instance (ID = 0) as per guideline 10.1.6.3. Multiple virtual instances of the RenderingControl
service are permitted, but DLNA defines no interoperability guidelines for InstanceIDs that are not
equal to 0.
10.1.6.6 MM LastChange
10.1.6.6.1
[G UIDELINE ] UPnP MediaRenderers shall implement the AVT.LastChange and RCS.LastChange
evented state variables as specified in ISO/IEC 29341-14-10 and ISO/IEC 29341-3-13.
[ATTRIBUTES ]
10.1.6.6.2
[G UIDELINE ] If any of the instance state variables in the AVTransport Service or Rendering Control
Service, except AVT.RelativeTimePosition, AVT.AbsoluteTimePosition,
AVT.RelativeCounterPosition and AVT.AbsoluteCounterPosition, have changed, a UPnP
MediaRenderer shall send an event containing the corresponding LastChange state variable. The
content of the LastChange state variable shall contain the latest value of the state variables updated
since the last event. The event shall be sent immediately, or 0,2 s after the last event was sent,
whichever is later.
[ATTRIBUTES ]
[C OMMENT] This guideline enables control points to rely on UPnP events to track the playback
status of the MediaRenderer device.
The Max Event Rate of the AVT.LastChange and RCS.LastChange state variables is one event
every 0,2 s, which translates to a maximum of five events per second, or a minimum of 0,2 s
between successive events.
As an example, if the values of AVT.TransportState and AVT.TransportURI instance state variables
of instance 0 of the AVTransport service change to "TRANSITIONING" and
"http://192.168.0.1:8080/MPEG/ntsc001.mpg" respectively, the value of the AVT.LastChange state
variable in an event sent by the AVTransport service contains the following text (prior to
XML-escaping).
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<TransportState val="TRANSITIONING" />
<AVTransportURI val="http://192.168.0.1:8080/MPEG/ntsc001.mpg" />
</InstanceID>
</Event>
Similarly, if the values of RCS.Brightness and RCS.Contrast instance state variables of instance 0
of the Rendering Control service change to "20" and "50" respectively, the value of the
RCS.LastChange state variable in an event sent by the Rendering Control service contains the
following text (prior to XML-escaping).
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/">
<InstanceID val="0">
<Brightness val="20 " />
<Contrast val="50" />
</InstanceID>
</Event>
10.1.6.6.3
[G UIDELINE ] UPnP MediaRenderers shall not send AVT or RCS events with empty values for the
LastChange state variable, except when sending the first event after a subscription.
[ATTRIBUTES ]
[C OMMENT] Sending empty events is a waste of both network and device resources.
[ATTRIBUTES ]
[C OMMENT] Although UPnP AV has a maximum frequency for sending AVTransport and
RenderingControl events, the preference is to send fewer events to reduce the load on control
points.
10.1.6.8 MM AVT:SetAVTransportURI
10.1.6.8.1
[G UIDELINE ] If a UPnP AV MediaRenderer receives an AVT:SetAVTransportURI request and the
current value of the AVT.TransportState virtual instance state variable is not "STOPPED" or
"NO_MEDIA_PRESENT", then the UPnP AV MediaRenderer may return an error 705 (Transport is
Locked) in addition to other errors defined in ISO/IEC 29341-14-10.
[ATTRIBUTES ]
If a UPnP AV MediaRenderer control point encounters the 705 error code, then it can invoke
AVT:Stop to stop the transport layer and then retry the AVT:SetAVTransportURI request followed by
the AVT:Play request.
There can be reasons for the UPnP AV MediaRenderer to return an error, when the transport state
is changed to STOPPED following the AVT:Stop or AVT:Play requests.
10.1.6.8.2
[G UIDELINE ] A UPnP AV MediaRenderer control point shall provide an empty string or a valid URI
value, as defined in 10.1.3.10, in the CurrentURI input argument for an AVT:SetAVTransportURI
request.
[ATTRIBUTES ]
[C OMMENT] This clarifies that an empty string can be used as a URI value in the CurrentURI input
argument to clear the rendering state.
10.1.6.8.3
[G UIDELINE ] If the CurrentURI input argument for the AVT:SetAVTransportURI request is not an
empty string or a DLNA PlayContainer URI, then the CurrentURIMetaData input argument of the
same request shall be a valid value, as defined in 10.1.6.14.8.
[ATTRIBUTES ]
[C OMMENT] This is a mandate over what UPnP normally allows as optional behavior.
DLNA guidelines; Part 1-1: Architecture and protocols
– 249 –
For a Push Controller (+PU+) that does not contain a CDS, the DIDL-Lite metadata can typically be
created from a DIDL-Lite XML fragment template containing only the minimal properties as
described in 10.1.6.14.8 or example, since the @id property value only needs to be unique within
the scope of the DIDL-Lite XML fragment, the @id property value can be any value chosen by the
Push Controller; the @parent property can have a value of −1, and the @restricted property value
can be either 0 or 1.
10.1.6.8.4
[G UIDELINE ] If the CurrentURI input argument for the AVT:SetAVTransportURI request contains
the URI of a media collection file, then the CurrentURIMetaData input argument of the same request
shall contain only one <res> element and its URI value shall be the same as the value contained in
the CurrentURI input argument.
[ATTRIBUTES ]
[C OMMENT] Metadata for a media collection is only meaningful for a single <res> CDS object.
10.1.6.8.5
[G UIDELINE ] If the CurrentURI input argument for the AVT:SetAVTransportURI request contains a
DLNA PlayContainer URI, then the CurrentURIMetaData input argument of the same request shall
be an empty string.
[ATTRIBUTES ]
[C OMMENT] Metadata has no meaning for the DLNA PlayContainer URI case.
10.1.6.8.6
[G UIDELINE ] If the CurrentURI input argument for the AVT:SetAVTransportURI request is an empty
string, then the CurrentURIMetaData input argument of the same request should be an empty string.
[ATTRIBUTES ]
[C OMMENT] Metadata has no meaning when the CurrentURI input argument is an empty string (i.e.
no content to be rendered). The behavior for the UPnP AV MediaRenderer is vendor dependent
when metadata is provided (some UPnP AV MediaRenderers will select a <res> element from the
metadata to render as per guideline requirement 10.1.6.9.1; other UPnP AV MediaRenderers will
reset the rendering state.)
[ATTRIBUTES ]
If a UPnP AV MediaServer exposes multiple <res> elements, the UPnP AV MediaRenderer control
point might not be able to determine the preferred <res> element for a given server/renderer pair.
Examples of multiple <res> elements include:
10.1.6.9.2
[G UIDELINE ] A UPnP AV MediaRenderer that receives an AVT:SetAVTransportURI request shall
continue selecting one of the <res> elements specified in the CurrentURIMetaData input argument
until it selects one it can render.
[ATTRIBUTES ]
[C OMMENT] This guideline requires a DMR to automatically select an alternate <res> element for
rendering when it fails to render the content. This is to prevent having the DMR return an error and
have the controlling application to select an alternate <res> element to render to improve playback
latency.
10.1.6.9.3
[G UIDELINE ] A Rendering Endpoint that fails to render the selected content shall try selecting and
rendering the content in a different media format profile if available.
[ATTRIBUTES ]
10.1.6.9.4
[G UIDELINE ] If a UPnP AV MediaRenderer control point calls AVT:SetAVTransportURI and
provides a DIDL-Lite XML fragment for the CurrentURIMetaData argument, then the DIDL-Lite
fragment shall include all of the <res> elements associated with the object represented by the
DIDL-Lite XML fragment in the initial request to play the content.
[ATTRIBUTES ]
[C OMMENT] The DIDL-Lite XML fragment will at least requiredhave the <res> element for the URI
specified in request, as required by 10.1.6.14.8. Additional <res> elements are encouraged to allow
the UPnP AV MediaRenderer to choose a different URI for playback. In addition, the DIDL-Lite XML
fragment when sourced from a UPnP AV MediaServer is from a CDS object.
10.1.6.9.5
[G UIDELINE ] If the initial request to play content fails as defined in 10.1.6.9.4, then the UPnP AV
MediaRenderer control point shall reinvoke the AVT:SetAVTransportURI action after removing <res>
elements associated with the object represented by the DIDL-Lite XML fragment in the
CurrentURIMetaData argument.
[ATTRIBUTES ]
[C OMMENT] This guideline allows a UPnP AV MediaRenderer control point to remove <res>
elements from the DIDL-Lite XML fragment to help aid in the playability of the content associated
CDS object if the initial attempt in guideline 10.1.6.9.4 fails. <res> elements that could be first
removed are unsupported MIME types and content that renderer could not play. Failures could
occur if the the metadata contained in the CurrentURIMetaData argument is too large.
10.1.6.9.6
[G UIDELINE ] A UPnP AV MediaServer control point shall select a <res> element from a CDS object
that is compatible with the capabilities of the Rendering Endpoint.
[ATTRIBUTES ]
[C OMMENT]
a) This guideline is to prevent implementations from always selecting the first <res> element in a
CDS object for playback which might not be playable.
b) The best user experience would be achieved with the <res> element with the best match (e.g.
best resolution).
10.1.6.10 MM UPnP AV MediaRenderer and DLNA PlayContainer URI
10.1.6.10.1
[G UIDELINE ] A UPnP AV MediaRenderer that supports playback of a DLNA PlayContainer URI
shall use a playcontainer-param set to true in the 4th field protocolInfo parameter of individual
protocolInfo to indicate that the UPnP AV MediaRenderer will render that type of content when given
a DLNA PlayContainer URI. This guideline specifically applies to the protocolInfo values listed in the
Sink output argument of CMS:GetProtocolInfo responses and the CMS.SinkProtocolInfo state
variable.
All guideline requirements in 10.1.6.10 apply in the context of a UPnP AV MediaRenderer that
supports the rendering of DLNA PlayContainer URIs.
All guideline requirements in 10.1.6.10 apply in conjunction with all other guideline requirements
that govern a UPnP AV MediaServer control point.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaRenderer indicates support for DLNA PlayContainer URI values by
using the playcontainer-param flag. ProtocolInfo values that omit this parameter indicate that the
UPnP AV MediaRenderer will not play that type of content as part of a DLNA PlayContainer URI
operation.
Setting the playcontainer-param flag to true does not mean that a UPnP AV MediaRenderer
requires the media type to be played only through a DLNA PlayContainer URI operation. (That is,
the UPnP AV MediaRenderer control point can specify a URI that points to content of the specified
protocolInfo, or the UPnP AV MediaRenderer control point can specify a DLNA PlayContainer URI
that will result in the playback of content with the specified protocolInfo.)
10.1.6.10.2
[G UIDELINE ] If a UPnP AV MediaRenderer supports playback of a DLNA PlayContainer URI, then
it shall support playback of a DLNA PlaySingle URI as part of the DLNA PlayContainer URI
operation.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaRenderer that can play a DLNA PlayContainer URI already has a
UPnP AV MediaServer control point that enables it to browse a UPnP AV MediaServer.
10.1.6.10.3
[G UIDELINE ] A UPnP AV MediaRenderer that supports rendering of DLNA PlayContainer URIs
shall support rendering of a CDS object, if the CDS object meets the following criteria.
• The CDS object falls into the media collection that is defined by the DLNA PlayContainer URI.
• The CDS object has a <res> element with a res@protocolInfo that indicates a supported Media
Format Profile, as described by 10.1.6.1.2.
[ATTRIBUTES ]
[C OMMENT] This guideline essentially says that a UPnP AV MediaRenderer will render content that
is supported by the UPnP AV MediaRenderer and can be found by traversing the CDS in the manner
prescribed for a DLNA PlayContainer URI.
• The AVT.AVTransportURI value shall be the URI provided in the CurrentURI input argument of
the AVT:SetAVTransportURI request or it shall be a URI obtained from a <res> element in the
CurrentURIMetaData input argument of the same request.
• The AVT.CurrentTrackURI value shall be equal to the AVT.AVTransportURI value.
• The AVT.CurrentTrack and AVT.NumberOfTracks values shall be "1".
[ATTRIBUTES ]
[C OMMENT] In conjunction with other DLNA guidelines that define general rules for ensuring
consistency between different AVTransport state variables, this guideline clarifies how those other
guidelines apply specifically, in the case where a control point instructs a UPnP AV MediaRenderer
to render a single content binary.
10.1.6.11.2
[G UIDELINE ] A UPnP AV MediaRenderer that renders a media collection file shall use the following
mapping for virtual instance state variables.
• The AVT.AVTransportURI value shall be the URI provided in the CurrentURI input argument of
the AVT:SetAVTransportURI request.
• The AVT.CurrentTrackURI value shall be the URI for the track that is currently being rendered.
(That is, the URI for the actual audio-only, audio/video, or image content that is actually
rendered.)
• The AVT.CurrentTrack value shall be the index within the media collection file, where the URI for
the track can be found. This value is 1 for the first track URI in the media collection file and is
incremented by one for each successive track even if the track cannot be rendered.
[ATTRIBUTES ]
[C OMMENT] In conjunction with other DLNA guidelines that define general rules for ensuring
consistency between different AVTransport state variables, this guideline clarifies how those other
guidelines apply specifically, in the case of media collection files. There could be some tracks in the
media collection file that might not be able to be rendered by the UPnP AV MediaRenderer (e.g.
unsupported Media Format Profile for a track URI).
The AVT.CurrentTrackURI virtual instance state variable value is never the URI of the media
collection file.
10.1.6.11.3
[G UIDELINE ] A UPnP AV MediaRenderer that renders a DLNA PlayContainer URI shall use the
following mapping for virtual instance state variables.
• The AVT.AVTransportURI value shall be the URI provided in the CurrentURI input argument of
the AVT:SetAVTransportURI request.
• The AVT.CurrentTrackURI shall be the URI for the track that is currently being rendered. (i.e. the
URI for the actual audio-only, audio/video, or image content that is being rendered).
PlayContainerTrackIndex is defined as the index of a rendered content, relative to the sequenced
set of content, represented by the DLNA PlayContainer URI.
PlayContainerTotalTracks is defined as the last index of rendered content in the sequenced set of
content, represented by the DLNA PlayContainer URI.
• Index calculation shall always be done with a preorder traversal of the CDS hierarchy, such that
the first CDS object that is played shall have an index of "1". A preorder traversal means that for
a given CDS:Browse request (with sort-args applied), left subtrees and leaves (i.e. CDS objects
that appear earlier in the CDS:Browse response) are processed before right subtrees and
leaves (i.e. CDS objects that appear later in the CDS:Browse response).
• If encountered during traversal, CDS items shall always have a count of "1", regardless of
whether they are played or skipped. A skipped CDS item is one where none of the CDS item's
<res> elements are rendered by the UPnP AV MediaRenderer. If the CDS item has zero <res>
elements, it shall be considered skipped.
• A CDS item with a media collection binary shall always have a count of "1". Furthermore, these
CDS items shall be skipped. (See 10.1.4.29.4 MM DLNA PlayContainer URI for information on
the prohibition of playing media collection binaries.)
• If rendered, a CDS item shall automatically render at least one <res> elements associated with
the CDS item. If multiple <res> elements are rendered, then they shall be rendered
simultaneously. (That is, a UPnP AV MediaRenderer does not render the same content (in
different profiles or transports) multiple times, but a UPnP AV MediaRenderer is permitted to
render an image in conjunction with an audio at the same time.)
• If encountered during traversal, a CDS container shall have a count of "0" because <res>
elements of a CDS container shall never be played. (See 10.1.4.29.4 MM DLNA PlayContainer
URI for information on the restriction for playing only CDS items.)
A CDS object shall be counted if and only if there are max-depth-val or fewer CDS containers
between the CDS object and the CDS container identified by container-id-val, as defined in
10.1.4.29. (That is, these are the CDS objects that are traversed.)
[ATTRIBUTES ]
[C OMMENT] In conjunction with other DLNA guidelines that define general rules for ensuring
consistency between different AVTransport state variables, this guideline clarifies how those other
guidelines apply specifically, in the case of DLNA PlayContainer URI values.
The AVT.NumberOfTracks virtual instance state variable is often updated progressively because it
is often difficult to count the number of tracks for all types of media collections, whether they be
represented through a DLNA PlayContainer URI or a media collection file.
The AVT.CurrentTrackURI virtual instance state variable value is never the DLNA PlayContainer
URI.
10.1.6.11.4
[G UIDELINE ] A UPnP AV MediaRenderer that renders a media collection file should use the
following mapping for virtual instance state variables.
• The AVT.NumberOfTracks value should be the number of content entries in the media collection
file (which is often progressively calculated).
[ATTRIBUTES ]
[C OMMENT] Some UPnP AV MediaRenderers might not be able to immediately provide a count of
the playback items in a media collection file. The AVTransport specification takes this into account
and permits UPnP AV MediaRenderers to update the value in a progressive manner.
This guideline strongly recommends that a UPnP AV MediaRenderer provide the number of
playback items in the current media collection file. Sometimes the final value is acquired in an
immediate fashion; other times, the value has to be acquired through a counting process. The
manner in which the UPnP AV MediaRenderer acquires the total track count is up to the
implementer, but the obligation to provide an accurate value exists according to the intentions of the
AVTransport specification.
10.1.6.11.5
[G UIDELINE ] A UPnP AV MediaRenderer that renders a DLNA PlayContainer URI should use the
following mapping for virtual instance state variables.
This guideline strongly recommends that a UPnP AV MediaRenderer provide the number of
playback items in the current DLNA PlayContainer URI. Sometimes the final value is acquired in an
immediate fashion; other times, the value has to be acquired through a counting process. The
manner in which the UPnP AV MediaRenderer acquires the total track count is up to the
implementer, but the obligation to provide an accurate value exists according to the intentions of the
AVTransport specification.
10.1.6.11.6
[G UIDELINE ] A UPnP AV MediaRenderer that renders a DLNA PlayContainer URI shall use one of
the following values for AVT.CurrentTrack virtual instance state variable.
10.1.6.11.7
[G UIDELINE ] If no content has been assigned to the UPnP AV MediaRenderer for rendering or the
UPnP AV MediaRenderer receives an AVT:SetAVTransportURI action with both the CurrentURI and
CurrentURIMetaData input arguments set to an empty string, then the UPnP AV MediaRenderer
shall use the following mapping for virtual instance state variables.
[ATTRIBUTES ]
[C OMMENT] This is for the situation after a reset condition for a UPnP AV MediaRenderer or by a
UPnP AV MediaRenderer control point through the AVT.SetAVTransportURI action (10.1.6.8.2) to
clear the rendering state.
[ATTRIBUTES ]
[C OMMENT] This requirement repeats what is already stated in the AVTransport specification.
Some implementations have accidentally mistaken the CurrentURI output argument and the
AVT.AVTransportURI values to be always equivalent to the TrackURI output argument of
AVT:GetPositionInfo and the AVT.CurrentTrack URI virtual instance state variable.
10.1.6.12.2
[G UIDELINE ] The NrTracks output argument of the AVT:GetMediaInfo action shall return the same
value as the AVT.NumberOfTracks virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] These guidelines specify the behavior for reporting the value for NrTracks (and
AVT.NumberOfTracks).
10.1.6.12.3
[G UIDELINE ] In conjunction with 10.1.6.11.2, 10.1.6.11.3, 10.1.6.11.4, and 10.1.6.11.5, a UPnP AV
MediaRenderer that progressively updates the value of AVT.NumberOfTracks should provide the
total count within 10 s of the previous call to AVT:SetAVTransportURI.
[ATTRIBUTES ]
[C OMMENT] DLNA recommends that UPnP AV MediaRenderers provide the count in a timely
manner. Control points often display such information to a user and sometimes use the track count
information to determine what a user can or cannot do.
This guideline is not required because media collection files can be very large and, in the case of
DLNA PlayContainer URIs, CDS hierarchies can be very complex.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 258 –
10.1.6.12.4
[G UIDELINE ] The MediaDuration output argument of the AVT:GetMediaInfo action shall return the
value of the AVT.CurrentMediaDuration virtual instance state variable.
[ATTRIBUTES ]
10.1.6.12.5
[G UIDELINE ] In conjunction with 10.1.6.12.9, a UPnP AV MediaRenderer may progressively update
the value of AVT.CurrentMediaDuration, such that the total sum is not provided immediately.
The definition of update progressively is that the UPnP AV MediaRenderer updates the state
variable (and appropriately sends GENA events) at a rate that does not exceed one GENA event
every 0,2 s.
[ATTRIBUTES ]
[C OMMENT] Some UPnP AV MediaRenderers might not be able to immediately provide the
duration sum for all playback items in a media collection. The AVTransport specification takes this
into account and permits UPnP AV MediaRenderers to update the value in a progressive manner.
10.1.6.12.6
[G UIDELINE ] In conjunction with 10.1.6.12.5, a UPnP AV MediaRenderer that progressively
updates the value of AVT.CurrentMediaDuration should provide the total sum within 10 s of the
previous call to AVT:SetAVTransportURI.
[ATTRIBUTES ]
[C OMMENT] DLNA recommends that UPnP AV MediaRenderers provide the duration sum in a
timely manner.
10.1.6.12.7
[G UIDELINE ] Information returned by AVT:GetMediaInfo should be as accurate as possible. The
output arguments that UPnP AV MediaRenderer control points will rely on most will be: NrTracks,
CurrentURI, CurrentURIMetaData, and MediaDuration.
• Some output arguments can be progressively updated as the device acquires more information
(e.g., NrTracks).
• Some output arguments can have values to indicate that the information cannot be provided
(e.g., NOT_IMPLEMENTED value for MediaDuration as defined in requirement 10.1.6.12.8).
• CurrentURIMetaData can have values as defined in guideline requirements 10.1.6.14.
• Some output arguments can have placeholder values to indicate information is not yet available.
(That is, DIDL-Lite document with schema-compliant placeholder values.)
[ATTRIBUTES ]
[C OMMENT] This suggestion permits devices to use placeholder values where appropriate,
although the guideline strongly encourages information be as accurate as possible.
10.1.6.12.8
[G UIDELINE ] A UPnP AV MediaRenderer shall do one of the following.
• Never set the value of the AVT.CurrentMediaDuration virtual instance state variable to
"NOT_IMPLEMENTED".
• Always set the value of the AVT.CurrentMediaDuration virtual instance state variable to
"NOT_IMPLEMENTED".
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers are not allowed to selectively use the string
"NOT_IMPLEMENTED" for some contents but not others.
10.1.6.12.9
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.CurrentMediaDuration
virtual instance state variable to "NOT_IMPLEMENTED", the AVT.CurrentMediaDuration virtual
instance state variable should be the total duration for the content specified in AVT.AVTransportURI.
When the AVT.AVTransportURI is a media collection or a DLNA PlayContainer URI, the
AVT.CurrentMediaDuration virtual instance state variable is the sum of all known playback
durations for each item in the media collection or DLNA PlayContainer URI.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers often know the playback duration, of items in a media
collection or DLNA PlayContainer URI, through summing the durations progressively or by using
some metadata within the media collection or through the PlayContainer URI that provides the value
in an immediate fashion.
This guideline places no mandatory requirement on the accuracy of the total media duration. If the
UPnP AV MediaRenderer is not able to provide a value, then the value of the virtual instance state
variable is vendor-dependent.
10.1.6.12.10
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.CurrentMediaDuration
virtual instance state variable to “NOT_IMPLEMENTED”, but the UPnP AV MediaRenderer cannot
compute the duration of the associated content, then the value of state variable shall be set to either
“0:00:00” or “00:00:00” to indicate an unknown duration.
[ATTRIBUTES ]
[C OMMENT] this guideline clarifies that a value of “0:00:00” or “00:00:00” in state variable
AVT.CurrentMediaDuration indicates unknown duration for the content associated with
AVT.AVTransportURI virtual instance state variable. For example, if the 5 th entry in a media
collection does not have a duration, then the duration for the entire media collection will be unknown.
Another example: If the UPnP AV MediaRenderer is playing an image that is not part of a media
collection or a PlayContainer operation, then the value of AVT.CurrentMediaDuration is the same as
AVT.CurrentTrackDuration.
[ATTRIBUTES ]
[C OMMENT] When the UPnP AV MediaRenderer is in the TRANSITIONING state, the URI values
and track index values can be non-synchronized. When the UPnP AV MediaRenderer enters a
non-transitional state (e.g. PLAYING, STOPPED, etc.), the URI and track values are expected to be
accurate as described in the guideline.
10.1.6.13.2
[G UIDELINE ] Information returned by AVT:GetPositionInfo should be as accurate as possible. The
output arguments that control points will rely on most will be: RelTime , TrackDuration, Track, and
TrackURI.
[ATTRIBUTES ]
10.1.6.13.3
[G UIDELINE ] The TrackDuration output argument of the AVT:GetPositionInfo action shall return the
value of the AVT.CurrentTrackDuration virtual instance state variable.
[ATTRIBUTES ]
29341-14-10
ISO/IEC
29341-3-2
10.1.6.13.4
[G UIDELINE ] A UPnP AV MediaRenderer shall do one of the following:
• Never set the value of the AVT.CurrentTrackDuration virtual instance state variable to
"NOT_IMPLEMENTED".
• Always set the value of the AVT. CurrentTrackDuration virtual instance state variable to
"NOT_IMPLEMENTED".
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers are not allowed to selectively use the string
"NOT_IMPLEMENTED" for some tracks but not others.
10.1.6.13.5
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.CurrentTrackDuration
virtual instance state variable to "NOT_IMPLEMENTED", then the AVT.CurrentTrackDuration
virtual instance state variable should be the duration for the track specified in
AVT.CurrentTrackURI.
[ATTRIBUTES ]
[C OMMENT] Provides baseline expectations for reporting the playback duration of the track that is
currently being rendered. This guideline does not impose any mandatory accuracy requirements
because methodologies for determining the playback duration varies between implementations and
often has a dependency on the media formats. If the UPnP AV MediaRenderer is not able to provide
a value, then the value of the virtual instance state variable is vendor-dependent.
10.1.6.13.6
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.CurrentTrackDuration
virtual instance state variable to “NOT_IMPLEMENTED”, but the UPnP AV MediaRenderer cannot
compute the duration of the track (for example, if the track is an image), then the value of this state
variable shall be set to either “0:00:00” or “00:00:00” to indicate an unknown duration.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that a value of “0:00:00” or “00:00:00” in state variable
AVT.CurrentTrackDuration indicates unknown track duration for the current media resource.
10.1.6.13.7
[G UIDELINE ] The RelTime output argument of the AVT:GetPositionInfo action shall return the value
of the AVT.RelativeTimePosition virtual instance state variable.
[ATTRIBUTES ]
10.1.6.13.8
[G UIDELINE ] A UPnP AV MediaRenderer shall do one of the following:
• Never set the value of the AVT.RelativeTimePosition virtual instance state variable to
"NOT_IMPLEMENTED".
• Always set the value of the AVT.RelativeTimePosition virtual instance state variable to
"NOT_IMPLEMENTED".
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers are not allowed to selectively use the string
"NOT_IMPLEMENTED" for some tracks but not others.
10.1.6.13.9
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.RelativeTimePosition
virtual instance state variable to "NOT_IMPLEMENTED", the AVT.RelativeTimePosition virtual
instance state variable shall indicate the current playback position in terms of time for the content
indicated by AVT.CurrentTrackURI. The value of the AVT.RelativeTimePosition virtual instance
state variable shall not be "END_OF_MEDIA".
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the correct behavior for reporting the RelTime output
arguments. Reporting an empty string is not acceptable.
10.1.6.13.10
[G UIDELINE ] The TrackMetaData output argument of the AVT:GetPositionInfo action shall return
the value of the AVT.CurrentTrackMetaData virtual instance state variable.
[ATTRIBUTES ]
ISO/IEC
29341-3-2
10.1.6.13.11
[G UIDELINE ] A UPnP AV MediaRenderer shall do one of the following:
• Never set the value of the AVT.CurrentTrackMetaData virtual instance state variable to
"NOT_IMPLEMENTED".
• Always set the value of the AVT.CurrentTrackMetaData virtual instance state variable to
"NOT_IMPLEMENTED".
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers are not allowed to selectively use the string
"NOT_IMPLEMENTED" for some tracks but not others.
10.1.6.13.12
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the AVT.CurrentTrackMetaData
virtual instance state variable to "NOT_IMPLEMENTED", the AVT.CurrentTrackMetaData virtual
instance state variable shall be formatted in one of the following ways:
• The value shall specify a valid DIDL-Lite XML fragment as defined in 10.1.6.14.8, with a single
<item> element that describes the track indicated by the AVT.CurrentTrackURI instance state
variable.
• The value shall be an empty string when no metadata is available for the current track indicated
by the AVT.CurrentTrackURI virtual instance state variable, or when the AVT.CurrentTrackURI
virtual instance state variable is also an empty string (e.g. no content is set up for rendering).
[ATTRIBUTES ]
[ATTRIBUTES ]
Requirement 9.2.15.1 only requires UPnP devices to accept SOAP requests up to 20 480 B (20 KiB)
in size.
10.1.6.14.2
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the
AVT.AVTransportURIMetaData virtual instance state variable to "NOT_IMPLEMENTED", then the
UPnP AV MediaRenderer may choose not to validate the CurrentURIMetaData input argument
specified by the UPnP AV MediaRenderer control point in the AVT:SetAVTransportURI request.
[ATTRIBUTES ]
[C OMMENT] This guideline absolves UPnP AV MediaRenderers from having to parse or validate
the DIDL-Lite metadata sent by a control point.
10.1.6.14.3
[G UIDELINE ] The value of the CurrentURIMetaData output argument for the AVT:GetMediaInfo
action shall be the same as the value of the AVT.AVTransportURIMetaData virtual instance state
variable.
[ATTRIBUTES ]
10.1.6.14.4
[G UIDELINE ] A UPnP AV MediaRenderer shall update the AVT.AVTransportURI virtual instance
state variable to indicate the current URI prior to changing the AVT.TransportState virtual instance
state variable to "PLAYING".
[ATTRIBUTES ]
[C OMMENT] This allows control points to know when the UPnP AV MediaRenderer has selected a
different <res> element.
Control Points can rely on the GENA event to indicate when the UPnP AV Media Renderer has
chosen an alternate URI.
• The UPnP AV MediaRenderer uses the URI specified in the CurrentURI argument of the
AVT:SetAVTransportURI request.
• The DMR overrides the specified URI (in the CurrentURI argument) with another one (from the
CurrentURIMetaData argument) in the AVT:SetAVTransportURI request (as described in
10.1.6.9.1).
10.1.6.14.5
[G UIDELINE ] UPnP AV MediaRenderers may specify a value for the
AVT.AVTransportURIMetaData virtual instance state variable (and hence the CurrentURIMetaData
output argument of AVT:GetMediaInfo) that is different from the value of the CurrentURIMetaData
argument of the last AVT:SetAVTransportURI request.
DLNA guidelines; Part 1-1: Architecture and protocols
– 265 –
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers can have different values because of a variety of reasons.
• The device can parse different metadata from within the content file.
• The device can remove elements and attributes from the DIDL-Lite XML fragment (while
remaining schema-compliant) to reduce memory use.
• The device can truncate values of elements and attributes to reduce memory use.
10.1.6.14.6
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the
AVT.AVTransportURIMetaData virtual instance state variable to "NOT_IMPLEMENTED" and it
specifies a value for the AVT.AVTransportURIMetaData virtual instance state variable (and hence
the CurrentURIMetaData output argument of AVT:GetMediaInfo) that is different from the value of
the CurrentURIMetaData argument of the last AVT:SetAVTransportURI request, then the UPnP AV
MediaRenderer shall impose the following restrictions on the metadata.
• The provided metadata shall represent the metadata of the content indicated by the
AVT.AVTransportURI virtual instance state variable.
• If the AVT.AVTransportURI virtual instance state variable points to a media collection, then the
provided metadata shall be limited to the media collection. The provided metadata shall not
include metadata for items within the media collection.
• The provided metadata shall specify a valid DIDL-Lite XML fragment as defined in 10.1.6.14.8.
[ATTRIBUTES ]
[C OMMENT] Many control points have problems accepting large metadata values. This guideline
limits the metadata for AVT.AVTransportURIMetaData and CurrentURIMetaData to refer
specifically to the content indicated by the AVT.AVTransportURI virtual instance state variable. This
guideline prohibits the general practice of collectively using the metadata of each item in a media
collection to represent the metadata of a media collection.
10.1.6.14.7
[G UIDELINE ] If a UPnP AV MediaRenderer is capable of playing a media collection and if the UPnP
AV MediaRenderer has access to metadata of individual items in the collection, then the UPnP AV
MediaRenderer should report these metadata through the AVT.CurrentTrackMetaData virtual
instance state variable.
[ATTRIBUTES ]
[C OMMENT] Control Points often use metadata provided by the UPnP AV MediaRenderer in user
interfaces. UPnP AV MediaRenderers are strongly encouraged to provide such metadata whenever
possible.
10.1.6.14.8
[G UIDELINE ] If a UPnP AV MediaRenderer control point specifies a value for the
CurrentURIMetaData argument of an AVT:SetAVTransportURI request, then the control point shall
follow these restrictions for the value of the CurrentURIMetaData argument, as follows:
The provided metadata shall represent the metadata of the content indicated by the CurrentURI
input argument.
One of the <res> elements shall be the <res> element that contains the URI specified in the
CurrentURI input argument.
If the CurrentURI input argument points to a media collection, then the provided metadata shall be
limited to the media collection. The provided metadata shall not include metadata for items within
the media collection.
[ATTRIBUTES ]
[C OMMENT] This guideline limits the scope of the CurrentURIMetaData to the metadata directly
associated with the CurrentURI input argument. Metadata for a media collection is permitted, so
long as value does not provide metadata for each of the individual items in the collection.
Many UPnP AV MediaRenderers have problems storing a large amount of metadata provided in the
CurrentURIMetaData. Equally problematic is the fact that many control points cannot support a
scenario where a UPnP device transmits a UPnP event or an AVT:GetMediaInfo response with a
large amount of metadata.
The expected metadata to be sent in the CurrentURIMetaData argument is best described by the
CDS:Browse response for the following request:
• ObjectID: The CDS object ID of that provided the URI specified in the CurrentURI input
argument of AVT:SetAVTransportURI.
• BrowseFlag: BrowseMetadata.
• Filter: One or more of the following: ALLIP, res (and or any res attribute), dc:creator, and any
other metadata that the control point wants to provide.
Whenever possible, control points are encouraged to provide all of the available <res> attributes
that are normative for DIDL-Lite. Likewise, UPnP AV MediaRenderers are encouraged to accept
and preserve these attributes.
The guideline permits control points to specify a single <res> element in the metadata, on behalf of
a user request. In such cases, the CurrentURIMetaData argument only includes the <res> element
DLNA guidelines; Part 1-1: Architecture and protocols
– 267 –
10.1.6.14.9
[G UIDELINE ] UPnP AV MediaRenderer control points that receive metadata from a UPnP AV
MediaRenderer shall be tolerant of DIDL-Lite metadata that is valid and conformant to DLNA
restrictions.
[ATTRIBUTES ]
[C OMMENT] Control Points that invoke UPnP actions or subscribe to UPnP events that involve
metadata needs to be prepared for the presence of metadata, even if metadata is not always
provided.
10.1.6.14.10
[G UIDELINE ] UPnP AV MediaRenderer control points that receive metadata from a UPnP AV
MediaRenderer should be tolerant of DIDL-Lite metadata that is invalid or not conformant to DLNA
restrictions.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderer control points that can handle DIDL-Lite metadata that is not
schema compliant exhibit a good level of robustness in an environment where DLNA UPnP AV
MediaRenderer control points can be interacting with non-DLNA UPnP AV MediaRenderer devices.
10.1.6.14.11
[G UIDELINE ] The UPnP AV MediaRenderer shall do one of the following:
• Never set the value of the AVT.AVTransportURIMetaData virtual instance state variable to
"NOT_IMPLEMENTED".
• Always set the value of the AVT.AVTransportURIMetaData virtual instance state variable to
"NOT_IMPLEMENTED".
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers are not allowed to selectively use the string
"NOT_IMPLEMENTED" for some contents but not others.
10.1.6.14.12
[G UIDELINE ] If a UPnP AV MediaRenderer never sets the value of the
AVT.AVTransportURIMetaData virtual instance state variable to "NOT_IMPLEMENTED", then the
AVT.AVTransportURIMetaData virtual instance state variable shall be formatted in one of the
following ways.
• The value shall specify a valid DIDL-Lite XML fragment as defined in 10.1.6.14.8, with a single
<item> element that describes the content indicated by the AVT.AVTransportURI virtual
instance state variable.
• The value shall be an empty string when no metadata is available for the content indicated by the
AVT.AVTransportURI virtual instance state variable, or when the AVT.AVTransportURI virtual
instance state variable is also an empty string (e.g. no content is set up for rendering) or a DLNA
PlayContainer URI.
[ATTRIBUTES ]
[C OMMENT] The UPnP AV MediaRenderer can obtain the metadata from the CurrentURIMetaData
input argument in the AVT:SetAVTransportURI action, or by using other means (see also
10.1.6.14.5).
• The CurrentTransportState output argument shall match the AVT.TransportState instance state
variable.
• The CurrentTransportStatus output argument shall match the AVT.TransportStatus instance
state variable.
• The CurrentSpeed output argument shall match the AVT.TransportPlaySpeed instance state
variable.
[ATTRIBUTES ]
[C OMMENT] This guideline makes it so that control points can safely assume that UPnP actions and
instance state variables report the same transport state information.
10.1.6.15.2
[G UIDELINE ] UPnP MediaRenderers that respond to an AVT:GetTransportSettings request shall
accurately reflect the PlayMode output argument to match the AVT.CurrentPlayMode instance state
variable.
[ATTRIBUTES ]
The longest period of time that a MediaRenderer device is permitted to remain in the
TRANSITIONING state is 30 s.
[ATTRIBUTES ]
[C OMMENT] The TRANSITIONING state is a way for a device to indicate that it is attempting to
change into a different state, such as PLAYING or STOPPED.
10.1.6.16.2
[G UIDELINE ] UPnP MediaRenderers may enter the TRANSITIONING state at any time.
[ATTRIBUTES ]
The TRANSITIONING provides a useful cue to the user that the device is trying to do something. For
example, entering the TRANSITIONING state after a call to AVT:SetAVTransportURI acknowledges
the user's request to change content even if playback has not yet begun. Likewise, if a device is in
the PLAYING state and network problems interrupt playback, the device can go into the
TRANSITIONING state during the interruption.
10.1.6.16.3
[G UIDELINE ] UPnP MediaRenderers shall not define a new intermediate state.
An intermediate state is a state that the device enters temporarily before entering the state
requested by the control point.
[ATTRIBUTES ]
[C OMMENT] Defining a new intermediate state can confuse control points into believing other
control points are trying to use the device. A control point that encounters a vendor-defined state of
BUFFERING has no idea that this state is an intermediate state. Likewise, a control point that
encounters a vendor-defined state of LOCKED has no idea that the device might remain in this state
indefinitely. This guideline allows control points to always assume that vendor-defined states can
last indefinitely and that TRANSITIONING is the only intermediate state.
10.1.6.16.4
[G UIDELINE ] UPnP MediaRenderers may define new non-intermediate states.
[ATTRIBUTES ]
[C OMMENT] For example, defining a LOCKED state to indicate that the DMR cannot accept
AVTransport requests is acceptable due to its current state (e.g. a local user is using the device
directly).
However, creating a new state called BUFFERING to represent that the device is busy buffering
data in preparation for rendering is not permitted.
The LOCKED and BUFFERING states are only examples. The key distinction between the
examples is the former involves an out-of-scope scenario and the latter involves an in-scope
scenario. In the case of LOCKED, an external stimulus (i.e. out-of-scope scenario) caused the
device to enter the LOCKED state. In the case of BUFFERING, the DMR entered the BUFFERING
state after a control point requested a normative state change request (e.g. play state change, track
change, URI change, etc.).
10.1.6.16.5
[G UIDELINE ] UPnP MediaRenderers may define new allowed values for the AVT.TransportStatus
instance state variable.
[ATTRIBUTES ]
[C OMMENT] In lieu of defining new intermediate states, vendors are permitted to use the
TransportStatus instance state variable to convey additional information about the transport layer.
10.1.6.16.6
[G UIDELINE ] UPnP MediaRenderers that define new allowed values for the AVT.TransportStatus
instance state variable should begin the allowed value with "ERROR_" to indicate the value
represents an error condition.
[ATTRIBUTES ]
[C OMMENT] This guideline allows control points to mark status values as being informative or
error-related. The normative error value for AVT.TransportStatus is ERROR_OCCURRED.
10.1.6.16.7
[G UIDELINE ] If a UPnP AV MediaRenderer responds to an AVT:Seek action with the 200 (OK)
response code and the value of the AVT.TransportState virtual instance state variable is
PAUSED_PLAYBACK or STOPPED, then it shall set the AVT.TransportState virtual instance state
variable to a value of TRANSITIONING. After the seek operation is completed (i.e. the desired
playback position is reached), the UPnP AV MediaRenderer shall set the AVT.TransportState virtual
instance state variable to the value before the transition to TRANSITIONING.
DLNA guidelines; Part 1-1: Architecture and protocols
– 271 –
[ATTRIBUTES ]
[C OMMENT] This guideline allows UPnP AV MediaRenderer control points to detect a change to the
transport state (AVT.TransportState) on the UPnP AV MediaRenderer through the eventing of the
AVT.LastChange virtual state variable and could be used to trigger an invocation of the
AVT.GetPositionInfo action. This guideline applies even when performing an instantaneous seek on
cached content and remaining in the same transport state.
10.1.6.16.8
[G UIDELINE ] A UPnP AV MediaRenderer control point should always invoke the
AVT:GetPositionInfo action when the AVT.LastChange evented state variable contains an update to
the AVT.TransportState virtual instance state variable with a value of PAUSED_PLAYBACK or
STOPPED even when the AVT.TransportState virtual instance state variable value is the same as
currently cached in the UPnP AV MediaRenderer control point.
[ATTRIBUTES ]
[C OMMENT] This guideline gives guidance to UPnP AV MediaRenderer control points to refresh
their current position information when a UPnP AV MediaRenderer reports a transport state change
to PAUSED_PLAYBACK or STOPPED.
For example, when a UPnP AV MediaRenderer control point, not actively controlling a UPnP AV
MediaRenderer, observes over the network that a UPnP AV MediaRenderer is currently in the
PAUSED_PLAYBACK or STOPPED state, then seeks to a new position where it enters the
TRANSITIONING state, and then transitions back to the PAUSED_PLAYBACK or STOPPED state
when the seek completes, the UPnP AV MediaRenderer control point needs to invoke an
AVT:GetPositionInfo action to the UPnP AV MediaRenderer after each transport state change
including when the seek completes (i.e. returns to the PAUSED_PLAYBACK or STOPPED state) to
refresh the current position.
10.1.6.16.9
[G UIDELINE ] If a UPnP AV MediaRenderer receives an AVT.Play request to play an image, then it
shall transition into a “PLAYING” state as soon as it successfully decodes and starts rendering the
image.
[ATTRIBUTES ]
[C OMMENT] This guideline together with 10.1.6.16.10 and 10.1.6.16.11 define the use of the
“PLAYING” state for UPnP AV MediaRenderers that play image content.
10.1.6.16.10
[G UIDELINE ] If a UPnP AV MediaRenderer is currently playing an image, it shall remain in the
“PLAYING” state until it receives a new action that changes its state, or until some third-party
application forces the UPnP AV MediaRenderer to adopt a different state using means outside the
scope of DLNA.
[ATTRIBUTES ]
[C OMMENT] This guideline together with 10.1.6.16.7 and 10.1.6.16.11 define the use of the
“PLAYING” state for UPnP AV MediaRenderers that play image content.
For example, if a TV that is operating as a UPnP AV MediaRenderer receives a request to display a
picture, the TV will change its state into “PLAYING” as soon as it starts displaying the picture on the
screen. The TV will remain in this state, and will remain displaying the picture, until one of two things
happen:
a) the TV receives a request to change its state from a UPnP AV MediaRenderer Control Point in
the network. The request source could be the original UPnP AV MediaRenderer Control Point or
a different one;
b) a different application forces the TV to change its state. Examples of the latter are: a user tunes
to some channel for watching TV, or the TV starts a screen saver application after some time of
inactivity.
10.1.6.16.11
[G UIDELINE ] If a UPnP AV MediaRenderer that has been playing an image stops displaying the
image due to the intervention of a third-party application, it shall enter into the “STOPPED” or
“NO_MEDIA_PRESENT” states.
[ATTRIBUTES ]
[C OMMENT] This guideline together with 10.1.6.16.7 and 10.1.6.16.10 define the use of the
“PLAYING” state for UPnP AV MediaRenderers that play image content.
For example, if a TV operating as a UPnP AV MediaRenderer is displaying a picture and changes
the picture due to some screen saver application, the TV will change its state into “STOPPED” or
“NO_MEDIA_PRESENT” as long as the TV can still respond successfully to requests to play media
from the network. Notice that some third-party applications do not allow the TV to receive control
actions as long as the third-party application is controlling the device. For example, a TV that is
currently used for watching broadcast channels could block action requests from the network to play
media.
10.1.6.16.12
[G UIDELINE ] If a UPnP AV MediaRenderer is currently playing an image, and it receives an
AVT:Stop action, then it shall transition into the “STOPPED” state.
[ATTRIBUTES ]
10.1.6.16.13
[G UIDELINE ] If in a UPnP AV MediaRenderer the value of the AVT.CurrentTrackURI virtual
instance state variable is an image URI, and if the UPnP AV MediaRenderer is in the “STOPPED”
state, then the UPnP AV MediaRenderer shall not display the image.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that when a UPnP AV MediaRenderer is in the “STOPPED”
state, and the currently available content is an image, the UPnP AV MediaRenderer needs to clear
the screen and not show the image.
[ATTRIBUTES ]
[C OMMENT] This guideline requirement references the permitted and expected behaviors of a
device that dynamically enables/disables its AVTransport actions.
10.1.6.17.2
[G UIDELINE ] The value returned in the Actions output argument of an
AVT:GetCurrentTransportActions request shall match the value of the
AVT.CurrentTransportActions virtual instance state variable.
[ATTRIBUTES ]
10.1.6.17.3
[G UIDELINE ] A UPnP AV MediaRenderer control point should provide a UI indicator to inform a user
of disabled transport actions.
[ATTRIBUTES ]
[C OMMENT] This guideline requires control points to provide UI indications to inform users that a
playback feature is disabled. Without this information, a user can be misled into believing that the
device is not working properly. Examples of user indicators include the following:
• an icon that flashes on the screen to indicate the disabled state when the user pushes the
button.
Depending on UI form factor this guideline can be difficult to implement, such as a handheld remote
with physical buttons.
10.1.6.17.4
[G UIDELINE ] A UPnP AV MediaRenderer shall report the disabling of the Pause operation by
excluding the value “Pause” from the Actions output argument of an
AVT:GetCurrentTransportActions and the AVT.CurrentTransportActions virtual instance state
variable.
[ATTRIBUTES ]
10.1.6.17.5
[G UIDELINE ] If a UPnP AV MediaRenderer's AVT.NumberOfTracks value is greater than 1, then the
AVT:Next/AVT:Previous actions shall have the behavior of incrementing/decrementing the
AVT:CurrentTrack virtual instance state variable (and likewise properly reflecting other state
change information required by the AVTransport specification).
[ATTRIBUTES ]
[C OMMENT] This guideline defines the behavior of AVT:Next and AVT:Previous in the context of
playing a media collection. Behavior for AVT:Next and AVT:Previous is not defined for other cases.
10.1.6.17.6
[G UIDELINE ] If a UPnP AV MediaRenderer's AVT.NumberOfTracks value is equal to 1, then a
UPnP AV MediaRenderer control point should not issue the AVT:Next and AVT:Previous actions, as
the behavior performed by a UPnP AV MediaRenderer is implementation dependent.
[ATTRIBUTES ]
[C OMMENT] The behavior is not defined in ISO/IEC 29341-14-10 and preferably will not be used in
this particular situation.
10.1.6.17.7
[G UIDELINE ] If in a UPnP AV MediaRenderer, the value of the AVT.TransportURI virtual instance
state variable is an image URI, then the value of the AVT.CurrentTransportActions virtual instance
state variable should not include the value “Pause”.
[ATTRIBUTES ]
[C OMMENT] If a UPnP AV MediaRenderer plays an image, the relevant transport actions are “Play”
DLNA guidelines; Part 1-1: Architecture and protocols
– 275 –
and “Stop. The UPnP AV MediaRenderer could also accept “Pause”, but the behavior is
vendor-dependent.
10.1.6.17.8
[G UIDELINE ] If in a UPnP AV MediaRenderer, the value of the AVT.TransportURI virtual instance
state variable is a DLNA PlayContainer URI, or a URI of a media collection file, and the
AVT.CurrentTrackURI virtual instance state variable is an image URI, then the value of
AVT.CurrentTransportActions virtual instance state variable may include the value “Pause”.
[ATTRIBUTES ]
[C OMMENT] If a UPnP AV MediaRenderer plays an image within a playlist, it could accept “Pause”.
The behavior is described in 10.1.6.17.9.
10.1.6.17.9
[G UIDELINE ] If in a UPnP AV MediaRenderer the value of the AVT.CurrentTrackURI virtual
instance state variable is an image URI, and if the UPnP AV MediaRenderer lists “Pause” in the
AVT.CurrentTransportActions virtual instance state variable, then upon receiving an AVT:Pause
action, the UPnP AV MediaRenderer shall transition into the “PAUSED_PLAYBACK” state.
[ATTRIBUTES ]
[C OMMENT] Some UPnP AV MediaRenderers will support Pause as a transport operation available
when the current track is an image. This transport action is useful only when the
AVT.AVTransportURI virtual instance state variable contains the URI of a media collection file or is
a DLNA PlayContainer URI.
10.1.6.17.10
[G UIDELINE ] If in a UPnP AV MediaRenderer the value of the AVT.CurrentTrackURI virtual
instance state variable is an image URI, and if the UPnP AV MediaRenderer is in the
“PAUSED_PLAYBACK” state, then the UPnP AV MediaRenderer may display the image.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] An example of bad behavior is a MediaRenderer that requires a control point to invoke
AVT:Play after a call to AVT:SetPlayMode in order for the requested play mode to be applied.
10.1.6.18.2
[G UIDELINE ] UPnP MediaRenderers that change the play mode may change the transport state so
long as the new state is not STOPPED.
[ATTRIBUTES ]
10.1.6.18.3
[G UIDELINE ] UPnP MediaRenderers should keep the same play mode after a call to
AVT:SetAVTransportURI.
[ATTRIBUTES ]
[C OMMENT] Automatically changing an unrelated portion of the device's state is not a good
practice.
[C OMMENT] The AVTransport specification does not specify the behavior of different play modes.
These guidelines specify the basic expectations, inspired largely from traditional consumer
electronics devices that play optical media content. The AVTransport specification can require
additional behaviors of the MediaRenderer.
10.1.6.19.2
[G UIDELINE ] UPnP MediaRenderers that implement the "REPEAT_ONE" play mode shall
implement it in the same manner as 10.1.6.19.1, except in the following manners.
• If the device is in the PLAYING state and playback reaches the end for the content indicated by
AVT.CurrentTrackURI, then the MediaRenderer changes the playback position to "00:00:00"
and continues playing the same content from the beginning.
[ATTRIBUTES ]
10.1.6.19.3
[G UIDELINE ] UPnP MediaRenderers that implement the "REPEAT_ALL" play mode shall
implement it in the same manner as 10.1.6.19.1, with the following exceptions.
• AVT:Next requests that attempt to change the track number beyond the last track shall result
with AVT.CurrentTrack set to "1".
• AVT:Previous requests that attempt to change the track number before the first track shall result
with AVT.CurrentTrack set to AVT.NumberOfTracks.
• If the device is in the PLAYING state, with AVT.CurrentTrack = AVT.NumberOfTracks, and
playback finishes for the content indicated by AVT.CurrentTrackURI, then the MediaRenderer
resets AVT.CurrentTrack to 1 and AVT.CurrentTrackURI is appropriately updated.
AVT.AVTransportURI remains unchanged and content playback continues with the new track.
[ATTRIBUTES ]
10.1.6.19.4
[G UIDELINE ] UPnP MediaRenderers that implement the "RANDOM" play mode shall implement it in
the following manner.
• AVT:Next and AVT:Previous requests shall result with AVT.CurrentTrack set to a random value
from "1" to AVT.NumberOfTracks, with the AVT.CurrentTrackURI getting updated appropriately.
If the play state is PLAYING, then content playback continues with the new track.
• If a new value is applied to AVT.CurrentTrack, then AVT.CurrentTrackURI getting updated
appropriately.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 278 –
• If the play state before an AVT:Next or AVT:Previous request is PLAYING and a new track is
applied, then the device continues playback with the new track.
• If the device is in the PLAYING state and playback finishes for the content indicated by
AVT.CurrentTrackURI, then the MediaRenderer sets a new random value for AVT.CurrentTrack
and AVT.CurrentTrackURI is appropriately updated. AVT.AVTransportURI remains unchanged
and content playback continues with the new track.
[ATTRIBUTES ]
10.1.6.19.5
[G UIDELINE ] UPnP MediaRenderers that implement the "SHUFFLE" play mode shall implement it
in the same manner as "RANDOM" (see 10.1.6.19.4) except for the following manners.
• The device shall track the value history of AVT.CurrentTrack so that the new track value is not a
repeat of a previously played track.
• When the MediaRenderer has played all of the items (i.e. all tracks have been played), then the
device enters the STOPPED state and the AVT.CurrentTrack changes to "1".
[ATTRIBUTES ]
10.1.6.19.6
[G UIDELINE ] UPnP MediaRenderers should support the "REPEAT_ONE", "REPEAT_ALL" and
either "SHUFFLE" or "RANDOM" play modes.
[ATTRIBUTES ]
[C OMMENT] The "NORMAL" play mode is required, but these additional play modes are only
recommended.
10.1.6.20 MM play-speed
10.1.6.20.1
[G UIDELINE ] UPnP AV MediaRenderers may include element <allowedValueList> to specify a list
of allowed values for AVT.TransportPlaySpeed in the service description document as defined by
the AVTransport specification ISO/IEC 29341-14-10.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that listing play-speed values in the service description
document is optional.
Some UPnP AV MediaRenderers will only support a play-speed value of "1". These UPnP AV
MediaRenderers could publish this value in the allowed-value list of the service description
document.
Some UPnP AV MediaRenderers will rely on a UPnP AV MediaServer to provide support for
play-speed operations. These UPnP AV MediaRenderers do not know a-priori the speed values that
the servers will support. These UPnP AV MediaRenderers cannot list any values in the service
description document.
Some UPnP AV MediaRenderers could rely only on themselves to provide play-speed support. In
this case, these UPnP AV MediaRenderers could publish an exhaustive list of play-speed values in
the service description document.
Finally, a fourth class of UPnP AV MediaRenderers will support both server-driven and
renderer-driven play-speed operations. In this case, the UPnP AV MediaRenderers cannot publish
an exhaustive list of speed values in the service description document and consequently, these
UPnP AV MediaRenderers would also omit the allowed-value list.
If a UPnP AV MediaRenderer chooses not to specify a list of allowed play-speed values, then
AVT.TransportPlaySpeed is defined in the service description document as follows:
<stateVariable sendEvents="no">
<name>TransportPlaySpeed</name>
<dataType>string</dataType>
</stateVariable>
10.1.6.20.2
[G UIDELINE ] If a UPnP AV MediaRenderer includes the <allowedValueList> element for the
AVT.TransportPlaySpeed state variable in the service description, the element shall contain all the
play-speed values that the UPnP AV MediaRenderer accepts as the value of the Speed input
argument in an AVT:Play action. In addition, each value shall be represented as a rational fraction
in accordance with the UPnP AVTransport specification.
[ATTRIBUTES ]
[C OMMENT] If a DMR specifies a list of values in the service description document, then UPnP AV
MediaRenderer control points know a priori which speed values can never be used because they
are unlisted. Notice that having a value in the list does not automatically indicate that the DMR will
provide support for this value for a particular content resource. For any given content resource, the
DMR will implement a subset of the allowed values published in the service description. The
implemented values will be available to the controllers, as defined in 10.1.6.29.1.
Specifying allowed values like "NORMAL", "2x" or "Backwards Slow 0.25" are not allowed.
Examples of correct representations are "1", "2", and "−1/4".
<stateVariable sendEvents="no">
<name>TransportPlaySpeed</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>1</allowedValue>
<allowedValue>4</allowedValue>
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 280 –
</allowedValueList>
</stateVariable>
10.1.6.20.3
[G UIDELINE ] If a UPnP AV MediaRenderer specifies a list of allowed values for
AVT.TransportPlaySpeed in the service description, then each of the speed values subsequently
used in the X_DLNA_PS option of AVT.CurrentTransportActions virtual instance state variable shall
be one of the listed values.
[ATTRIBUTES ]
A MediaRenderer implements volume control when it implements the RCS.Volume instance state
variable.
[ATTRIBUTES ]
[C OMMENT] This guideline provides baseline expectations on how a control point can change the
volume on a MediaRenderer.
The stepping of the RCS.Volume value does not have to correspond to that of actual sound volume.
That is, the actual heard volume stepping can change per five steppings of the RCS.Volume
instance state variable.
10.1.6.21.2
[G UIDELINE ] UPnP MediaRenderers that support volume control shall implement RCS:SetVolume,
RCS:GetVolume, RCS:SetMute, and RCS:GetMute.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] All other forms of UPnP AV traffic described in this subclause (e.g. CDS, Rendering
Service) are tagged as per the default DLNAQOS_UP value in Table 7.
[ATTRIBUTES ]
10.1.6.23.2
[G UIDELINE ] If a UPnP AV MediaRenderer implements the AVT.CurrentTransportActions virtual
instance state variable then it shall always list the available transport actions in this state variable
including any of the DLNA-defined values (as indicated in guidelines 10.1.6.27.1 and 10.1.6.29.1)
[ATTRIBUTES ]
10.1.6.23.3
[G UIDELINE ] If no content is currently being rendered (i.e. AVT.AVTransportURI is an empty string),
then a UPnP AV MediaRenderer that implements AVT.CurrentTransportActions shall use an empty
string ("") as the value of the AVT.CurrentTransportActions virtual instance state variable.
[ATTRIBUTES ]
<stateVariable sendEvents="no">
<name>X_DLNA_RelativeBytePosition</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>X_DLNA_AbsoluteBytePosition</name>
<dataType>string</dataType>
</stateVariable>
The X_DLNA_CurrentTrackSize state variable shall be defined in the service description document
using the following XML fragment:
<stateVariable sendEvents="no">
<name>X_DLNA_CurrentTrackSize</name>
<dataType>string</dataType>
</stateVariable>
[ATTRIBUTES ]
[C OMMENT] This guideline defines new state variables for the UPnP AV MediaRenderer's
AVTransport service. These state variables are implemented by renderers that support
controller-byte seek operations.
The first state variable, X_DLNA_RelativeBytePosition, provides the playback position in bytes
during playback. Controllers that implement controller-byte seek operations can poll this state
variable to determine the current byte processed by the renderer.
The second state variable, X_DLNA_AbsoluteBytePosition, is for future use. DLNA does not
currently define the behavior of this state variable. Its value is vendor-dependent, as long as it
conforms to the syntax defined in this guideline.
The third state variable, X_DLNA_CurrentTrackSize provides the file size information for the track
currently being rendered. Controllers can poll this state variable to determine the file size.
10.1.6.24.2
[G UIDELINE ] If a UPnP AV MediaRenderer implements the AVT.X_DLNA_RelativeBytePosition
virtual instance state variable, its value shall indicate approximately the current byte in the stream
processed for rendering (the current playback position measured in bytes). Byte 0 represents the
first byte in the sequence. If L represents the file size in bytes, then byte L − 1 represents the final
byte in the sequence. If no content is currently being rendered (i.e. AVT.AVTransportURI is an
empty string), the value of the AVT.X_DLNA_RelativeBytePosition virtual instance state variable
shall be an empty string ("").
[ATTRIBUTES ]
10.1.6.24.3
[G UIDELINE ] If a UPnP AV MediaRenderer implements the AVT.X_DLNA_CurrentTrackSize virtual
instance state variable then its value shall be one of the following:
• an integer value indicating the size (in bytes) of the track currently being rendered;
• 0 to indicate that the size (in bytes) of the track currently being rendered is unknown;
• an empty string ("") when no track is currently being rendered (i.e. AVT.AVTransportURI is an
empty string).
[ATTRIBUTES ]
10.1.6.24.4
[G UIDELINE ] If a UPnP AV MediaRenderer does not implement the controller-byte seek operation
for any type of resources, then it may omit the X_DLNA_RelativeBytePosition state variable from
the AVTransport service description.
[ATTRIBUTES ]
10.1.6.24.5
[G UIDELINE ] If a UPnP AV MediaRenderer does not implement the controller-byte seek operation
for any type of resources, then it may omit the X_DLNA_AbsoluteBytePosition state variable from
the AVTransport service description.
[ATTRIBUTES ]
10.1.6.24.6
[G UIDELINE ] If a UPnP AV MediaRenderer does not implement the controller-byte seek operation
for any type of resources, then it may omit the X_DLNA_CurrentTrackSize state variable from the
AVTransport service description.
[ATTRIBUTES ]
InstanceID IN A_ARG_TYPE_InstanceID
TrackSize OUT X_DLNA_CurrentTrackSize
RelByte OUT X_DLNA_RelativeBytePosition
AbsByte OUT X_DLNA_AbsoluteBytePosition
This action does not have any effect on the state. The error codes defined for this action are
indicated in Table 22.
402 Invalid Args Could be any of the following: not enough "in" args, too many "in" args, no
"in" arg by that name, one or more "in" args are of the wrong data type.
712 Invalid InstanceID The specified instanceID is invalid for this AVTransport.
This action shall be defined in the service description document using the following XML fragment:
<action>
<name>X_DLNA_GetBytePositionInfo</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>TrackSize</name>
<direction>out</direction>
<relatedStateVariable>X_DLNA_CurrentTrackSize</relatedStateVariable>
</argument>
<argument>
<name>RelByte</name>
<direction>out</direction>
<relatedStateVariable>
X_DLNA_RelativeBytePosition
</relatedStateVariable>
</argument>
<argument>
<name>AbsByte</name>
<direction>out</direction>
<relatedStateVariable>
X_DLNA_AbsoluteBytePosition
</relatedStateVariable>
</argument>
</argumentList>
</action>
[ATTRIBUTES ]
29341-1
[C OMMENT] This guideline defines a new action for the UPnP AV MediaRenderer AVTransport
service. This action is implemented by renderers that support controller-byte seek operations.
During media playback, UPnP AV MediaRenderer control points can invoke this action against the
UPnP AV MediaRenderer to determine approximately the current byte position in the stream.
[ATTRIBUTES ]
[C OMMENT] In DLNA, UPnP AV MediaRenderer control points can issue AVT:Seek requests using
controller-time and controller-byte variables in addition to seek operations searching for a particular
track (required by ISO/IEC 29341-14-10). This guideline specifies the range of values that can be
used for the controller-time variables.
In DLNA the use of ABS_TIME is not specified. A UPnP AV MediaRenderer control point that needs
to provide fast access in the case of playlists could jump between tracks (using the "seek track"
mode of an AVT:Seek action), and then use controller-time, or controller-byte seek requests on the
resource.
10.1.6.26.2
[G UIDELINE ] If a UPnP AV MediaRenderer control point issues an AVT:Seek request with the Unit
input argument equal to X_DLNA_REL_BYTE then the value specified in the Target input argument
shall be a byte value with the same syntax and semantics defined for
X_DLNA_RelativeBytePosition in guidelines 10.1.6.24.1 and 10.1.6.24.2 to indicate a byte position
to seek. The value shall be greater than or equal to 0.
[ATTRIBUTES ]
[C OMMENT] In DLNA, UPnP AV MediaRenderer control points can issue AVT:Seek requests using
controller-time, and controller-byte variables in addition to seek operations searching for a
particular track (required by ISO/IEC 29341-14-10). This guideline specifies the range of values that
can be used for the controller-byte variables.
10.1.6.26.3
[G UIDELINE ] If a UPnP AV MediaRenderer does not specify support for the controller-time
operation as defined in guideline 10.1.6.27.1 then UPnP AV MediaRenderer control points should
not issue an AVT:Seek request with the Unit input argument equal to REL_TIME.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends UPnP AV MediaRenderer control points to verify first if a
DMR supports the controller-time seek operation before actually issuing a request.
10.1.6.26.4
[G UIDELINE ] If a UPnP AV MediaRenderer does not specify support for the controller-byte
operation as defined in guideline 10.1.6.27.1 then UPnP AV MediaRenderer control points should
not issue an AVT:Seek request with the Unit input argument equal to X_DLNA_REL_BYTE.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends UPnP AV MediaRenderer control points to verify first if a
DMR supports the controller-byte seek operation before actually issuing a request.
10.1.6.26.5
[G UIDELINE ] If a UPnP AV MediaRenderer provides the track duration according to 10.1.6.27.2,
then when a UPnP AV MediaRenderer control point issues an AVT:Seek request with the Unit input
argument equal to REL_TIME, the value of the Target input argument should be less than the track
duration.
[ATTRIBUTES ]
10.1.6.26.6
[G UIDELINE ] If a UPnP AV MediaRenderer provides the track size (in bytes) according to
10.1.6.27.5, then when a UPnP AV MediaRenderer control point issues an AVT:Seek request with
the Unit input argument equal to X_DLNA_REL_BYTE, the value of the Target input argument
should be less than the track size (in bytes).
[ATTRIBUTES ]
If a UPnP AV MediaRenderer implements controller-byte seek operations for the track currently
being rendered as defined in 10.1.6.23.1, a UPnP AV MediaRenderer shall include "Seek" and
"X_DLNA_SeekByte" in the list of comma-separated values of the AVT.CurrentTransportActions
virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] In DLNA, UPnP AV MediaRenderer control points can issue AVT:Seek requests using
controller-time and controller-byte seek operations. However, a UPnP AV MediaRenderer might or
might not support some of these operations for a given media resource. This guideline requires
UPnP AV MediaRenderers to use specific text entries in AVT.CurrentTransportActions virtual
instance state variable to indicate support for these controller seek operations. UPnP AV
MediaRenderer control points check the value of this state variable using action
AVT.GetCurrentTransportActions or via AVT.LastChange events to determine if a UPnP AV
MediaRenderer supports the respective seek operations.
10.1.6.27.2
[G UIDELINE ] If a UPnP AV MediaRenderer implements controller-time seek operations for the track
currently being rendered as defined in 10.1.6.23.1, it should provide the track duration in the
AVT.CurrentTrackDuration virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends UPnP AV MediaRenderers to provide the track duration
for controller-time seek operations. Certain control points will be unable to use controller-time seek
operations unless they know the playback duration.
10.1.6.27.3
[G UIDELINE ] If a UPnP AV MediaRenderer includes the res@duration property in the <res>
element that describes the resource currently being rendered, then the value of this property should
be equal to the value of the AVT.CurrentTrackDuration virtual instance state variable. The <res>
element that describes the resource currently being rendered is included in the
AVT.CurrentTrackMetaData virtual instance state variable.
[ATTRIBUTES ]
10.1.6.27.4
[G UIDELINE ] If a UPnP AV MediaRenderer control point detects different values for the same
media resource in the AVT.CurrentTrackDuration virtual instance state variable and the
res@duration property in the AVT.CurrentTrackMetaData virtual instance state variable, the UPnP
control point should use the former in any interactions with the UPnP AV MediaRenderer.
[ATTRIBUTES ]
10.1.6.27.5
[G UIDELINE ] If a UPnP AV MediaRenderer implements controller-byte seek operations for the track
currently being rendered as defined in 10.1.6.23.1, it should provide the track size (in bytes) in the
AVT.X_DLNA_CurrentTrackSize virtual instance state variable.
[ATTRIBUTES ]
10.1.6.27.6
[G UIDELINE ] If a UPnP AV MediaRenderer includes the res@size property in the <res> element
that describes the resource currently being rendered, then the value of this property should be equal
to the value of the AVT.X_DLNA_CurrentTrackSize virtual instance state variable. The <res>
element that describes the resource currently being rendered is included in the
AVT.CurrentTrackMetaData virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] Providing the resource size is a recommendation (not a requirement) for UPnP AV
MediaRenderers. Although in general res@size and AVT.X_DLNA_CurrentTrackSize have the
same value, in some cases there could be some differences due to content transformation, file
modifications, etc. The res@size property is provided by a device external to the UPnP AV
MediaRenderer and AVT.X_DLNA_CurrentTrackSize is provided by the UPnP AV MediaRenderer.
10.1.6.27.7
[G UIDELINE ] If a UPnP AV MediaRenderer control point detects different values for the same
media resource in the AVT.X_DLNA_CurrentTrackSize virtual instance state variable and the
res@size property in the AVT.CurrentTrackMetaData virtual instance state variable, the UPnP
control point should use the former in any interactions with the UPnP AV MediaRenderer.
[ATTRIBUTES ]
10.1.6.27.8
[G UIDELINE ] UPnP AV MediaRenderers shall not include the value X_DLNA_SeekTime in the
AVT.CurrentTransportActions virtual instance state variable when rendering a track that does not
belong to the Audio or AV Media Classes.
[ATTRIBUTES ]
[C OMMENT] Controller-time and controller-byte seek operations can only be used with audio or AV
media resources. They cannot be used with other types of resources like images.
10.1.6.27.9
[G UIDELINE ] If a UPnP AV MediaRenderer implements controller-byte seek operations, then it
shall include X_DLNA_REL_BYTE in the allowed value list for the A_ARG_TYPE_SeekMode state
variable in the AVTransport service description document.
[ATTRIBUTES ]
[C OMMENT] DLNA defines a new type of seek mode for controller-byte seek operations. This new
seek mode is triggered by using the value X_DLNA_REL_BYTE in the Unit argument of the
AVT:Seek action. This guideline requires UPnP AV MediaRenderers that support controller-byte
seek to add this value to the allowed values of AVT.A_ARG_TYPE_SeekMode.
10.1.6.27.10
[G UIDELINE ] If a UPnP AV MediaRenderer implements controller-byte seek operations, and it
receives an AVT:Seek request with a Unit value of X_DLNA_REL_BYTE and a Target value greater
than or equal to the track size, then it shall respond with error code 711 (Illegal Seek Target).
[ATTRIBUTES ]
[C OMMENT] This guideline applies regardless of whether the UPnP AV MediaRenderer exposes
the track size or not.
10.1.6.27.11
[G UIDELINE ] If a UPnP AV MediaRenderer implements controller-time seek operations, and it
receives an AVT:Seek request with a Unit value of REL_TIME and a Target value greater than the
track duration, then it shall respond with error code 711 (Illegal Seek Target).
[ATTRIBUTES ]
[C OMMENT] This guideline applies regardless of whether the UPnP AV MediaRenderer exposes
the track duration or not.
10.1.6.27.12
[G UIDELINE ] If a UPnP AV MediaRenderer does not indicate support for controller-byte seek
operations (as defined in guideline 10.1.6.27.1), and if it receives an AVT:Seek request with a Unit
value of X_DLNA_REL_BYTE, then the UPnP AV MediaRenderer shall respond with error code 710
(Seek Mode Not Supported).
[ATTRIBUTES ]
[C OMMENT] This guideline defines the error code to be used when the UPnP AV MediaRenderer
Control Point requests controller-byte seek operations for the current track but the UPnP AV
MediaRenderer did not advertise support for this operation.
10.1.6.27.13
[G UIDELINE ] If a UPnP AV MediaRenderer does not indicate support for controller-time seek
operations (as defined in guideline 10.1.6.27.1), and if it receives an AVT:Seek request with a Unit
value of REL_TIME, then the UPnP AV MediaRenderer shall respond with error code 710 (Seek
Mode Not Supported).
[ATTRIBUTES ]
[C OMMENT] This guideline defines the error code to be used when the UPnP AV MediaRenderer
Control Point requests controller-time seek operations for the current track but the UPnP AV
MediaRenderer did not advertise support for this operation.
[ATTRIBUTES ]
then, the UPnP AV MediaRenderer Control Point knows that it is possible to issue an AVT:Play
action with speed values of 1, ½, or 4.
When including the list of available play-speeds into AVT.CurrentTransportActions virtual instance
state variable, each comma (",") in the play-speed list shall be escaped as "\,".
[ATTRIBUTES ]
[C OMMENT] In DLNA, some UPnP AV MediaRenderers are capable of playback at different speeds
without the help of a server (renderer-driven play-speeds). Other UPnP AV MediaRenderers are
capable of playback at different speeds only if the server will generate such streams (server-driven
play-speeds). Other UPnP AV MediaRenderers will be able to use both renderer- and server-driven
play-speeds.
A UPnP AV MediaRenderer informs potential controllers of its ability to operate at play-speeds other
than 1 for the track currently being rendered by entering an X_DLNA_PS field in the
comma-separated list of AVT.CurrentTransportActions virtual instance state variable.
10.1.6.29.2
[G UIDELINE ] A UPnP AV MediaRenderer that supports play-speeds other than "1" shall include a
play-speed-list value in the comma-separated list of AVT.CurrentTransportActions. The syntax and
semantics for the play-speed-list value is defined as follows:
• play-speed-list="X_DLNA_PS="speed-list;
• speed-list=speed*(","speed);
• speed=<conforms to the TransportPlaySpeed string, as specified in the AVTransport
specification>;
The value "1" shall not be included.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaRenderers advertise support for play-speeds by adding the list of
play-speeds to the available transport actions indicated in AVT.CurrentTransportActions virtual
instance state variable. For example, a UPnP AV MediaRenderer that supports speeds of ½ and 4
for the current track will set AVT.CurrentTransportActions as follows:
10.1.6.29.3
[G UIDELINE ] UPnP AV MediaRenderers shall not include the play-speed-list value (identified by
X_DLNA_PS as defined in 10.1.6.29.2) in the AVT.CurrentTransportActions virtual instance state
variable for a track that does not belong to the Audio or AV Media Classes.
[ATTRIBUTES ]
[C OMMENT] The list of play-speed values exposed by a UPnP AV MediaRenderer via X_DLNA_PS
in AVT.CurrentTransportActions can only be used with audio or AV media resources. The list cannot
be used with other types of resources like images.
[ATTRIBUTES ]
[C OMMENT] This is the minimal requirement to achieve the DLNA system usages.
[C OMMENT] An HTTP Client is required to support media operations on all supported Media Format
Profiles (see 11.4.3.52.1) regardless of the data availability model (see 10.1.3.29.2).
10.1.6.31.2
[G UIDELINE ] A Rendering Endpoint implementing AV Media Class shall implement all of the
following media operations:
[C OMMENT]
a) An operation might not always invoke the corresponding Media Operation due to buffering on
the Rendering Endpoint.
b) An HTTP Client is required to support media operations on all supported Media Format Profiles
(see 11.4.3.52.1) regardless of the data availability model (see 10.1.3.29.2)
10.1.6.32 MM mandatory media operations (servers)
10.1.6.32.1
[G UIDELINE ] For every AV content binary not using DLNA Link Protection that supports “Limited
Random Access Data Availability” Mode 1 or “Full Random Access Data Availability” model (see
11.4.2.16 for details on mode), an HTTP Server Endpoint shall indicate support in the fourth field of
the ProtocolInfo for at least one of the following:
• time-based seek;
• byte-based seek.
[ATTRIBUTES ]
[C OMMENT] A content binary that is restricted to "Limited Random Access Data Availability" Mode
0 is considered live content and might have limited ability to support scan modes. (See 11.4.2.16.2).
10.1.6.32.2
[G UIDELINE ] For every AV content binary not using DLNA Link Protection that supports “Limited
Random Access Data Availability” Mode 1 or “Full Random Access Data Availability” model (see
11.4.2.16 for details on mode), an HTTP Server Endpoint should indicate support in the fourth field
of the ProtocolInfo for the following:
• play-speed.
[ATTRIBUTES ]
[C OMMENT] A content binary that is restricted to "Limited Random Access Data Availability" Mode
0 is considered live content and might have limited ability to support scan modes. (See 11.4.2.16.2.)
[ATTRIBUTES ]
[C OMMENT] A DMR always implements the ability to receive and process this action..
[ATTRIBUTES ]
[C OMMENT] This guideline describes the conventional way of setting the “Next URI” state variables
in compliance with the UPnP AVT service specifications ISO/IEC 29341-14-10. This guideline also
defines the conditions necessary to accept the action.
• The action shall comply with the syntax requirement defined in ISO/IEC 29341-14-10 and
ISO/IEC 29341-1.
• The NextURI argument shall carry an empty string or a URI.
• If the NextURI argument is not an empty string or a DLNA PlayContainer URI, then the
NextURIMetaData argument shall be a valid, non-empty value, as defined in 10.1.6.14.8.
• If the NextURI argument is an empty string or a DLNA PlayContainer URI, then the
NextURIMetaData argument shall be an empty string.
[ATTRIBUTES ]
[C OMMENT] This guideline describes the correct syntax for the AVT:SetNextAVTransportURI. In
particular this guideline indicates that the same metadata conditions available for
AVT:SetAVTransportURI apply to the use of AVT:SetNextAVTransportURI.
• The renderer sends an HTTP HEAD request using one of the URIs available in the
NextURIMetaData argument to validate availability of the server hosting the resource.
• The renderer sends a partial HTTP GET request using one of the URIs available in the
NextURIMetaData argument to validate availability of the server hosting the resource.
This guideline applies to a UPnP AV MediaRenderer in the PLAYING, STOPPED, and
PAUSED_PLAYBACK states.
[ATTRIBUTES ]
[C OMMENT] This guideline describes the expected behavior for DMR devices when they receive an
AVT:SetNextAVTransportURI action.
[ATTRIBUTES ]
[C OMMENT] This guideline describes the process to replace the existing “next URI” data with
different values received in a recent AVT:SetNextAVTransportURI action.
[ATTRIBUTES ]
[C OMMENT] This guideline describes a method that UPnP MediaServer Control Points can use to
clear the values included in the AVT.NextAVTransportURI and AVT.NextAVTransportURIMetaData
instance state variables.
[ATTRIBUTES ]
[C OMMENT] This guideline describes the DMR behavior in the following conditions: The DMR
includes values for the current and next URI. This DMR receives a new SetAVTransportURI action
from the network with a non-empty and valid URI. The DMR accepts the SetAVTransportURI
request, replaces the current URI, and clears all state variables related to the next URI.
[ATTRIBUTES ]
• If the URI in the action identifies content of the image class, and if the renderer has not cached
the image resource, then the renderer shall issue an HTTP GET request using this URI (or one
of the alternative URIs from the NextURIMetaData argument) to prefetch the image resource.
• If the URI in the action identifies content of the audio or A/V class, and if the renderer has not
cached the media resource, then the renderer shall issue an HTTP GET request using this URI
(or one of the alternative URIs from the NextURIMetaData argument) during playback of the
“current URI” to prefetch partially or completely the media resource.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that an DMR needs to prefetch content when it receives an
AVT:SetNextAVTransportURI request. Prefetching the next resource becomes necessary to
provide a smooth transition when an DMR switches from the current to the next URI. Image content
is prefetched as soon as the DMR receives the action request. Audio or A/V content can be
prefetched partially or completely at any time while the “current URI” plays.
[C OMMENT] This guideline describes the expected transition procedures when an DMR moves
from the “current URI” to the “next URI”.
This guideline applies to all cases where the “current URI” describes a resource of the Audio, Image,
or AV class.
[ATTRIBUTES ]
[C OMMENT]
a) This guideline describes the expected behavior if a user stops playing the content. If a user
stops playing the content, the user normally assumes that playback will stop. The user does not
know if the DMR has already stored information for the next URI or not.
b) This guideline does not apply to cases where the “current URI” describes collections of
resources (i.e., Media Collections or PlayContainerURI).
10.1.7.2.3 Implementation of the AVT:Next action in the PLAYING and STOPPED states
[G UIDELINE ] If a UPnP AV MediaRenderer is in the PLAYING or STOPPED states, and if the
renderer has a “current URI” and a “next URI”, then the renderer shall allow the use of the AVT:Next
action.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that an DMR allows the AVT:Next action whenever the DMR
has a “current URI” and a “next URI” in the PLAYING or STOPPED states.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that the AVT:Next action is an option in the
PAUSED_PLAYBACK state.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the need to advertise an implementation of AVT:Next using the
AVT.CurrentTransportActions state variable.
10.1.7.2.6 Forced transition from the current to the next URI (PLAYING state)
[G UIDELINE ] If a UPnP AV MediaRenderer has a “current URI” and a “next URI” in the PLAYING
state, and if this renderer receives an AVT:Next action, then the renderer shall start playing one of
the resources of the media item associated with the “next URI”.
During the transition from the current to the next URI, a UPnP AV MediaRenderer shall change its
state using one of the following two options:
[ATTRIBUTES ]
[C OMMENT]
a) This guideline describes the use of the AVT:Next action as a method to force a transition from
the current URI to the next URI.
b) Images do not have playback duration like audio or A/V resources. For images, the only way to
trigger a transition from the current to the next URI is by invoking the AVT.Next action.
c) This guideline does not apply to cases where the “current URI” describes collections of
resources (i.e., Media Collections or PlayContainerURI).
10.1.7.2.7 Forced transition from the current to the next URI (STOPPED state)
[G UIDELINE ] If a UPnP AV MediaRenderer has a “current URI” and a “next URI” in the STOPPED
state, and if the renderer receives an AVT:Next action, then the renderer shall do the following:
• Transfer the values from the “next URI” state variables to the “current URI” state variables.
• Clear the “next URI” state variables.
• Remain in the STOPPED state.
This guideline applies to all cases where the “current URI” describes a resource of the Audio, Image,
or AV Media Class.
[ATTRIBUTES ]
[C OMMENT]
a) This guideline describes the use of the AVT:Next action as a method to force a transition from
the current URI to the next URI. Specifically, this guideline describes the DMR behavior when
the AVT:Next action is used in the STOPPED state.
b) This guideline does not apply to cases where the “current URI” describes collections of
resources (i.e., Media Collections or PlayContainerURI).
10.1.7.2.8 Forced transition from the current to the next URI (PAUSED_PLAYBACK state)
[G UIDELINE ] If a UPnP AV MediaRenderer has a “current URI” and a “next URI” in the
PAUSED_PLAYBACK state, and if the renderer allows the use of the AVT:Next action in this state,
and if the renderer receives an AVT:Next action, then the renderer shall do the following:
• Transfer the values from the “next URI” state variables to the “current URI” state variables.
• Clear the “next URI” state variables.
• Remain in the PAUSED_PLAYBACK state.
This guideline applies to all cases where the “current URI” describes a resource of the Audio, Image,
or AV Media Class.
[ATTRIBUTES ]
[C OMMENT]
a) This guideline describes the use of the AVT:Next action as a method to force a transition from
the current URI to the next URI. Specifically, this guideline describes the DMR behavior when
the AVT:Next action is used in the PAUSED_PLAYBACK state.
b) This guideline does not apply to cases where the “current URI” describes collections of
resources (i.e., Media Collections or PlayContainerURI).
[ATTRIBUTES ]
[C OMMENT] This guideline describes the case of an DMR that does not advertise support for the
AVT:Next action but it receives an AVT:Next action , the DMR returns the error code specified in this
guideline.
[ATTRIBUTES ]
[C OMMENT] This guideline means that a DMS or M-DMS can implement the Upload Device Option
(i.e. can receive uploaded content from an +UP+).
If the DMS or M-DMS implements the Upload Device Option, then it also implements upload
AnyContainer. It can additionally support various OCM operations.
10.1.8.1.2
[G UIDELINE ] If a UPnP AV MediaServer supports the Upload Device Option, it shall support the
upload AnyContainer operation.
[ATTRIBUTES ]
[C OMMENT] The baseline requirement for a DMS or M-DMS that supports the Upload Device
Option is to be able to receive a CDS:CreateObject request that specifies the
"DLNA.ORG_AnyContainer" as the parent container for a new CDS item. The DMS or M-DMS needs
to be able to receive the content through an HTTP POST request.
The following is an example sequence of events for an upload scenario.
• The Upload Controller invokes CDS:CreateObject on the DMS. The metadata describes an
image to be created in "DLNA.ORG_AnyContainer".
• The DMS approves the metadata from the CDS:CreateObject request to determine if it is valid.
Since the parent container specifies "DLNA.ORG_AnyContainer", then the DMS decides that
the new image object belongs in an existing CDS container (title of "New Photos") for all image
uploads.
• The DMS sends the CDS:CreateObject response to the Upload Controller. The response
indicates the object will be in the "New Photos" container. The response also includes a <res>
element that omits a URI value but has a URI value for res@importUri.
• The Upload Controller uses an HTTP POST request to transfer the image file to the DMS.
When the DMS is able to serve the new image, it provides a URI value for the <res> element.
• OCM: upload content. Use this to upload content to a specific CDS container. This operation has
2 steps: use CDS:CreateObject to create a CDS item and use HTTP POST to transfer the
content.
• OCM: create child container. Use this to create a new CDS container in a specified CDS
container. This operation has one step: use CDS:CreateObject to create a CDS container. This
operation is generally used as a preceding step to an OCM: upload content operation.
• OCM: destroy object. Use this to destroy a CDS object. This operation has one step: use
CDS:DestroyObject to destroy a CDS object.
• OCM:change metadata. Use this to alter the metadata of an existing CDS item. This operation
has one step: use CDS:UpdateObject to update the CDS metadata. Note that this operation can
be used to add, delete, or change an existing metadata element of an item.
[ATTRIBUTES ]
[C OMMENT] The guidelines define interoperability specifically for the described usages. Vendors
need to always implement behavior that is consistent with the DLNA guidelines, even if the
implementation will be used for an operation that has different preconditions. For example, a DMS
that supports the OCM: create child container can allow control points to create CDS containers. In
such a scenario, the DMS and control point need to abide by appropriate syntax rules for
CDS:CreateObject.
The guideline also permits other forms of management operations, although the guidelines do not
define interoperability rules for them.
OCM: destroy item has been replaced by OCM: destroy object. All original functionality on items is
retained; however, revision to guidelines now allows Destroy operations on containers.
[ATTRIBUTES ]
10.1.8.3.2
[G UIDELINE ] An Upload Controller shall implement a UPnP AV MediaServer control point capable
of invoking the following actions.
• CDS:CreateObject.
[ATTRIBUTES ]
[C OMMENT] CDS:CreateObject is the action that allows an Upload Controller to upload content.
The guidelines specify that the normative content transfer methodology involves HTTP POST, as
described in guideline 11.4.3.65.1.
10.1.8.3.3
[G UIDELINE ] An Upload Controller shall support the upload AnyContainer operation.
[ATTRIBUTES ]
10.1.8.3.4
[G UIDELINE ] An Upload Controller may implement a UPnP AV MediaServer control point capable
of invoking the following actions.
• CDS:DestroyObject
By supporting these actions, an Upload Controller can be capable of supporting additional optional
content management operations.
See 10.1.8.2 for more information about optional content management operations.
[ATTRIBUTES ]
[C OMMENT] CDS:DestroyObject is the action that allows an Upload Controller to destroy a CDS
object when a content transfer failed or when the user wants to remove uploaded content from the
DMS.
Upload Controllers are allowed to implement support for other CDS actions, but the DLNA
guidelines do not specify the interoperability behavior for other actions.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 304 –
Capability ID Description
[ATTRIBUTES ]
[C OMMENT] DMS devices use the <dlna:X_DLNACAP> element to indicate support for the upload
AnyContainer operation. The element is a comma separated value list that indicates whether the
DMS can receive uploads of images, audio-only, or audio/video content.
A DMS that supports the upload AnyContainer operation is different from a DMS with an Upload
Controller. The former is a DMS that can receive uploaded content. The latter is a DMS that can
upload to a different DMS. It is possible to implement a DMS that supports the upload AnyContainer
operation and the Upload Controller capability.
A DMS that supports OCM: create child container need to also support the creation of child
containers where the DMS chooses the parent container (because the Upload Controller specified
DLNA.ORG_AnyContainer as the parent). This guideline explains how Upload Controllers
determine if OCM: create child container is supported for the DMS.
10.1.8.4.2
[G UIDELINE ] A UPnP AV MediaServer may implement the CDS:X_GetDLNAUploadProfiles action
to indicate the DLNA Media Format Profiles that it will accept in the CDS:CreateObject action.
[ATTRIBUTES ]
29341-20-3
10.1.8.4.3
[G UIDELINE ] The CDS:X_GetDLNAUploadProfiles action's definition in the service description
shall be defined as indicated below.
<action>
<name>X_GetDLNAUploadProfiles</name>
<argumentList>
<argument>
<name>UploadProfiles</name>
<direction>in</direction>
<relatedStateVariable>
X_A_ARG_Type_UploadProfiles
</relatedStateVariable>
</argument>
<argument>
<name>SupportedUploadProfiles</name>
<direction>out</direction>
<relatedStateVariable>
X_A_ARG_Type_SupportedUploadProfiles
</relatedStateVariable>
</argument>
</argumentList>
</action>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_UploadProfiles</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_SupportedUploadProfiles</name>
<dataType>string</dataType>
</stateVariable>
[ATTRIBUTES ]
[C OMMENT] The UploadProfiles input argument is an unordered, comma separated list of DLNA
Media Format Profile names.
• are listed in the UploadProfiles input argument and this MediaServer is willing to accept at the
action is invoked;
• or, in case of an empty UploadProfiles input argument, the SupportedUploadProfiles list will
contain the complete list of DLNA Media Format Profiles that this MediaServer is willing to
accept at the time the action is invoked.
The DLNA media profile IDs that appear in SupportedUploadProfiles shall comply with these
restrictions.
[ATTRIBUTES ]
A UPnP AV MediaServer control point needs to realize that the presence of this action is the first
indicator that there are restrictions in the uploadable Media Format Profiles.
This guideline applies when a UPnP AV MediaServer does not accept the upload of a Media Class
(see guideline 10.1.8.4.1) but the CMS.SourceProtocolInfo state variable lists profiles in that Media
Class.
10.1.8.4.5
[G UIDELINE ] If a UPnP MediaServer supports the upload AnyContainer operation or OCM:create
child container, then it shall adhere to the following guidelines (10.1.8.4 through 10.1.8.4.4).
[ATTRIBUTES ]
[C OMMENT] The CDS:CreateObject action is used to create a CDS object that will represent the
uploaded content.
In addition to these guidelines, a DMS or M-DMS with the ability to receive uploaded content needs
to implement an HTTP server capable of processing HTTP POST requests, as described in
11.4.3.65 guidelines.
[C OMMENT] The CDS:DestroyObject action is used for a variety of OCM operations related to
removing CDS objects from a DMS.
[ATTRIBUTES ]
[C OMMENT] These are normative UPnP AV CDS actions, but the DLNA guidelines do not define
interoperability rules for them.
A UPnP AV Media Server supports a geographical region when it is capable of exposing and
streaming content (mandatory profiles) per region according to guideline 6.1.2.2 (GUN VEJX7) of
IEC 62481-2.
[ATTRIBUTES ]
[C OMMENT] DLNA guidelines for HND Device Classes have an expressed goal to facilitate
uploading of baseline media formats for exposing and rendering content. A DMS that only supports
uploads of optional media formats detracts from the guidelines' interoperability message.
For example, consider the case of a DMS that exposes and streams content (mandatory profiles) for
North America and Japan in the HND category. If this DMS implements the upload AnyContainer
operation, it needs to support upload for at least one mandatory profile in the North American region
and at least one mandatory profile in the Japanese region
10.1.8.8.2
[G UIDELINE ] A UPnP AV MediaServer that belongs to the MHD Device Category and implements
the upload AnyContainer operation for a DLNA Media Class (as indicated by guideline 10.1.8.4.1)
shall accept the uploading of content uploads of all the Mandatory Media Format Profiles for that
DLNA Media Class in the MHD Device Category.
[ATTRIBUTES ]
[C OMMENT] DLNA guidelines for MHD Device Classes have an expressed goal to facilitate
uploading of baseline media formats for exchanging content and exposing and rendering content.
An M-DMS that only supports uploads of optional media formats detracts from the guidelines'
interoperability message.
10.1.8.8.3
[G UIDELINE ] A UPnP AV MediaServer control point that belongs to one of the DLNA-defined
Device Categories and implements the upload AnyContainer operation for a DLNA Media Class
shall be able to upload content items of at least one of the mandatory DLNA Media Format Profiles
for that DLNA Media Class in its Device Category.
Being able to upload a content item of a DLNA Media Format Profile means that, given a content
item of that DLNA Media Format Profile, the UPnP AV MediaServer control point shall be able to
issue the CDS:CreateObject request with the correct DLNA.ORG_PN parameter in the fourth field of
ProtocolInfo value of the <res> element to represent the DLNA Media Format Profile of the content
item (see 10.1.3.18).
[ATTRIBUTES ]
10.1.8.8.4
[G UIDELINE ] A UPnP AV MediaServer that belongs to the DLNA-defined DMS Device Class and
implements the Content Synchronization Device Option (as indicated by 10.2.5.2) shall support the
upload of the mandatory DLNA Media Format Profiles in both the HND and MHD Device Categories
for the supported DLNA Media Classes.
[ATTRIBUTES ]
[C OMMENT] Facilitates the content synchronization process between MHD devices and HND
devices (e.g. DMS). The guideline is not applicable to M-DMS devices.
10.1.8.8.5
[G UIDELINE ] A UPnP AV MediaServer that belongs to the DLNA-defined M-DMS Device Class and
implements the Content Synchronization Device Option (as indicated by 10.2.5.2) shall support the
upload of the mandatory DLNA Media Format Profiles in only the MHD Device Categories for the
supported DLNA Media Classes.
[ATTRIBUTES ]
[C OMMENT] MHD devices are only expected to Synchronize with other MHD devices.
10.1.8.8.6
[G UIDELINE ] A UPnP AV MediaServer that belongs to the HND Device Category and implements
the upload AnyContainer operation for the DLNA Image class (as indicated by guideline
Requirement 10.1.8.4.1) must accept content uploads of at least one Mandatory Media Format
Profile in that class..
[ATTRIBUTES ]
ISO/IEC
29341-20-3
IEC 62481-2
[C OMMENT] Currently there is only one Mandatory Media Format Profile defined in the Image class,
but this guideline will apply if that changes in the future.
10.1.8.8.7
[G UIDELINE ] A UPnP AV MediaServer that belongs to the HND Device Category and implements
the upload AnyContainer operation for the DLNA Audio Class (as indicated by guideline
Requirement 10.1.8.4.1) must accept content uploads of at least one Mandatory Media Format
Profile in that class..
[ATTRIBUTES ]
[C OMMENT] Currently there is only one Mandatory Media Format profile in the Audio Class, but
this guideline will apply if that changes in the future.
10.1.8.8.8
[G UIDELINE ] A UPnP AV Media Server that implements the upload AnyContainer operation (as
indicated by guideline Requirement 10.1.8.4.1) must expose and stream any content acquired using
the upload operation..
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the connection between upload operations and the act of
exposing and streaming content to the network. A UPnP AV MediaServer that acquires content
using an upload operation always exposes and streams the content to the network. This behavior
applies to devices in the HND and MHD categories.
[ATTRIBUTES ]
[C OMMENT] The @dlna:dlnaManaged attribute indicates the OCM operations that the DMS or
M-DMS is able to support for a given CDS object.
DLNA guidelines; Part 1-1: Architecture and protocols
– 311 –
10.1.8.9.2
[G UIDELINE ] If a UPnP AV MediaServer supports one or more OCM operations on a CDS object,
then the UPnP AV MediaServer shall use the @dlna:dlnaManaged attribute to indicate support for
those OCM operations on a CDS object.
[ATTRIBUTES ]
10.1.8.9.3
[G UIDELINE ] If a CDS object allows one or more OCM operations, then the CDS object shall have
a @restricted value of "0".
[ATTRIBUTES ]
[C OMMENT] For CDS objects that do not allow OCM operations, the @restricted attribute can have
a value of "0" or "1" to indicate that the object allows or disallows modifications through non-OCM
operations respectively.
10.1.8.9.4
[G UIDELINE ] The syntax definition for the value of @dlna:dlnaManaged attribute shall be as
follows:
• dlnaManaged-value = 8 hexdigit;
• hexdigit = <hexadecimal digit: "0"-"9", "A"-"F", "a"-"f">.
The @dlna:dlnaManaged attribute is a 32-bit unsigned integer encoded into exactly 8 hexadecimal
digits, with the following bit definitions. Bit-0 is the least significant bit. If a bit supports a particular
operation, then the bit value is true. Otherwise, the bit value is false to indicate the operation is not
supported (e.g. 00000000000000000000000000000001b = 0x00000001 where bit-0 is set to true).
Example:
• dlna:dlnaManaged="00000001"
The hexadecimal encoded form shall consist only of hexadecimal digits. The value shall omit the
"0x" string that often precedes hexadecimal notation.
[C OMMENT] This guideline defines the syntax for the @dlna:dlnaManaged value. This attribute
describes the DMS implementation's ability to support operations that affect the CDS object as a
whole.
A false value for a bit means that the DMS or M-DMS does not claim support for the described
operation. Control points are expected to honor the interpretation of these bits to maximize
interoperability because when invoking a CDS action that is related to an unsupported OCM
operation, this action is likely to receive respond with an error. CDS failure responses are not
mandatory when a DMS or M-DMS detects a deviation because vendors are permitted to use
normative CDS actions for vendor-defined operation.
There can be cases where a DMS (that is normally able to destroy the CDS item) is not able to
destroy a CDS item at the time of the request. For example, the actual content binary file might be
locked or a local management policy prevents the CDS item from being destroyed at the current
moment.
10.1.8.9.5
[G UIDELINE ] If the @restricted attribute is set to 1 all bits of the @dlna:dlnaManaged attribute shall
be false, that is, no OCM operations are allowed .
[ATTRIBUTES ]
[C OMMENT] Enforce consistency between the @restricted and the @dlna:dlnaManaged attributes.
10.1.8.9.6
[G UIDELINE ] If a CDS object has “0” value for all hexadecimal digits in the @dlna:dlnaManaged
attribute, then UPnP AV MediaServer should omit the @dlna:dlnaManaged attribute of the CDS
object.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] DMS devices are not required to support parallel attempts to upload or destroy content.
Control points that attempt to do so are responsible for retrying in a serialized manner in the event
of a failure. The exact user's process for retrying serialized uploads is a user interface issue and is
out of scope of this standard.
10.1.8.10.2
[G UIDELINE ] If a UPnP AV MediaServer supports the upload AnyContainer or other OCM
operations, then it shall be capable of performing at least one upload AnyContainer or OCM
operation at a time.
[ATTRIBUTES ]
[ATTRIBUTES ]
CDS hierarchy.
Where the MediaServer creates the new object is dependent on the MediaServer implementation.
The "DLNA.ORG_AnyContainer" is a magic container ID which is used only in the request and a
container of this container ID does not actually exist.
A control point can attempt to deviate slightly from the restrictions listed in 10.1.8.11, but the result
can be an error. For example, if the Upload Controller tries to use
object.item.audioItem.audioBroadcast instead of object.item.audioItem, then the DMS can choose
to fail the request.
10.1.8.11.2
[G UIDELINE ] If a UPnP AV MediaServer supports the upload AnyContainer operation, then the @id
value for each container shall be a value that is not equal to "DLNA.ORG_AnyContainer".
[ATTRIBUTES ]
10.1.8.11.3
[G UIDELINE ] If a UPnP AV MediaServer control point is going to start an upload AnyContainer
operation, then it shall invoke CDS:CreateObject with the following rules.
Audio object.item.audioItem
Image object.item.imageItem
AV object.item.videoItem
[ATTRIBUTES ]
10.1.8.11.4
[G UIDELINE ] If a UPnP AV MediaServer receives an upload AnyContainer request with a
<upnp:class> value that is derived from a supported base class value, then the DMS may change
the <upnp:class> value to the supported base class or to a similarly derived class, as indicated in
the Result output argument of the CDS:CreateObject.
[ATTRIBUTES ]
[C OMMENT] DMS devices are not required to support the full range of derived values for the
<upnp:class> element.
10.1.8.11.5
[G UIDELINE ] If a UPnP AV MediaServer returns a success response to an Upload Controller's
request to start an upload AnyContainer operation, then the MediaServer shall do the following.
• The DMS or M-DMS device shall determine an appropriate CDS container where the new CDS
object will be created.
• The MediaServer shall specify the object ID of the parent container as the <item> element's
@parentID attribute value, which is returned in the Result output argument.
• The <res> element (found in the Result output argument) that provides the res@importUri value
intended for the content transfer process shall comply with the guidelines in 10.1.8.19.2.
[ATTRIBUTES ]
[C OMMENT] This guideline describes the proper DMS or M-DMS behavior in a success scenario.
The DMS needs to use an appropriate DMS error in the case of a failure.
10.1.8.11.6
[G UIDELINE ] A UPnP AV MediaServer that supports the Upload AnyContainer operation shall be
capable of participating in a content transfer process, as described in guideline 10.1.8.26.
[ATTRIBUTES ]
[C OMMENT] These guidelines introduce the second step to the Upload AnyContainer operation.
10.1.8.11.7
[G UIDELINE ] A UPnP AV MediaServer control point that supports the Upload AnyContainer
operation shall be capable of participating in a content transfer process, as described in guidelines
10.1.8.26.
[ATTRIBUTES ]
10.1.8.11.8
[G UIDELINE ] A UPnP AV MediaServer that creates a new CDS item in an upload AnyContainer
operation may create the CDS item in a CDS container with the @dlna:dlnaManaged attribute.
[ATTRIBUTES ]
[C OMMENT] DMS or M-DMS devices can create the new CDS item in a CDS container that has the
@dlna:dlnaManaged attribute.
10.1.8.11.9
[G UIDELINE ] A UPnP AV MediaServer control point shall tolerate scenarios where the MediaServer
changes values to metadata properties specified in a CDS:CreateObject request.
Tolerate means that the UPnP AV MediaServer control point is able to complete the necessary
content transfer process (including the transfer of IFO files, if necessary) after creating the CDS
object.
[ATTRIBUTES ]
[C OMMENT] The following are some examples of what a MediaServer is permitted to do.
[ATTRIBUTES ]
[C OMMENT] MediaServers are permitted to change metadata values at any time. This behavior is
also permissible when the MediaServer actually creates the new CDS object.
DLNA guidelines; Part 1-1: Architecture and protocols
– 317 –
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that control points will know what type of CDS objects can be
created in the container.
For example, if a container supports the creation of image and audio-only objects, then it would use
a <upnp:createClass> element with object.item.imageItem and a <upnp:clreateClass> element with
object.item.audioItem.
The CDS container can have <upnp:createClass> that are derived from object.container, as
described in 10.1.8.13.
10.1.8.12.2
[G UIDELINE ] If a UPnP AV MediaServer control point is going to start an OCM: upload content
operation, then it shall invoke CDS:CreateObject with the following rules.
• The ContainerID input argument shall indicate a CDS container that supports the OCM: upload
content operation.
• The Elements input argument shall be a DIDL-Lite XML fragment that has a CDS item whose
<upnp:class> value matches one of the values in the set of <upnp:createClass> elements
associated with the CDS container identified by the ContainerID input argument. If the
upnp:createClass@includeDerived attribute has a value of "1", then the <upnp:class> value also
matches against the classes derived from the <upnp:createClass> value. The <item> element
shall also have a single <res> element that does not specify a URI value. The <res> element
shall also conform with guidelines in 10.1.8.19.
[ATTRIBUTES ]
[C OMMENT] If a MediaServer supports the operation, Upload Controllers can choose to upload
content to specific CDS containers using the OCM: upload content operation.
A control point can attempt to deviate slightly from the restrictions listed in 10.1.8.12.2, but the
result can be an error. For example, if the Upload Controller tries to specify multiple <res> elements,
then the DMS can choose to fail the request.
10.1.8.12.3
[G UIDELINE ] If a UPnP AV MediaServer responds with a success to a CDS:CreateObject request
for an OCM: upload content operation, then the created CDS item (as returned in the Result output
argument) shall comply with the following rules.
• The @parentID of the created CDS item shall match the request's specified ContainerID input
argument.
• The <res> element that provides the res@importUri value intended for the content transfer
process shall comply with the guidelines in 10.1.8.19.
[ATTRIBUTES ]
10.1.8.12.4
[G UIDELINE ] A UPnP AV MediaServer that supports the OCM: upload content operation shall be
capable of participating in a content transfer process, as described in guideline 10.1.8.26.
[ATTRIBUTES ]
[C OMMENT] These guidelines introduce the second step to the OCM: content upload operation.
10.1.8.12.5
[G UIDELINE ] A UPnP AV MediaServer control point that supports the OCM: content upload
operation shall be capable of participating in a content transfer process, as described in guideline
10.1.8.26.
[ATTRIBUTES ]
10.1.8.12.6
[G UIDELINE ] A UPnP AV MediaServer that creates a new CDS item in an OCM: upload content
operation may change metadata values to indicate the support or unsupported nature of OCM
operations.
[ATTRIBUTES ]
[C OMMENT] For example, the DMS can automatically create the @dlna:dlnaManaged attribute or
change the @restricted value to indicate support for one or more OCM operations.
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that control points will know what type of CDS containers can
be created in an existing container.
Destroying containers is out of scope for this version of DLNA guidelines. DLNA assumes that DMS
have ownership of their CDS hierarchy, which includes the ability to remove containers through
out-of-band mechanisms.
10.1.8.13.2
[G UIDELINE ] If a UPnP AV MediaServer supports the OCM: create child container operation, then
it shall allow control points to specify a "DLNA.ORG_AnyContainer" value for the ContainerID input
argument in a CDS:CreateObject request.
[ATTRIBUTES ]
10.1.8.13.3
[G UIDELINE ] A UPnP AV MediaServer that supports OCM: create child container shall also
implement support for OCM: upload content.
[ATTRIBUTES ]
10.1.8.13.4
[G UIDELINE ] If a UPnP AV MediaServer control point is going to start an OCM: create child
container operation, then it shall invoke CDS:CreateObject with the following rules.
value for the ContainerID input argument, then the value shall be object.container or a similarly
derived class.
• The Elements input argument shall include one or more <upnp:createClass> values that
describe the types of CDS objects that will be created in the new container. If specifying
"DLNA.ORG_AnyContainer" as the value for the ContainerID input argument, then the
corresponding <upnp:createClass> (or similarly derived values) shall be used, see Table 25.
Table 25 – Required UPnP createClass elements
Audio object.item.audioItem
Image object.item.imageItem
AV object.item.videoItem
[ATTRIBUTES ]
[C OMMENT] If a MediaServer supports the operation, Upload Controllers can choose to create new
CDS containers that can receive uploaded content in an organized way.
The <upnp:createClass> values that are declared in the CDS:CreateObject request indicate the
types of media that the Upload Controller intends to upload into the new container.
The following conditions can cause the DMS to return an error because specific aspects of the
syntax are optional.
• The <upnp:class> value is derived from object.container. DMS can fail this request because
object.container is the only value that is mandatory.
• The <upnp:createClass> value is unsupported, even if it is derived from a supported type. DMS
can fail this request because only the upnp:createClass values listed in the table are mandatory.
• There is more than one <upnp:createClass> value in the request. DMS can fail this request
because only a single <upnp:createClass> is required.
10.1.8.13.5
[G UIDELINE ] A UPnP AV MediaServer may change a <upnp:createClass> or <upnp:class> value to
one of the supported base classes or one of the derived classes if the value is derived from that
base class.
[ATTRIBUTES ]
Creating a container that has <upnp:createClass> values derived from object.container are out of
scope of this standard.
Guideline 10.1.8.25.3 instructs a DMS to return error code 712 if the specified value is not
acceptable to the DMS.
10.1.8.13.6
[G UIDELINE ] A UPnP AV MediaServer control point creates a new CDS container with intent to
follow up with an OCM: upload content operation the new container, then the control point shall
specify the @dlna:dlnaManaged attribute with bit-0 set to true.
[ATTRIBUTES ]
[C OMMENT] In conjunction with the <upnp:createClass> elements, this guideline ensures that a
DMS knows the intent of the Upload Controller to upload content to the new container.
10.1.8.13.7
[G UIDELINE ] A UPnP AV MediaServer that creates a new CDS container in an OCM: create child
container operation may change the @restricted and/or @dlna:dlnaManaged metadata values to
indicate the support or unsupported nature of OCM operations.
[ATTRIBUTES ]
10.1.8.13.8
[G UIDELINE ] If a UPnP AV MediaServer receives an OCM: create child container request and one
or more of the <upnp:createClass> values specified in the request are unsupported, then the
MediaServer shall return error code 712 (Bad Metadata).
[ATTRIBUTES ]
10.1.8.13.9
[G UIDELINE ] If a UPnP AV MediaServer responds with a success to a CDS:CreateObject request
for an OCM: create child container operation, then the created CDS container shall have the
@dlna:dlnaManaged attribute. Furthermore, the @parentID of the created CDS container (as
returned in the Result output argument) shall match the request's specified ContainerID input
argument.
[ATTRIBUTES ]
Guideline 10.1.8.9.4 requires the created container to support the OCM:upload contents operation.
• The ObjectID input argument shall indicate a CDS object that supports the OCM: destroy object
operation.
• This ObjectID shall be for a CDS object that is to be removed from the CDS.
[ATTRIBUTES ]
10.1.8.14.2
[G UIDELINE ] If a UPnP AV MediaServer responds with a success to a CDS:DestroyObject request
for an OCM: destroy object operation, then the DMS shall remove the CDS item indicated by the
request's ObjectID input argument. A MediaServer that cannot remove the indicated CDS item from
the CDS hierarchy shall return a SOAP error response.
[ATTRIBUTES ]
[C OMMENT] DLNA does not specify any mandatory behavior for whether or not actual content
binaries are removed from the local storage of the DMS. The primary expectation of this guideline is
that the destroyed CDS item no longer appears in the CDS hierarchy.
10.1.8.14.3
[G UIDELINE ] If a UPnP AV MediaServer supports the OCM:destroy object Operation and the
control point invokes CDS:DestroyObject on a container where the container and all of its
descendent objects have bit 2 of the @dlna.dlnaManaged attribute true, then the container and all
of its descendent objects are removed.
[ATTRIBUTES ]
[C OMMENT] Bit 2 of the @dlna.dlnaManaged attribute is the bit that defines whether the OCM:
destroy object operation is allowed on an object. This guideline makes OCM:destroy object
operation recursive on containers. Any object that has bit 2 of the @dlna.dlnaManaged attribute true,
will have the @restricted property set to "0".
10.1.8.14.4
[G UIDELINE ] If a UPnP AV MediaServer supports the OCM: destroy object Operation and a control
point invokes CDS:DestroyObject on a container with bit 2 of the @dlna.dlnaManaged attribute true
and where any of that container's descendant objects have bit 2 of the @dlna.dlnaManaged
attribute false then the following shall occur.
a) The UPnP AV Media Server shall destroy all descendent objects that have bit 2 of the
@dlna.dlnaManaged attribute true, except those preserved by c).
b) The UPnP AV Media Server shall not destroy an object that has bit 2 of the @dlna.dlnaManaged
attribute false.
c) The UPnP AV Media Server shall not destroy any ancestor containers of an object from b) even
if those ancestor containers have bit 2 of the @dlna.dlnaManaged attribute true.
[ATTRIBUTES ]
[C OMMENT] If an object exists within the subtree to be deleted that has bit 2 of the
@dlna.dlnaManaged attribute false, it cannot be deleted. In order to preserve the containers
between the root of the subtree and that object, all of the containers leading from the root to that
object will be retained. Those containers leading from the root of the subtree to that object are the
ancestor containers of that object.
10.1.8.14.5
[G UIDELINE ] If a server encounters objects within the subtree that cannot be deleted because they
have bit 2 of the @dlna.dlnaManaged attribute false, the server shall return a success response to
a call of the CDS:DestroyObject that was initiated by the OCM: destroy object operation and SHALL
behave according to 10.1.8.14.4.
[ATTRIBUTES ]
[C OMMENT] The return of success is required by UPnP AV, the control point will need to perform a
CDS:Browse() operation to determine if the entire subtree was deleted.
10.1.8.14.6
[G UIDELINE ] A control point shall not invoke a OCM: destroy object on an object if a bit 2 of the
@dlna.dlnaManaged attribute is false for that object.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This is a general rule that applies whenever a control point creates or changes a
metadata property.
[ATTRIBUTES ]
[C OMMENT] The ContentDirectory service specification does not provide adequate granularity for
many error scenarios. This guideline allows DMS or M-DMS vendors to provide an error message
that can be used by a user for error recovery and/or troubleshooting.
[ATTRIBUTES ]
[C OMMENT] The ContentDirectory service specification does not provide adequate granularity for
many error scenarios. As a workaround, DLNA allows implementations to return the error code 720
with a detailed error message. This error message can be used by a consumer for error recovery
and/or troubleshooting.
[ATTRIBUTES ]
[C OMMENT] In content upload usages, the DMS (not the Upload Controller) determines the
transport layer options.
10.1.8.19 MM/CM: general rule for creating <res> elements: Content Transfer process
10.1.8.19.1
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject and specifies the
creation of a <res> element that omits a URI value, then the control point shall specify a <res>
element that conforms to the following rules.
[ATTRIBUTES ]
[C OMMENT] A control point that specifies a <res> element without a URI value indicates that it
wants to upload content to the MediaServer. A control point can deviate from the restrictions
described in this guideline, but the result might be an error. For example, if the control point does
not specify a DLNA.ORG_PN parameter, then the MediaServer can return an error.
10.1.8.19.2
[G UIDELINE ] If a UPnP AV MediaServer creates a <res> element as a result of a CDS:CreateObject
and the <res> element specified in the CDS request omits a URI value, then the created <res>
element shall comply with the following rules.
[C OMMENT] If a MediaServer creates a <res> element intended to receive uploaded content, then
it needs to provide a res@importUri attribute and value. This URI tells an Upload Controller which
URI to perform an HTTP POST operation.
The value of the <res> element needs to be empty until the content is actually available for serving
as described in 10.1.8.27.4.
10.1.8.19.3
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject and specifies the
creation of a <res> element without a URI value and the content is profiled as MPEG_PS_NTSC or
MPEG_PS_PAL and it has discontinuous SCR and/or PTS, then the MediaServer control point shall
specify a res@dlna:ifoFileURI attribute with an empty value.
The prefix for res@dlna:ifoFileURI shall be "dlna:" and the namespace shall be
"urn:schemas-dlna-org:metadata-1-0/".
[ATTRIBUTES ]
[C OMMENT] Upload Controllers might need to upload an IFO file. Providing an empty
res@dlna:ifoFileURI signals the MediaServer to provide a URI value for it. In many cases, the
MediaServer will include the res@dlna:importIfoFileURI attribute in the CDS:CreateObject
response to indicate that the MediaServer will receive the IFO file. Upload Controllers then perform
a content transfer process to this URI in the same manner as a res@importUri.
10.1.8.19.4
[G UIDELINE ] If a UPnP AV MediaServer creates a <res> element in response to a
CDS:CreateObject request that has a res@dlna:ifoFileURI attribute with an empty value, then the
UPnP AV MediaServer shall do one of the following to make the response.
• Preserve the res@dlna:ifoFileURI attribute with an empty value and add the
res@dlna:importIfoFileURI attribute with a URI value that supports the content transfer process
for the IFO file associated with the content binary. (Note that if a MediaServer implements this
behavior, the MediaServer is permitted to generate a new content binary without discontinuities
and generate a new IFO file for the new content binary. Similarly, a MediaServer is permitted to
expose the uploaded content binary without modifications and generate a new IFO file.)
DLNA guidelines; Part 1-1: Architecture and protocols
– 327 –
• Omit the res@dlna:ifoFileURI attribute and add the res@dlna:importIfoFileURI attribute with a
URI value that supports the content transfer process for the IFO file associated with the content
binary to indicate that the MediaServer will automatically generate an equivalent content binary
without discontinuities after receiving both the IFO file and the content binary.
• Preserve the res@dlna:ifoFileURI attribute with an empty value and omit the
res@dlna:importIfoFileURI attribute to indicate that the MediaServer will automatically create an
IFO file (and expose it through the res@dlna:ifoFileURI) after a successful content transfer
process on the res@importUri.
• Omit the res@dlna:ifoFileURI attribute and omit the res@dlna:importIfoFileURI attribute to
indicate that the MediaServer will automatically generate an equivalent content binary without
discontinuities after a successful content transfer process on the res@importUri.
[ATTRIBUTES ]
[C OMMENT] If a UPnP AV MediaServer will expose an IFO file, the res@dlna:ifoFileURI attribute
remains an empty value until the MediaServer is ready to serve the IFO file, such as described in
10.1.8.27.7. If a CDS object has a <res> URI value for discontinuous SCR and/or PTS MPEG2, then
URI values for <res> and res@dlna:ifoFileURI will be provided after the content transfer process.
Ideally, both URIs are provided within 30 s of completing the content transfer process of the content
binary, but some implementations can take longer (e.g. MediaServer performs validation or
post-processing on the uploaded content binary.)
10.1.8.19.5
[G UIDELINE ] If a UPnP AV MediaServer provides res@dlna:importIfoFileURI and a control point
has intention to transmit a MPEG_PS_NTSC/PAL content and an associated IFO file to the
MediaServer, then the control point shall completely transmit the IFO file before sending the
MPEG_PS_NTSC/PAL content.
[ATTRIBUTES ]
[C OMMENT] In the typical case, MediaServer uses the IFO file before receiving the content data to
check its data size and boundary information in it.
10.1.8.19.6
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject and specifies the
creation of a <res> element without a URI value, then the MediaServer control point should specify
res@size attribute with a value equal to the byte length or equal to an estimated byte length of the
content that will be sent during the content transfer process.
[ATTRIBUTES ]
[C OMMENT] This allows a DMS or M-DMS to know how large the uploaded content will be and gives
it the opportunity to reserve local storage space for the content.
d) The size of the content binary that is sent during the content transfer process can be different
from the res@size value. For example, an Upload Controller can upload a content binary that is
actually a conversion from another media format. In such a scenario, it can be very difficult to
anticipate the exact size, so the Upload Controller specifies a res@size value that is a bit larger
than the estimated size. During the content transfer process, the DMS will be able to determine
the correct size of the content.
10.1.8.19.7
[G UIDELINE ] If a UPnP AV MediaServer successfully completes a content transfer processs for the
<res> element (and if res@size is present), then the MediaServer shall correct the res@size value
to match the length of the content binary, if the indicated value does not match the byte length of the
uploaded content binary.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies that once content has been uploaded and the DMS or M-DMS
can serve the content to other endpoints, the res@size value needs to be accurate. Estimated
values will cause problems for Rendering Endpoints that rely on that metadata.
10.1.8.19.8
[G UIDELINE ] If a UPnP AV Media Server which supports the upload AnyContainer operation or
OCM: upload content operation for a content item profiled as MPEG_PS_NTSC/PAL receives a
CDS:CreateObject request, it shall be able to accept the request regardless of whether it contains
the res@dlna:ifoFileURI attribute.
[ATTRIBUTES ]
[C OMMENT] The UPnP AV Media Server can fail the CDS:CreateObject for normal exceptions such
as unavailable resources
10.1.8.19.9
[G UIDELINE ] If a UPnP AV MediaServer creates a <res> element in response to a
CDS:CreateObject request that omits the res@dlna:ifoFileURI attribute, then the UPnP AV
MediaServer shall omit the res@dlna:importIfoFileURI attribute to indicate that the MediaServer is
not expecting a content transfer process for an IFO file.
[ATTRIBUTES ]
29341-20-3
[C OMMENT] An IFO file can contain metadata not related to SCR and/or PTS discontinuities. A
UPnP AV MediaServer can create an IFO file and expose it as described in 10.1.4.9. The
MediaServer's response can also omit the res@dlna:ifoFileURI attribute.
10.1.8.20 MM/CM: general rule for creating <res> elements: Resume Content Transfer
process
10.1.8.20.1
[G UIDELINE ] A UPnP AV MediaServer control point may support the resume content transfer
operation. MediaServer control points may also make multiple resume content transfer operations.
The resume content transfer operation is a retry attempt for a failed content transfer process such
that the content transfer starts from the point of transfer failure from a previous attempt.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies that Upload Controllers and Upload Synchronization
Controllers are not required to support the ability to retry or resume a failed content transfer.
e) The DLNA guidelines provide interoperability rules for resume content transfer. The DLNA
guidelines do not provide any normative mechanism for a retry attempt such that the content
transfer process retries from the beginning of the content binary.
10.1.8.20.2
[G UIDELINE ] If resume content transfer is supported, then retry IFO attempt shall also be
supported.
For MediaServers, this means that returning a CDS:CreateObject response that has
res@dlna:resumeUpload="1" shall mean that resume content transfer and retry IFO attempt are
supported.
For MediaServer control point, this means that issuing a CDS:CreateObject request with
res@dlna:resumeUpload="1" shall mean the MediaServer control point is capable of using resume
content transfer and retry IFO attempt if an error occurs during the transmission of the content
binary or IFO file.
A retry IFO attempt is defined as a retry attempt for a failed content transfer process attempt for an
IFO file, such that the transfer begins from byte index 0 of the IFO file and the correspond HTTP
POST request omits the CONTENT-Range HTTP header.
[ATTRIBUTES ]
10.1.8.20.3
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject and wants to
create a <res> element that supports the resume content transfer operation, then it shall specify a
res@dlna:resumeUpload attribute with "1" value in a call to CDS:CreateObject.
The prefix for res@dlna:resumeUpload shall be "dlna:" and the namespace shall be
"urn:schemas-dlna-org:metadata-1-0/".
[ATTRIBUTES ]
[C OMMENT] Upload and Upload Synchronization Controllers create <res> elements with a
res@dlna:resumeUpload="1" to determine if the MediaServer supports the resume content transfer
operation. These Controllers will not specify res@dlna:resumeUpload="1" unless they intend to
recover from a failed content transfer process by using the CONTENT-Range HTTP header in an
HTTP POST request (i.e. using resume content transfer). The only other normative recovery
mechanism for failed content uploads is to restart from a new upload AnyContainer or OCM: upload
content operation.
10.1.8.20.4
[G UIDELINE ] If a UPnP AV MediaServer creates a new <res> element as a result of a
CDS:CreateObject request that specified the res@dlna:resumeUpload attribute with a value of "1"
and if the MediaServer supports the resume content transfer operation for the created item, then the
MediaServer shall preserve the value "1" for the res@dlna:resumeUpload attribute.
[ATTRIBUTES ]
10.1.8.20.5
[G UIDELINE ] If the MediaServer creates the <res> element, it will confirm the support of the resume
content transfer operation by preserving the res@dlna:resumeUpload="1" attribute and value.
A MediaServer respond res@dlna:resumeUpload="1" should keep 30 min the object when upload
has failed.
[ATTRIBUTES ]
[C OMMENT] MediaServers will never enable resume content transfer unless the Control Point
requests that the feature apply to the upload operation because a control point can intentionally
DLNA guidelines; Part 1-1: Architecture and protocols
– 331 –
choose to rely on the required Auto-Destroy behavior when resume content transfer is not
supported.
f) See 10.1.8.28.2 (MM/CM: Auto-Destroy Behavior for a Failed or Partial Content Transfer
Process) for more information on MediaServer behavior when resume content transfer is not
supported.
10.1.8.20.6
[G UIDELINE ] If a UPnP AV MediaServer creates a new <res> element as a result of a
CDS:CreateObject request that specified the res@dlna:resumeUpload attribute with a value of "1"
and if the MediaServer cannot support the resume content transfer operation for the created item,
then the MediaServer shall do one of the following:
[C OMMENT] DMS implementations that do not support the resume content transfer operation will
specify a value of "0" or omit the res@dlna:resumeUpload attribute to inform Upload and Upload
Synchronization Controllers that the operation is not supported.
10.1.8.20.7
[G UIDELINE ] If a UPnP AV MediaServer control point attempts to recover from a failed content
transfer process and both of the following conditions are true, then the Upload Controller or Upload
Synchronization Controller shall use the resume content transfer operation as the initial recovery
attempt.
• The CDS object or <res> element no longer exists on the DMS (e.g. the suspend period is too
long).
• The resume content transfer attempt has failed for some reason. In this case, a Control Point
can use an OCM: destroy object operation before restarting with an OCM: upload content
operation.
10.1.8.20.8
[G UIDELINE ] If a UPnP AV MediaServer control point attempts to recover from a failed content
transfer process and at least one of the conditions are true, then the Control Point may attempt the
recovery by starting over with an upload AnyContainer or OCM: upload content operation and follow
up with a new content transfer process.
• MediaServer control point did not specify res@dlna:resumeUpload="1" in the CDS request that
created the <res> element.
• MediaServer control point received a CDS response with res@dlna:resumeUpload=0 or
response omits res@dlna:resumeUpload attribute from the created <res> element.
[ATTRIBUTES ]
[C OMMENT] Usually the res@dlna:uploadedSize is omitted, but it is not mandatory because it can
simplify the MediaServer implementation. There is no normative use for this property in such
scenarios.
10.1.8.21 MM res@dlna:uploadedSize
10.1.8.21.1
[G UIDELINE ] If a UPnP AV MediaServer supports the resume content transfer operation for a <res>
element, then the <res> element shall have a res@dlna:uploadedSize attribute which has the same
syntax and type as the res@size attribute.
The value of res@dlna:uploadedSize is the byte length of the content binary (not including the size
of an uploaded IFO file) that was received during a content transfer process that failed.
The prefix for res@dlna:uploadedSize shall be "dlna" and the namespace shall be
"urn:schemas-dlna-org:metadata-1-0/".
[ATTRIBUTES ]
[C OMMENT] An Upload Controller can perform a resume content transfer by using an HTTP POST
request with the CONTENT-Range header.
g) The res@dlna:uploadedSize does not represent the number of bytes that have been uploaded
for an IFO file.
10.1.8.21.2
[G UIDELINE ] If a UPnP AV MediaServer does not support the resume content transfer operation for
a <res> element, then it may omit the res@dlna:uploadedSize attribute.
[ATTRIBUTES ]
[C OMMENT] Usually the res@dlna:uploadedSize is omitted, but it is not mandatory because it can
simplify the MediaServer implementation. There is no normative use for this property in such
scenarios.
[C OMMENT] If both URI values are present, then the DMS indicates that uploading endpoints can
overwrite the binary for a specific <res> element.
This guideline does not apply to CDS objects that represent EPG items or channel items, as these
items can be available for streaming only at designated times, or might never be available for
streaming at all.
10.1.8.22.2
[G UIDELINE ] If a UPnP AV MediaServer creates a <res> element in response to a
CDS:CreateObject, then the created <res> element may change the set of metadata attributes that
were specified in the request.
[ATTRIBUTES ]
[C OMMENT] This guideline allows a control point to create <res> elements without knowledge of
attributes supported by the MediaServer.
For example, a control point can specify a new <res> element with the res@size attribute but the
created <res> element can omit res@size because the attribute is not supported.
Another example is, when the DMS creates a <res> element that omits the res@dlna:ifoFileURI
attribute when the request originally specified one. In this situation, the DMS created the <res>
element because the DMS will create and serve an IFO file after it receives the movie file or the DMS
will modify the movie file so that it does not have any discontinuities.
10.1.8.22.3
[G UIDELINE ] If a <res> element of a CDS object with a upnp:class value that is equal to
object.item.epgItem, object.item.video.videoBroadcast, object.item.audio.audioBroadcast, or any
of their derived classes is not available for streaming, then a UPnP AV MediaServer shall omit the
URI value from the <res> element.element.
[ATTRIBUTES ]
[C OMMENT] In certain systems, a piece of content is available only at designated times. The URI
pointing to the content will also only be valid at the designated times. This guideline specifies that a
DMS will not expose the URI when the content is not available.
10.1.8.22.4
[G UIDELINE ] If a <res> element of a CDS object with a upnp:class value that is equal to
object.item.epgItem, object.item.video.videoBroadcast, object.item.audio.audioBroadcast, or any
of their derived classes is available for streaming, then a UPnP AV MediaServer shall include the
URI value in the <res> element.element.
[ATTRIBUTES ]
[C OMMENT] In certain systems, a piece of content is available only at designated times. The URI
pointing to the content will also only be valid at the designated times. This guideline specifies that a
DMS will expose the URI when the content becomes available.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies that control points honor basic metadata restrictions that
govern CDS metadata.
10.1.8.23.2
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject, then it shall apply
the rules specified in 10.1.3.4.2 (in MM DIDL-Lite Non-empty Metadata Values) to all metadata,
except the <res> element and @id attribute.
[ATTRIBUTES ]
[C OMMENT] The <res> element in a CDS:CreateObject is exempt from the non-empty value
conventions because Upload Controllers do not specify the <res> URI value for some tasks, such as
the upload AnyContainer or OCM: upload content operations.
10.1.8.23.3
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject, then it shall
adhere to the following rules when specifying the Elements input argument.
• The XML shall exclude the <?xml> declarator and use UTF-8 encoding.
• The <DIDL-Lite> element shall be the top-most element.
• The <DIDL-Lite> element shall have a single <item> or a single <container> child element.
• At minimum, the <item> or <container> element shall specify the @id, @parentID, @restricted,
dc:title, and upnp:class metadata properties.
• The @id value shall be an empty string ("").
• The @parentID value shall match the ContainerID input argument.
• The @restricted value shall be "0".
• The dc:title value shall comply with all DLNA-specified metadata restrictions.
Example request:
CDS:CreateObject("10","<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite"> <item id="" restricted="0"
parentID="10"> <dc:title>A picture in the park</dc:title>
<upnp:class>object.item.imageItem</upnp:class> <res
protocolInfo="*:*:image/jpeg:DLNA.ORG_PN=JPG_LRG"></res> </item> </DIDL-Lite>")
[ATTRIBUTES ]
ISO/IEC 29341-20-3
ISO/IEC 29341-14-3
[C OMMENT] This guideline specifies the baseline requirements for the metadata specified in a
CDS:CreateObject request.
h) Control Points need to be aware that the created object can have metadata that is slightly
different from what is sent. For example:
The @id value of the new object will be set.
The @parentID of the new object will be set (in the case where DLNA.ORG_AnyContainer is
used).
Informative metadata, such as dc:title and dc:creator, can be truncated.
The @restricted value can be changed.
The returned object can include @dlna:dlnaManaged attribute.
upnp:class or upnp:createClass values can be changed to a derived or a base class value for
audio, image, audio/video, and container objects.
10.1.8.23.4
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject, then it should
provide all metadata defined in 10.1.3.10.6 for the given upnp:class.
[ATTRIBUTES ]
[C OMMENT] Control Points are encouraged to provide recommended metadata, because they are
useful for a user. If the MediaServer does not support the specified metadata, the
CDS:CreateObject response will omit the unsupported metadata, as described in this guideline.
10.1.8.23.5
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject, then it may
specify additional metadata properties in a call to CDS:CreateObject, than those specified in
10.1.8.23.3.
[ATTRIBUTES ]
[C OMMENT]
a) Control Points are allowed to specify more than just the minimal metadata.
b) Control Points are expected to handle a possible outcome described in 10.1.8.24.3.
10.1.8.23.6
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject with optional
metadata, then the control point shall ensure that all necessary namespaces are properly declared.
[ATTRIBUTES ]
10.1.8.23.7
[G UIDELINE ] A UPnP AV MediaServer that allows the creation of <dc:date> elements shall allow
the control point to specify any valid form of <dc:date>, as defined by 10.1.3.7.
[ATTRIBUTES ]
[C OMMENT] This guideline allows the control point to specify any valid form for <dc:date>. Control
points are not to assume that the format they specified in the request will be the final form of the
<dc:date>.
10.1.8.23.8
[G UIDELINE ] A UPnP AV MediaServer that allows the creation of <dc:date> elements may change
the form of the <dc:date> value to match any valid form, as defined by 10.1.3.7.
[ATTRIBUTES ]
[C OMMENT] This guideline allows MediaServers the flexibility of using a consistent <dc:date> form
for all of their CDS objects.
10.1.8.23.9
[G UIDELINE ] If a UPnP AV MediaServer control point invokes CDS:CreateObject and the created
object needs to support one or more OCM operations, then the MediaServer control point should
specify the appropriate value for the @dlna:dlnaManaged attribute in the request.
[ATTRIBUTES ]
[C OMMENT] For example, if a Control Point requires a created container to support the OCM:
upload content operation, then the control point needs to specify a CDS container that supports the
OCM: upload content operation in the CDS:CreateObject request by specifying the
@dlna:dlnaManaged attribute with the appropriate bits set.
Example response:
CDS:CreateObject("12","<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"> <item id="12" parentID="10"
restricted="0"> <dc:title>A picture in the park</dc:title> <res
importUri="http:/192.168.1.1/item?id=12"
protocolInfo="*:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG""/>
<upnp:class>object.item.imageItem</upnp:class> <upnp:album>Photo
Folder1</upnp:album> </item> </DIDL-Lite>")
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer is not required to support the creation of container objects. In
such cases, the proper behavior is to return UPnP error code 712, as described in guideline
10.1.8.23.2.
10.1.8.24.2
[G UIDELINE ] If a UPnP AV MediaServer implements CDS:CreateObject, then it should accept the
creation of recommended properties corresponding to the specified upnp:class, which are defined
in the guideline 10.1.3.10.6
[ATTRIBUTES ]
[C OMMENT] Although not required, metadata such as dc:creator and upnp:album can be useful to
a user.
10.1.8.24.3
[G UIDELINE ] If a UPnP AV MediaServer creates a new CDS object in response to a
CDS:CreateObject request (that conforms to DLNA guidelines) and the request specifies metadata
properties that are unsupported by the MediaServer, then the MediaServer shall return a success
response with the Result output that includes the metadata supported by the MediaServer.
Furthermore, if the MediaServer is able to return a success for a CDS:CreateObject request that
specifies only the baseline metadata properties, then it shall also return a success for a
CDS:CreateObject request that specifies the same baseline metadata properties and values with
additional optional metadata properties.
[ATTRIBUTES ]
29341-20-12
ISO/IEC
29341-20-3
[C OMMENT] The general approach for CDS:CreateObject is that a DMS tolerate the presence of
optional metadata properties (XML elements and attributes). The tolerance requirement also
extends to 4th field parameters of protocolInfo, as required by 10.1.3.27.3 (MM other-param
(Vendor-defined 4th field Parameters)).
i) The general exception to this approach is that a DMS is not required to tolerate <upnp:class> or
<upnp:createClass> values that are unacceptable to a DMS. The primary reason for this
exception is that derived classes can often imply a semantic difference. For example
object.item.audioItem.audioBroadcast is not equivalent to an object.item.audioItem because the
former implies that the stream is live. It is permissible for a DMS to tolerate a diversity of
<upnp:createClass> and <upnp:class> values by automatically changing the specified values,
but such behavior is not required.
j) A UPnP AV MediaServer that returns unsupported metadata in the Result but responds to
CDS:Search and CDS:Browse without that metadata is behaving inconsistently. Returning with
an error makes it difficult for control points to provide an information-rich experience. For this
reason, DLNA requires that the CDS:CreateObject response includes only the metadata
supported by the MediaServer as specified in this guideline. In this case, metadata supported by
the MediaServer has the following characteristics:
• needs to minimally include the MediaServer's supported metadata properties (XML elements
and attributes) that was specified in the request,
• and can optionally include additional metadata properties (XML elements and attributes) that the
MediaServer added as part of the success CDS:CreateObject response.
10.1.8.24.4
[G UIDELINE ] A UPnP AV MediaServer that creates a new CDS object, in response to a
CDS:CreateObject request, may add additional metadata properties (XML elements or attributes) in
the CDS:CreateObject response.
[ATTRIBUTES ]
[C OMMENT] The following are some examples of cases when a DMS might add additional metadata
properties.
• The DMS adds the @dlna:dlnaManaged attribute to indicate the supported OCM operations for
a created CDS object.
• The DMS adds one or more upnp:createClass elements (in addition to those specified in the
CDS:CreateObject request) to indicate additional objects that can be created in a new CDS
container.
10.1.8.24.5
[G UIDELINE ] A UPnP AV MediaServer that receives a CDS:CreateObject request may change the
value of the @restricted attribute.
[ATTRIBUTES ]
10.1.8.24.6
[G UIDELINE ] If a UPnP AV MediaServer that indicates support for OCM operations (as defined in
guideline 10.1.8.8.4) receives a CDS:CreateObject request that specifies the creation of a CDS
object with support for one or more OCM operations that cannot be supported for the specified
object, then the MediaServer shall return a failure with UPnP AV error code 712 (Bad Metadata).
[ATTRIBUTES ]
10.1.8.24.7
[G UIDELINE ] If a UPnP AV MediaServer that indicates support for OCM operations (as defined in
guideline 10.1.8.8.4) receives a CDS:CreateObject request, it may change the value of the
@dlna:dlnaManaged attribute as long as the new value indicates a superset of the requested OCM
operation.
[ATTRIBUTES ]
[C OMMENT] DMS or MDMS devices are always allowed to increase the set of supported operations
on a created object. Otherwise, the DMS is required to return an error when the requested OCM
operations cannot be provided for the CDS object described in the CDS:CreateObject request.
10.1.8.24.8
[G UIDELINE ] If a UPnP AV MediaServer that does not indicate support for any OCM operations (as
defined in guideline 10.1.8.8.4) receives a CDS:CreateObject request that specifies the creation of
a CDS object with support for one or more OCM operations, and if the server creates a CDS object
as a result of the CDS:CreateObject request, it shall ignore the @dlna:dlnaManaged attribute in the
request and omit the @dlna:dlnaManaged attribute from the created object.
[ATTRIBUTES ]
[C OMMENT] DMS or M-DMS devices that do not support OCM operations might not understand
@dlna:dlnaManaged attribute, and are required to drop the OCM flags from the created object
regardless of the validity of the attribute in the request.
Invalid values are values that are not valid for the data type (as defined by the appropriate schema)
or values that are not supported by the MediaServer implementation.
Valid, non-empty values are values that are valid for the data type specified for the metadata
property and also not composed entirely of white space characters.
[ATTRIBUTES ]
k) A UPnP AV MediaServer that removes the entire metadata property from the Result output is
informing the control point that the specified property is not supported, rather than informing the
control point that the value is invalid. This is described in 10.1.8.24.3.
l) Although this guideline applies to the MediaServer, control points are expected to provide valid
metadata values, as required by 10.1.8.15 and 10.1.8.24.
10.1.8.25.2
[G UIDELINE ] If a UPnP AV MediaServer returns a CDS:CreateObject response with a UPnP error
code, it shall not result in the creation of a new CDS object.
[ATTRIBUTES ]
10.1.8.25.3
[G UIDELINE ] If the UPnP AV MediaServer does not support the CDS:CreateObject action because
the specified upnp:class or res@protocolInfo is not acceptable to the MediaServer, it shall respond
with an error code 712 (Bad Metadata).
[ATTRIBUTES ]
10.1.8.25.4
[G UIDELINE ] If a UPnP AV MediaServer receives a CDS:CreateObject request with multiple <res>
elements and the UPnP AV MediaServer does not allow the creation of objects with multiple <res>
elements, then it shall return a UPnP AV error code of 712 (Bad Metadata).
[ATTRIBUTES ]
10.1.8.25.5
[G UIDELINE ] If a UPnP AV MediaServer rejects a CDS:CreateObject request because the <res>
element specifies a URI value or a res@importUri value, then it shall return a UPnP AV error code
of 712 (Bad Metadata).
[ATTRIBUTES ]
10.1.8.25.6
[G UIDELINE ] If a UPnP AV MediaServer cannot accept a CDS:CreateObject request due to the
processing capacity or current state of the device, then it shall respond with error code 720 (Cannot
process the request).
[ATTRIBUTES ]
10.1.8.25.7
[G UIDELINE ] If a UPnP AV MediaServer cannot accept a CDS:CreateObject request due to the lack
of storage capacity, then the MediaServer shall return a UPnP error response with error code of 720
(Cannot process the request).
[ATTRIBUTES ]
[C OMMENT] A MediaServer can return this error code as a result of a res@size value specified in a
CDS:CreateObject request. A DMS can also return this value when the upload capacity for the DMS
has been reached.
10.1.8.25.8
[G UIDELINE ] If a UPnP AV MediaServer receives a CDS:CreateObject request with zero <res>
elements and the UPnP AV MediaServer does not allow the creation of objects with zero <res>
elements, then it shall return a UPnP AV error code of 712 (Bad Metadata).
[ATTRIBUTES ]
ISO/IEC
29341-20-3
[ATTRIBUTES ]
[C OMMENT] Within 30 s of creating the CDS object, the Control Point begins its first content
transfer for the CDS object.
10.1.8.26.2
[G UIDELINE ] A UPnP AV MediaServer control point shall utilize the URI provided in a
res@importUri or a res@dlna:importIfoFileURI as the destination URI for a content transfer
process.
UPnP AV MediaServer control points shall only upload content binaries to the res@importUri.
UPnP AV MediaServer control points shall only upload IFO files to the URI value of
res@dlna:importIfoFileURI.
[ATTRIBUTES ]
[C OMMENT] The CDS specification is ambiguous as to whether a <res> element's URI value can be
used to overwrite content. These guidelines limit the control to using import URI values for both
initial and overwriting content transfers. See 11.4.3.65 for HTTP client implications.
m) IFO files are not considered content binaries, so uploading an IFO file to a res@importUri file is
expressly prohibited.
n) For additional information on performing a content transfer process for either a content binary or
an IFO file, see 11.4.3.65.
o) For additional information on creating a <res> element for uploading IFO files, see 10.1.8.19.3.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 344 –
10.1.8.26.3
[G UIDELINE ] If a UPnP AV MediaServer control point fails to completely upload an IFO file and if
res@dlna:resumeUpload="1" and if the control point initiates a retry IFO attempt, then the control
point shall initiate the retry IFO attempt within 30 min of the failure.
[ATTRIBUTES ]
[C OMMENT] Retry attempts to transfer the IFO file needs to start within 30 min of the time of failure
because the MediaServer will destroy the CDS object 35 min after the failure has occurred.
10.1.8.26.4
[G UIDELINE ] If a UPnP AV MediaServer control point fails to completely upload a content binary
and if res@dlna:resumeUpload="1" and if the control point initiates a resume content transfer, then
the control point shall initiate the resume content transfer within 30 min of the failure.
[ATTRIBUTES ]
[C OMMENT] Resume attempts to transfer the content binary file needs to start within 30 min of the
time of failure because the MediaServer will destroy the CDS object 35 min after the failure has
occurred.
10.1.8.26.5
[G UIDELINE ] A UPnP AV MediaServer control point shall not attempt to use retry IFO transfer or
resume content transfer unless res@dlna:resumeUpload="1".
[ATTRIBUTES ]
10.1.8.26.6
[G UIDELINE ] A UPnP AV MediaServer shall facilitate a content transfer process by supporting an
HTTP POST request on a URI for a res@importUri or a res@dlna:importIfoFileURI.
[ATTRIBUTES ]
[C OMMENT] DLNA defines HTTP POST as the only mechanism for a content transfer process.
DLNA might define additional mechanisms for a content transfer process in the future.
[ATTRIBUTES ]
[C OMMENT] A MediaServer that keeps the res@importUri attribute is informing the network that an
Upload Controller can overwrite the content that was uploaded.
10.1.8.27.2
[G UIDELINE ] If a UPnP AV MediaServer keeps the res@importUri attribute and creates a URI value
for the <res> element (to signal that the Content Source will serve the URI), then the MediaServer
may specify the same URI value for both the res@importUri and the URI value of a <res> element.
[ATTRIBUTES ]
[C OMMENT] MediaServers are permitted to use the same URI for both the <res> URI value and the
res@importUri value. In such cases, MediaServers need to ensure that the <res> value is not
exposed until after the content has been received, as described in guideline 10.1.8.27.4.
10.1.8.27.3
[G UIDELINE ] If a UPnP AV MediaServer keeps the res@dlna:ifoFileURI attribute and creates a
res@dlna:importIfoFileURI value for the <res> element (to signal that the Content Source will serve
the URI), then the MediaServer may specify the same URI value for both the
res@dlna:importIfoFileURI and the res@dlna:ifoFileURI value of a <res> element.
[ATTRIBUTES ]
[C OMMENT] MediaServers are permitted to use the same URI for both the <res> URI value and the
res@importUri value. In such cases, MediaServers need to ensure that the <res> value is not
exposed until after the content has been received, as described in guideline 10.1.8.27.4.
10.1.8.27.4
[G UIDELINE ] If a UPnP AV MediaServer is going to serve uploaded content to other endpoints, then
the DMS shall provide the URI value of the <res> element only after the DMS can serve the content.
<res protocolInfo="http-get:*:image/jpeg:*:DLNA.ORG_PN=JPEG_LRG"
importUri="http://192.168.1.10/upload?file=content-data-1234.jpg"/>
<res protocolInfo="http-get:*:image/jpeg:*:DLNA.ORG_PN=JPEG_LRG">
http://192.168.1.10/content-data-1243.jpg</res>
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer that advertises a <res> URI value before the content can
actually be served is making a false claim that the content is available.
p) A DMS that serves partially uploaded content is responsible for conforming to the guidelines
related to the Media Format Profile.
10.1.8.27.5
[G UIDELINE ] A UPnP AV MediaServer may automatically create additional <res> elements (with
network-accessible URI values and protocolInfo values) after a successful content transfer process.
[ATTRIBUTES ]
[C OMMENT] MediaServers might want to provide additional <res> elements to support content
transformations or additional transport protocols.
10.1.8.27.6
[G UIDELINE ] If a UPnP AV MediaServer is going to serve uploaded content that has an IFO file,
then the MediaServer shall provide the URI value of the <res> element after the Content Source can
provide the IFO file.
[ATTRIBUTES ]
[C OMMENT] Advertising content with SCR/PTS discontinuities without providing an IFO file is a
violation of guideline 10.1.4.9.2.
10.1.8.27.7
[G UIDELINE ] If a UPnP AV MediaServer is going to serve uploaded content that has an IFO file, and
successfully receives an IFO file in a content transfer process, then the MediaServer shall provide
a res@dlna:ifoFileURI attribute with a URI value for the IFO file. Until the MediaServer has the IFO
file, the res@dlna:ifoFileURI shall have an empty value.
Example timeline (with additional comments for other hypothetical situations after ***) Letters in
angle brackets, <n>, refer to steps in this timeline.
a) Upload Controller invokes CDS:CreateObject with a <res> element for MPEG_PS_NTSC. The
request includes res@dlna:ifoFileURI="" to indicate that it will also upload an IFO file. The
request also includes res@dlna:resumeUpload="1" to indicate that the Upload Controller will
use resume features if a failure occurs during a transfer. *** If the Upload Controller is not
uploading an IFO file, it would have omitted res@dlna:ifoFileURI. If the Upload Controller was
not going to use resume, it would have omitted res@dlna:resumeUpload.
b) The DMS or M-DMS responds with success. The response includes a res@importUri and
res@dlna:importIfoFileURI, with URI values that will receive the uploaded content. The
response preserves the res@dlna:resumeUpload="1" to indicate resume is supported. *** If the
DMS/M-DMS does not support resume, it would have omitted res@dlna:resumeUpload or set
the value to "0". A DMS/M-DMS never returns res@dlna:resumeUpload="1" unless requested to
do so.
c) The Upload Controller begins uploading the IFO file.
d) During the transfer from <c>, an error occurs and the transfer fails.
e) Within 30 min of the error in <d>, the Upload Controller issues an HTTP POST to retry the
transfer of the IFO file. The Upload Controller does not use CONTENT-Range when retrying an
IFO transfer. *** If the Upload Controller does not do the retry, then the DMS/M-DMS would
automatically destroy the new CDS object (from <a>). The DMS/M-DMS waits at least 35 min
from the failure time in <d> before automatically destroying the CDS object. In scenarios where
resume is not enabled, the DMS/M-DMS would destroy the CDS object (from <a>) at any time
after the error in <d> occurred.
f) After completing the retry IFO transfer from <e>, the Upload Controller initiates the transfer of
the content binary within 30 s. *** If the Upload Controller is not uploading an IFO, then it would
have started the content transfer within 30 s of receiving the CDS:CreateObject response.
g) During the transfer from <f>, an error occurs and the transfer fails.
h) Within 30 min of the error in <g>, the Upload Controller issues an HTTP POST with the
CONTENT-Range header to resume the transfer from the byte position where the failure
occurred. *** If the Upload Controller does not do the resume, then the DMS/M-DMS would
automatically destroy the new CDS object (from <a>). The DMS/M-DMS waits at least 35 min
from the failure time in <g> before automatically destroying the CDS object. In scenarios where
resume is not enabled, the DMS/M-DMS would destroy the CDS object (from <a>) at any time
after the error in <g> occurred.
i) The content transfer from <f> succeeds and the DMS/M-DMS advertises URI values for the
<res> element and the res@ifoFileURI.
j) The DMS or M-DMS also automatically creates a new <res> element for its locally converted
version of MPEG_PS_NTSC_XAC3
[A TTRIBUTES ]
[C OMMENT] Just as a MediaServer uses the <res> URI value to indicate that the content is
available for Content Receivers, the MediaServer also uses the res@dlna:ifoFileURI attribute to
indicate that the IFO file is available for Content Receivers.
10.1.8.28 MM/CM: Auto-Destroy behavior for a failed or partial content transfer process
10.1.8.28.1
[G UIDELINE ] If a UPnP AV MediaServer implements CDS:CreateObject for use with the listed
operations, then it shall implement Auto-Destroy behavior.
Listed operations:
• upload AnyContainer;
• OCM: upload content.
The Auto-Destroy behavior shall be defined as removing the created CDS object from the CDS
hierarchy exposed by the MediaServer, such that the CDS object cannot be found when browsing or
searching the MediaServer.
The time when the CDS object is actually removed from the CDS hierarchy is not entirely defined by
the guidelines. However, other guidelines in 10.1.8.28 have restrictions when the CDS object is
automatically removed.
All guidelines in 10.1.8.28 assume Ideal Network Conditions and interoperability is not guaranteed
in scenarios involving user-initiated or out-of-scope system events.
[ATTRIBUTES ]
[C OMMENT] A DMS that supports the Upload system usage needs to automatically destroy CDS
objects when the files are not properly received by the MediaServer.
k) The guidelines guarantee interoperability only under Ideal Network Conditions. Scenarios that
involve user-initiated events or out-of-scope system events do not guarantee interoperability.
Examples include:
• another control point invoking CDS:DestroyObject causes a failure during an upload
AnyContainer operation;
• the MediaServer product canceling all active uploads because it is starting to record a video
broadcast to local storage.
l) The actual time when the MediaServer destroys such CDS items is not defined by DLNA. Some
examples include a 35 min timer mechanism, a clean-up mechanism that executes when the
device has been idle for an extended period of time, or a cleanup operation that only executes
when certain CDS actions are called.
10.1.8.28.2
[G UIDELINE ] If res@dlna:resumeUpload="0" or res@dlna:resumeUpload is omitted, a UPnP AV
MediaServer shall perform Auto-Destroy behavior on CDS objects (created through upload
AnyContainer or OCM: upload content) under these conditions:
• 35 s has elapsed since the CDS:CreateObject response was completely sent and the first
content transfer process (for either the IFO file or the content binary) has not started;
• 35 s has elapsed since the CDS object's IFO was completely received and the content transfer
process for the content binary has not started;
• the content transfer process of the content binary or the IFO file has failed.
[ATTRIBUTES ]
[C OMMENT] This guideline explains when a MediaServer needs to automatically destroy CDS
objects that were created from upload AnyContainer or OCM: upload content.
The guideline explicitly covers the case where resume content transfer, as described in 10.1.8.20,
is not supported.
10.1.8.28.3
[G UIDELINE ] If res@dlna:resumeUpload="1", a UPnP AV MediaServer shall perform Auto-Destroy
behavior on CDS objects (created through upload AnyContainer or OCM: upload content) under
these conditions:
• 35 s has elapsed since the CDS:CreateObject response was completely sent and the first
content transfer process (for either the IFO file or the content binary) has not started;
• 35 s has elapsed since the CDS object's IFO was completely received and the content transfer
process for the content binary has not started;
• 35 min has elapsed since the failure of a content transfer process for the CDS object's IFO and
retry IFO attempt has not started;
• 35 min has elapsed since the failure of a content transfer process for the CDS object's content
binary and resume content transfer process has not started.
[ATTRIBUTES ]
[C OMMENT] This guideline explains when a MediaServer needs to automatically destroy CDS
objects that were created from upload AnyContainer or OCM: upload content.
m) The guideline explicitly covers the case where resume content transfer, as described in
10.1.8.20, is supported.
10.1.8.28.4
[G UIDELINE ] A UPnP AV MediaServer shall not automatically destroy a CDS object or any of its
<res> element when the MediaServer is doing a content transfer process for the CDS object.
[ATTRIBUTES ]
[C OMMENT] This guideline requires MediaServer implementations not to destroy CDS objects or
<res> elements involved in an Upload system usage.
n) As implied from the comment for 10.1.8.28.1, a MediaServer might choose to destroy such an
object as a result of a CDS:DestroyObject request that was invoked from another control point.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 350 –
This type of a scenario is an unexpected user-initiated and is outside the scope of the Ideal
Network Conditions assumption.
10.1.8.28.5
[G UIDELINE ] If a UPnP AV MediaServer partially completes a content transfer process for a <res>
element and res@dlna:resumeUpload="1", then the MediaServer shall keep all res@importUri and
res@dlna:importIfoFileURI that are associated with the CDS object valid for at least another 35 min.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that MediaServers needs to preserve the validity of URI values
that are used for uploaded IFO files and content binaries.
o) After a MediaServer partially receives a content binary, the device needs to extend the validity
of the URI values (that have not completed a content transfer process) for at least 35 min. This
provides a reasonable amount of time for an Upload Controller to retry or set up the next content
transfer process.
p) See 10.1.8.20.4 to 10.1.8.20.8 and 11.4.3.67 for more information about resuming a failed
content transfer process.
10.1.8.28.6
[G UIDELINE ] A UPnP AV MediaServer control point may use an OCM: destroy object operation to
cancel the following operations: upload AnyContainer or OCM: upload content.
[ATTRIBUTES ]
[C OMMENT] A Control Point uses this operation to signal the DMS to undo its previous operations
that resulted in the creation of a CDS object.
Advertise that content is meant specifically that the MediaServer provides a URI value for the <res>
element. Before the MediaServer receives the content binary, the <res> element (without a URI
value) will be advertised along with the res@importUri.
[ATTRIBUTES ]
[C OMMENT] DLNA UPnP AV MediaServers that support the Upload Device Option can assume that
control points that claim content conforms to DLNA are actually going to upload DLNA-conformant
content. However, it is still good practice for a UPnP AV MediaServer to examine the uploaded
content against the profile definition before advertising the content as being DLNA conformant.
10.1.8.29.2
[G UIDELINE ] If a UPnP AV MediaServer receives a content binary for a CDS resource that does not
have the DLNA.ORG_PN parameter, and it intends to advertise the content, then the MediaServer
shall validate the content before advertising it with the DLNA.ORG_PN parameter.
[ATTRIBUTES ]
[C OMMENT] Although an algorithm for validation is not specified, a UPnP AV MediaServer that
determines that uploaded content is conformant to a DLNA Media Format Profile is permitted to
advertise it as such. The guideline does not obligate a DMS to either support uploading or
advertising of non-DLNA content.
10.1.8.29.3
[G UIDELINE ] A UPnP AV MediaServer may change the value of a res@protocolInfo as part of the
content validation process.
[ATTRIBUTES ]
10.1.8.29.4
[G UIDELINE ] If a UPnP AV MediaServer exposes uploaded content, then it should examine the
uploaded content binaries to ensure that the metadata reported through the CDS is consistent with
the content binary. In cases where a conflict is found, a UPnP AV MediaServer should appropriately
correct the metadata reported through CDS.
[ATTRIBUTES ]
[C OMMENT] This is a good behavioral practice and helps to prevent interoperability problems.
If the CDS:DestroyObject is a success, then the CDS item is removed from the CDS hierarchy.
[ATTRIBUTES ]
[C OMMENT] Partially destroying a CDS item (such as some metadata or <res> elements) is
problematic because control points have no way to recover the partially lost information.
q) The related question of whether the actual content binaries are deleted from the local storage is
vendor-defined.
r) Information for developers: this guideline applies only to CDS Content Items (object.item) and
not CDS Containers (object.container).
10.2 Content synchronization MM/CM guidelines
10.2.1 General
The guidelines contained in 10.2 apply only when the Upload or Download Synchronization
Controller system usages are implemented by a UPnP AV MediaServer control point and a UPnP
AV MediaServer.
10.2.2.2
[G UIDELINE ] A Download Synchronization Controller shall implement a UPnP AV MediaServer
control point for synchronizing content from a DMS or M-DMS respectively.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that a Download Synchronization Controller Device Capability
will use a UPnP control point that controls a UPnP AV MediaServer for browsing, searching and
synchronizing content from the Media Server.
10.2.2.3
[G UIDELINE ] A Download Synchronization Controller shall implement a UPnP AV MediaServer
control point capable of invoking the following actions.
• CDS:Search
• CDS:Browse
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the UPnP CDS actions a Download Synchronization Controller
needs to be able to invoke with a UPnP AV MediaServer.
10.2.2.4
[G UIDELINE ] A Download Synchronization Controller may maintain synchronization of some or all
of the metadata, items, and resources exposed by a DMS/M-DMS implementing Content
Synchronization Device Option.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that it is the role of the Download Synchronization Controller to
decide whether some or all of the items, metadata, and resources need to be tracked to constitute
a completed synchronization.
10.2.3.2
[G UIDELINE ] An Upload Synchronization Controller shall implement a UPnP AV MediaServer
control point for synchronizing content to a DMS or M-DMS respectively.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that an Upload Synchronization Controller Device Capability
will use a UPnP control point that controls a UPnP AV MediaServer for sending content to the
MediaServer.
10.2.3.3
[G UIDELINE ] An Upload Synchronization Controller shall implement a UPnP AV MediaServer
control point capable of invoking the following actions.
• CDS:CreateObject
• CDS:UpdateObject
• CDS:DestroyObject
• CDS:GetFeatureList
• CDS:Search
• CDS:Browse
• CDS:GetServiceResetToken
[ATTRIBUTES ]
[C OMMENT] The capability of invoking these actions is required for performing the following
optional content management operations: OCM: upload content, OCM: create child container, OCM:
destroy object and OCM: change metadata.
10.2.3.4
[G UIDELINE ] An Upload Synchronization Controller shall be capable of invoking the OCM: upload
content operation.
See 10.1.8.2 for more information about optional content management operations.
[ATTRIBUTES ]
10.2.3.5
[G UIDELINE ] An Upload Synchronization Controller shall be capable of invoking the OCM: create
child Container operation.
See 10.1.8.2 for more information about optional content management operations.
[ATTRIBUTES ]
10.2.3.6
[G UIDELINE ] An Upload Synchronization Controller shall be capable of invoking the OCM: destroy
object Operation.
See 10.1.8.2 for more information about optional content management operations.
[ATTRIBUTES ]
10.2.3.7
[G UIDELINE ] An Upload Synchronization Controller shall be capable of invoking the OCM: change
metadata operation.
See 10.1.8.2 for more information about optional content management operations.
[ATTRIBUTES ]
10.2.3.8
[G UIDELINE ] An Upload Synchronization Controller may upload some or all of the optional items,
metadata, and resources it decides to track on a DMS/M-DMS implementing the Content
Synchronization Device Option.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that it is the role of the Upload Synchronization Controller to
decide what optional items, metadata and resources need to be uploaded and tracked to constitute
a completed synchronization.
10.2.4.2
[G UIDELINE ] An Upload Synchronization Controller shall not propagate without external input the
local stored metadata or content to the Media Server for objects that have changed on the server but
not on the client since the last synchronization.
[ATTRIBUTES ]
[C OMMENT] Limits the number of times competing Synchronization Controllers can change content
on an AV Media Server without external input, such as user intervention.
10.2.5 MM/CM: DMS or M-DMS with Content Synchronization Device Option support
definition
10.2.5.1
[G ENERAL ] The Content Synchronization MM/CM guidelines subclause defines the DLNA Upload
and Download Synchronization Controller system usage requirements for a UPnP AV MediaServer
and a Synchronization Controller Device Capability. The conditionally mandatory requirements in
this subclause are adhered to only when supporting the Upload or Download Synchronization
system usages.
10.2.5.2
[G UIDELINE ] A UPnP AV MediaServer shall advertise the Content Synchronization Device Option
by specifying the <dlna:X_DLNACAP> element (as a child of the <device> element that represents
the MediaServer) with the content-synchronization token. Table 26 describes the Capability ID
syntax.
Capability ID Description
[ATTRIBUTES ]
10.2.5.3
[G UIDELINE ] A UPnP AV MediaServer shall implement the following optional content management
operations:
[ATTRIBUTES ]
10.2.5.4
[G UIDELINE ] A UPnP AV MediaServer shall implement the Tracking Changes Option of the
ContentDirectory service.
[ATTRIBUTES ]
[C OMMENT] As well as changes that occur as the result of UPnP Actions when the Content
Directory service is in the on-line state, changes to the underlying schema can occur through other
mechanisms both in the online and off-line state. If, for example, a user deletes files manually from
the schema that the Content Directory service is representing while it is in the off-line state, these
changes will be visible to Control Points when the Content Directory Service comes back on line.
Similarly, if a user deletes files manually from the schema when the Content Directory Service is
on-line, these changes will be handled as if the changes occurred via UPnP Actions.
10.2.5.5
[G UIDELINE ] A UPnP AV MediaServer shall implement the LastChange evented state variable.
[ATTRIBUTES ]
[C OMMENT] The LastChange state variable allows the accumulation (buffering) and delivery
(eventing) of all changes to an AV MediaServer's content. The LastChange state variable is a
required feature of the Tracking Changes Option of the ContentDirectory service.
10.2.5.6
[G UIDELINE ] A UPnP AV MediaServer shall form a LastChange state variable consisting of a
properly formed XML document as indicated in XML Schema.
[ATTRIBUTES ]
10.2.5.7
[G UIDELINE ] A UPnP AV MediaServer shall send the LastChange event message within 10 s of a
change occurring on the CDS.
[ATTRIBUTES ]
10.2.5.8
[G UIDELINE ] All UPnP AV MediaServer CDS container objects shall include the @searchable
attribute with a value of "1".
[ATTRIBUTES ]
[C OMMENT] All containers on the CDS need to be searchable. A search can start from any
container in the CDS.
10.2.5.9
[G UIDELINE ] A UPnP AV Media Server shall list at least the following metadata items in the
SearchCapabilities state variable.
• upnp:containerUpdateID
• upnp:objectUpdateID
[ATTRIBUTES ]
[C OMMENT] These values are the minimal set to allow searching for changes.
10.2.5.10
[G UIDELINE ] A UPnP AV Media Server shall list at least the following metadata items in the
SortCapabilities state variable.
• upnp:containerUpdateID
• upnp:objectUpdateID
[ATTRIBUTES ]
10.2.5.11
[G UIDELINE ] A UPnP AV MediaServer shall implement at least the operators stated in Table 27 on
the indicated metadata items within the SearchCriteria of the CDS:Search() operation.
[ATTRIBUTES ]
10.2.5.12
[G UIDELINE ] A UPnP AV Media Server shall implement in the SearchCriteria argument of the
CDS:Search() action the logical "and" and "or" operators on at least 5 clauses containing the
metadata and operators specified in 10.2.5.11.
[ATTRIBUTES ]
10.2.5.13
[G UIDELINE ] A UPnP AV MediaServer shall implement AV CDS Tracking Changes Option for all
items and therefore the following metadata attributes for all CDS items.
• upnp:objectUpdateID
• upnp:res@updateCount
[ATTRIBUTES ]
[C OMMENT] These metadata items allow tracking of CDS content entries. There is no partial
support of content tracking for some content on the server and not for other content.
10.2.5.14
[G UIDELINE ] A UPnP AV MediaServer shall implement AV CDS Tracking Changes Option for all
containers and therefore the following metadata attributes for all CDS containers.
• upnp:objectUpdateID
• upnp:totalDeletedChildCount
• upnp:containerUpdateID
• upnp:childCount
[ATTRIBUTES ]
[C OMMENT] These metadata items allow tracking of CDS container level changes. There is no
partial support of content tracking for some content on the server and not for other content.
The res@dlna:estimatedSize is used by the server to advertise an estimate of the size of a content
binary in those cases where the exact size is not known. For example, if the content requires
transcoding that will not be performed until a request for the content is received, the exact length of
the transcoded version cannot be known. However, it can be useful for downloading or
synchronizing endpoints to have an estimate of the size of a content binary to determine whether it
is generally possible for that content to fit within the available storage.
10.2.6.2
[G UIDELINE ] A UPnP AV Media Server may include the res@dlna:estimatedSize attribute for any
resource within a content object returned as part of the result of a CDS:Browse() or CDS:Search()
operation.
[ATTRIBUTES ]
10.2.6.3
[G UIDELINE ] A UPnP AV Media Server Upload Controller may include the res@dlna:estimatedSize
attribute for any resource created as part of the CDS:CreateObject() call within an OCM: create
object operation.
[ATTRIBUTES ]
10.2.6.4
[G UIDELINE ] A UPnP AV Media Server Upload Synchronization Controller may include the
res@dlna:estimatedSize attribute for any resource created as part of the CDS:CreateObject() call
within an OCM: create object operation.
[ATTRIBUTES ]
10.2.6.5
[G UIDELINE ] If present the res@dlna:estimatedSize attribute shall have the same syntax and type
as the res@size attribute.
[ATTRIBUTES ]
10.2.6.6
[G UIDELINE ] If the res@Size attribute is present for any resource then the res@estimatedSize
attribute shall not be present for the same resource.
[ATTRIBUTES ]
10.2.7.2
[G UIDELINE ] A UPnP AV MediaServer shall implement the OCM: change metadata operation and
therefore shall implement CDS:UpdateObject action.
[ATTRIBUTES ]
[C OMMENT] The CDS:UpdateObject action is used to change metadata on an existing CDS object.
10.2.8.2
[G UIDELINE ] A UPnP AV MediaServer control point invoking CDS:UpdateObject shall apply the
mandatory metadata encoding rules for the following guidelines in the NewTagValue input
argument.
10.2.8.3
[G UIDELINE ] A UPnP MediaServer Control Point invoking CDS:UpdateObject shall not include the
• @dlna:dlnaManaged
• res@dlna:ifoFileURI
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 362 –
• res@dlna:importIfoFileURI
• albumArtURI@dlna:profileID
• res@dlna:trackTotal
• res@dlna:resumeUpload
• @dlna:containerType
• res@dlna:uploadedSize
metadata properties in the NewTagValue input argument.
[ATTRIBUTES ]
[C OMMENT] These values are set by the MediaServer capabilities and are defined as read-only
attributes.
10.2.8.4
[G UIDELINE ] A UPnP AV MediaServer control point invoking CDS:UpdateObject shall apply the
rules specified in 10.1.3.4.1 and 10.1.3.4.2 to all metadata.
[ATTRIBUTES ]
10.2.8.5
[G UIDELINE ] A UPnP AV MediaServer control point invoking CDS:UpdateObject, should not delete
metadata properties as defined in guideline 10.1.3.10.6 for the given upnp:class.
[ATTRIBUTES ]
[C OMMENT] The Control Point will preferably not delete metadata recommended for a given
upnp:class.
10.2.8.6
[G UIDELINE ] A UPnP AV MediaServer control point invoking CDS:UpdateObject with optional
metadata shall properly declare all namespaces.
[ATTRIBUTES ]
10.2.8.7
[G UIDELINE ] A UPnP AV MediaServer allowing an update to the <dc:date> elements shall allow the
MediaServer control point to specify any valid form of <dc:date>, as defined by guideline 10.1.3.7.
[ATTRIBUTES ]
[C OMMENT] This guideline allows the control point to specify any valid form for <dc:date>. Control
points are not to assume that the format they specified in the request will be the final form of the
<dc:date>.
10.2.8.8
[G UIDELINE ] A UPnP AV MediaServer implementing the OCM: change metadata operation shall
ignore attempts to add unsupported metadata and only generate an error response if some other
error occurs or there were no successful modifications to the target object.
[ATTRIBUTES ]
[C OMMENT] The UPnP CDS behavior allows error conditions to be generated when attempting to
add unsupported metadata. Since the CP does not currently have a reliable method for determining
which metadata is actually supported by the DMS/M-DMS, restricting this error response allows
supported metadata to be accepted while simultaneously allowing unsupported metadata to have
no effect.
10.2.9.2
[G UIDELINE ] A UPnP AV MediaServer implementing the OCM: change metadata operation for a
particular object should accept the creation of recommended properties corresponding to the
specified upnp:class, which are defined in the guideline 7.3.25 MM DIDL-Lite Recommended
Metadata Properties.
[ATTRIBUTES ]
10.2.9.3
[G UIDELINE ] A UPnP AV MediaServer implementing the OCM: change metadata operation for a
particular object shall be able to accept CDS:UpdateObject requests that specify changes to
multiple properties.
[ATTRIBUTES ]
10.2.9.4
[G UIDELINE ] A UPnP AV MediaServer implementing the OCM: change metadata operation for a
particular object and receiving a request where the CurrentTagValue does not match the current
state of the CDS, shall respond with an error code 702 (Invalid currentTagValue).
[ATTRIBUTES ]
10.2.10.2
[G UIDELINE ] A UPnP AV Media Server Control Point invoking an OCM: change metadata operation,
shall invoke CDS:UpdateObject with the following rules.
• The ObjectID shall identify the CDS object that is to receive the metadata change and the CDS
object shall support the OCM: change metadata operation.
[ATTRIBUTES ]
10.2.10.3
[G UIDELINE ] A UPnP AV MediaServer implementing the OCM: change metadata operation, shall
ignore all <res> elements received in a NewTagValue argument of the CDS:UpdateObject request.
[ATTRIBUTES ]
[C OMMENT] The resource data defines the nature of the content and cannot be changed without
DLNA guidelines; Part 1-1: Architecture and protocols
– 365 –
also changing the binary data. Creating a new <res> element is not supported, if the control point
desires to upload content, it needs to create a new object with the Upload AnyContainer or OCM:
upload content operations. Additionally, the OCM: change metadata operation is not used for
changing the binary data of a <res> element, the object will be deleted and re-created.
10.3.1.2
[G UIDELINE ] If a DMS or M-DMS contains a UPnP ScheduledRecording service in the UPnP AV
MediaServer device, then it shall conform to all of the guidelines for a UPnP AV MediaServer in 10.3
as defined in 10.3.1 through 10.3.30 inclusive.
[ATTRIBUTES ]
[C OMMENT] This guideline classifies the group of guideline requirements that a DMS and M-DMS
implements to support the Scheduled Recording Device Option for the Scheduled Recording system
usage.
10.3.1.3
[G UIDELINE ] A DLNA device class may implement the Scheduled Recording Controller Device
Capability.
[ATTRIBUTES ]
10.3.1.4
[G UIDELINE ] A Scheduled Recording Controller shall implement a UPnP AV MediaServer control
point that interacts with the ContentDirectory service for browsing content and with the
ScheduledRecording service for creating and managing recordings. It shall also conform to all of the
guidelines for a Scheduled Recording Controller in 10.3 as defined in 10.3.1 through 10.3.30
inclusive.
[ATTRIBUTES ]
[C OMMENT] This guideline classifies the group of guideline requirements that a Scheduled
Recording Controller implements to support the Scheduled Recording system usage.
[ATTRIBUTES ]
[C OMMENT] Recording devices are ultimately built to offer consumption of their recorded content.
There are cases where the content consumption method is not defined by DLNA system usages.
10.3.2.2
[G UIDELINE ] If a UPnP AV MediaServer exposes recorded content in a ContentDirectory service,
then the recorded content shall be exposed in the ContentDirectory service co-located with the
ScheduledRecording service.
[ATTRIBUTES ]
10.3.2.3
[G UIDELINE ] If a UPnP AV MediaServer exposes recorded content in a ContentDirectory service,
then at least one res property of the recorded content shall be conformant to a DLNA Media Format
Profile as defined in 10.1.3.16.4.
[ATTRIBUTES ]
10.3.2.4
[G UIDELINE ] If a UPnP AV MediaServer supports simultaneous streaming and recording, then the
recorded content CDS object with a res property should exist in the CDS as soon as the recordTask
starts recording.
[ATTRIBUTES ]
10.3.2.5
[G UIDELINE ] If a UPnP AV MediaServer supports simultaneous streaming and recording, then the
recorded content CDS object should follow the DLNA UCDAM buffer model guidelines 10.1.3.33,
DLNA guidelines; Part 1-1: Architecture and protocols
– 367 –
10.1.3.34 and Annex D to allow a UPnP AV MediaServer control point to interact with the dynamic
content binary size.
[ATTRIBUTES ]
10.3.2.6
[G UIDELINE ] A UPnP AV MediaServer shall expose the arib:objectType property in the Japan
region or dlna:objectType property in other geographical regions in the recorded content CDS item
with a value of the applicable broadcast system, when all of the following conditions are met.
[ATTRIBUTES ]
10.3.2.7
[G UIDELINE ] A UPnP AV MediaServer shall expose the dc:date property in the recorded content
CDS item with a non-empty and non-whitespace value, when all of the following conditions are met.
[ATTRIBUTES ]
10.3.2.8
[G UIDELINE ] A UPnP AV MediaServer shall set the value of the dc:date property in the recorded
content CDS item with a value which indicates the actual start date and time of the recorded content,
when all of the following conditions are met.
[C OMMENT] This is the CDS property that is recommended for containing the actual date and time
of the recorded content instead of using the upnp:recordedStartDateTime property. Usage of this
property makes this consistent for all types of CDS items contained in the CDS.
10.3.2.9
[G UIDELINE ] A UPnP AV MediaServer shall set the value of the res@duration property in the
recorded content CDS item with a value which indicates the recorded duration of the recorded
content after the completion of the recording, when all of the following conditions are met.
[C OMMENT] This is the CDS property that is recommended for containing the actual duration of the
recorded content instead of using the upnp:recordedDuration property. Usage of this property
makes this consistent for all types of CDS items contained in the CDS.
10.3.2.10
[G UIDELINE ] A UPnP AV MediaServer shall conform to the guidelines listed in Table 29 when all
the following conditions are met.
[ATTRIBUTES ]
[C OMMENT] Depending on the record class used to schedule a recording, these conformance
guidelines provide the recommended CDS property values for the recorded content CDS item. Note
that the same CDS properties defined for each class are semantically equivalent, but guidelines are
duplicated for each applicable record class (e.g. upnp:channelID). Table 30 summarizes the
recommended CDS properties for the recorded content for each srs:class.
[ATTRIBUTES ]
10.3.4.2
[G UIDELINE ] A UPnP AV MediaServer shall implement the DLNA Basic Tuner guidelines defined in
10.1.4.16 to 10.1.4.23 or the DLNA Extended Tuner guidelines defined in 10.4 to expose the
device’s channel lineup.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The UPnP ScheduledRecording service only supports a single mechanism for UPnP
AV MediaServers to advertise their support for sorting across the actions defined in the service.
Consequently, the UPnP AV MediaServer has to provide a consistent level of implementation
across all actions which accept a SortCriteria input argument so that a ScheduledRecording
Controller can rely on the output values of the SRS:GetSortCapabilities across all actions.
10.3.5.2
[G UIDELINE ] If a UPnP AV MediaServer does not implement sorting in the UPnP
ScheduledRecording service, it shall return an empty string in the SortCaps and “0” (zero) in the
SortLevelCap output arguments of the SRS:GetSortCapabilities action.
[ATTRIBUTES ]
10.3.5.3
[G UIDELINE ] If a UPnP AV MediaServer includes the value of “srs-conflict-resolution” in the
<dlna:X_DLNACAP>, then it shall include the property srs:priority@orderedValue in the SortCaps
output argument in response to a SRS:GetSortCapabilities request.
[ATTRIBUTES ]
MediaServer shall only return the required properties as defined in ISO/IEC 29341-4-14 in the
result.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies UPnP AV MediaServer behavior when invalid properties are
included in the Filter input argument. A ScheduledRecording Controller can obtain the list of
properties supported by the UPnP AV MediaServer using the SRS:GetPropertyList action.
10.3.6.2
[G UIDELINE ] If a UPnP AV MediaServer receives one or more property names in the SortCriteria
input argument for the SRS:BrowseRecordSchedules action which are not returned in the SortCaps
output argument in the SRS:GetSortCapabilities action, then it shall return an Error Code 709
(Unsupported or invalid sort criteria).
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the UPnP AV MediaServer response to an invalid SortCriteria
input argument. A ScheduledRecording Controller can obtain the sort capabilities of the UPnP AV
MediaServer by making a SRS:GetSortCapabilities request.
10.3.6.3
[G UIDELINE ] A UPnP AV MediaServer device may reduce the number of recordSchedule objects in
a response to a SRS:BrowseRecordSchedules action for the following scenarios only.
• The transmission of a SOAP response with a huge byte length (>204 800 B).
• The transmission of a SOAP response that exceeds 30 s for transmission time
[ATTRIBUTES ]
[C OMMENT] This requirement is to align with the requirement for a SOAP response in CDS:Browse
action and CDS:Search action defined in 10.1.4.11.1.
10.3.6.4
[G UIDELINE ] The number of recordSchedule object entries in the Result output argument
(containing the XML escaped srs XML Document) shall match the value specified in the
NumberReturned output argument.
[ATTRIBUTES ]
[C OMMENT] This guideline needs to be followed, even if a UPnP AV MediaServer reduces the
number of recordSchedule objects returned in the SOAP response. This requirement is to align with
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 372 –
the requirement for a SOAP response in CDS:Browse action and CDS:Search action defined in
10.1.4.11.2.
10.3.6.5
[G UIDELINE ] If the UPnP AV MediaServer device cannot find more than zero recordSchedule
objects (in 27 s, as described in 9.2.9.2), for a response to SRS:BrowseRecordSchedules request
and if UPnP AV MediaServer cannot calculate an accurate value for the TotalMatches output
argument, then the UPnP AV MediaServer should return a SOAP error response code of 720
(Cannot process the request).
[ATTRIBUTES ]
[C OMMENT] This guideline covers the scenario where a UPnP AV MediaServer can neither find any
recordSchedule objects that satisfy the query nor calculate the TotalMatches output argument
accurately. Although some UPnP AV MediaServer implementations may choose to report the
accurate TotalMatches value, at the expense of violating the 27 s timeout rule, such behavior is not
recommended for the same reason stated in guideline 10.1.4.11.6. This guideline is to align with the
guideline for a SOAP response in CDS:Browse action and CDS:Search action defined in
10.1.4.11.7.
10.3.6.6
[G UIDELINE ] A UPnP AV MediaServer control point should specify the desired number of
recordSchedule objects in the RequestedCount input argument of a SRS:BrowseRecordSchedules
request.
[ATTRIBUTES ]
10.3.6.7
[G UIDELINE ] A UPnP AV MediaServer control point shall tolerate a response with less
recordSchedule objects than requested in a SRS:BrowseRecordSchedules request.
[ATTRIBUTES ]
10.3.6.8
[G UIDELINE ] A UPnP AV MediaServer control point should retrieve the remaining items in a
reduced response to a SRS:BrowseRecordSchedules request, when the value of TotalMatches is
greater than the value of NumberReturned, by issuing additional SRS:BrowseRecordSchedules
requests to complete the original SRS:BrowseRecordSchedules request for recordSchedule
objects.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies UPnP AV MediaServer behavior when invalid properties are
included in the Filter input argument. A ScheduledRecording Controller can obtain the list of
properties supported by the UPnP AV MediaServer using the SRS:GetPropertyList action.
10.3.7.2
[G UIDELINE ] If a UPnP AV MediaServer receives one or more property names in the SortCriteria
input argument for the SRS:BrowseRecordTasks action which are not returned in the SortCaps
output argument in the SRS:GetSortCapabilities action, then it shall return an Error Code 709
(Unsupported or invalid sort criteria).
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the UPnP AV MediaServer response to an invalid SortCriteria
input argument. A ScheduledRecording Controller can obtain the sort capabilities of the UPnP AV
MediaServer by making a SRS:GetSortCapabilities request.
10.3.7.3
[G UIDELINE ] A UPnP AV MediaServer device may reduce the number of recordTask objects in a
response to a SRS:BrowseRecordTasks action for the following scenarios only.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 374 –
• The transmission of a SOAP response with a huge byte length (>204 800 B).
• The transmission of a SOAP response that exceeds 30 s for transmission time.
[ATTRIBUTES ]
[C OMMENT] This guideline is to align with the requirement for a SOAP response in CDS:Browse
action and CDS:Search action defined in 10.1.4.11.1.
10.3.7.4
[G UIDELINE ] The number of recordTask object entries in the Result output argument (containing
the XML escaped srs XML Document) shall match the value specified in the NumberReturned
output argument.
[ATTRIBUTES ]
[C OMMENT] This guideline needs to be followed, even if a UPnP AV MediaServer reduces the
number of recordTask objects returned in the SOAP response. This guideline is to align with the
guideline for a SOAP response in CDS:Browse action and CDS:Search action defined in
10.1.4.11.2.
10.3.7.5
[G UIDELINE ] If the UPnP AV MediaServer device cannot find more than zero recordTask objects (in
27 s, as described in 9.2.9.2), for a response to SRS:BrowseRecordTasks request and if UPnP AV
MediaServer cannot calculate an accurate value for the TotalMatches output argument, then the
UPnP AV MediaServer should return a SOAP error response code of 720 (Cannot process the
request).
[ATTRIBUTES ]
[C OMMENT] This guideline covers the scenario where a UPnP AV MediaServer can neither find any
recordTask objects that satisfy the query nor calculate the TotalMatches output argument
accurately. Although some UPnP AV MediaServer implementations may choose to report the
accurate TotalMatches value, at the expense of violating the 27 s timeout rule, such behavior is not
recommended for the same reason stated in guideline 10.1.4.11.6. This guideline is to align with the
requirement for a SOAP response in CDS:Browse action and CDS:Search action defined in
10.1.4.11.7.
10.3.7.6
[G UIDELINE ] A UPnP AV MediaServer control point should specify the desired number of
recordTask objects in the RequestedCount input argument of a SRS:BrowseRecordTasks request.
[ATTRIBUTES ]
10.3.7.7
[G UIDELINE ] A UPnP AV MediaServer control point shall tolerate a response with less recordTask
objects than requested in a SRS:BrowseRecordTasks request.
[ATTRIBUTES ]
10.3.7.8
[G UIDELINE ] A UPnP AV MediaServer control point should retrieve the remaining items in a
reduced response to a SRS:BrowseRecordTasks request, when the value of TotalMatches is
greater than the value of NumberReturned, by issuing additional SRS:BrowseRecordTasks
requests to complete the original SRS:BrowseRecordTasks request for recordTask objects.
[ATTRIBUTES ]
10.3.8.2
[G UIDELINE ] The allowed values returned by the UPnP AV MediaServer in response to a
SRS:GetAllowedValues request may contain <allowedValueDescriptor> elements which omit some
<dependentField> sub-elements.
[ATTRIBUTES ]
[C OMMENT] The dependencies between certain properties are defined in the UPnP SRS
Specification ISO/IEC 29341-4-14. Therefore the <dependentField> sub-element is not always
necessary in the <allowedValueDescriptor> elements for these properties. Vendors are strongly
encouraged to omit unnecessary <dependentField> sub-elements to minimize the length of the
output argument to SRS:GetAllowedValues.
The following examples show two cases in which some <dependentField> sub-elements could be
omitted:
This example illustrates the allowed values description for the srs:scheduledCDSObjectID property.
<field>
<name>srs:scheduledCDSObjectID</name>
<dataType maxSize="1024">xsd:string</dataType>
<allowedValueDescriptor>
<dependentField>
<name>srs:class</name>
<valueList>
<value>OBJECT.RECORDSCHEDULE.DIRECT.CDSEPG</value>
<value>OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG</value>
</valueList>
</dependentField>
<minCount>1</minCount>
<allowAny/>
</allowedValueDescriptor>
</field>
<field>
<name>srs:scheduledCDSObjectID</name>
<dataType maxSize="1024">xsd:string</dataType>
<allowedValueDescriptor>
<minCount>1</minCount>
<allowAny/>
</allowedValueDescriptor>
</field>
This example illustrates the allowed values description for the srs:desiredPriority@type property.
<field>
<name>srs:desiredPriority@type</name>
<dataType maxSize="16">xsd:string</dataType>
<allowedValueDescriptor>
<dependentField>
<name>srs:desiredPriority</name>
<anyValue/>
</dependentField>
<minCount>1</minCount>
<allowedValueList>
<allowedValue>PREDEF</allowedValue>
<allowedValue>OBECTID</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
An XML attribute can only exist in the context of its parent element. Therefore the above XML
fragment can be reduced to the following:
<field>
<name>srs:desiredPriority@type</name>
<dataType maxSize="16">xsd:string</dataType>
<allowedValueDescriptor>
<minCount>1</minCount>
<allowedValueList>
<allowedValue>PREDEF</allowedValue>
<allowedValue>OBECTID</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
10.3.8.3
[G UIDELINE ] A UPnP AV MediaServer control point shall be able to parse and interpret
<allowedValueDescriptor> elements that omit the <dependentField> sub-element.
[ATTRIBUTES ]
10.3.9.2
[G UIDELINE ] A UPnP AV MediaServer shall respond at a minimum with the value of
“OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG” to the SRS:GetAllowedValues action for
the srs:class property when the DataTypeID input argument is the value
A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule.
[ATTRIBUTES ]
[C OMMENT] This reiterates the mandatory record class that is implemented by a UPnP AV
MediaServer with a ScheduledRecording service.
10.3.9.3
[G UIDELINE ] A UPnP AV MediaServer shall respond to the SRS:GetAllowedValues action for the
srs:scheduledCDSObjectID property when the DataTypeID input argument is the value
A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule with either the following.
• A list of all of the CDS @id values, that are available to setup a RecordSchedule
• A value of “<allowAny></allowAny>
[ATTRIBUTES ]
[C OMMENT] The UPnP AV MediaServer uses the value “<allowAny></allowAny>” to indicate that it
allows any CDS object with the upnp:recordable property set to "1".
10.3.9.4
[G UIDELINE ] If a UPnP AV MediaServer responds to the SRS:GetAllowedValues action for the
srs:scheduledCDSObjectID property with a list of the CDS @id values, then the corresponding CDS
items shall exist and shall have the upnp:recordable property set to “1”
[ATTRIBUTES ]
10.3.9.5
[G UIDELINE ] A UPnP AV MediaServer should set the value of the dc:title property in the recorded
content CDS item with the same value as the dc:title property contained in the CDS item specified
by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline requirement is semantically equivalent to guideline 10.3.11.5 for the
cdsEPG record class.
10.3.9.6
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelName property in the
recorded content CDS item with the same value as the upnp:channelName property contained in the
CDS item specified by the srs:scheduledCDSObjectID property, when all of the following conditions
are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.11.7 for the cdsEPG record
class.
10.3.9.7
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelNr property in the recorded
content CDS item with the same value as the upnp:channelNr property contained in the CDS item
specified by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.11.8 for the cdsEPG record
class.
10.3.9.8
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:genre property in the recorded
content CDS item with the same value as the upnp:genre property contained in the CDS item
specified by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.11.9 for the cdsEPG record
class.
10.3.9.9
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelID and
upnp:channelID@type properties in the recorded content CDS item with the same values as the
upnp:channelID and upnp:channelID@type properties contained in the CDS item specified by the
srs:scheduledCDSObjectID property, when all of the following conditions are met.
10.3.9.10
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:scheduledStartTime property in the
recorded content CDS item with the same value as the srs:scheduledStartDateTime property
contained in the recordSchedule object, when all of the following conditions are met.
[C OMMENT] This value is not necessarily the actual start time of the recording, that value would be
contained in the dc:date property.
s) This guideline is semantically equivalent to guidelines 10.3.10.6 and 10.3.11.11 for the Manual
and cdsEPG record classes respectively.
10.3.9.11
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:scheduledEndTime property in the
recorded content CDS item with the same value as the sum of the srs:scheduledStartDateTime and
srs:scheduledDuration properties contained in the recordSchedule object, when all of the following
conditions are met.
[C OMMENT] This value is not necessarily the actual end time of the recording, that value can be
calculated by summing the dc:date and res@duration properties.
t) This guideline is semantically equivalent to guidelines 10.3.10.7 and 10.3.11.12 for the Manual
and cdsEPG record classes respectively.
10.3.10 MM/SR manual record class
10.3.10.1
[G ENERAL ] This defines the requirements for a UPnP AV MediaServer when implementing the
optional manual record class for the ScheduledRecording service.
10.3.10.2
[G UIDELINE ] If a UPnP AV MediaServer implements the manual record class, then it shall include
in the response the value of “OBJECT.RECORDSCHEDULE.DIRECT.MANUAL” to the
SRS:GetAllowedValues action for the srs:class property when the DataTypeID input argument is
the value A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule.
[ATTRIBUTES ]
10.3.10.3
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the manual record class as defined in
guideline 10.3.10.2, then a UPnP AV MediaServer shall respond to the SRS:GetAllowedValues
action for the srs:scheduledChannelID property when the DataTypeID input argument is the value
A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule with either of the
following.
• A list of all of the CDS channelID values, that are available to setup a RecordSchedule.
• A value of “<allowAny></allowAny>”.
[ATTRIBUTES ]
[C OMMENT] The UPnP AV MediaServer uses the value “<allowAny></allowAny>” to indicate that it
allows any upnp:channelID value obtained from a Tuner channel item with the upnp:recordable
property set to "1".
10.3.10.4
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the manual record class as defined in
guideline requirement 10.3.10.2 and responds to the SRS:GetAllowedValues action for the
srs:scheduledChannelID property with a list of the channelID values, then the corresponding CDS
items containing those upnp:channelID properties shall have the upnp:recordable property set to
“1”.
[ATTRIBUTES ]
29341-4-14
10.3.10.5
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelID and
upnp:channelID@type properties in the recorded content CDS item with the same values as the
srs:scheduledChannelID and srs:scheduledChannelID@type properties contained in the
recordSchedule object, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guidelines 10.3.9.9 and 10.3.11.10 for the
cdsNonEPG and cdsEPG record classes respectively.
10.3.10.6
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:scheduledStartTime property in the
recorded content CDS item with the same value as the srs:scheduledStartDateTime property
contained in the recordSchedule object, when all of the following conditions are met.
[C OMMENT] The value is not necessarily the actual start time of the recording, that value would be
contained in the dc:date property.
[C OMMENT] This value is not necessarily the actual end time of the recording, that value can be
calculated by summing the dc:date and res@duration properties.
10.3.11.2
[G UIDELINE ] If a UPnP AV MediaServer implements the cdsEPG record class as defined in
guidelines 10.3.11.3 to 10.3.11.5 respectively, then it shall implement the EPG Server Device
Option, as defined in 10.5.2.3, by including a <Feature> element with the Feature@name attribute
equal to “EPG” in the FeatureList output argument in response to the CDS:GetFeatureList action.
[ATTRIBUTES ]
10.3.11.3
[G UIDELINE ] If a UPnP AV MediaServer implements the cdsEPG record class, then it shall respond
with the value of “OBJECT.RECORDSCHEDULE.DIRECT.CDSEPG” to the SRS:GetAllowedValues
action for the srs:class property when the DataTypeID input argument is the value
A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule.
[ATTRIBUTES ]
10.3.11.4
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the cdsEPG record class as defined
in guideline 10.3.11.3, then a UPnP AV MediaServer shall respond to the SRS:GetAllowedValues
action for the srs:scheduledCDSObjectID property when the DataTypeID input argument is the
value A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule with either of the
following.
• A list of all of the CDS @id values, that are available to setup a recordSchedule.
• A value of “<allowAny></allowAny>”.
[ATTRIBUTES ]
[C OMMENT] The UPnP AV MediaServer uses the value “<allowAny></allowAny>” to indicate that it
allows any CDS object with the upnp:class property set to object.item.epgItem or its derived classes
and the upnp:recordable property set to "1".
10.3.11.5
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the cdsEPG record class as defined
in guideline 10.3.11.3 and responds to the SRS:GetAllowedValues action for the
srs:scheduledCDSObjectID property with a list of the CDS @id values, then the corresponding CDS
items shall exist, shall have the upnp:class property set to object.item.epgItem or its derived
classes, and shall have the upnp:recordable property set to “1”.
[ATTRIBUTES ]
10.3.11.6
[G UIDELINE ] A UPnP AV MediaServer should set the value of the dc:title property in the recorded
content CDS item with the same value as the dc:title property contained in the CDS item specified
by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.9.5 for the cdsNonEPG
record class.
10.3.11.7
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelName property in the
recorded content CDS item with the same value as the upnp:channelName property contained in the
CDS item specified by the srs:scheduledCDSObjectID property, when all of the following conditions
are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.9.6 for the cdsNonEPG
record class.
DLNA guidelines; Part 1-1: Architecture and protocols
– 385 –
10.3.11.8
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelNr property in the recorded
content CDS item with the same value as the upnp:channelNr property contained in the CDS item
specified by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.9.7 for the cdsNonEPG
record class.
10.3.11.9
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:genre property in the recorded
content CDS item with the same value as the upnp:genre property contained in the CDS item
specified by the srs:scheduledCDSObjectID property, when all of the following conditions are met.
[C OMMENT] This guideline is semantically equivalent to guideline 10.3.9.8 for the cdsNonEPG
record class.
10.3.11.10
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:channelID and
upnp:channelID@type properties in the recorded content CDS item with the same values as the
upnp:channelID and upnp:channelID@type properties contained in the CDS item specified by the
srs:scheduledCDSObjectID property, when all of the following conditions are met.
• The CDS item specified by the srs:scheduedCDSObjectID property exposes the upnp:channelID
and upnp:channelID@type properties.
[ATTRIBUTES ]
[C OMMENT] This guideline is semantically equivalent to guidelines 10.3.9.9 and 10.3.10.5 for the
cdsNonEPG and Manual record classes respectively.
10.3.11.11
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:scheduledStartTime property in the
recorded content CDS item with the same value as the upnp:scheduledStartTime property
contained in the CDS item specified by the srs:scheduledCDSObjectID property, when all of the
following conditions are met.
[C OMMENT] This value is not necessarily the actual start time of the recording, that value would be
contained in the dc:date property.
This guideline is semantically equivalent to guidelines 10.3.9.10 and 10.3.10.6 for the cdsNonEPG
and Manual record classes respectively.
10.3.11.12
[G UIDELINE ] A UPnP AV MediaServer should expose the upnp:scheduledEndTime property in the
recorded content CDS item with the same value as the upnp:scheduledEndTime property contained
in the CDS item specified by the srs:scheduledCDSObjectID property, when all of the following
conditions are met.
[C OMMENT] This value is not necessarily the actual end time of the recording, that value can be
calculated from by summing the dc:date and res@duration properties.
This guideline is semantically equivalent to guidelines 10.3.9.11 and 10.3.10.7 for the cdsNonEPG
and Manual record classes respectively.
10.3.12.2
[G UIDELINE ] If a UPnP AV MediaServer implements the query content name record class, then it
shall respond with the value of “OBJECT.RECORDSCHEDULE.QUERY.CONTENTNAME” to the
SRS:GetAllowedValues action for the srs:class property when the input parameter DataTypeID is
the value A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule.
[ATTRIBUTES ]
10.3.12.3
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the query content name record class
as defined in guideline requirement 10.3.12.2, then a UPnP AV MediaServer shall respond to the
SRS:GetAllowedValues action for the srs:matchingName property when the input parameter
DataTypeID contains the value A_ARG_TYPE_RecordScheduleParts or
A_ARG_TYPE_RecordSchedule with the following:
• A value of “<allowAny></allowAny>”
[ATTRIBUTES ]
10.3.12.4
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the query content name record class
as defined in guideline requirement 10.3.12.2, then a UPnP AV MediaServer shall respond to the
SRS:GetAllowedValues action for the srs:matchingName@type property when the input parameter
DataTypeID contains the value A_ARG_TYPE_RecordScheduleParts or
A_ARG_TYPE_RecordSchedule with at least one of the following:
• A value of “PROGRAM”
• A value of “SERIES”
[ATTRIBUTES ]
10.3.12.5
[G UIDELINE ] A UPnP AV MediaServer should set the value of the dc:title property in the recorded
content CDS item with the title of the program recorded, when all of the following conditions are met.
[ATTRIBUTES ]
This guideline requirement is semantically equivalent to guideline requirement 10.3.13.5 for the
Query Content ID record class.
10.3.13.2
[G UIDELINE ] If a UPnP AV MediaServer implements the query content ID record class, then it shall
respond with the value of “OBJECT.RECORDSCHEDULE.QUERY.CONTENTID” to the
SRS:GetAllowedValues action for the srs:class property when the input parameter DataTypeID is
the value A_ARG_TYPE_RecordScheduleParts or A_ARG_TYPE_RecordSchedule.
[ATTRIBUTES ]
10.3.13.3
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the query content ID record class as
defined in guideline requirement 10.3.13.2, then a UPnP AV MediaServer shall respond to the
SRS:GetAllowedValues action for the srs:matchingID property when the input parameter
DataTypeID contains the value A_ARG_TYPE_RecordScheduleParts or
A_ARG_TYPE_RecordSchedule with the following:
• A value of “<allowAny></allowAny>”
[ATTRIBUTES ]
10.3.13.4
[G UIDELINE ] If a UPnP AV MediaServer indicates support for the query content name record class
as defined in guideline requirement 10.3.13.2, then a UPnP AV MediaServer shall respond to the
SRS:GetAllowedValues action for the srs:matchingID@type property when the input parameter
DataTypeID contains the value A_ARG_TYPE_RecordScheduleParts or
A_ARG_TYPE_RecordSchedule with at least one of the following:
• A value of “SI_PROGRAMID”
• A value of “SI_SERIESID”
[ATTRIBUTES ]
10.3.13.5
[G UIDELINE ] A UPnP AV MediaServer should set the value of the dc:title property in the recorded
content CDS item with the title of the program recorded, when all of the following conditions are met.
w) This guideline is semantically equivalent to guideline 10.3.12.5 for the Query Content Name
record class.
10.3.14 MM/SR query record class and EPG
10.3.14.1
[G ENERAL ] This defines the guidelines for a UPnP AV MediaServer when implementing the
optional query contentName or contentID record classes and its interaction with the EPG Server
Device Option.
10.3.14.2
[G UIDELINE ] If a UPnP AV MediaServer implements the query contentName or query contentID
record class as defined in guideline requirements 10.3.12 and 10.3.13 respectively, then it should
implement the EPG Server Device Option, as defined 10.5.2.3, by including a <Feature> element
with the Feature@name attribute equal to “EPG” in the FeatureList output argument in response to
the CDS:GetFeatureList action
[ATTRIBUTES ]
[C OMMENT] It is also possible for a UPnP AV MediaServer to have internally maintained EPG
information that is not exposed by the CDS. In such a case this <Feature> element is not used.
10.3.14.3
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option as defined in
10.3.14.2 and returns the value of “PROGRAM” in the response to the SRS:GetAllowedValues
action for the srs:matchingName@type property as defined in 10.3.12.4, then it should expose the
upnp:programTitle property for one or more current or future EPG Program Items.
[ATTRIBUTES ]
Program Title as the match string input. The query is done by matching the upnp:programTitle
property, and that there is no way a matching EPG program item would be found if the property is
not exposed. Hence, it is strongly recommended that upnp:programTitle property be exposed.
10.3.14.4
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option as defined in
10.3.14.2 and returns the value of “SERIES” in the response to the SRS:GetAllowedValues action
for the srs:matchingName@type property as defined in 10.3.12.4, then it should expose the
upnp:seriesTitle property for one or more current or future EPG Program Items.
[ATTRIBUTES ]
10.3.14.5
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option as defined in
10.3.14.2 and returns the value of “SI_PROGRAMID” in the response to the SRS:GetAllowedValues
action for the srs:matchingID@type property as defined in 10.3.13.4, then it should expose the
upnp:programID property for one or more current or future EPG Program Items.
[ATTRIBUTES ]
10.3.14.6
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option as defined in
10.3.14.2 and returns the value of “SI_SERIESID” in the response to the SRS:GetAllowValues
action for the srs:matchingID@type property as defined 10.3.13.4, then it should expose the
upnp:seriesID property for one or more current or future EPG Program Items.
[ATTRIBUTES ]
10.3.15.2
[G UIDELINE ] If a UPnP AV MediaServer allows the ScheduledRecording control points to resolve
conflicts, then it shall use the <dlna:X_DLNACAP> element (as a child of the <device> element that
represents the UPnP AV MediaServer) in the device description document and include the
Capability ID “srs-conflict-resolution” in the element's comma-separated value list.
[ATTRIBUTES ]
[C OMMENT] DMS devices use the <dlna:X_DLNACAP> element to indicate support for SRS conflict
resolution operation. The element is a comma separated value list that indicates whether the DMS
can resolve schedule conflicts, receive uploads of images, audio-only, or audio/video content, etc.
See guideline 9.2.35.1 for the formal syntax of the <dlna:X_DLNACAP> element. A sample
description is given below.
<dlna:X_DLNACAP
xmlns:dlna="urn:schemas-dlna-org:device-1-0">image-upload,audio-upload,srs-conflict-res
olution,srs-cr-partial-recording</dlna:X_DLNACAP>
10.3.15.3
[G UIDELINE ] A UPnP AV MediaServer shall implement the SRS:GetRecordScheduleConflicts and
SRS:GetRecordTaskConflicts actions.
[ATTRIBUTES ]
[C OMMENT] Since there is guideline 10.3.16.7 that mandates the creation of conflicting
recordSchedule(s), the UPnP AV MediaServer needs to implement these two actions.
10.3.15.4
[G UIDELINE ] If a UPnP AV Media Server contains the value of “srs-conflict-resolution” in the
<dlna:X_DLNACAP> then it shall implement the following actions:
• SRS:EnableRecordSchedule;
• SRS:DisableRecordSchedule;
• SRS:DeleteRecordTask;
• SRS:EnableRecordTask;
• SRS:DisableRecordTask;
• SRS:ResetRecordTask.
[ATTRIBUTES ]
29341-4-14
10.3.15.5
[G UIDELINE ] A UPnP AV MediaServer should enable partial recording of a conflict loser
recordTask for the duration that is not conflicting with any other recordTask or a program winner for
that duration.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer should record the portions of the programs described in the
shaded regions in Figure 17.
10.3.15.6
[G UIDELINE ] If a UPnP AV MediaServer allows partial recordings as described in 10.3.15.5, then it
shall use the <dlna:X_DLNACAP> element (as a child of the <device> element that represents the
UPnP AV MediaServer) in the device description document and include the Capability ID
“srs-cr-partial-recording” in the element's comma-separated value list.
[ATTRIBUTES ]
[C OMMENT] Partial recordings can also result from other reasons, such as for example,
SRS:DisableRecordTask or SRS:DeleteRecordTask actions on a recordTask that is in “ACTIVE”
state. Those are not covered by this attribute.
DMS devices use the <dlna:X_DLNACAP> element to indicate support for SRS partial recording
operation. The element is a comma separated value list that indicates whether the DMS can create
partial recordings, receive uploads of images, audio-only, or audio/video content, etc. See guideline
9.2.35.1 for the formal syntax of the <dlna:X_DLNACAP> element. A sample description is given
below.
<dlna:X_DLNACAP
xmlns:dlna="urn:schemas-dlna-org:device-1-0">image-upload,audio-upload,srs-conflict-
resolution,srs-cr-partial-recording</dlna:X_DLNACAP>
10.3.15.7
[G UIDELINE ] A UPnP AV MediaServer that includes a value of “srs-conflict-resolution” in the
<dlna:X_DLNACAP> shall implement and expose the property srs:priority@orderedValue.
[ATTRIBUTES ]
10.3.15.8
[G UIDELINE ] When a UPnP AV MediaServer creates or modifies a recordTask and if that results in
conflict(s) with one or more recordTask(s), then the UPnP AV MediaServer should add the value
402 (Conflicting Program Winner) to the winning recordTask’s srs:taskState@infoList property.
[ATTRIBUTES ]
10.3.15.9
[G UIDELINE ] If a UPnP AV Media Server creates or modifies a recordTask and if that results in
conflict(s) with one or more recordTask(s), then the UPnP AV MediaServer shall add the value 401
(Conflicting Program Loser) to the srs:taskState@pendingErrors property of each of the losing
recordTask(s). In addition, for each of the recordTask(s) that will be partially recorded, the UPnP AV
MediaServer that includes “srs-cr-partial-recording” in <dlna:X_DLNACAP> shall add the value 450
(DLNA Conflicting Partial Program Loser) to the srs:taskState@infoList property.
[ATTRIBUTES ]
10.3.15.10
[G UIDELINE ] When a UPnP AV MediaServer creates or modifies a recordTask and if that causes
one or more active recordTask(s) to be stopped or suspended due to the conflict, then for each of
those recordTask(s) the UPnP AV MediaServer shall add the value 401 (Conflicting Program Loser)
to the srs:taskState@currentErrors property. In addition, for each of the recordTask(s) that will be
partially recorded, the UPnP AV MediaServer that includes “srs-cr-partial-recording” in
<dlna:X_DLNACAP> shall add the value 450 (DLNA Conflicting Partial Program Loser) to the
srs:taskState@infoList property.
[ATTRIBUTES ]
10.3.15.11
[G UIDELINE ] If a UPnP AV MediaServer creates or modifies a recordSchedule, it should create
recordTask object(s) from the point it has all the necessary information in a reasonable time.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The CDS object id values used to create a recordSchedule for either the cdsNonEPG
or cdsEPG record classes needs to have the upnp:recordable property set to “1”.
10.3.16.2
[G UIDELINE ] If a UPnP AV MediaServer control point sends a SRS:CreateRecordSchedule request
where the Elements input argument has the srs:class property with a value of
“OBJECT.RECORDSCHEDULE.DIRECT.MANUAL”, then the srs:scheduledChannelID property
value shall contain the upnp:channelID property value for a CDS item with the upnp:recordable
property value of “1”.
[ATTRIBUTES ]
[C OMMENT] The channelID values used to create a recordSchedule for the manual record class
needs to have the upnp:recordable property set to “1”.
10.3.16.3
[G UIDELINE ] A UPnP AV MediaServer ScheduledRecording service shall return a success
response to a SRS:CreateRecordSchedule request when the Elements input argument satisfies the
following conditions.
[ATTRIBUTES ]
10.3.16.4
[G UIDELINE ] A UPnP AV MediaServer ScheduledRecording service shall return a success
response to a SRS:CreateRecordSchedule request when the Elements input argument satisfies the
following conditions.
DLNA guidelines; Part 1-1: Architecture and protocols
– 395 –
[ATTRIBUTES ]
10.3.16.5
[G UIDELINE ] If a UPnP AV MediaServer receives a SRS:CreateRecordSchedule action in which
the Elements input argument is consistent with the set of allowed values returned by the
SRS:GetAllowedValues action, then it may respond with 703 (Invalid Value) to indicate that the
UPnP AV MediaServer is unable to create a recordSchedule using the requested input values.
[ATTRIBUTES ]
[C OMMENT] The allowed values description returned by the SRS:GetAllowedValues action is static
and does not reflect the internal real time constraints of the UPnP AV MediaServer. The UPnP AV
Datastructure Template (AVDT) description cannot completely describe the semantics of a property.
A UPnP AV MediaServer and a ScheduledRecording control point need to understand this
limitation.
10.3.16.6
[G UIDELINE ] If a UPnP AV MediaServer responds to a SRS:CreateRecordSchedule request with a
UPnP AV error code, then the UPnP AV MediaServer should use a localized, human-readable error
message in the <errorDescription> element of the SOAP response.
[ATTRIBUTES ]
[C OMMENT] The Elements input argument is an XML document and complex. Error description is
helpful to identify which property generated the error response.
10.3.16.7
[G UIDELINE ] A UPnP AV MediaServer shall not respond to SRS:CreateRecordSchedule request
with 730 (Conflict).
[ATTRIBUTES ]
10.3.16.8
[G UIDELINE ] A UPnP AV MediaServer shall create a new recordSchedule and its associated
recordTask(s) as per UPnP SRS priority model 2.8 of [ISO/IEC 29341-4-14].
[ATTRIBUTES ]
10.3.16.9
[G UIDELINE ] If a UPnP AV MediaServer implements the srs:priority@orderedValue, then it shall
implement the additional priority model as described in the UPnP SRS priority model for
orderedPriority in 2.8.2 of [ISO/IEC 29341-4-14].
[ATTRIBUTES ]
10.3.16.10
[G UIDELINE ] If a UPnP AV MediaServer creates a recordSchedule in response to a
SRS:CreateRecordSchedule request, it shall set new conflict winning and losing recordTask(s) as
per UPnP priority model.
[ATTRIBUTES ]
[C OMMENT] The identification of the newly set conflict winning and losing recordTask(s) are
described in guideline requirements 10.3.15.3 and 10.3.15.4.
10.3.17.2
[G UIDELINE ] If a UPnP AV MediaServer creates a recordSchedule in response to the
SRS:CreateRecordSchedule request, then any supported properties specified in the Elements input
argument shall have the same values in the Result output argument.
[ATTRIBUTES ]
[C OMMENT] This guideline reiterates the behavior described in 2.6.7.1.3 of ISO/IEC 29341-4-14.
10.3.17.3
[G UIDELINE ] A UPnP AV MediaServer may adjust the values of the following properties of the
recordSchedule:
• srs:scheduledStartDateTime
• srs:scheduledDuration
after the UPnP AV MediaServer response to the SRS:CreateRecordSchedule request has been
sent and a recordSchedule object has been created by the UPnP AV MediaServer.
[ATTRIBUTES ]
10.3.17.4
[G UIDELINE ] If a UPnP AV MediaServer adjusts the srs:scheduledStateDateTime or
srs:scheduledDuration property values as defined in 10.3.17.3, then any adjustment shall be by a
maximum of one minute.
[ATTRIBUTES ]
10.3.17.5
[G UIDELINE ] A UPnP AV MediaServer may adjust the value of the following properties of a
recordTask to a value that is different from that of the parent recordSchedule object.
• srs:taskStartDateTime
• srs:taskDuration
[ATTRIBUTES ]
10.3.17.6
[G UIDELINE ] If a UPnP AV MediaServer creates a recorded content based on a recordTask and
succeeds the recording of the recordTask, then the actual recorded start date and time and duration
of the recorded content (i.e. upnp:recordedStartDateTime and upnp:recordedDuration properties of
the resulting CDS object) may be different from the actual scheduled start date and time and
duration (i.e. srs:taskStartDateTime and srs:taskDuration properties) of the recordTask.
[ATTRIBUTES ]
[C OMMENT] As described in 2.2.2.22 and 2.2.2.25 of ISO/IEC 29341-4-14, the actual start date and
time and duration of the recordTask may include any device specific latencies of record startup
and/or teardown. A ScheduledRecording control point may not be able to retrieve the latencies from
any properties of the recordTask.
10.3.17.7
[G UIDELINE ] A UPnP AV MediaServer should start the recording at or before the value of
srs:taskStartDateTime of a recordTask and should stop the recording at or after the scheduled end
time of the recordTask.
[ATTRIBUTES ]
[C OMMENT] The scheduled end time of the recordTask is the result of combination of
srs:taskStartDateTime and srs:taskDuration of the recordTask.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
10.3.19.2
[G UIDELINE ] If a UPnP AV MediaServer that does not include the value of “srs-conflict-resolution”
in the <dlna:X_DLNACAP> cannot ensure that all the intended recordTask(s) are deleted within
27 s in response to the SRS:DeleteRecordSchedule request then it should respond with 720
(cannot process the request).
[ATTRIBUTES ]
UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in order to have
a consistent behavior, the UPnP AV MediaServer needs to return this error within 27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer can take a long time to disable all intended recordTask(s),
but the UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5). So, in order
to ensure a consistent UPnP AV MediaServer behavior, a status response from the UPnP AV
MediaServer within 30 s is useful for the UPnP control point.
[ATTRIBUTES ]
29341-4-14
[C OMMENT] A UPnP control point may terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
[ATTRIBUTES ]
29341-4-14
[C OMMENT] A UPnP control point can terminate the TCP connection after 30 s (see 9.2.9.5), so in
order to have a consistent behavior, the UPnP AV MediaServer needs to return this error within
27 s.
10.3.28.2
[G UIDELINE ] A UPnP AV MediaServer may implement Open-end Recording.
[ATTRIBUTES ]
10.3.28.3
[G UIDELINE ] If a UPnP AV MediaServer implements Open-end Recording, then the UPnP AV
MediaServer shall implement Open-end Recording for at least one of the following record classes:
• OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG
• OBJECT.RECORDSCHEDULE.DIRECT.MANUAL
[ATTRIBUTES ]
10.3.28.4
[G UIDELINE ] The UPnP AV MediaServer shall not implement Open-end Recording for record
classes other than the following:
• OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG
• OBJECT.RECORDSCHEDULE.DIRECT.MANUAL
[ATTRIBUTES ]
10.3.28.5
[G UIDELINE ] If a UPnP AV MediaServer implements Open-end Recording, it shall include the value
of dlna:openDuration in response to the SRS:GetPropertyList action when the DataTypeID input
argument is the value A_ARG_TYPE_RecordScheduleParts, A_ARG_TYPE_RecordSchedule or
A_ARG_TYPE_RecordTask.
[ATTRIBUTES ]
10.3.28.6
[G UIDELINE ] If a UPnP AV endpoint includes a dlna:openDuration element in
A_ARG_TYPE_RecordScheduleParts, A_ARG_TYPE_RecordSchedule and
A_ARG_TYPE_RecordTask, then it shall use the semantics and syntax as stated in Table 31.
The value of dlna:openDuration element shall be one of the following. The default value is “0”.
[ATTRIBUTES ]
10.3.28.7
[G UIDELINE ] If a UPnP AV MediaServer implements Open-end Recording, the UPnP AV
MediaServer shall respond to the SRS:GetAllowedValues action for the dlna:openDuration property
with the PropertyInfo output argument which contains an AVDT description for dlna:openDuration
that is consistent with guidelines 10.3.28.3, 10.3.28.4, and 10.3.28.6.
[ATTRIBUTES ]
[C OMMENT] In case that the Open-end Recording is available for cdsNonEPG and manual class
recordings, the concrete examples of <field> element in the AVDT description are as follows:
<field>
<name>dlna:openDuration</name>
<dataType>xsd:boolean</dataType>
<allowedValueDescriptor>
<defaultValue>0</defaultValue>
<dependentField>
<name>srs:class</name>
<valueList>
<value>OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG</value>
<value>OBJECT.RECORDSCHEDULE.DIRECT.MANUAL</value>
</valueList>
</dependentField>
<allowedValueList>
<allowedValue>0</allowedValue>
<allowedValue>1</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
<field>
<name>dlna:openDuration</name>
<dataType>xsd:boolean</dataType>
<allowedValueDescriptor>
<minCount>1</minCount>
<dependentField>
<name>srs:class</name>
<valueList>
<value>OBJECT.RECORDSCHEDULE.DIRECT.CDSNONEPG</value>
<value>OBJECT.RECORDSCHEDULE.DIRECT.MANUAL</value>
</valueList>
</dependentField>
<allowedValueList>
<allowedValue>0</allowedValue>
<allowedValue>1</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
<field>
<name>dlna:openDuration</name>
<dataType>xsd:boolean</dataType>
<allowedValueDescriptor>
<minCount>1</minCount>
<allowedValueList>
<allowedValue>0</allowedValue>
<allowedValue>1</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
10.3.28.8
[G UIDELINE ] If a UPnP AV MediaServer control point creates a recordSchedule in which the
dlna:openDuration property has a value of “1” , then it shall specify “P00:00:00” as the value of the
srs:scheduledDuration element in the request of SRS:CreateRecordSchedule action.
[ATTRIBUTES ]
10.3.28.9
[G UIDELINE ] If a UPnP AV MediaServer implements Open-end Recording, the UPnP AV
MediaServer shall return a success response to a SRS:CreateRecordSchedule request when the
Elements input argument satisfies the following conditions.
[ATTRIBUTES ]
10.3.28.10
[G UIDELINE ] If a UPnP AV MediaServer creates a recordTask based on a recordSchedule in which
the dlna:openDuration property has a value of “1”, the value of srs:taskDuration property of the
recordTask shall be “P00:00:00” until the UPnP AV MediaServer determines the exact duration.
[ATTRIBUTES ]
10.3.29.2
[G UIDELINE ] A UPnP AV MediaServer may accept dlna:desiredPN as an element in
A_ARG_TYPE_RecordScheduleParts for media format specified recording. The semantics and
syntax of dlna:desiredPN element is defined in 10.3.29.4.
[ATTRIBUTES ]
[C OMMENT] DLNA introduces optional media format specified recording mechanism in this
requirement. If a UPnP AV MediaServer control point uses this mechanism, then it can improve the
playback of the recorded contents with its supported DLNA Media Format Profile.
10.3.29.3
[G UIDELINE ] If a UPnP AV MediaServer accepts dlna:desiredPN element in
A_ARG_TYPE_RecordScheduleParts, then it shall implement dlna:PN as an element in
A_ARG_TYPE_RecordTask state variable for media format specified recording. The semantics and
syntax of dlna:PN element is defined in 10.3.29.6.
[ATTRIBUTES ]
10.3.29.4
[G UIDELINE ] If a UPnP AV MediaServer or UPnP AV MediaServer control point includes a
dlna:desiredPN element in A_ARG_TYPE_RecordScheduleParts, A_ARG_TYPE_RecordSchedule
or A_ARG_TYPE_RecordTask, then it shall use the following semantics and syntax.
In addition, the DLNA Media Format Profile shall omit the DLNA Link Protection prefix, e.g. “DTCP_”
for DTCP-IP and “WMDRM_” for WMDRM-ND.
The prefix for dlna:desiredPN shall be "dlna" and the namespace shall be
“urn:schemas-dlna-org:metadata-1-0/”.
[ATTRIBUTES ]
• <dlna:desiredPN>MPEG_TS_JP_T</dlna:desiredPN>
• <dlna:desiredPN>AUTO</dlna:desiredPN>
• <dlna:desiredPN> MPEG_TS_JP_T,MPEG_PS_NTSC,AUTO</dlna:desiredPN>
10.3.29.5
[G UIDELINE ] A UPnP AV MediaServer shall accept the value “AUTO” for the dlna:desiredPN
element.
[ATTRIBUTES ]
[C OMMENT] The value and semantics for “AUTO” needs to be implemented by a UPnP AV
MediaServer.
10.3.29.6
[G UIDELINE ] If a UPnP AV MediaServer includes a dlna:PN element in A_ARG_TYPE_RecordTask,
then it shall use the following semantics and syntax.
The value of dlna:PN element shall be one DLNA Media Format Profile which will be used the
recording. When the recordTask is in the “IDLE” phase, this property shall contain a best-known
estimate of DLNA Media Format Profile for the recording. When the recordTask is in the “ACTIVE”
or “DONE” phase, this property shall contain one of the DLNA Media Format Profiles supported by
the UPnP AV MediaServer for the actual recording.
In addition, the property value shall not include any profile that has the DLNA Link Protection prefix,
e.g. “DTCP_” for DTCP-IP and “WMDRM_” for WMDRM-ND.
[ATTRIBUTES ]
[C OMMENT] “AUTO” is not allowed for the value of this element. An example usage for the dlna:PN
element would be as follows:
• <dlna:PN>MPEG_PS_NTSC</dlna:PN>
10.3.29.7
[G UIDELINE ] If a UPnP AV MediaServer control point does not specify DLNA Media Format
Profile(s), then it shall omit a dlna:desiredPN element or specify only “AUTO” as the value of the
dlna:desiredPN element in the request of SRS:CreateRecordSchedule action.
[ATTRIBUTES ]
10.3.29.8
[G UIDELINE ] If a UPnP AV MediaServer control point requests to record a content using one DLNA
Media Format Profile from the CSV list of the dlna:desiredPN element, then it shall not include
“AUTO” in the CSV list of dlna:desiredPN element on the request of SRS:CreateRecordSchedule
action.
[ATTRIBUTES ]
[C OMMENT] This guideline enables a UPnP AV MediaServer control point to request to record a
content using the DLNA Media Format Profile which it specified on the request of
SRS:CreateRecordSchedule action.
10.3.29.9
[G UIDELINE ] If a UPnP AV MediaServer accepts dlna:desiredPN element, then it shall create one
or more recordTask(s) with dlna:PN element regardless of whether the UPnP AV MediaServer
control point specifies the dlna:desiredPN element or not.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer control point can retrieve the selected DLNA Media Format
Profile for the recording via the response of SRS:BrowseRecordTasks action which has the dlna:PN
element in advance.
10.3.29.10
[G UIDELINE ] If a UPnP AV MediaServer accepts a dlna:desiredPN element, then it shall adhere to
the following rules for selecting a DLNA Media Format Profile for a dlna:PN element and a level of
recording quality for a srs:recordQuality element.
• If a UPnP AV MediaServer control point omits dlna:desiredPN element or specifies only “AUTO”
in the dlna:desiredPN element, then the UPnP AV MediaServer shall select the acceptable and
most preferable level of recording quality from CSV list of a srs:desiredRecordQuality element
and the corresponding DLNA Media Format Profile.
• If there are some acceptable combinations that the selected value of dlna:desiredPN is not
“AUTO”, then the UPnP AV MediaServer shall select the acceptable and the best combination of
level of recording quality from the CSV list of the srs:desiredRecordQuality element and DLNA
Media Format Profile from the CSV list of dlna:desiredPN element with an acceptable and most
preferable DLNA Media Format Profile.
• If a UPnP AV MediaServer control point doesn’t include “AUTO” in a dlna:desiredPN element
and there is no acceptable combination, then the UPnP AV MediaServer shall select the
acceptable and most preferable specified DLNA Media Format Profile from the CSV list of
a dlna:desiredPN element and the corresponding level of recording quality from CSV list of
srs:desiredRecordQuality.
• If a UPnP AV MediaServer control point omits a srs:desiredRecordQuality element or specifies
only “AUTO” in the srs:desiredRecordQuality element, then the UPnP AV MediaServer shall
select the acceptable and most preferable specified DLNA Media Format Profile from the CSV
list of a dlna:desiredPN element and the corresponding level of recording quality.
[ATTRIBUTES ]
[C OMMENT] This requirement for a UPnP AV MediaServer provides selection criteria of recording
quality and the DLNA Media Format Profile that a UPnP AV MediaServer control point specified.
In this guideline, there are four criteria according to the following combination of specified recording
qualities and DLNA Media Format Profiles.
[ATTRIBUTES ]
10.3.29.12
[G UIDELINE ] If a UPnP AV MediaServer implements dlna:PN property, it shall include the value of
dlna:PN in response to the SRS:GetPropertyList action when the DataTypeID input argument is the
value A_ARG_TYPE_RecordTask.
[ATTRIBUTES ]
10.3.29.13
[G UIDELINE ] If a UPnP AV MediaServer implements dlna:desiredPN property, then it shall respond
to the SRS:GetAllowedValues action for the dlna:desiredPN property with the PropertyInfo output
argument which contains an AVDT description for dlna:desiredPN that is consistent with guideline
10.3.29.4. The allowed values in the AVDT description shall be listed in order of quality from highest
quality to lowest. The value “AUTO” shall always be present and appear as the last item in the list.
[ATTRIBUTES ]
[C OMMENT] DLNA does not define the ordering of quality between DLNA Media Format Profiles.
The specific ordering is vendor-dependent, and is communicated through the AVDT description. For
example, if the vendor defines the ordering of the recording quality for DLNA Media Format Profiles
to be MPEG_TS_JP_T > MPEG_PS_NTSC and the DataTypeID input argument value is
A_ARG_TYPE_RecordScheduleParts, the concrete example of the AVDT description that adheres
to this requirement is as follows:
10.3.29.14
[G UIDELINE ] If a UPnP AV MediaServer implements dlna:PN property, then it shall respond to the
SRS:GetAllowedValues action for the dlna:PN property with the PropertyInfo output argument
which contains an AVDT description for dlna:PN that is consistent with guideline requirement
10.3.29.6. The allowed values in the AVDT description shall be listed in order of quality from highest
quality to lowest.
[ATTRIBUTES ]
[C OMMENT] In case that the ordering of the recording quality of DLNA Media Format Profile is
MPEG_TS_JP_T > MPEG_PS_NTSC, the concrete example of the AVDT description that adheres
to this requirement is as follows:
<field>
<name>dlna:PN</name>
<dataType maxSize="256">xsd:string</dataType>
<allowedValueDescriptor>
<minCount>1</minCount>
<allowedValueList>
<allowedValue>MPEG_TS_JP_T</allowedValue>
<allowedValue>MPEG_PS_NTSC</allowedValue>
</allowedValueList>
</allowedValueDescriptor>
</field>
</fieldTable>
</AVDT>
T1 T2 8:00PM 9:00PM T3
epgItem and recordTask
will not be deleted
before the CDS item is
CDS epgItem available over the
network & metadata has
Channel been transferred
Lineup
CDS
Object
channelItem
**
CDS Mandatory Lifespan Optional Lifespan SRS Mandatory Lifespan Optional Lifespan
[ATTRIBUTES ]
10.3.30.2.2
[G UIDELINE ] If an EPG Program Item has a upnp:channelID property value which refers to a CDS
channel item, then the CDS channel item shall exist in a Tuner container.
[ATTRIBUTES ]
10.3.30.3.2
[G UIDELINE ] For the purposes of these guidelines, if the UPnP AV MediaServer does not expose
the recorded content in the CDS, then an SRS recordTask is considered “Completed” when the
srs:taskState property is set to one of the following values.
• DONE.FULL
• DONE.PARTIAL
• DONE.EMPTY
[ATTRIBUTES ]
[C OMMENT] This guideline defines the meaning of “Completed” for an SRS recordTask. The
completion of a recordTask is a key event for guidelines defining the lifespan of EPG, SRS, and
CDS objects.
10.3.30.3.3
[G UIDELINE ] For the purposes of these guidelines, if the UPnP AV MediaServer exposes the
recorded content in the CDS, an SRS recordTask is considered “Completed” when one of the
following two conditions are met.
[C OMMENT] This guideline defines the meaning of “Completed” for an SRS recordTask. The
completion of a recordTask is a key event for guidelines defining the lifespan of EPG, SRS, and
CDS objects.
10.3.30.3.4
[G UIDELINE ] A UPnP AV MediaServer shall retain the recordTask object that is in “ACTIVE” phase
until the scheduled endtime of the recordTask, regardless of whether errors, conflicts, or other
conditions that allow the recordTask to complete successfully or not.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer control points need to retrieve the current status of a
recordTask via the SRS:BrowseRecordTasks action during the expected recording time.
10.3.30.3.5
[G UIDELINE ] When a UPnP AV MediaServer receives an SRS:DeleteRecordTask action on a
recordTask, it shall delete the recordTask object. This guideline overrides the guideline 10.3.30.3.4
for the SRS:DeleteRecordTask case.
[ATTRIBUTES ]
10.3.30.3.6
[G UIDELINE ] A UPnP AV MediaServer shall retain a recordSchedule object until all its associated
recordTask objects have been deleted.
[ATTRIBUTES ]
[C OMMENT] A recordTask can only exist with a parent recordSchedule and when it is never
orphaned. The recordScheduleID property contains the value of the @id property of the
recordSchedule that generated the recordTask. A SRS:DeleteRecordSchedule action on a
recordSchedule object with one or more associated recordTask objects in the “ACTIVE” phase will
generate error 705.
10.3.30.3.7
[G UIDELINE ] A UPnP AV MediaServer should retain a recordTask after the associated recording is
completed, where “completed” is defined in 10.3.30.3.2 and 10.3.30.3.3.
[ATTRIBUTES ]
[C OMMENT] When a recordTask’s end time is reached (that is: the content is no longer available) or
DLNA guidelines; Part 1-1: Architecture and protocols
– 413 –
a fatal error is detected, the associated recording finishes. If the UPnP AV MediaServer retains a
recordTask after the associated recording finishes, the srs:taskState@phase attribute of the
recordTask has the value of “DONE”. A recordTask in which the srs:taskState@phase attribute has
the value of “DONE” may have information about a recorded content and/or error(s). Some UPnP
AV MediaServers may not be able to retain a recordTask in which the srs:taskState@phase
attribute has the value of “DONE” due to the device specific reasons. Furthermore, some UPnP AV
MediaServers may not be able to retain a recordSchedule in which the srs:scheduleState property
has the value of “COMPLETED” due to the device specific reasons.
10.3.30.3.8
[G UIDELINE ] If a UPnP AV MediaServer always retains a recordTask which has the
srs:taskState@phase attribute with a value of “DONE”, then it shall use the <dlna:X_DLNACAP>
element (as a child of the <device> element that represents the UPnP AV MediaServer) in the
device description document and include the CapabilityID “srs-rt-done-retained” in the element’s
comma-separated value list. Conversely, if a UPnP AV MediaServer does not always retain a
recordTask which has the srs:taskState@phase attribute with a value of “DONE”, it shall not include
the Capability ID “srs-rt-done-retained” in the <dlna:X_DLNACAP> element’s comma-separated
value list in the device description document.
[ATTRIBUTES ]
[C OMMENT] A UPnP MediaServer control point can understand that it may be able to retrieve the
result of a recordTask in the UPnP AV MediaServer.
10.3.30.3.9
[G UIDELINE ] If a UPnP AV MediaServer can always indicate the unsuccessful completion of a
recordTask by retaining the recordTask after the srs:scheduledEndDateTime, then it shall use the
<dlna:X_DLNACAP> element 9.2.35.1 in the device description document and include the
Capability ID “srs-rt-can-report-unsuccessful-completion” in the element’s comma-separated value
list.
[ATTRIBUTES ]
10.3.30.3.10
[G UIDELINE ] If a UPnP AV MediaServer always retains a recordTask as per 10.3.30.3.8 or
10.3.30.3.9 then it shall use the <dlna:X_DLNACAP> element (as a child of the <device> element
that represents the UPnP AV MediaServer) in the device description document and include the
capability ID and its value in the element’s comma-separated value list in the format
“srs-rt-retention-period-duration” where “srs-rt-retention-period-” is a literal string. The duration
portion shall be a ui4 value or “infinity”, indicating the number of seconds the recordTask is retained
by the device after the recording is completed or aborted. The duration portion cannot be zero.
Capability ID Description
srs-rt-retention-period-duration The UPnP AV MediaServer supports retaining
recordTask for a specific duration after “ACTIVE” state.
[ATTRIBUTES ]
<dlna:X_DLNACAP xmlns:dlna="urn:schemas-dlna-org:device-1-0">
srs-rt-retention-period-100
</dlna:X_DLNACAP>
<dlna:X_DLNACAP xmlns:dlna="urn:schemas-dlna-org:device-1-0">
srs-rt-retention-period-128
</dlna:X_DLNACAP>
<dlna:X_DLNACAP xmlns:dlna="urn:schemas-dlna-org:device-1-0">
srs-rt-retention-period-infinity
</dlna:X_DLNACAP>
10.3.30.3.11
[G UIDELINE ] If a UPnP AV MediaServer returns a <Feature> element in response to the
CDS:GetFeatureList request with the Feature@name attribute set to a value of
“DLNA.ORG_SRS_CONTENT”, then it should implement srs:recordedCDSObjectID property for
recordTask(s).
[ATTRIBUTES ]
10.3.30.3.12
[G UIDELINE ] If a UPnP AV MediaServer returns a <Feature> element in response to the
CDS:GetFeatureList request with the Feature@name attribute set to a value of
“DLNA.ORG_SRS_CONTENT”, and the srs:recordedCDSObjectID property of a recordTask exists,
then the srs:recordedCDSObjectID property shall have the value of the @id property of a CDS
object which exists in the CDS and represents the content recorded by the recordTask.
[ATTRIBUTES ]
10.3.30.3.13
[G UIDELINE ] If a UPnP AV MediaServer returns a <Feature> element in response to the
CDS:GetFeatureList request with the Feature@name attribute set to a value of
“DLNA.ORG_SRS_CONTENT”, and the srs:recordedCDSObjectID property of a recordTask exists,
then the value of srs:recordedCDSObjectID property of a recordTask should be set in 27 s after the
recordTask is created.
[ATTRIBUTES ]
10.3.30.3.14
[G UIDELINE ] A UPnP AV MediaServer may change the values of the srs:taskStartDateTime and/or
srs:taskDuration properties of a recordTask due to the updates of the associated program
information in the device internal program information source in the case of cdsEPG record class.
[ATTRIBUTES ]
[C OMMENT] A ScheduledRecording control point may be able to know the occurrence of changes
via the event notifications.
The UPnP TUNER feature allows UPnP AV MediaServers to implement one or more tuner
containers and each of these container’s CDS object ids as listed in the UPnP TUNER feature. In
the DLNA Extended Tuner these tuner containers are modeled as Channel Lineup Containers,
Presets Containers, and Virtual Tuner Containers. An Extended Tuner will contain at least one
Channel Lineup Container. The Presets Container and Virtual Tuner Containers are optional. Figure
19 illustrates an Extended Tuner and its containers.
[ATTRIBUTES ]
10.4.2.2
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option, as defined in
10.5.2.3, by including a <Feature> element with the Feature@name attribute equal to “EPG” in the
FeatureList output argument in response to the CDS:GetFeatureList action and the
ScheduledRecording Device Option, then it shall implement an Extended Tuner.
[ATTRIBUTES ]
10.4.2.3
[G UIDELINE ] If a UPnP AV MediaServer implements an Extended Tuner, then it shall implement to
ISO/IEC 29341-4-3 (i.e. UPnP AV MediaServer:2 or higher) and conform to guidelines 10.4.3 to
10.4.9.
[ATTRIBUTES ]
10.4.2.4
[G UIDELINE ] A UPnP AV MediaServer control point that interacts with a UPnP AV MediaServer
tuner, shall be able to browse CDS items for both the DLNA Basic Tuner (defined in guidelines
(10.1.4.16 through 10.1.4.23) and the DLNA Extended Tuner (defined in guidelines 10.4.3 through
10.4.5 and 10.4.7 through 10.4.8.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServers are allowed to select which DLNA Tuner (Basic or Extended)
to implement. To maintain a minimum level of interoperability a UPnP AV MediaServer control point
needs to work with both of the DLNA Tuner implementations. UPnP AV MediaServer control points
are not required to interact with Presets Containers (10.4.6) or Virtual Tuners Containers (10.4.9).
10.4.3.2
[G UIDELINE ] A UPnP AV MediaServer shall conform to all of the requirements of the TUNER
Feature defined in Clause E.2 of ISO/IEC 29341-4-12.
[ATTRIBUTES ]
[C OMMENT] The DLNA Tuner requirements are built upon the UPnP TUNER feature defined in the
ContentDirectory service of ISO/IEC 29341-4-12.
10.4.3.3
[G UIDELINE ] A UPnP AV MediaServer shall return a <Feature> element indicating the TUNER
feature is implemented in response to the CDS:GetFeatureList action.
[ATTRIBUTES ]
[C OMMENT] The TUNER feature allows a UPnP AV MediaServer control point to determine
whether a device supports the Extended Tuner functionality, and where the Channel Lineup
Containers are located in the larger ContentDirectory service Container hierarchy.
10.4.3.4
[G UIDELINE ] A UPnP AV MediaServer shall expose at least one Channel Lineup Container in the
ContentDirectory service which conforms to the requirements for Channel Lineup Containers as
defined in 10.4.3.5 to 10.4.3.10.
[ATTRIBUTES ]
[C OMMENT] Implementation of the DLNA Extended Tuner guidelines requires at least one Channel
Lineup Container be exposed by a UPnP AV MediaServer.
10.4.3.5
[G UIDELINE ] A UPnP AV MediaServer shall set the upnp:class property value of a Channel Lineup
Container to one of the following:
• object.container.channelGroup;
• object.container.channelGroup.audioChannelGroup;
• object.container.channelGroup.videoChannelGroup;
• class derived from any of the above classes.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.4.3.7
[G UIDELINE ] A UPnP AV MediaServer Channel Lineup Container should include a value for the
upnp:channelGroupName property. The value represents the user-friendly name of the Channel
Lineup Container.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 420 –
[ATTRIBUTES ]
[C OMMENT] A channel group defines a group of channels. A device that has multiple tuners can
provide multiple channel groups. Moreover, a physical tuner device can provide multiple channel
groups (for example, a set-top-box that contains a single tuner but supports three different input
connections: terrestrial, cable, and satellite).
10.4.3.8
[G UIDELINE ] A UPnP AV MediaServer Channel Lineup Container that includes a value for the
upnp:channelGroupName property shall include the upnp:channelGroupName@id property. The
upnp:channelGroupName@id property contains the ID of a channel group to differentiate it from
other channel groups implemented in a ContentDirectory service. The format of the
upnp:channelGroupName@id property is as follows:
[ATTRIBUTES ]
10.4.3.9
[G UIDELINE ] A UPnP AV MediaServer Channel Lineup Container dc:title property should be set to
the value of the upnp:channelGroupName property when included.
[ATTRIBUTES ]
[C OMMENT] The upnp:channelGroupName property contains the user-friendly name for the
Channel Lineup Container. Duplicating this value in the dc:title will provide a user-friendly (and
hopefully informative) name to UPnP MediaServer control points that do not understand the
upnp:channelGroupName property.
10.4.3.10
[G UIDELINE ] A UPnP AV MediaServer Channel Lineup Container shall contain CDS Items that are
either all streamable (Streamable Channel Object) or all non-streamable (Non-Streamable Channel
Object).
[ATTRIBUTES ]
[C OMMENT] This requirement clarifies that a Channel Lineup Container cannot contain a mixture of
both streamable and non-streamable CDS items. Non-Streamable Channel Objects in a Channel
Lineup Container would be used for Extended Tuners that do not stream their content over the
network, but provides a CDS object IDs for internal Tuner resources that can be used to setup a
Scheduled Recording with identifying channel information (cdsNonEPG record class). Optionally,
Non-Streamable Channel Objects in a Channel Lineup Container could be used for Extended
Tuners that implement Virtual Tuner Objects in a Virtual Tuner Container 10.4.9 to stream selected
channel content over the network through a single connection.
10.4.3.11
[G UIDELINE ] A UPnP AV MediaServer CDS Item (i.e. Non-Streamable Channel Objects or
Streamable Channel Objects) contained within a Channel Lineup Container shall conform to the
requirements as defined in 10.4.3.12 to 10.4.3.22.
[ATTRIBUTES ]
[C OMMENT] This defines the common requirements for CDS Items that represent available
channels whether they are non-streamble (Non-Streamable Channel Objects) or streamable
(Streamable Channel Objects).
10.4.3.12
[G UIDELINE ] A UPnP AV MediaServer shall set the upnp:class property value of a Non-Streamable
Channel Object or Streamable Channel Object to one of the following:
• object.item.videoItem.videoBroadcast;
• object.item.audioItem.audioBroadcast;
• class derived from either of the above classes.
The upnp:class value shall match the DLNA Media Class of the content carried by either the
Non-Streamable Channel Object or the Streamable Channel Object (i.e. supports content streaming)
as defined in 10.4.5 of these guidelines.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer needs to select a upnp:class value consistent with the
defined DLNA Media Classes (Audio Only or Audio Video).
10.4.3.13
[G UIDELINE ] A UPnP AV MediaServer should expose at least one upnp:channelID property for
each Non-Streamable Channel Object or Streamable Channel Object.
[ATTRIBUTES ]
Object would expose the upnp:channelID property whether the upnp:class property is
object.item.videoItem.videoBroadcast, object.item.audioItem.audioBroadcast, or their derived
classes.
10.4.3.14
[G UIDELINE ] A UPnP AV MediaServer Non-Streamable Channel Object or Streamable Channel
Object that includes a value for the upnp:channelID property shall include the
upnp:channelID@type property.
[ATTRIBUTES ]
10.4.3.15
[G UIDELINE ] If a UPnP AV MediaServer exposes a upnp:channelID property and a
upnp:channelID@type property for a Non-Streamable Channel Object or Streamable Channel
Object, then the combination of the upnp:channelID, upnp:channelID@type, and
upnp:channelID@distriNetworkID (if exposed) property values shall be unique within all the
exposed Channel Lineup Containers.
[ATTRIBUTES ]
[C OMMENT] The upnp:channelID property, together with the upnp:channelID@type and optionally
the upnp:channelID@distriNetworkID property, uniquely identifies a Non-Streamable Channel
Object or Streamable Channel Object. Per ISO/IEC 29341-14-12, when the
upnp:channelId@distriNetworkID property is exposed it needs to be exposed for every
upnp:channelID property in the CDS. Therefore uniqueness will be determined by either
upnp:channelID and upnp:channelID@type property pairs or upnp:channelID,
upnp:channelID@type, and upnp:channelID@distriNetworkID property triplets The upnp:channelID
property is used to identify a video broadcast channel within the Extended Tuner. It is also used in
the CDS Items in the EPG Server Device Option to identify the associated Non-Streamable Channel
Object or Streamable Channel Object and in the recordSchedule and recordTask objects in the
Scheduled Recording Device Option to identify the associated Non-Streamable Channel Object or
Streamable Channel Object.
10.4.3.16
[G UIDELINE ] If a UPnP AV MediaServer exposes a upnp:channelID property for a Non-Streamable
Channel Object or Streamable Channel Object, and the upnp:channelID@type property value is
either “ANALOG” or “DIGITAL”, then it should expose the upnp:channelNr property.
[ATTRIBUTES ]
[C OMMENT] This maintains compatibility with the DLNA Basic Tuner guideline 10.1.4.20.1.
10.4.3.17
[G UIDELINE ] If a UPnP AV MediaServer exposes a upnp:channelID property for a Non-Streamable
Channel Object or Streamable Channel Object, and the upnp:channelID@type property is not
“ANALOG” or “DIGITAL”, then it shall not expose the upnp:channelNr property.
[ATTRIBUTES ]
10.4.3.18
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelNr property, upnp:channelID
property, and a upnp:channelID@type property with the value of “DIGITAL” for a Non-Streamable
Channel Object or Streamable Channel Object, then the upnp:channelNr property value shall be set
to the same value as the major channel number in the upnp:channelID property.
[ATTRIBUTES ]
10.4.3.19
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelNr property, upnp:channelID
property, and a upnp:channelID@type property with the value of “ANALOG” for a Non-Streamable
Channel Object or Streamable Channel Object, then the upnp:channelNr property value shall be set
to the same value as the upnp:channelID property.
[ATTRIBUTES ]
10.4.3.20
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelID property with a value of “SI”
for the upnp:channelID@type property, then the following definitions shall apply to the value for the
upnp:channelID property.
• The <Network ID> term is a non-negative numerical value with a range of 0 to 0xFFFF. The value
is network specific and shall be represented as a decimal or hexadecimal value. The value shall
be omitted (i.e. empty string) to indicate an unknown <network ID> term.
• The <Transport Stream ID> term is a non-negative numerical value with a range of 0 to 0xFFFF.
The value is network specific and shall be represented as a decimal or hexadecimal value. The
value shall be omitted (i.e. empty string) to indicate an unknown <Transport Stream ID> term.
• The <Service ID> term is a non-negative numerical value with a range of 0 to 0xFFFF. The value
is network specific and can be represented as a decimal or hexadecimal value.
[ATTRIBUTES ]
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 424 –
[C OMMENT] This guideline provides clarification for the values contained within the
upnp:channelID property for the “SI” type that’s lacking in ISO/IEC 29341-20-12. Examples of valid
values for the upnp:channelID are as follows:
• <upnp:channelID type=”SI”>0x1234,0xFEDC,0x0102</upnp:channelID>
• <upnp:channelID type=”SI”>12345,23456,32109</upnp:channelID>
• <upnp:channelID type=”SI”>,1,0x0102</upnp:channelID>
• <upnp:channelID type=”SI>,,0x0102</upnp:channelID>
10.4.3.21
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelID property with the
upnp:channelID@type property with a value of “DLNA.ORG_FPF”, then the value of the
upnp:channelID property shall contain a CSV (Comma Separated Value List) triplet containing
values for frequency, program number, and modulation format respectively, where the frequency
value contains the channel frequency in hertz, the program number value is a 16-bit value as
defined in ISO/IEC 13818-1 and shall be represented as a decimal or hexadecimal value, and the
modulation format value contains a vendor defined string representing the modulation format being
used. Valid values for the modulation format are defined in Table 41.
[ATTRIBUTES ]
10.4.3.22
[G UIDELINE ] A UPnP AV MediaServer should implement Basic Tuner guideline requirement
10.1.4.16.6 which returns Non-Streamable Channel Objects or Streamable Channel Objects in the
order that corresponds to the up / down operation.
[ATTRIBUTES ]
[C OMMENT] The order of the <item> elements in a CDS:Browse response (without a Sort input
specified) should represent the order of an up / down “channel surfing” action to allow UPnP AV
MediaServer control points to provide this functionality.
10.4.4.2
[G UIDELINE ] If a UPnP AV MediaServer exposes Non-Streamable Channel Objects (i.e.
non-streamable), then it shall conform to guideline requirements 10.4.4.3 and 10.4.4.4.
[ATTRIBUTES ]
10.4.4.3
[G UIDELINE ] A UPnP AV MediaServer that advertises support for the TUNER Feature as defined in
10.4.3.2 through 10.4.3.4 shall not include the dlna:containerType property (10.1.4.16.4) in any
Channel Lineup Containers that contain only Non-Streamable Channel Objects.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer control points can differentiate between implementation levels
by looking for the presence or absence of the dlna:containerType property.
10.4.4.4
[G UIDELINE ] A UPnP AV MediaServer Non-Streamable Channel Object shall omit the URI value
from all the res properties.
[ATTRIBUTES ]
[C OMMENT] Since these CDS items are not streamable, a res property is not needed. But having
res properties without a URI value (a non streamable Channel Object can have multiple res
elements) can be useful by UPnP AV MediaServer control points in determining the DLNA Media
Format Profile for the Non-Streamable Channel Object by examining the res@protocolInfo
property’s DLNA.ORG_PN value in the fourth field.
10.4.5.2
[G UIDELINE ] If a UPnP AV MediaServer exposes Streamable Channel Objects, then it shall
conform to guideline requirements 10.4.5.3 to 10.4.5.8.
[ATTRIBUTES ]
10.4.5.3
[G UIDELINE ] A UPnP AV MediaServer Streamable Channel Object shall expose one or more res
properties. Each res property shall include a valid URI value.
[ATTRIBUTES ]
[C OMMENT] A Streamable Channel Object is identified as a CDS Item with one or more res
properties with a valid URI value.
10.4.5.4
[G UIDELINE ] A UPnP AV MediaServer that advertises support for the TUNER Feature as defined in
10.4.3.2 through 10.4.3.4 shall include the dlna:containerType property and conform to guideline
10.1.4.16.4 in any Channel Lineup Container that contains only Streamable Channel Objects.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer control points can differentiate between implementation levels
by looking for the presence or absence of the dlna:containerType property. This is to ensure
backwards compatibility with UPnP AV MediaServer control points that will only interoperate with
Basic Tuners.
10.4.5.5
[G UIDELINE ] A UPnP AV MediaServer implementation for a Streamable Extended Tuner shall
conform to Basic Tuner guidelines defined in 10.1.4.16 to 10.1.4.22.
[ATTRIBUTES ]
[C OMMENT] This is to ensure backwards compatibility with UPnP AV MediaServer control points
that will only interoperate with Basic Tuners. This implies that a Streamable Extended Tuner is a
superset of a Basic Tuner.
10.4.5.6
[G UIDELINE ] A UPnP AV MediaServer shall support at least one streaming connection for a
Streamable Channel Object. A UPnP AV MediaServer can refuse a connection if the underlying
broadcast source is unavailable due to resource limitations associated with other active streaming
connections or local playback operations.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer will not have sufficient resources sometimes to support
multiple streaming connections to a single Streamable Channel Object. If a UPnP AV MediaServer
cannot accept a new streaming connection it can refuse the connection as defined in the relevant
Media Transport guideline (e.g.11.4.3.5.2).
10.4.5.7
[G UIDELINE ] A UPnP AV MediaServer shall terminate all streaming connections if the channel of
the underlying broadcast source changes and is no longer represented by the Streamable Channel
Object.
[ATTRIBUTES ]
10.4.5.8
[G UIDELINE ] If a UPnP AV MediaServer implements a “time shift buffer” or similar feature on the
broadcast source associated with a Streamable Channel Object, then this buffer should be exposed
using the DLNA UCDAM model.
[ATTRIBUTES ]
[C OMMENT] The DLNA UCDAM buffer model is designed to allow a UPnP AV MediaServer control
point to interoperate with “time shift buffers” and similar features. Vendors should pay particular
attention to guidelines in 10.1.3.33 regarding the UCDAM s 0 boundary increasing, and guideline in
10.1.3.34 describing the UCDAM s N boundary increasing requirements.
10.4.6.2
[G UIDELINE ] A UPnP AV MediaServer may expose a Presets Container.
[ATTRIBUTES ]
10.4.6.3
[G UIDELINE ] If a UPnP AV MediaServer exposes a Presets Container, then it shall conform to the
guidelines in 10.4.6.4 to 10.4.6.10.
[ATTRIBUTES ]
10.4.6.4
[G UIDELINE ] A UPnP AV MediaServer shall set the upnp:class property value of a Presets
Container to one of the following:
• object.container.channelGroup;
• object.container.channelGroup.audioChannelGroup;
• object.container.channelGroup.videoChannelGroup;
• class derived from any of the above classes.
DLNA guidelines; Part 1-1: Architecture and protocols
– 429 –
[ATTRIBUTES ]
10.4.6.5
[G UIDELINE ] A UPnP AV MediaServer Presets Container that contains @refID properties to CDS
Items (10.4.6.10) that are both audioBroadcast and videoBroadcast items shall set the upnp:class
property value to object.container.channelGroup or a derived class of
object.container.channelGroup.
[ATTRIBUTES ]
10.4.6.6
[G UIDELINE ] A UPnP AV MediaServer Presets Container shall include a value for the
upnp:channelGroupName property.
[ATTRIBUTES ]
[C OMMENT] A channel group defines a group of channels. A device that has multiple tuners may
provide multiple channel groups. Moreover, a physical tuner device may provide multiple channel
groups (for example, a set-top-box that contains a single tuner, but supports three different input
connections: terrestrial, cable, and satellite). Note that this mandates a similar requirement for
Channel Lineup Container. The upnp:channelGroupName property value represents the
user-friendly name of the Presets Container, as decribed in B.9.1 of ISO/IEC 29341-4-12.
10.4.6.7
[G UIDELINE ] A UPnP AV MediaServer Presets Container shall include the
upnp:channelGroupName@id property which shall be set to the value DLNA.ORG_ Presets for
Presets Containers.
[ATTRIBUTES ]
[C OMMENT] The value “DLNA.ORG_ Presets” identifies the channelGroup container as a Presets
Container to UPnP AV MediaServer control points.
10.4.6.8
[G UIDELINE ] A UPnP AV MediaServer Presets Container dc:title property should be set to the
value of the upnp:channelGroupName property.
[ATTRIBUTES ]
[C OMMENT] The upnp:channelGroupName property contains the user-friendly name for the
Presets Container. Duplicating this value in the dc:title will provide a user-friendly (and hopefully
informative) name to UPnP MediaServer control points that do not understand the
upnp:channelGroupName property.
10.4.6.9
[G UIDELINE ] A UPnP AV MediaServer Presets Container shall not include the dlna:containerType
property (10.1.4.16.4).
[ATTRIBUTES ]
10.4.6.10
[G UIDELINE ] A UPnP AV MediaServer Presets Container shall expose a @refID property in each
CDS Item contained in a Presets Container. The @refID property shall contain a value equal to the
@id property value of a Non-Streamable Channel Object or Streamable Channel Object exposed in
the same ContentDirectory service.
[ATTRIBUTES ]
10.4.7.2
[G UIDELINE ] If a UPnP AV MediaServer implements the EPG Server Device Option, as defined in
10.5.2.3, by including a <Feature> element with the Feature@name attribute equal to “EPG” in the
FeatureList output argument in response to the CDS:GetFeatureList action, then it shall conform to
guideline requirements 10.4.7.3 and 10.4.7.4.
[ATTRIBUTES ]
10.4.7.3
[G UIDELINE ] A UPnP AV MediaServer Channel Lineup Container shall include a value for the
upnp:channelGroupName property. The value represents the user-friendly name of the Channel
Lineup Container.
[ATTRIBUTES ]
[C OMMENT] For the EPG Server Device Option, Channel Lineup Containers have to expose the
upnp:channelGroupName property.
10.4.7.4
[G UIDELINE ] A UPnP AV MediaServer shall expose at least one upnp:channelID property for each
Non-Streamable Channel Object or Streamable Channel Object.
[ATTRIBUTES ]
[C OMMENT] For the EPG Server Device Option, Non-Streamable Channel Objects and Streamable
Channel Objects have to expose the upnp:channelID property.
10.4.8.2
[G UIDELINE ] If a UPnP AV MediaServer implements the Scheduled Recording Device Option, then
it shall conform to guideline 10.4.8.3.
[ATTRIBUTES ]
10.4.8.3
[G UIDELINE ] A UPnP AV MediaServer shall implement guideline 10.4.3.13 (i.e. upnp:channelID
property) as mandatory instead of recommended.
[ATTRIBUTES ]
[C OMMENT] For the Scheduled Recording Device Option, Non-Streamable Channel Objects and
Streamable Channel Objects have to expose the upnp:channelID property.
10.4.9.2
[G UIDELINE ] A UPnP AV MediaServer may implement a Virtual Tuner as defined in guidelines
requirements 10.4.9.3 to 10.4.9.35.
[ATTRIBUTES ]
10.4.9.3
[G UIDELINE ] If a UPnP AV MediaServer implements a Virtual Tuner, then it shall conform to the
guidelines requirements 10.4.9.4 to 10.4.9.35.
[ATTRIBUTES ]
10.4.9.4
[G UIDELINE ] A UPnP AV MediaServer shall set the upnp:class property value of a Virtual Tuner
Container to one of the following:
• object.container.virtualStreamGroup;
• class derived from the above class.
[ATTRIBUTES ]
10.4.9.5
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Container shall include a value for the
upnp:channelGroupName property. The value represents the user-friendly name of the Virtual
Tuner Container.
[ATTRIBUTES ]
10.4.9.6
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Container shall include the
upnp:channelGroupName@id property which shall be set to the value DLNA.ORG_VirtualTuner for
Virtual Tuner Containers.
[ATTRIBUTES ]
[C OMMENT] The value “DLNA.ORG_VirtualTuner” identifies the UPnP container as a Virtual Tuner
Container to UPnP AV MediaServer control points.
10.4.9.7
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Container dc:title property should be set to the
value of the upnp:channelGroupName property.
[ATTRIBUTES ]
[C OMMENT] The upnp:channelGroupName property contains the user-friendly name for the Virtual
Tuner Container. Duplicating this value in the dc:title will provide a user-friendly (and hopefully
informative) name to UPnP AV MediaServer control points that do not understand the
upnp:channelGroupName property.
10.4.9.8
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Container shall not include the
dlna:containerType property (10.1.4.16.4).
[ATTRIBUTES ]
[C OMMENT] This allows UPnP AV MediaServer control points to differentiate that this is not a Basic
Tuner.
10.4.9.9
[G UIDELINE ] CDS items (Virtual Tuner Objects) as defined in guideline 10.4.9.10 contained in a
UPnP AV MediaServer Virtual Tuner Container shall be streamable through a single connection and
shall reflect in the res@protocolInfo 4th field value for the Virtual Tuner Object the content currently
being streamed over the connection as defined in 10.1.3.16.4 and 10.1.3.17.
[ATTRIBUTES ]
[C OMMENT] This requirement clarifies that a Virtual Tuner Container contains CDS items that
stream tuner channels through a single connection.
10.4.9.10
[G UIDELINE ] A UPnP AV MediaServer CDS Item (i.e. Virtual Tuner Object) contained within a
Virtual Tuner Container shall conform to the requirements as defined in 10.4.9.11 to 10.4.9.35.
[ATTRIBUTES ]
29341-4-12
[C OMMENT] This defines the requirements for a CDS Item that represents the current streamed
output of a tuner (Virtual Tuner Objects).
10.4.9.11
[G UIDELINE ] A UPnP AV MediaServer shall set the upnp:class property value of a Virtual Tuner
Object to one of the following:
• object.item.videoItem.virtualTuner;
• object.item.audioItem.virtualTuner;
• class derived from either of the above classes.
The upnp:class value shall match the DLNA Media Class of the content carried by the Virtual Tuner
Object.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer needs to select a upnp:class value consistent with the
defined DLNA Media Classes (Audio Only or Audio Video).
10.4.9.12
[G UIDELINE ] A UPnP AV MediaServer shall expose the dlna:channelGroupList property for each
Virtual Tuner Object. The value of the dlna:channelGroupList property is a CSV (Comma Separated
Value) list containing one or more upnp:channelGroup@id values, where each
upnp:channelGroup@id value corresponds to a Channel Lineup Container that the Virtual Tuner
Object can use for access to a Tuner.
[ATTRIBUTES ]
[C OMMENT] This guideline provides UPnP AV MediaServer control points a method to determine
which Channel Lineup Container(s) are associated with which Virtual Tuner Object.
10.4.9.13
[G UIDELINE ] A UPnP AV MediaServer shall expose at least one upnp:channelID property for each
Virtual Tuner Object. The upnp:channelID property value represents the channel last selected by
the Virtual Tuner Object. When more than one upnp:channelID property is exposed, they shall each
resolve to the same underlying channel, but represented differently (i.e. different
upnp:channelID@type property values as defined in 10.4.9.14).
[ATTRIBUTES ]
[C OMMENT] The values for multiple instances of the upnp:channelID property represent the same
underlying channel currently being selected.
10.4.9.14
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Object that includes a value for the
upnp:channelID property shall include the upnp:channelID@type property.
[ATTRIBUTES ]
10.4.9.15
[G UIDELINE ] If a UPnP AV MediaServer exposes more than one upnp:channelID property for a
Virtual Tuner Object then each upnp:channelID property shall have a distinct upnp:channelID@type
property value.
[ATTRIBUTES ]
[C OMMENT] Each upnp:channelID property exposed in a Virtual Tuner Object will always have
different upnp:channelID@type values.
10.4.9.16
[G UIDELINE ] If a UPnP AV MediaServer’s upnp:channelID@type property value is either “ANALOG”
or “DIGITAL” for a Virtual Tuner Object, then it should expose the upnp:channelNr property.
[ATTRIBUTES ]
10.4.9.17
[G UIDELINE ] If a UPnP AV MediaServer’s upnp:channelID@type property is not “ANALOG” or
“DIGITAL” for a Virtual Tuner Object, then it shall not expose the upnp:channelNr property.
[ATTRIBUTES ]
10.4.9.18
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelNr property, upnp:channelID
property, and a upnp:channelID@type property with the value of “DIGITAL” for a Virtual Tuner
Object, then the upnp:channelNr property value shall be set to the major channel number from that
upnp:channelID property.
[ATTRIBUTES ]
10.4.9.19
[G UIDELINE ] If a UPnP AV MediaServer exposes the upnp:channelNr property, upnp:channelID
property, and a upnp:channelID@type property with the value of “ANALOG” for a Virtual Tuner
Object, then the upnp:channelNr property value shall be set to the value of that upnp:channelID
property.
[ATTRIBUTES ]
10.4.9.20
[G UIDELINE ] A UPnP AV MediaServer should implement the DLNA defined value of
“DLNA.ORG_OBJECT_ID” for the upnp:channelID@type property as defined in 10.4.9.21.
[ATTRIBUTES ]
10.4.9.21
[G UIDELINE ] If a UPnP AV MediaServer Virtual Tuner Object exposes the upnp:channelID property
with the upnp:channelID@type property with a value of “DLNA.ORG_OBJECT_ID”, then the value
of the upnp:channelID property shall contain the @id property value of a Streamable Channel
Object as defined in guideline requirements 10.4.3.11 and 10.4.5.
[ATTRIBUTES ]
10.4.9.22
[G UIDELINE ] A UPnP AV MediaServer Virtual Tuner Object shall expose the following physical
tuner status-related properties:
• upnp:tuned;
• upnp:signalStrength;
• upnp:signalLocked.
[ATTRIBUTES ]
[C OMMENT] These UPnP properties are mandated for all Virtual Tuner Objects.
10.4.9.23
[G UIDELINE ] A UPnP AV MediaServer that exposes a Virtual Tuner Object shall implement the
CDS:X_DLNA_SelectChannel action with the following syntax:
The value of the VirtualTunerObjectID input argument shall be the object ID of a Virtural Tuner
Object.
The value of the ChannelID input argument shall be a upnp:channelID XML Fragment. See B.8.5 of
ISO/IEC 29341-20-12 for details with the exception that only a single instance is allowed (i.e. not
multi-valued). The ChannelID input argument shall be in escaped XML when used with this action.
The value of the ClientConnectionID input argument shall be a value obtained by any of the
following methods.
When the ClientConnectionID input argument is −1 the UPnP AV MediaServer control point is
initiating a new connection and requesting a unique connection ID in the ServerConnectionID output
argument in the action response. If the action succeeds the UPnP AV MediaServer shall use the
value returned in the ServerConnectionID output argument for BCM operations.
The error codes defined for this action are defined in Table 37.
This action shall be defined in the service description document using the following XML fragment:
<action>
<name> X_DLNA_SelectChannel </name>
<argumentList>
<argument>
<name>VirtualTunerObjectID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
</argument>
<argument>
<name>ChannelID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_DLNAChannelID</relatedStateVariable>
</argument>
<argument>
<name>ClientConnectionID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_DLNAConnectionID</relatedStateVariable>
</argument>
<argument>
<name>ServerConnectionID</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_DLNAConnectionID</relatedStateVariable>
</argument>
</argumentList>
</action>
[ATTRIBUTES ]
[C OMMENT] This guideline defines a new action for the UPnP AV MediaServer ContentDirectory
service. This action is implemented by servers that expose Virtual Tuner Objects. Semantic
behavior for this action is defined in 10.4.9.24 to 10.4.9.32.
Examples of valid values for the ChannelID input argument are as follows:
<upnp:channelID xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
type=”ANALOG”>5</upnp:channelID>
<upnp:channelID xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
type=”DLNA.ORG_OBJECT_ID”>TunerObj_001</upnp:channelID>
y) The values of the ClientConnectionID input argument and the ServerConnectionID output
argument allow the CDS:X_DLNA_SelectChannel action to be used as a new connection
initiator or to be associated with an existing connection.
10.4.9.24
[G UIDELINE ] A UPnP AV MediaServer control point should first verify if the Virtual Tuner Object is
currently in use in an active session with another UPnP AV MediaRenderer (e.g. dlna:peerManager
property as defined in 10.4.9.35) before executing the X_DLNA_SelectChannel action.
[ATTRIBUTES ]
[C OMMENT] This guideline provides implementation guidance for UPnP AV MediaServer control
points to not interrupt an existing session before executing the action.
10.4.9.25
[G UIDELINE ] A UPnP AV MediaServer that exposes a Virtual Tuner Object shall include the
A_ARG_TYPE_DLNAChannelID state variable in the ContentDirectory service description. This
state variable shall be defined as type information for the ChannelID input argument in the
CDS:X_DLNA_SelectChannel action.
<stateVariable sendEvents=”no”>
<name>A_ARG_TYPE_DLNAChannelID</name>
<dataType>string</dataType>
</stateVariable>
[ATTRIBUTES ]
[C OMMENT] This guideline defines a new state variable for the UPnP AV MediaServer
ContentDirectory service. This state variable is used by the new CDS:X_DLNA_SelectChannel
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 440 –
<upnp:channelID xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
type=”ANALOG”>5</upnp:channelID>
<upnp:channelID xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
type=”DLNA.ORG_OBJECT_ID”>TunerObj_001</upnp:channelID>
10.4.9.26
[G UIDELINE ] A UPnP AV MediaServer that exposes a Virtual Tuner Object shall include the
A_ARG_TYPE_DLNAConnectionID state variable in the ContentDirectory service description. This
state variable shall be defined as type information for the ClientConnectionID input argument and
the ServerConnectionID output argument in the CDS:X_DLNA_SelectChannel action.
<stateVariable sendEvents=”no”>
<name>A_ARG_TYPE_DLNAConnectionID</name>
<dataType>i4</dataType>
</stateVariable>
[ATTRIBUTES ]
[C OMMENT] This guideline defines a new state variable for the UPnP AV MediaServer
ContentDirectory service. This state variable is used by the new CDS:X_DLNA_SelectChannel
action for the ClientConnectionID input argument and ServerConnectionID output argument.
10.4.9.27
[G UIDELINE ] If a UPnP AV MediaServer has successfully executed the
CDS:X_DLNA_SelectChannel action and the content is being streamed or available to be streamed,
then it shall expose the upnp:tuned property with a value of “1” for the Virtual Tuner Object,
otherwise the value shall be “0”
[ATTRIBUTES ]
[C OMMENT] This provides UPnP AV MediaServer control points a method to determine if content
(e.g. channel) is currently being streamed or available to be streamed by the Virtual Tuner Object.
DLNA guidelines; Part 1-1: Architecture and protocols
– 441 –
10.4.9.28
[G UIDELINE ] If a UPnP AV MediaServer has successfully executed the
CDS:X_DLNA_SelectChannel action, then it should only return a success response after it has
stopped streaming content for the previously selected channel.
[ATTRIBUTES ]
[C OMMENT] This allows UPnP AV MediaServer control points to know that content from the
previously selected channel has completed streaming content to a rendering device.
If a DLNA Media Format Profile supports DIT (Discontinuity Information Table), then the DIT is
inserted into the content stream at the discontinuity point as defined in Media Format guidelines IEC
62481-2. This provides a mechanism for a UPnP AV MediaRenderer to detect a change in channel
content.
10.4.9.29
[G UIDELINE ] If a UPnP AV MediaServer control point has successfully executed the
CDS:X_DLNA_SelectChannel action, then its co-located UPnP AV MediaRenderer control point
should execute the AVT:SetAVTransportURI action with the CurrentURIMetadata input parameter
containing the updated CDS metadata of the Virtual Tuner Object resulting from the
CDS:X_DLNA_SelectChannel action to the UPnP AV MediaRenderer that is rendering the content
being streamed as defined in 10.4.9.27.
[ATTRIBUTES ]
[C OMMENT] In the 3-box system usage, the UPnP AV MediaRenderer needs to have knowledge of
the updated metadata (i.e. channelID value) when the CDS:X_DLNA_SelectChannel action is
successfully executed. The updated CDS metadata is obtained by executing a CDS:Browse action
on the Virtual Turner Object after executing the CDS:X_DLNA_SelectChannel action.
A possible implementation of a 3-box system usages scenario to achieve a channel change user
experience that is consistent with the commercial TV services offered by content service providers
is as follows: Upon a user’s request for a channel change, the UPnP AV control point (i.e. UPnP AV
MediaRenderer + UPnP AV MediaServer control point) invokes the AVT:Stop action to a UPnP AV
MediaRenderer (e.g. DMR), followed by the CDS:X_SelectChannel action to a UPnP AV
MediaServer (e.g. DMS) to tune to a new channel. After the UPnP AV MediaServer returns a
successful response, the UPnP AV control point invokes the CDS:Browse action on the Virtual
Tuner Object to obtain the updated CDS metadata, followed by invoking the
AVT:SetAVTransportURI action to the UPnP AV MediaRender with the updated content item
metadata, and then finally invokes the AVT:Play action to the UPnP AV MediaRenderer.
10.4.9.30
[G UIDELINE ] If a UPnP AV MediaServer has successfully executed the
CDS:X_DLNA_SelectChannel action, then it shall remove all instances of the upnp:channelID
property for the Virtual Tuner Object as specified in the VirtualTunerObjectID input parameter, and
it shall expose a upnp:channelID property with the value in the ChannelID input parameter.
[ATTRIBUTES ]
[C OMMENT] This exposes the new channel that has been selected in the Virtual Tuner Object.
10.4.9.31
[G UIDELINE ] If a UPnP AV MediaServer has successfully executed the
CDS:X_DLNA_SelectChannel action, then it may expose additional upnp:channelID property
values that conforms to guideline 10.4.9.13.
[ATTRIBUTES ]
10.4.9.32
[G UIDELINE ] If a UPnP AV MediaServer has successfully executed the
CDS:X_DLNA_SelectChannel action, then it shall update the res@protocolInfo 4th field value for
the Virtual Tuner Object as specified in the VirtualTunerObjectID input parameter to identify the
content for the selected channel as defined in 10.1.3.16.4 and 10.1.3.17.
[ATTRIBUTES ]
[C OMMENT] This requires the res@protocolInfo property to reflect the correct Media Format Profile
for the content on the newly selected channel as specified in the ChannelID input parameter.
10.4.9.33
[G UIDELINE ] A UPnP AV MediaServer that exposes a Virtual Tuner Object shall implement the
BCM (Basic Connection Management) feature as defined in guidelines in 10.1.5.
[ATTRIBUTES ]
[C OMMENT] This guideline requires a UPnP AV MediaServer to implement the BCM feature when
implementing Virtual Tuners.
10.4.9.34
[G UIDELINE ] A UPnP AV MediaServer that exposes the dlna:peerManager property shall have the
following definition.
• Namespace: dlna
• Property data type: xsd:string
• Multi-Value: NO
[C OMMENT] This guideline describes a new DLNA namespace property for CDS items.
10.4.9.35
[G UIDELINE ] If a UPnP AV MediaServer exposes a Virtual Tuner Object that is being used for
content transfers, then it shall expose the dlna:peerManager property with one of the following
values.
[ATTRIBUTES ]
[C OMMENT] This allows a UPnP AV MediaRenderer control point to know which device is currently
rendering the content being transferred by the Virtual Tuner Object.
[ATTRIBUTES ]
29341-14-12
10.5.2.2
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option shall
implement all mandatory requirements of the UPnP EPG Feature as defined in Clause E.1 of
ISO/IEC 29341-14-12.
[ATTRIBUTES ]
10.5.2.3
[G UIDELINE ] A UPnP AV MediaServer shall include a <Feature> element with the @name attribute
equal to “EPG” or “DLNA.ORG_EPGDataOnly” in the FeatureList output argument in response to
the CDS:GetFeatureList action. If the EPG Server Device Option is being implemented solely for
purpose of providing EPG metadata to other devices, then the Feature@name attribute shall be
“DLNA.ORG_EPGDataOnly”. Otherwise, the Feature@name attribute shall be “EPG”. In both cases
the @version attribute of the same <Feature> element shall have a value of “1”. The <Feature>
element shall include an <objectIDs> element.
[ATTRIBUTES ]
10.5.2.4
[G UIDELINE ] If a UPnP AV MediaServer exposes one or more CDS containers with a upnp:class
value of object.container.epgContainer, the object@id attribute value of the root of each EPG
subtree shall be exposed in the <objectIDs> element of the <Feature> element.
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer control points can use the objectID to initiate a query starting
from that subtree to obtain EPG data.
10.5.2.5
[G UIDELINE ] If a UPnP AV MediaServer implements the CDS:FreeFormQuery action, it shall
include a <Feature> element with the @name attribute equal to “FFQ” in the FeatureList output
argument of the CDS:GetFeatureList action. The @version attribute of the same <Feature> element
shall have a value of “1”. This <Feature> element shall contain one or more <ObjectID> elements.
Each <ObjectID> element shall contain the @id property of a CDS container which satisfies both of
the following conditions:
DLNA guidelines; Part 1-1: Architecture and protocols
– 445 –
• the CDS:FreeFormQuery action is supported for the CDS container and each of its descendant
containers;
• the CDS:FreeFormQuery action is not supported for the parent of the CDS container.
Additionally the @level attribute of each <ObjectID> element shall indicate the support level for
XQuery requests for the container represented by that <ObjectID> element as defined in 10.5.7.
[ATTRIBUTES ]
[C OMMENT] This guideline repeats the UPnP requirements for the FFQ <Feature>. In ISO/IEC
29341-20-12.
10.5.2.6
[G UIDELINE ] If a UPnP AV MediaServer exposes EPG Program items that represent channelized
content, it shall implement the DLNA Extended Tuner to expose the device’s channel lineup as
specified in 10.4.
[ATTRIBUTES ]
[C OMMENT] The channel lineup provides UPnP AV MediaServer control points with the values
which can be used to search the EPG items using the channelID property. The channels are
represented as a collection of videoBroadcastItems or audioBroadcast Items. These
videoBroadcastItems and audioBroadcast items do not need to provide a URL in their
<res>-elements. If the channelID@type of an EPG item is “NETWORK” then the channelID contains
the actual URL of the content. If the channelID@type is not “NETWORK” then channelID contains a
identifier that is resolved to a tuner item. Therefore, a device which implements the UPnP AV Media
Server EPG Device Option does not need to stream content from a physical tuner. Such a device
might not even have a physical tuner.
10.5.3.2
[G UIDELINE ] A UPnP AV MediaServer should use the same CDS Program Item (i.e. a CDS
Program Item with the same @id property) to represent an EPG event throughout the lifetime of that
EPG event, except when executing the Service Reset Procedure described in 2.3.7.1 of ISO/IEC
29341-14-12.
[ATTRIBUTES ]
EPG event and recreate a new CDS object for that same event when an update is received from an
EPG source. Such behavior makes it difficult for UPnP AV MediaServer control points to keep track
of EPG events of interest, and it is discouraged by DLNA.
10.5.3.3
[G UIDELINE ] If a UPnP AV MediaServer implements the ScheduledRecording Device Option and
indicates support for the cds EPG record class as defined in guideline 10.3.11, then it shall use the
same CDS Program Item (i.e. a CDS Program Item with the same @id property) to represent an
EPG event throughout the lifetime of that EPG event, except when executing the Service Reset
Procedure described in 2.3.7.1 of ISO/IEC 29341-14-12.
[ATTRIBUTES ]
10.5.3.4
[G UIDELINE ] If a UPnP AV MediaServer always uses the same CDS Program Item to represent an
EPG event throughout the lifetime of that EPG event (except when executing the Service Reset
Procedure described in 2.3.7.1 of ISO/IEC 29341-14-12), then it shall use the <dlna:X_DLNACAP>
element (as a child of the <device> element that represents the UPnP AV MediaServer) in the
device description document and include the Capability ID “epg-object-persistence” in the element’s
comma-separated value list.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.5.4.2
[G UIDELINE ] An EPG Controller shall implement a UPnP AV MediaServer control point for
interacting with a ContentDirectory service on a DMS or M-DMS.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that an EPG Controller Device Capability will use a UPnP
control point that controls a UPnP AV MediaServer for browsing content.
[ATTRIBUTES ]
[C OMMENT] All EPG Program Items will be derived from the object.item.epgItem base class.
10.5.5.2.2
[G UIDELINE ] If a UPnP AV MediaServer is unable to determine the DLNA Media Class to which the
Content Binary associated with the EPG Program Item conforms, it shall set the value of the
upnp:class property to object.item.epgItem.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer might not be able to determine the Media Format of the
Content Binary associated with an EPG Program Item when that EPG Program Item is initially
exposed, or even during the entire lifespan of the EPG Program Item. In that case, a UPnP AV
MediaServer will set the upnp:class value to object.item.epgItem, and will not use one of the media
format-specific derived classes. If the Media Format becomes known during the lifespan of the EPG
Program Item, the UPnP AV MediaServer will update the value of the upnp:class property as
specified in 10.5.5.2.3 and 10.5.5.2.4.
10.5.5.2.3
[G UIDELINE ] If a UPnP AV MediaServer determines that the Content Binary associated with an
EPG Program Item conforms to the DLNA AV Media Class, the value of the upnp:class property
shall be set to object.item.epgItem.videoProgram.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer will utilize the object.item.epgItem.videoProgram class for all
EPG Program Items whose associated Content Binaries conform to the DLNA AV Media Class. It is
not required that the DLNA Media Format Profile ID be exposed in the <res> element of the EPG
Program Item.
10.5.5.2.4
[G UIDELINE ] If a UPnP AV MediaServer determines that the Content Binary associated with an
EPG Program Item conforms to the DLNA Audio Only Media Class, the value of the upnp:class
property shall be set to object.item.epgItem.audioProgram.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer will utilize the object.item.epgItem.audioProgram class for all
EPG Program Items whose associated Content Binaries conform to the DLNA Audio Only Media
Class.
10.5.5.2.5
[G UIDELINE ] If a UPnP AV MediaServer determines that the Content Binary associated with an
EPG Program Item does not conform to a DLNA Media Format Profile in the AV or Audio Only Media
Classes, then it shall not expose the dlna.org_PN parameter in the 4th Field of the protocolInfo
property.
[ATTRIBUTES ]
[C OMMENT] In order to support the DLNA mission of interoperability, EPG Program Items whose
content is not currently supported by the DLNA ecosystem will not be identified as DLNA content.
10.5.5.2.6
[G UIDELINE ] If a UPnP AV MediaServer determines that the Content Binary associated with an
EPG Program Item conforms to a DLNA Media Format Profile in the AV or Audio Only Media
Classes, then it should expose the dlna.org_PN parameter in the 4th Field of the protocolInfo
property.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The value of the dc:title property will represent the program or title of the EPG Program
Item.
10.5.5.3.2
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item that does not have a DLNA
Recognized Metadata Source, the value of dc:title should be set to best represent a user-friendly
title for the contents represented by the EPG Program Item.
[ATTRIBUTES ]
10.5.5.3.3
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, the value of the dc:title
property shall be set to the value of the highest priority metadata (as listed below in order of
decreasing priority) available for that EPG Program Item in the source metadata.
• Content.ContentTitle
• ContentServiceSource.Name
• ContentService.ContentServiceMapping.Channel
• ContentService.ContentServiceMapping.URLSource
[ATTRIBUTES ]
[C OMMENT] At least one of the above-mentioned OpenEPG metadata elements will be present so
that there will always be a value available to populate the dc:title property.
10.5.5.3.4
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, the value of the dc:title
property shall be set to the value of the highest priority metadata (as listed below in order of
decreasing priority) available for that EPG Program Item in the source metadata.
• ProgramLocation.InstanceDescription.Title
• ProgramInformation.BasicDescription.Title
[ATTRIBUTES ]
[C OMMENT] At least one of the above-mentioned TV-Anytime metadata elements will be present so
that there will always be a value available to populate the dc:title property.
10.5.5.3.5
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, the value of the dc:title property
shall be set to the value of the highest priority metadata (as listed below in order of decreasing
priority) available for that EPG Program Item in the source metadata.
• short_event_descriptor.event_name
• service_descriptor.service_name
If neither the event_name nor the service_name are available, a vendor defined value shall be
assigned.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 450 –
[ATTRIBUTES ]
[C OMMENT] At least one of the above-mentioned DVB-SI metadata elements will be present so that
there will always be a value available to populate the dc:title property.
[ATTRIBUTES ]
[C OMMENT] The value of the upnp:longDescription property provides a summary or synopsis for
the EPG Program Item. If a suitable source for this property is not present in the source metadata,
this property is omitted in the EPG Program Item.
10.5.5.4.2
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item that does not have a DLNA
Recognized Metadata Source, the value of the upnp:longDescription property shall provide the most
descriptive summary of the EPG Program Item contents.
[ATTRIBUTES ]
10.5.5.4.3
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, the value of the
upnp:longDescription property shall be set to the value of the highest priority metadata (as listed
below in order of decreasing priority) available for that EPG Program Item in the source metadata.
• Content.LongDescription
• Content.ShortDescription
If neither of these metadata elements are present in the source metadata, then the
upnp:longDescription property shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
10.5.5.4.4
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, the value of the
upnp:longDescription property shall be set to the value of the highest priority metadata (as listed
below in order of decreasing priority) available for that EPG Program Item in the source metadata.
• (ProgramLocation.)InstanceDescription.Synopsis
• ProgramInformation.BasicDescription.Synopsis
DLNA guidelines; Part 1-1: Architecture and protocols
– 451 –
If neither of these metadata elements are present in the source metadata, then the
upnp:longDescription property shall be omitted from the EPG Program Item.
If multiple descriptions with different length attributes (“short”, “medium”, or “long”) exist in the
source metadata, the instance with the highest length attribute (“long” > “medium” > “short”) shall be
assigned to the upnp:longDescription property.
[ATTRIBUTES ]
10.5.5.4.5
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, the value of the
upnp:longDescription property shall be set to the value of the metadata listed below for that EPG
Program Item in the source metadata.
• short.event.descriptor.text_char
If this metadata element is not present in the source metadata, then the upnp:longDescription
property shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
[ATTRIBUTES ]
10.5.5.5.2
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item which does not have a
DLNA Recognized Metadata Source, the EPG Program Item shall provide an instance of the
dc:language property, set to the appropriate value, for each of the languages of the audio tracks of
the associated Content Binary.
[ATTRIBUTES ]
10.5.5.5.3
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the following applies (in
order of decreasing priority).
If none of these metadata elements are present in the source metadata the dc:language, then
property shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
10.5.5.5.4
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, then the following applies
(in order of decreasing priority).
If none of these metadata elements are present in the source metadata the dc:language property
shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
10.5.5.5.5
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the following applies (in
order of decreasing priority).
If none of these metadata elements are present in the source metadata the dc:language property
shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
include Content Rating information, the upnp:rating property shall be omitted from the EPG
Program Item.
[ATTRIBUTES ]
10.5.5.6.2
[G UIDELINE ] If the rating domain exposed by a metadata schema is one of the systems listed in
Annex J, then the properties shall be filled out as follows.
• If the system makes a parental rating available, and the <domain> is listed in the “Domain”
column of Annex J then the rating@type property shall be <domain>.
• If the system makes a parental rating available, the rating property shall be rating, where rating
is one of the valid ratings listed in the “Valid Ratings” column of Annex J for the appropriate
<domain>.
• If the rating specified in the system has an age equivalence, the device shall expose a second
rating@equivalentAge property with the value of age, where age is the age listed in the “Age
Equivalence” column of Annex J for the appropriate <domain>.
• If the rating also includes advice, the device should expose a rating@advice property with the
value of advice, where advice is a comma separated list of all the advice values that apply to this
rating, as listed in the “Valid Advice” column of Annex J for the appropriate <domain>.
Example:
[ATTRIBUTES ]
10.5.5.6.3
[G UIDELINE ] If there is more than one rating for an individual rating authority then only the most
restrictive rating should be exposed.
[ATTRIBUTES ]
10.5.5.6.4
[G UIDELINE ] If the rating system does not match any of the ratings systems listed in Annex J, but
the rating system can be recognized by a unique and valid ICANN domain, then the device shall
expose the rating system using the rules in 10.5.5.6.2 with a <domain> value that is a valid ICANN
domain. The values of rating, equivalentAge and advice are set to any values that are specified for
that domain, where the valid values are outside the scope of these DLNA guidelines.guidelines. The
rating@type property shall be:
[ATTRIBUTES ]
10.5.5.6.5
[G UIDELINE ] If the rating system does not match any of the ratings systems listed in Annex J, and
the rating system cannot be recognized by a unique and valid ICANN domain, then the device shall
use the value “DLNA.ORG_UNKNOWN_PR:<rating system>” as the upnp:rating@type value.
[ATTRIBUTES ]
10.5.5.6.6
[G UIDELINE ] If the value of rating@type is one of the following:
• “cbsc.ca/english”
• “cbsc.ca/french”
• “mpaa.org”
• “kbc.go.kr”
• “gio.gov.tw”
The rating and rating@advice property should be exposed as defined in ANSI/CEA-766-C.
[ATTRIBUTES ]
[C OMMENT] In order to program the V-Chip, content will maintain its CEA-766 rating. This CEA-766
rating requires that all advice fields be maintained in the EPG, so that they can be translated back
to the appropriate V-Chip bits. For more information, refer to ANSI/CEA-766-C.
10.5.5.6.7
[G UIDELINE ] If the rating authority is listed in Annex J and the <rating> property value is a valid
value in the Valid Ratings column for that domain then if the rating@equivalentAge property is
empty, the device shall use the associated Age Equivalence value from Annex J as the value of
rating@equivalentAge.
[ATTRIBUTES ]
10.5.5.6.8
[G UIDELINE ] If the rating authority is listed in Annex J and the rating@equivalentAge value is a
valid value in the Age Equivalent column for that domain then if the rating property is empty, the
device shall use the associated rating value from Annex J as the value of the rating property.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 456 –
[ATTRIBUTES ]
10.5.5.6.9
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the following applies (in
order of decreasing priority).
• Rating metadata in OpenEPG is found in three places. It may be associated with the Event, the
Content, or the Service. If rating data is found in more than one of these elements associated
with a single Event only the most specific metadata should be exposed. If there is Rating
metadata in the Event object then the Event Rating metadata shall be used. If there is no
metadata in the Event and there is Rating metadata in the Content object then the Content
object Rating metadata shall be used. If neither the Event nor the Content object has Rating
metadata then the rating metadata in the service object shall be used. Once the source of the
rating metadata has been determined by the above rules then the mapping is done according to
the following rules where <OpenEPGObject> is one of Event.EventContentAdvisory,
Content.ContentAdvisory, or
DistributionNetwork.ContentService.ContentServiceMapping.ContentAdvisory as determined
above.
• If the OpenEPG RatingAuthority metadata conforms to one of the DLNA recognized rating
authorities, in Annex J, then the upnp:rating@type property instance shall be exposed and
populated as follows. The <domain> parameter shall be set to the
<OpenEPGObject>.RatingAuthority metadata value as described in 10.5.5.6.2 through
10.5.5.6.6.
– upnp:rating@type = <domain>
• If the OpenEPG RatingAuthority metadata does not conform to one of the DLNA recognized
rating authorities but a valid ICANN domain name can be established that uniquely identifies
that rating authority, a upnp:rating@type property instance shall be exposed and the following
syntax and assignment shall be used:
– upnp:rating@type = <OpenEPGObject>.RatingAuthority + “_PR”
• If the OpenEPG RatingAuthority metadata does not conform to one of the DLNA recognized
rating authorities and no valid ICANN domain name can be established that uniquely identifies
that rating authority, a upnp:rating@type property instance shall be exposed and the following
syntax and assignment shall be used:
– upnp:rating@type = “DLNA.ORG_UNKNOWN_PR:” +
<OpenEPGObject>.RatingAuthority
• If the OpenEPG RatingAuthority metadata conforms to one of the DLNA recognized rating
authorities, in Annex J, then the upnp:rating property shall be exposed and populated as follows.
The <OpenEPGObject>.ParentalRating metadata value shall be mapped to the appropriate
Rating Value in Annex J.
– upnp:rating = mapped Rating Value
• If the OpenEPG RatingAuthority metadata does not conform to one of the DLNA recognized
rating authorities in Annex J, then the upnp:rating shall be set to the ParentalRating value
– upnp:rating =<OpenEPGObject>.ParentalRating
• If the OpenEPG <OpenEPGObject>.ContentAdvisory metadata is present and contains
MinimumAge then, a upnp:rating@ equivalentAge instance shall be exposed and assigned the
minimum age value.
– upnp:rating@equivalentAge = <OpenEPGObject>.MinimumAge
[ATTRIBUTES ]
10.5.5.6.10
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, then the following applies
(in order of decreasing priority).
• If the
tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva:Ba
sicDescription/tva:ParentalGuidance metadata is present and indicates that the Program Item
conforms to one of the DLNA recognized rating authorities listed in Annex J, then a upnp:rating
and upnp:rating@type property pair instance shall be exposed and appropriately populated: the
rating@type property shall be set to the DOMAIN value in Annex J that maps to the
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva:Ba
sicDescription/tva:ParentalGuidance/mpeg7:Region metadata value and the <rating> property
shall be set to the Annex J “Valid Ratings” value that maps to the
tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva:Ba
sicDescription/tva:ParentalGuidance.ParentalRating metadata value.
• If the TV-Anytime BasicDescription/tva:ParentalGuidance/mpeg7:ParentalRating metadata is
present and indicates that the Program Item does not conform to one of the DLNA recognized
rating authorities but a valid ICANN domain name can be established that uniquely identifies
that rating authority, then a upnp:rating and upnp:rating@type property pair instance shall be
exposed and the following syntax and assignments shall be used:
– upnp:rating =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:ParentalRating
– upnp:rating@type = <valid ICANN domain name> + “_PR”
• If the TV-Anytime BasicDescription.ParentalGuidance .ParentalRating metadata is present and
indicates that the Program Item does not conform to one of the DLNA recognized rating
authorities and no valid ICANN domain name can be established that uniquely identifies that
rating authority, then a upnp:rating and upnp:rating@type property pair instance shall be
exposed and the following syntax and assignments shall be used:
– upnp:rating =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:ParentalRating
– upnp:rating@type = “DLNA.ORG_UNKNOWN_PR:” +
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:Region
• If the TV-Anytime BasicDescription.ParentalGuidance metadata is present and contains
MinimumAge metadata and a valid ICANN domain name can be established that uniquely
identifies that rating authority, then a upnp:rating and upnp:rating@type property pair instance
shall be exposed and the following syntax and assignments shall be used:
– upnp:rating@equivalentAge =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:MinimumAge
– upnp:rating =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:MinimumAge
– upnp:rating@type = < domain name> + “_MA”
• If the TV-Anytime
tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva:Ba
sicDescription/tva:ParentalGuidance metadata is present and contains MinimumAge metadata
and indicates that the Program Item conforms to one of the DLNA recognized rating authorities
listed in Annex J, then a upnp:rating and upnp:rating@type property pair instance shall be
exposed and the following syntax and assignments shall be used:
– upnp:rating@equivalentAge =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:MinimumAge
– upnp:rating@type = <domain name> (from Annex J)
• If the TV-Anytime BasicDescription.ParentalGuidance metadata is present and contains
MinimumAge metadata and no valid ICANN domain name can be established that uniquely
identifies that rating authority, then a upnp:rating and upnp:rating@type property pair instance
shall be exposed and the following syntax and assignments shall be used:
– upnp:rating@equivalentAge =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:MinimumAge
– upnp:rating =
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:MinimumAge
– upnp:rating@type = “DLNA.ORG_UNKNOWN_MA:” +
/tva:TVAMain/tva:ProgramDescription/tva:GroupInformationTable/tva:GroupInformation/tva
:BasicDescription/tva:ParentalGuidance/mpeg7:Region
If none of these metadata elements are present in the source metadata, then the upnp:rating
property shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
10.5.5.6.11
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the following applies (in
order of decreasing priority).
• If a rating system in Annex J cannot be determined from the country code then the value shall be
used in the assignments below. Likewise, the 8-bit <Rating> code shall be used as follows:
– If the value of the <Rating> metadata is less than 16 then
• <Rating> = <Rating> + 3
• upnp:rating@equivalentAge= <Rating>
• upnp:rating@= <Rating>
• upnp:rating@type = “DLNA.ORG_UNKNOWN” + “_MA:” + <Country>
– else
• upnp:rating = “Broadcaster Defined:” + <Rating>
• upnp:rating@type = “DLNA.ORG_UNKNOWN” +”_PR:” + <Country>
If the metadata element is not present in the source metadata, then the upnp:rating property shall be
omitted from the EPG Program Item.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The upnp:channelID property is used across the SRS and EPG system usages as the
common identifier for channels.
10.5.5.7.2
[G UIDELINE ] If a UPnP AV MediaServer exposes one or more instances of the upnp:channelID
property, each shall have a value that identifies the channel source of the EPG Program Item. Each
upnp:channelID property shall include the upnp:channelID@type property. The upnp:channelID
property is multi-valued so that different formats can be used to identify a particular channel. When
multiple instances of the upnp:channelID property are exposed, they shall refer to the same channel
item in the CDS channel lineup. The value of the upnp:channelID@type property shall conform to
the guidelines in 10.5.5.7.3 to 10.5.5.7.11.
[ATTRIBUTES ]
10.5.5.7.3
[G UIDELINE ] If a UPnP AV MediaServer exposes a vendor-specific channel type, then the
upnp:channelID@type value shall incorporate a valid ICANN registered domain name that uniquely
identifies the vendor.
[ATTRIBUTES ]
10.5.5.7.4
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item with a
upnp:channelID@type value of “ANALOG”, then the value of the upnp:channelID property shall be
a positive integer.
[ATTRIBUTES ]
[C OMMENT] This enumerated type is potentially misleading as the source is not required to be an
analog broadcast source. Vendors are encouraged to use this enumerated type for any channel
items which are represented by a channel identifier consisting of a single integer.
10.5.5.7.5
[G UIDELINE ] A UPnP AV MediaServer shall not use the upnp:channelID@type value of “ANALOG”
to represent a major / minor channel number using “aliasing” (such as multiplying the major channel
number by 1 000 then adding the minor channel number). Channel numbers with a major / minor
channel number shall be exposed using the upnp:channelID@type value of “DIGITAL” as defined in
10.5.5.7.6.
[ATTRIBUTES ]
[C OMMENT] The terms analog and digital do not refer to the broadcast system. The meaning is only
distinguishing the numbering system.
10.5.5.7.6
[G UIDELINE ] If a UPnP AV Media Server exposes an EPG Program Item with a
upnp:channelID@type value of “DIGITAL”, then the value of the upnp:channelID property shall
consist of a “major” and “minor” channel number pair in the format.
[C OMMENT] Implementers need to note that UPnP utilizes a comma to separate the major and
minor channel numbers while they are often separated with a period.
10.5.5.7.7
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item with a
upnp:channelID@type value of “SI”, then the value of the upnp:channelID property shall consist of
a Service Information Triplet in the format.
• The <Network ID> term is a non-negative numerical value with a range of 0 to 0xFFFF. The value
is network specific and shall be represented as a decimal or hexadecimal value. The value shall
be omitted (i.e. empty string) to indicate an unknown <network ID> term.
• The <Transport Stream ID> term is a non-negative numerical value with a range of 0 to 0xFFFF.
The value is network specific and shall be represented as a decimal or hexadecimal value. The
value shall be omitted (i.e. empty string) to indicate an unknown <Transport Stream ID> term.
• The <Service ID> term is a non-negative numerical value with a range of 0 to 0xFFFF. The value
is network specific and can be represented as a decimal or hexadecimal value.
[ATTRIBUTES ]
[C OMMENT] This provides clarification for the values contained within the upnp:channelID property
for the “SI” type that is lacking in ISO/IEC 29341-14-12. Examples of valid values for the
upnp:channelID are as follows:
• <upnp:channelID type=”SI”>0x1234,0xFEDC,0x0102</upnp:channelID>
• <upnp:channelID type=”SI”>12345,23456,32109</upnp:channelID>
• <upnp:channelID type=”SI”>,1,0x0102</upnp:channelID>
• <upnp:channelID type=”SI>,,0x0102</upnp:channelID>
10.5.5.7.8
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item with a
upnp:channelID@type value of “NETWORK”, then the value of the upnp:channelID property shall
consist of a properly formatted URI.
[ATTRIBUTES ]
[C OMMENT] The NETWORK type is utilized for non-traditional broadcast sources which present
content to the consumer using a “channel metaphor”.
10.5.5.7.9
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the values of the
upnp:channelID and the upnp:channelID@type properties shall be obtained from the metadata as
defined below (in order of decreasing priority).
10.5.5.7.10
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, then the values of the
upnp:channelID and the upnp:channelID@type properties shall be obtained from the metadata as
defined below (in order of decreasing priority).
• If the TV ProgramLocationTable.ProgramURL is present and its value starts with the string
“dvb://”, then:
– upnp:channelID = <Network ID> + “,” + <Transport Stream ID> + “,” + <Service ID> as parsed
from the ProgramURL metadata according to ETSI TS 102 822-3 and ETSI TS 102 822-4
– upnp:channelID@type = “SI”
• If the TV ProgramLocationTable.ProgramURL is present and its value starts with the string
“PAL://”, “NTSC://”, or “SECAM://” then:
– upnp:channelID = <channel> as parsed from the ProgramURL metadata according to
ETSI TS 102 822-3 and ETSI TS 102 822-4
– upnp:channelID@type = “ANALOG”
If none of these properties are present in the source metadata the upnp:channelID property shall be
omitted for the EPG Program Item.
[ATTRIBUTES ]
10.5.5.7.11
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the value of the
upnp:channelID shall be obtained from the SDT table metadata as defined below.
10.5.5.7.12
[G UIDELINE ] If a UPnP AV MediaServer exposes a Channelized EPG Program Item, then it shall
include one or more instances of the upnp:channelID property.
[ATTRIBUTES ]
[C OMMENT] The upnp:channelID property identifies the channel through which the Program Item
will be delivered through for channelized content.
[ATTRIBUTES ]
10.5.5.8.2
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item which does not have a
DLNA Recognized Metadata Source, then the value of the upnp:channelID@distriNetworkID
property shall reflect the distribution source of the channel.
[ATTRIBUTES ]
10.5.5.8.3
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the value of the
upnp:channelID@distriNetworkID property shall be set to the value of the OpenEPG
DistributionNetwork.DistributionNetworkID metadata.
[ATTRIBUTES ]
10.5.5.8.4
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, then the
upnp:channelID@distriNetworkID property shall contain information that allows the user/application
to determine the server/service providing the content identified by the EPG metadata.
[ATTRIBUTES ]
10.5.5.8.5
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the value of the
upnp:channelID@distriNetworkID property shall be set to the network_id of the NIT table
[ATTRIBUTES ]
[ATTRIBUTES ]
10.5.5.9.2
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item which does not have a
DLNA Recognized Metadata Source, the value of the upnp:channelID@distriNetworkName
property should reflect the distribution source of the channel.
[ATTRIBUTES ]
10.5.5.9.3
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the value of the
upnp:channelID@distriNetworkName property shall be set to the value of the highest priority
metadata (as listed below in order of decreasing priority) available for the specific EPG Program
Item in the source metadata.
• DistributionNetwork.Name
• DistributionNetwork.DistributionNetworkID
[ATTRIBUTES ]
10.5.5.9.4
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the value of the
upnp:channelID@distriNetworkName property shall be set to the
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The upnp:scheduledStartTime property indicates the time the Program Item is
scheduled to start or become available. The upnp:scheduledEndTime property indicates the time
the Program Item is scheduled to end or cease to be available. The upnp:scheduledDuration
property indicates the actual duration of the program content. Control points need to examine the
upnp:scheduledStartTime@usage property to obtain the context of the time values.
10.5.5.10.2
[G UIDELINE ] If an EPG Program Item exposes the upnp:scheduledStartTime or
upnp:scheduledEndTime property, the property value shall represent local time.
[ATTRIBUTES ]
10.5.5.10.3
[G UIDELINE ] If a UPnP AV MediaServer exposes an EPG Program Item which does not have a
DLNA Recognized Metadata Source, then the values of the upnp:scheduledStartTime,
upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and upnp:scheduledDuration
properties shall be set as follows.
• If the Program Item refers to scheduled program content, then the value of the
upnp:scheduledStartTime property shall reflect the time the program content is scheduled to
start. The value of the upnp:scheduledEndTime property shall reflect the time the program
content is scheduled to end. The upnp:scheduledStartTime@usage property shall be set to
“SCHEDULED_PROGRAM”. The value of the upnp:scheduledDuration property shall reflect the
duration of the program content. One of the fields, upnp:scheduledDuration or
upnp:scheduledEndTime, could be empty. Its value can be calculated from the other field and
upnp:scheduledStartTime.
• If the Program Item refers to on-demand program content, then the value of the
upnp:scheduledStartTime property shall indicate the beginning of the time window during which
the on-demand content is available for consumption. The value of the upnp:scheduledEndTime
property shall indicate the end of the time window during which the on-demand content is
available for consumption. The upnp:scheduledStartTime@usage property shall be set to
“ON_DEMAND”. The value of the upnp:scheduledDuration property shall reflect the duration of
the program content and never the length of the time window during which the on-demand
content is available for consumption.
[ATTRIBUTES ]
10.5.5.10.4
[G UIDELINE ] If the EPG Program Item metadata source is OpenEPG, then the values of the
upnp:scheduledStartTime, upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and
upnp:scheduledDuration properties shall be set as follows.
10.5.5.10.5
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime, then the values of the
upnp:scheduledStartTime, upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and
upnp:scheduledDuration properties shall be set or omitted as follows in 10.5.5.10.6 and
10.5.5.10.7.
[ATTRIBUTES ]
10.5.5.10.6
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime and the programURL is
published with the schedule metadata and
• it is a ScheduleEvent then:
– upnp:scheduledStartTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:Schedule/tva:Schedu
leEvent/tva:PublishedStartTime
– upnp:scheduledEndTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:Schedule/tva:Schedu
leEvent/tva:PublishedEndTime
– upnp:scheduledDuration =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:Schedule/tva:Schedu
leEvent/tva:PublishedDuration
– upnp:scheduledStartTime@usage property = “SCHEDULED_PROGRAM”
• it is a BroadcastEvent then:
– upnp:scheduledStartTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:BroadcastEvent/tva:
PublishedStartTime
– upnp:scheduledEndTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:BroadcastEvent/tva:
PublishedEndTime
– upnp:scheduledDuration =
tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:BroadcastEvent/tva:P
ublishedDuration
– upnp:scheduledStartTime@usage property = “SCHEDULED_PROGRAM”
• it is a OnDemandProgram then:
– upnp:scheduledStartTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:OnDemandProgram/t
va:StartOfAvailability
– upnp:scheduledEndTime =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:OnDemandProgram/t
va:EndOfAvailability
– upnp:scheduledDuration =
/tva:TVAMain/tva:ProgramDescription/tva:ProgramLocationTable/tva:OnDemandProgram/t
va:PublishedDuration
– upnp:scheduledStartTime@usage property = “ON DEMAND”
[ATTRIBUTES ]
10.5.5.10.7
[G UIDELINE ] If the EPG Program Item metadata source is TV-Anytime and the programURL is the
result of resolving a CRID into a locator then:
• upnp:scheduledStartTime@usage =
/cr:ContentReferencingTable/cr:Result/cr:LocationsResult/cr:DecomposedLocator@mode
(scheduled or ondemand) -> upnp:scheduledStartTime@usage
– A broadcast event, which is a non-scheduled event (e.g. a news flash) is not concerned by
CRID resolution.
• upnp:scheduledStartTime =
/cr:ContentReferencingTable/cr:Result/cr:LocationsResult/cr:DecomposedLocator@start ->
• upnp:scheduledDuration =
/cr:ContentReferencingTable/cr:Result/cr:LocationsResult/cr:DecomposedLocator@duration
• upnp:scheduledEndTime =
/cr:ContentReferencingTable/cr:Result/cr:LocationsResult/cr:DecomposedLocator@end
If neither of these properties are present in the source metadata, then the upnp:scheduledStartTime,
upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and upnp:scheduledDuration
properties shall be omitted from the EPG Program Item.
[ATTRIBUTES ]
[C OMMENT] The programURL can be available from different sources. It is published with the
schedule metadata and TV-Anytime addresses three types of programmes: Broadcast events (for
instance an unscheduled news announcement), schedule events (or SCHEDULED PROGRAMME)
and on-demand programmes. The mode upnp:scheduledStartTime@usage is derived from the root
(inc. onDemand).
10.5.5.10.8
[G UIDELINE ] If the EPG Program Item metadata source is DVB-SI, then the values of the
upnp:scheduledStartTime, upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and
upnp:scheduledDuration properties shall be set as follows:
• upnp:scheduledStartTime = event.information.section.start_time
+time_offset_section.local_time
• upnp:scheduledStartTime@usage = “SCHEDULED_PROGRAM”
• upnp:scheduledEndTime = event.information.section.start_time +
event.information.section.duration +time_offset_section.local_time
• upnp:scheduledDuration = event.information.section.duration
If one or more of the properties are not present in the source metadata, then the
upnp:scheduledStartTime, upnp:scheduledStartTime@usage, upnp:scheduledEndTime, and
upnp:scheduledDuration properties shall be omitted for the EPG Program Item.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The upnp:scheduledStartTime property will be expressed in local time including the
DLNA guidelines; Part 1-1: Architecture and protocols
– 469 –
indication of Daylight Saving Time. When an EPG Server is in a location where Daylight Saving
Time is not observed, this property is still needed and all times will indicate Standard Time.
[ATTRIBUTES ]
10.5.6.2
[G UIDELINE ] For foreign metadata from TVAnytime the @type property of a::fmEmbeddedXML
property in a CDS Event object shall have the value of “tv-anytime.org_1” to indicate TV-Anytime
based metadata.
[ATTRIBUTES ]
10.5.6.3
[G UIDELINE ] If the value of the @type property of a::fmEmbeddedXML property in a CDS Event
object is “tv-anytime.org_1”, then the::TVAMain property shall include a::ProgramInformationTable
property which shall include a BasicDescription property for the current EPG Item. TV-Anytime
information from different tables shall be integrated into a single <TVAMain> element.
[ATTRIBUTES ]
<upnp:foreignMetadata type="tv-anytime.org_1">
<upnp:fmId></upnp:fmId>
<upnp:fmClass></upnp:fmClass>
<upnp:fmProvider>dlna.examples.com</upnp:fmProvider>
<upnp:fmBody xmlFlag="1" mimeType="text/xml">
<upnp:fmEmbeddedXML>
<TVAMain xmlns='urn:tva:metadata:2005' xmlns:mpeg7='urn:tva:mpeg7:2005'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xml:lang='en'>
<ProgramDescription>
<ProgramInformationTable>
<ProgramInformation programId="crid://dlna.examples.com
/8730311156">
<BasicDescription>
<Title><Hot tech></Title>
<Synopsis length="short">Popular science program explaining the
wonders of DLNA home networks.</Synopsis>
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 470 –
<Genre href="urn:tva:metadata:cs:IntentionCS:2004:1.2">
<Name>Information</Name>
</Genre>
</BasicDescription>
<AVAttributes>
<AudioAttributes>
<NumOfChannels>2</NumOfChannels>
</AudioAttributes>
<VideoAttributes>
<AspectRatio>16:9</AspectRatio>
</VideoAttributes>
</AVAttributes>
</ProgramInformation>
</ProgramInformationTable>
<ProgramLocationTable>
<Schedule serviceIDRef='HotSci' start='2007-06-01T00:00:00Z'
end='2007-06-01T23:59:59Z'>
<ScheduleEvent>
<Program crid="crid://dlna.examples.com/8730311156"></Program>
<ProgramURL>dvb://277f.ff00.2250;787@2007-06-01T21:00:00Z/PT01H45M</ProgramURL>
<PublishedStartTime>2007-061T21:00:00Z</PublishedStartTime>
<PublishedDuration>PT01H45M00S</PublishedDuration>
</ScheduleEvent>
</Schedule>
</ProgramLocationTable>
</ProgramDescription>
</TVAMain>
</upnp:fmEmbeddedXML>
</upnp:fmBody>
</upnp:foreignMetadata>
10.5.6.4
[G UIDELINE ] If the value of the @type property of a::fmEmbeddedXML property in a CDS Event
object is “tv-anytime.org_1”, then the <ProgramDescription> element of::TVAMain property may
contain other tables having with information related to the current EPG Item (such as the
ProgramLocationTable).
[ATTRIBUTES ]
10.5.6.5
[G UIDELINE ] For foreign metadata from OpenEPG the @type property of a::fmEmbeddedXML
property in a CDS Event object shall have the value of “openepg.org_v1” to indicate
OpenEPG-based metadata.
[ATTRIBUTES ]
queries using the CDS:FreeFromQuery() action. A subset of the XQuery language is defined to
allow for efficient implementations.
10.5.7.2
[G UIDELINE ] A UPnP AV MediaServer implementing the EPG Server Device Option shall
implement the CDS:FreeFormQuery action.
[ATTRIBUTES ]
10.5.7.3
[G UIDELINE ] If the full XQuery language is supported for a certain sub-tree, its ObjectID@level
attribute as defined in 10.5.2.5 shall be set to “0”. If a subset of XQuery is supported, the
ObjectID@level shall be a comma separated value list containing values that identify the subset(s)
being supported. The comma separated value list shall not contain the value “0”. The first value in
the comma separated value list shall be “DLNA_EPG”.
[ATTRIBUTES ]
[C OMMENT] Control points can use the ObjectID@level to check what level of XQuery complexity
this server can handle. Vendors can define additional values to indicate support of additional
XQuery subsets. The definition and usage of these vendor-defined values are out of scope.
10.5.7.4
[G UIDELINE ] If a UPnP AV MediaServer includes the @id attribute of a CDS container in the
<ObjectIDs> element of the <Feature> element defined in 10.5.2.3 (i.e. the EPG, EPGDataOnly
<Feature> element), then one of the <ObjectID> elements of the <Feature> element defined in
10.5.2.5 (i.e. the FFQ <Feature> element) shall contain the @id attribute of that CDS container or
one of its ancestor containers.
[ATTRIBUTES ]
[C OMMENT] DLNA requires the CDS:FreeFormQuery action to be at least supported for all
exposed EPG Containers. For example, when a UPnP AV MediaServer exposes two EPG trees, the
ObjectIDs are listed in the result of the CDS:GetFeatureList action for the EPG feature. The FFQ
<Feature> element indicates that CDS:FreeFormQuery is supported for these two EPG containers.
This means that the FFQ <Feature> element can list these two ObjectIDs, one of the listed
ObjectIDs plus an ancestor ObjectID, two different ancestors, or one common ancestor. An example
of the latter case is a UPnP AV MediaServer which allows CDS:FreeFormQuery actions on all
containers. In this case the FFQ <Feature> element will contain the root ObjectID.
10.5.7.5
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option shall support
the XQuery language subset defined by the following EBNF notation. This subset is referred to as
the “DLNA_EPG” level XQuery.
This level of XQuery uses the constructor to produce a DIDL-Lite compliant document.
• ForClause ::= ‘for’ ‘$x’ ‘in’ ‘DIDL-Lite//item’ ‘[‘ EPGItem ‘AND’ NoRef ‘]’
• EPGItem ::= ‘fn:starts-with(upnp:class,’object.item.epgItem’)’
• NoRef ::= ’fn:not(fn:exists(@refID))’
An EPG Controller can request filtering of the epgItems out by time range, channel, title and long
description. Channel line up can be structured per distribution network.
[C OMMENT] A UPnP AV MediaServer that implements the EPG Server Device Option does not
need to support the full XQuery language. This guideline defines a subset of the XQuery language
ISO/IEC 29341-14-12. The goal of this subset is to allow for efficient implementations (on
embedded platforms). This subset is referred to as level “DLNA_EPG”. In Annex I further
explanation of this subset is provided.
10.5.7.6
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option may support
the XQuery language subset defined by the following EBNF notation. This subset is referred to as
the “DLNA_EPG_EXPANDED” XQuery level.
• prologConstructor::= ConstructorSTagEnclosedExpressionConstructorETag
• EnclosedExpression ::= ‘{‘ SingleMainExpr ‘}’
• SingleMainExpr::= FlworExpr | ( ‘(‘ FlworExpr ‘)’ ‘[‘ ‘fn:position()’ ‘=’ Integer ‘to’ Integer ‘)’ ‘]’ )
• FlworExpr::= ForClause WhereClause? OrderByClause? ReturnClause
• ForClause::= ‘for’ Variable ‘in’ ForExpr
• Variable::= ‘$’ ‘VarName’
• VarName::= QName
• QName::= PrefixedName | UnprefixedName
• PrefixName::= Prefix ‘:’ LocalPart
• UnprefixedName::= LocalPart
[C OMMENT] “Prefix” and “LocalPart” are from the XML specification. The detail definitions are
defined in W3C Namespaces.
[C OMMENT] A UPnP AV MediaServer that implements the EPG Server Device Option does not
need to support the full XQuery language. This requirement defines a subset of the XQuery
language ISO/IEC 29341-14-12. The goal of this subset is to allow for searching and retrieval of
most typically needed EPG items. This subset is referred to as level “DLNA_EPG_ EXPANDED”. In
Annex I further explanation of this subset is provided.
10.5.7.7
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option shall support
the following properties in the ForClause, WhereClause, OrderByClause, and ReturnClause of the
XQuery expression.
• dc:title
• upnp:channelName
• upnp:channelID
• upnp:scheduledStartTime
[ATTRIBUTES ]
10.5.7.8
[G UIDELINE ] A UPnP AV MediaServer that implements the “DLNA_EPG” level XQuery subset shall
support the following additional properties in the ForClause, WhereClause and ReturnClause of the
XQuery expression.
• dc:class
• upnp:channelID/@type
• upnp:scheduledEndTime
• upnp:scheduledDuration
[ATTRIBUTES ]
10.5.7.9
[G UIDELINE ] A UPnP AV MediaServer that implements the “DLNA_EPG_ EXPANDED” level
XQuery subset shall support the following additional properties in the ForClause, WhereClause and
ReturnClause of the XQuery expression.
• didl-lite:item/@id
• didl-lite:item/@parentid
• didl-lite:container/@id
• didl-lite:container/@parentid
• didl-lite:res/@protocolInfo
• didl-lite:res/@refID
• dc:creator
• upnp:class
• upnp:channelID/@type
• upnp:channelID/@distriNetworkName
• upnp:scheduledEndTime
• upnp:scheduledDuration
• upnp:longDescription
[ATTRIBUTES ]
10.5.7.10
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option shall
implement the CDS:GetFreeFormQueryCapabilities action as defined in ISO/IEC 29341-14-12.
[ATTRIBUTES ]
10.5.7.11
[G UIDELINE ] If the UPnP AV MediaServer supports a subset of XQuery the
CDS:GetFreeFormQueryCapabilities action, and there are properties that are allowed anywhere in
the XQuery except the “order-by” clause, it shall return a list defined by <searchOnlyPropertyList>.
This list shall at least contain the <propertyName> elements, defined in 10.5.7.5 unless that
property is already listed in the <propertyList> (see ISO/IEC 29341-20-12).
[ATTRIBUTES ]
[C OMMENT] This list defines the properties that can be used for searching, but not for sorting, and
complements the list defined in ISO/IEC 29341-14-12. When a UPnP AV MediaServer allows
sorting on more properties than the minimal required set, e.g. sorting on upnp:class, these
properties will be added to the <propertyList> and will not appear in the <searchOnlyPropertyList>.
10.5.7.12
[G UIDELINE ] If a UPnP AVMediaServer allows for searching and sorting using foreign-metadata
properties in an XQuery, then these properties shall be listed in the <propertyList> as defined in
ISO/IEC 29341-14-12. Each property shall be fully qualified as defined in ISO/IEC 29341-14-12.
[ATTRIBUTES ]
10.5.7.13
[G UIDELINE ] If a UPnP AVMediaServer allows for searching but not sorting using foreign-metadata
properties in an XQuery, then these properties shall be listed in the <searchOnlyPropertyList> as
defined in 10.5.7.11. Each property shall be fully qualified as defined in ISO/IEC 29341-14-12.
[ATTRIBUTES ]
10.5.7.14
[G UIDELINE ] The <namespaceList> element in the FFQCapabilities argument returned by the
CDS:GetFreeFormQueryCapabilities action shall list the namespaces used for the properties in the
<propertyList> and the <searchOnlyPropertyList>. This includes the namespaces of
foreign-metadata properties that are present in the <propertyList> or the <searchOnlyPropertyList>.
It shall at least contain the following <namespaceName> elements:
• dc=http://purl.org/dc/elements/1.1/
• upnp=urn:schemas-upnp-org:metadata-1-0/upnp/
• didl-lite=urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/
[ATTRIBUTES ]
10.5.7.15
[G UIDELINE ] If a UPnP AV MediaServer that implements the “DLNA_EPG” level XQuery subset
cannot process a query because it does not conform to the subset defined in 10.5.7.5, it shall return
the UPnP error 728 (Unsupported Query Request Instruction(s)).
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer implementing more than the required “DLNA_EPG” level
subset can execute a query it can understand. In this case no error is reported.
10.5.7.16
[G UIDELINE ] If a UPnP AV MediaServer that implements the “DLNA_EPG_EXPANDED” level
XQuery subset cannot process a query because it does not conform to the subset defined in
10.5.7.6, it shall return the UPnP error 726 (Unsupported Query Request Instruction(s)).
[ATTRIBUTES ]
[C OMMENT] UPnP AV MediaServer implementing more than the required “DLNA_EPG” level
subset can execute a query it can understand. In this case no error is reported.
10.5.7.17
[G UIDELINE ] If the QueryRequest input argument of the CDS:FreeFormQuery action contains an
XQuery that specifies a property that is not listed in neither the <propertyList> nor the
<searchOnlyPropertyList> as defined in 10.5.7.11, a UPnP AV MediaServer shall return the UPnP
error 708 (Unsupported or invalid search criteria).
[ATTRIBUTES ]
10.5.7.18
[G UIDELINE ] If the QueryRequest input argument of the CDS:FreeFormQuery action contains an
XQuery that specifies in the “order by”-clause a property that is not listed in the
<searchOnlyPropertyList> as defined in 10.5.7.11, a UPnP AV MediaServer shall return the UPnP
error 708 (Unsupported or invalid search criteria).
[ATTRIBUTES ]
10.5.7.19
[G UIDELINE ] The CDSView input argument passed to the CDS:FreeFormQuery action shall be set
to “0” indicating DIDL-Lite view.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Control points can subscribe to CDS events. The ContainerUpdateIDs state variable
signals changes to containers. This means that a subscribed control point will be notified in case of
changes in the EPG container. The ContainerUpdateIDs state variable is a CSV list of ordered pairs,
where each pair contains the @id of a container and its ContainerUpdateIDValue. The @id
indicates the container in which a change occurred. If multiple changes occurred in a container
since the last event was sent, there will be only one occurrence of the container’s @id and the
ContainerUpdateIDValue will reflect the most recent change.
10.5.8.2
[G UIDELINE ] When a large number of EPG items are changed, a UPnP AV MediaServer should not
send ContainerUpdateIDs events before completion of the update.
[ATTRIBUTES ]
[C OMMENT] A large EPG update that sends interim update events can trigger UPnP AV control
points to prematurely issue a search to obtain updated EPG information. To further reduce the
chance of issuing searches while an EPG update is in progress, UPnP AV control points can wait a
reasonable amount of time (to ensure a smooth user experience), before requesting new EPG data.
10.5.8.3
[G UIDELINE ] A UPnP AV MediaServer that implements the EPG Server Device Option may
implement the Track Changes Option as defined in ISO/IEC 29341-14-12.
[ATTRIBUTES ]
[C OMMENT] A UPnP AV MediaServer can choose to event changes to individual objects. A UPnP
AV control point can use such an event to take action when, for example, the broadcast time of an
EPGItem was changed. When a large number of EPGItems are modified, added or deleted, the
UPnP AV MediaServer can set the stUpdate attribute of individual objects to 1. A control point can
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 480 –
make use of this information to ignore individual changes and only take action when it sees the
stDone event.
11 Media Transport
11.1 General
This subclause of the DLNA Home Networked Device interoperability guidelines covers the
requirements for the media transport layer. In the DLNA interoperability guidelines v1.0 there was a
single transport protocol (HTTP) available for the transfer of media across a home network and all
media transfers were assumed to be for the purpose of immediate playback. In addition, all media
transfers under DLNA interoperability guidelines v1.0 occurred with a default, best effort, quality of
service specification. With the increase in the system usages in v1.5, the introduction of
priority-based QoS, and the addition of another transport protocol (RTP), there exists a need to
define different modes of media transfer and other protocol-agnostic requirements for the transport
layer. Table 40 summarizes the types of media transfer now available. The DLNA transfer mode
terms are consistent with those found in 6.3 of 3GPP TS 23.107.
Table 41 summarizes the combinations of permitted DLNAQOS priorities and transfer modes for
each Media Class. The relationship between the different columns is described here.
A Streaming Transfer supports two media usages. The first case is where a content binary is being
immediately rendered for a user and contains inherent timing that shall be met. The second case is
where a content binary is being generated in real time at a fixed rate (such as a live broadcast
stream), regardless of whether the item is being immediately rendered or stored for later use. In
either of these cases, a delay in packet delivery can adversely impact the user's perception of the
system. If the content binary contains inherent timing information (such as Audio or AV content) and
is being immediately rendered, a delay in packet delivery can cause data to not be available on the
Content Receiver at the time it needs to be played. This can lead to a dropout in the playback of the
media. If a real time stream is being generated on the Content Source and the throughput across the
network (which can be affected by the Content Receiver's use of flow control) is not equal to the
data rate of the generated content, a buffer overrun can occur on the Content Source. This can lead
to a loss of data in the content binary.
NOTE If the content is being generated at an average fixed rate, such as the capture of audio or AV content from an
external source, and the network has a period where the throughput is less than the rate of generation of the content, the
Content Source will typically buffer the data for sending at a later time. However, if this period lasts long enough, the
Content Source may exhaust its ability to buffer the captured content. At this point, some data samples will be lost. If the
Content Receiver is rendering the stream immediately, the user will perceive the loss of the data as skipped content
samples. If the Content Receiver is storing the stream for later use, such as in a download operation, the stored content
will have missing samples. Content Sources and Receivers may have any amount of buffering to mitigate this situation and
the network cannot be controlled to guarantee a bandwidth for the transfer. Any content that is transitory (i.e. not stored
on disk) and may cause a buffer overrun on the Content Source due to network delays should always be sent as a
Streaming Transfer.
An Interactive Transfer is used for the case where a content binary is being immediately rendered
for a user but it does not have any inherent timing information, such as image media. In this case,
a delay in packet delivery of a few milliseconds will not cause an adverse impact for rendering, but
sufficiently long delays will adversely impact the user's perception of the system.
A Background Transfer is used for the case where the content binary is not being transferred for
immediate rendering or where the user might be satisfied with a transfer executed at the lowest
priority. It is typically reserved for the download or upload of content that is not being generated in
real time by the Content Source. For example, this transfer mode would be used for downloading a
content binary that has been stored in a file on the Content Source. The Content Source is free to
internally prioritize the Background Transfer lower than other transfer modes.
The DLNA QoS levels are shown in the above tables as an indication that each of the transfer
modes are handled at a different QoS level. Further discussion of QoS can be found in section 8.
Each of the Transfer Modes is implemented differently for the transport chosen (HTTP versus RTP).
In addition, a transport may choose to not allow a particular Transfer Mode. For instance, RTP will
not support Background Transfers. The Transfer Modes available to a particular content resource
are specified in 9.2.37.
For most transfers, the Content Receiver issues a request for the content binary with a specific
Transfer Mode and Media Transport based on the type of usage involved. An Upload content
transfer is the exception to this rule. It is initiated by the Content Source.
However, the choice of Transfer Mode is made in the same way, based on the type of usage and the
content binary to be transferred.
The definitions of the Transfer Modes introduced in this subclause apply only to a state of the
network referred to as Ideal Network Conditions. Under Ideal Network Conditions no congestion
from other communicating parties or from bandwidth restrictions on the network exists. Furthermore,
under Ideal Network Conditions, Content Sources and Content Receivers have moved away from
the startup conditions, and have reached steady-state transfers. From the perspective of
measurements, Ideal Network Conditions can be approximated by having a single Content Source
send data to a single Content Reveiver over a high-speed link with bandwidth equal to or exceeding
the bandwidth required by the transmission.
This system provides a robust set of Transfer Modes that support streaming for immediate
rendering or download of content for later consumption. It also provides a structure for fine grained
QoS control. A DLNA interoperability guidelines v1.0 transfer most closely maps to a Streaming
Transfer Mode in terms of functionality. However, the Streaming Transfer Mode allows for higher
QoS priority than the default best effort of the DLNA interoperability guidelines v1.0.
• The first aspect of the UCDAM is the definition of a content stream. A content stream is media
with a beginning (d X ) and end (d Y ), where both values are defined by the Content Source. In
some cases, a content stream never ends (d Y increases with time). This data range is an
assumed condition but is not referenced in the guidelines.
• The second aspect of the UCDAM is the data range available from the Content Source for
transport to the Content Receiver. This range is defined as [s 0 , s N ]. For content stored within a
file on the Content Source, s 0 could be equal to d X and s N could be equal to d Y . For content
captured by the Content Source from a live AV or audio feed, the range represents the amount
of data buffered by the Content Source. This data range is normative and is referenced in the
guidelines.
• The third aspect of the UCDAM is the data range available to the Content Receiver. The range
of data available to the Content Receiver, defined inclusively as [d 0 , d N ], is determined by two
aspects: what the Content Source can transmit (i.e. some data range of [s 0 , s N ]) and, in addition,
what might be buffered on the Content Receiver in a local manner. This data range is an
assumed condition, but is not referenced in the guidelines.
NOTE Neither the UCDAM model, nor the DLNA Media Transport guidelines specify how clients have access to data
in a local manner as implementers may use a variety of memory-based and disk-based mechanisms to define the
range of data that a Content Receiver can access without the Content Source having to transfer data.
• The fourth aspect of the UCDAM is the Content Source's data range that supports random
access requests. The [r 0 , r N ] data range represents the data range where random access
operations are supported. If this capability is supported, then the [r 0 , r N ] interval is always equal
to the [s 0 , s N ] data range. If the Content Source does not allow random access within the content
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 484 –
stream, then a Content Receiver can only request content starting from s 0 . This data range is
normative and is referenced in the guidelines.
• The fifth aspect of the UCDAM is that the data range available to the Content Receiver can
change with time. This is really a clarification of the third aspect. As time passes, the data range
that the Content Source can provide to the Content Receiver can also change. There are three
aspects that determine how the data range available to the Content Receiver will change.
– Does the Content Source guarantee that s 0 is fixed or can s 0 increase with time? If s 0 is fixed,
then the Content Source is characterized as operating under a fixed s 0 model. Otherwise, the
Content Source is characterized as operating under an increasing s 0 model. An example of
a possible fixed s 0 model is content data read from a file on the Content Source. An
increasing s 0 model.can be used to represent content being captured from an incoming AV
feed.
– Does the Content Source guarantee that s N is fixed or can s N increase with time? If s N is
fixed, then the Content Source is characterized as operating under a fixed s N model.
Otherwise, the Content Source is characterized as operating under an increasing s N model.
The same examples as above can be used in this case. An example of a fixed s N model is
content data read from a file on the Content Source. An increasing s N model can be used to
represent content being captured from an incoming AV feed. 3
– Does the Content Receiver save data 4 such that (d 0 < s 0 )? (i.e. the Content Receiver has
accessible data that the Content Source can no longer provide.)
NOTE This model is very flexible in that it can easily represent all of the common types of media streams. For example,
a media stream originating from a file can be represented as d 0 = d x and d N = d Y – the entire extent of the content is
available to the user. An unbuffered live stream can be represented as d 0 = d N , so that only the current moment in time is
available. In addition to above simple examples, many more complex buffering systems can be represented by UCDAM.
Please see Annex D for more details.
Keep in mind that most of the UCDAM model is conceptual and outside the scope of the DLNA
guidelines. However, the [s 0 , s N ] and [r 0 , r N ] data ranges describe what data can be requested in
Media Transfer operations over the network, and as such are within the scope of these guidelines.
Therefore, those data ranges will be utilized in the following guidelines where appropriate to define
the range of content that can be transferred using DLNA defined Media Operations.
Term Definition
Play Initiate a Streaming Transfer for playback of media. The transfer occurs at a rate that
supports normal playback of the content binary. The transfer begins at s 0 and proceeds
at a rate sufficient to support normal (1x) playback of the content binary. The operation
completes after transfer of a fixed s N value. Under the increasing s N model the transfer
does not complete.
Stop Terminate a Streaming Transfer.
Pause Temporarily suspend a Streaming Transfer.
Pause-Release A Pause media operation has suspended a Streaming Transfer, complete the Pause
media operation and re-establish the flow of data over the network to support the
Streaming Transfer.
Term Definition
Seek Move the transfer point to a particular point in a stream in the range [r 0 , r N ], that
represents the seek-able range. (The seek-able data range is the same random access
data range, although the former term is used for Streaming transfers and the latter term
applies to Streaming, Interactive, and Background transfers.) If a seek-able range
exists, it shall equal [s 0 , s N ]. The next set of transferred data will be from the indicated
point in the content binary. DLNA defines two types of seek operations:
• byte-based seek: a seek operation where the transfer point is specified in bytes;
• time-based seek: a seek operation where the transfer point is specified in units of
time.
Fast Forward Scan Perform data transfers that will support a positive play-speed greater than 1x.
Slow Forward Scan Perform data transfers that will support a positive play-speed greater than 0 but less
than 1x.
Fast Backward Scan Perform data transfers that will support a negative play-speed less than −1x.
Slow Backward Scan Perform data transfers that will support a negative play-speed less than 0 but greater
than −1x.
Streaming Download Initate a Streaming Transfer for the purpose of storing media for later playback. The
transfer begins at s 0 and proceeds at a rate defined by the internal timing information of
the content. The operation completes after transfer of a fixed s N value. Under the
increasing s N model the transfer does not complete until the Content Receiver
terminates the transaction.
The listed media operations are defined in terms of how the media transfer occurs over the network
for a given transport protocol in the guidelines below.
[ATTRIBUTES ]
The list of available Transfer Modes for a Media Class is as specified below. This may be further
limited by the transport protocol chosen.
[ATTRIBUTES ]
[C OMMENT] This can be either a Content Receiver requesting a particular Transfer Mode for
content that it will receive, or it can be a Content Source specifying the Transfer Mode when
performing an upload operation.
11.4.2.3.2
[G UIDELINE ] A Content Source may constrain the transfer of audio-only or AV content binaries to
Streaming Transfer only if it is not able to support the Background Transfer mode for that content
binary and transport protocol.
[ATTRIBUTES ]
[C OMMENT] For example, a Content Source might do this because it is capturing content from a live
stream and could potentially overflow its buffer if the network transfer is handled below the nominal
rate of the content.
11.4.2.3.3
[G UIDELINE ] A Content Source shall indicate the Media Transfer Modes that are available for a
content binary by setting the tm-s, tm-i, and tm-b flags in the 4th field of the protocolInfo.
DLNA guidelines; Part 1-1: Architecture and protocols
– 487 –
[ATTRIBUTES ]
[C OMMENT] See guidelines 10.1.3.24.2, 10.1.3.35.1, 10.1.3.36.1, and 10.1.3.37 for more
information.
11.4.2.3.4
[G UIDELINE ] An endpoint responding to the initiation of a media transfer shall generate an
appropriate transport protocol error response if the requested Transfer Mode is not currently
available for the given content binary.
[ATTRIBUTES ]
[C OMMENT] This can be either the Content Source responding to an incorrectly requested Transfer
Mode by a Content Receiver or in the case of an upload operation it can be the Content Receiver
responding to an incorrectly requested Transfer Mode by a Content Source. See guideline
11.4.3.32.4 for HTTP error codes used in various scenarios.
Guideline 11.4.2.3.1 defines the possible transfer mode given the media type and guideline
11.4.2.3.2 allows Content Sources to constrain the available transfer mode for a given item (for
example if RTP is used as the transport protocol). This guideline requires an endpoint to generate
an error if the request for the content is not of the allowed modes for the media item.
[ATTRIBUTES ]
11.4.2.4.2
[G UIDELINE ] A DMS, M-DMS, or +PU+ that supports the Image Media Class shall support acting as
a Content Source for Interactive Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
11.4.2.4.3
[G UIDELINE ] A DMS or M-DMS that supports the download system usage shall support acting as a
Content Source for Background Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
[C OMMENT] The requirement is not that background will be used for the transfer. Rather, the
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 488 –
guideline states that the Background Transfer mode needs to be supported for one or more Content
Binaries. See guideline 10.1.3.37 for more information about reporting Background transfer mode
support for a Content Binary.
11.4.2.4.4
[G UIDELINE ] A DMS or M-DMS that supports the upload AnyContainer or OCM: upload content
operations shall support acting as a Content Receiver for Background Mode Transfers as part of the
Content transfer process as defined in this subclause.
[ATTRIBUTES ]
11.4.2.4.5
[G UIDELINE ] A DMS or M-DMS that supports the upload AnyContainer or OCM: upload content
operations should support acting as a Content Receiver for Streaming and Interactive Mode
Transfers as part of the Content transfer process as defined in this subclause.
[ATTRIBUTES ]
[C OMMENT] Allows the server to support the upload of content that cannot be sent via Background
Transfer Mode such as live content captured from a tuner.
11.4.2.4.6
[G UIDELINE ] A DMP, M-DMP, or DMR that supports the Audio or AV Media Classes shall support
acting as a Content Receiver for Streaming Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
11.4.2.4.7
[G UIDELINE ] A DMP, M-DMP, or DMR that supports the Image Media Class shall support acting as
a Content Receiver for Interactive Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
11.4.2.4.8
[G UIDELINE ] An +DN+, or +DNSYNC+ shall support acting as a Content Receiver for Background
Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
[C OMMENT] The requestor isn't obliged to use background transfer if the server defines that only
streaming of this content is supported.
11.4.2.4.9
[G UIDELINE ] An +DN+, or +DNSYNC+ may support acting as a Content Receiver for Streaming
Mode Transfers as defined in this subclause.
DLNA guidelines; Part 1-1: Architecture and protocols
– 489 –
[ATTRIBUTES ]
[C OMMENT] Supports the download of content that cannot be sent via Background Transfer Mode.
11.4.2.4.10
[G UIDELINE ] An +UP+, or +UPSYNC+ shall support acting as a Content Source for Background
Mode Transfers as defined in this subclause.
[ATTRIBUTES ]
Tolerate means that the Content Receiver is able to do one of the following actions gracefully (i.e.
without crashing or requiring the user to power-cycle or reset the device)
[C OMMENT] This guideline is mandatory because a home network does not always operate under
Ideal Network Conditions (i.e. the transmission rate remains dependent on the network throughput
between the server and client). Products that crash, require a reset, or a similar type of power-cycle
operation due to low transmission throughput rate violate this guideline.
DLNA devices are permitted to have user interactions in meeting the tolerance portion of this
requirement. For example, a DMP is permitted to report to ask the user if they want to stop rendering
or download because the throughput is extremely slow.
[ATTRIBUTES ]
[C OMMENT] Examples of where this wouldn't be the case are the downloading of live media
streams. On download, the server will mark them as only transportable with Streaming Transfer
mode.
[ATTRIBUTES ]
[C OMMENT] A Content Receiver needs to be able to receive and consume content at a rate that will
allow it to render the content in real-time. This guideline does not apply where the Content Source
and Content Receiver have negotiated transfer characteristics within the transport protocol, such as
negotiated buffer agreements within RTP. This guideline applies only in the absence of an existing
agreement between the Content Receiver and the Content Source.
11.4.2.7.2
[G UIDELINE ] A Content Source operating in Streaming Transfer mode shall be able to send content
to the network at rates required to sustain Streaming Transfer for the content binary.
[ATTRIBUTES ]
In this case, tolerate means that Content Sources and Content Receivers do not terminate the
transport connection simply because the throughput is too low, unless user intervention has caused
it to happen.
[ATTRIBUTES ]
[C OMMENT] This guideline covers the case of sending an image over the network for rendering;
and it indicates that the transfer can occur at any rate depending on the network and server load.
This guideline recommends that devices support a wide range of throughputs but the actual
maximum and minimum depend on external factors.
11.4.2.8.2
[G UIDELINE ] Content Sources and Content Receivers using an Interactive Transfer may affect the
actual rate of data delivery using transport layer flow control, regardless of the content's internal
timing information.
[ATTRIBUTES ]
In this case, tolerate means that Content Sources and Content Receivers do not terminate the
transport connection simply because the throughput is too low, unless user intervention has caused
it to happen.
[ATTRIBUTES ]
[C OMMENT] This guideline covers the case of downloading content sourced from a file on the
Content Source; and it indicates that the transfer can occur at any rate (e.g. higher or lower than the
internal timing information of the content data for audio and A/V content). This guideline
recommends that devices support a wide range of throughputs but the actual maximum and
minimum depend on external factors.
11.4.2.9.2
[G UIDELINE ] Content Sources and Content Receivers using a Background Transfer may affect the
actual rate of data delivery using transport layer flow control, regardless of the content's internal
timing information.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.2.10.2
[G UIDELINE ] If DLNAQOS as defined in 8 is implemented, Background Transfers of content
binaries shall be tagged with DLNAQOS_0 in accordance with Table 7.
[ATTRIBUTES ]
11.4.2.10.3
[G UIDELINE ] If DLNAQOS as defined in 8 is implemented by a Content Source and it receives a
Background Transfer request for content that it cannot transfer at DLNAQOS_0, then it shall
respond with an error within the transport used, at DLNAQOS_0, in accordance with Table 7.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 492 –
For HTTP as a transport, see guideline 11.4.3.63 for the specific error.
[ATTRIBUTES ]
[C OMMENT] For example, a Content Receiver that tries to use a Background Transfer to acquire a
live stream might receive an error response from the Content Source because it cannot transmit a
live stream at DLNAQOS_0.
[ATTRIBUTES ]
[C OMMENT] This transfer is part of an interactive experience and therefore the default is a higher
QoS level than a Background Transfer.
11.4.2.11.2
[G UIDELINE ] If DLNAQOS as defined in 8 is implemented, Interactive Transfers of content binaries
shall be tagged with DLNAQOS_1, or a lower DLNAQOS_UP value (where "or a lower" is defined by
8.3.2.2.2 and 8.3.2.2.3), in accordance with Table 7, independent of the transport used.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] For example, a Client Endpoint issues an HTTP GET request for AV content with
DLNAQOS_2. The Content Source will then respond to the request with media that is tagged with
DLNAQOS_2. The Content Source response (transfer of the actual media) will be tagged with
DLNAQOS_2. Subsequent TCP ACK messages will use the existing TCP connection and therefore
be tagged with DLNAQOS_2.
For the RTP transport, this priority is applicable to both audio and video streams encompassing TS,
PS, and ES formats.
See 8.3.2.2 for considerations around the TCP connection establishment phase.
11.4.2.12.2
[G UIDELINE ] If DLNAQOS as defined in 8 is implemented, Streaming Transfer of content binaries
shall use DLNAQOS_2, or a lower DLNAQOS_UP value (where "or a lower" is defined by 8.3.2.2.2
and 8.3.2.2.3), in accordance with Table 7.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 83VQW
2326
[C OMMENT] This guideline provides a consistent syntax for NPT time positions for both DLNA's
extensions to HTTP and RTP Media Transport.
[ATTRIBUTES ]
[C OMMENT] Previous versions of the DLNA guidelines do not formally define either random access
data model, but the "Full Random Access Data Availability" model has been defined to match the
assumptions used in previous versions of the DLNA guidelines.
Other guidelines explain how to detect which random access data availability model is being used.
Specifically, the op-param is tied solely to the "Full Random Access Data Availability" model and the
lop-npt/lop-bytes flags are tied solely to the "Limited Random Access Data Availability". For more
information, see the following guidelines:
11.4.2.14.2
[G UIDELINE ] The UCDAM data range of [s 0 , s N ] shall represent the entire data range that the
Content Source can serve to other network endpoints.
[ATTRIBUTES ]
[C OMMENT] Although not testable by itself, these guidelines repeat normative portions Figure 21.
Other DLNA guidelines can normatively refer to the [s 0 , s N ] data range.
Considering how the s 0 and s N boundaries change, other DLNA guidelines explain how to represent
these abstract data boundaries in terms of zero-based byte indices or npt playback positions.
Generally, the s 0 and s N data boundaries increase with time, although in some scenarios the values
can reset, as is sometimes necessary when the integer value rolls over. Other guidelines specify the
details on how these data boundaries can change.
11.4.2.14.3
[G UIDELINE ] The [s 0 , s N ] may change with time. Specifically, the following can happen.
[ATTRIBUTES ]
11.4.2.14.4
[G UIDELINE ] If a Content Source supports random access requests on content data, then the
following rules shall apply.
• The UCDAM data range of [r 0 , r N ] shall represent the data range where random access
operations are permitted.
• The [r 0 , r N ] data range shall be equal to the [s 0 , s N ] data range.
[ATTRIBUTES ]
[C OMMENT] If random access requests are supported, then they need to be supported for the entire
range that the Content Source can access.
Note that the npt-last-time, last-byte-pos, and byte-pos tokens for this guideline are relative to the
complete content binary that is currently available, rather than being relative to the content data
returned in response.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the behavioral model for the Full Random Access Data
Availability model.
For guidelines on the data range for HTTP under Full Random Access Data Availability, see the
following guidelines:
11.4.2.15.2
[G UIDELINE ] The values for npt-last-time and last-byte-pos (as specifically used in 11.4.2.15.1)
may increase with time.
[ATTRIBUTES ]
[C OMMENT] The concept of entire content range is relative to the current moment in time, in the
context for the op-param. This means the s N position can increase with time, causing the duration
of the content binary to also increase (although the beginning has to remain fixed).
This model can apply when streaming content that is being recorded to local storage. The absolute
beginning (s 0 ) never changes and as time passes, the end (s N ) increases.
• Mode=0
• Mode=1
Furthermore, the following rules shall be true for both Mode=0 and Mode=1.
[C OMMENT] This guideline explains the behavior of the s 0 data boundary when it is used with the
Limited Random Access Data Availability model.
For guidelines on the data range for HTTP under Limited Random Access Data Availability, see the
following guidelines:
11.4.2.16.2
[G UIDELINE ] If a Content Source uses the Limited Random Access Data Availability model under
Mode=0, then the following shall be true.
• The s 0 data boundary shall map to a beginning that shall change with time.
• The data range of [s 0 , s N ] shall map to the npt range of [npt-start-time, npt-last-time] and the
byte range of [first-byte-pos, last-byte-pos], where npt-start-time and npt-last-time are in units of
npt and first-byte-pos and last-byte-pos are in units of bytes.
• There exists a "live position" that shall be equal to the s N data boundary.
• If the s N data boundary is changing with time, then the "live position" shall shift forward in
real-time.
• Responses to random access requests on the [r 0 , r N ] data range shall be timely under Ideal
Network Conditions.
• If the Content Source receives a transport layer request that is not a random access request (e.g.
HTTP request that omits Range and TimeSeekRange.dlna.org) then the Content Source shall
respond with content data from the "live position". (See 11.4.3.20.9 for an example of how this
guideline applies specifically to HTTP.)
Timely means that the Content Source (under Ideal Network Conditions) is able to begin responding
with the requested content data within 27 s of receiving the request.
[ATTRIBUTES ]
[C OMMENT] This guideline defines Mode=0 behaviors for the Limited Random Access Data
Availability model. This mode of operation is generally useful for live content streams that use a
fixed data buffer that map to the [s 0 , s N ] and [r 0 , r N ] data ranges. Live television broadcast streams
are ideal candidates for this data availability model.
The reason why [r 0 , r N ] is a limited data range in this context is that the values for npt-start-time,
npt-last-time, first-byte-pos, and last-byte-pos change over time. For example, the value of
first-byte-pos changes
– at time-0, the first-byte-pos is 1024. Random access requests that attempt to access before byte
position 1024 will not work.
– at time-60, the first-byte-pos becomes 14749767106. Random access requests that attempt to
access before byte position 14749767106 will not work, even though byte position 1024 was
valid at time-60.
See the comment in 11.4.2.15.1 of 11.4.2.15 for help with interpreting the “relative to the complete
content binary” phrase.
The npt-start-time, npt-last-time, first-byte-pos, last-byte-pos, and byte-pos tokens for this guideline
are relative to the complete content binary that is currently available, rather than being relative to
the content data returned in response.
11.4.2.16.3
[G UIDELINE ] If using Limited Random Access Data Availability Mode=0, then a Content Source
shall use increasing values for npt-start-time and first-byte-pos when reporting the available random
access data range, unless one of the following conditions is true.
• 180 min has elapsed since the last transport layer request for the content binary.
• The value of last-byte-pos or npt-last-time causes a rollover because the maximum permitted
value defined for the data type has been exceeded.
This guideline only applies when Limited Random Access Data Availability mode is applied to the
scenario.
[ATTRIBUTES ]
[C OMMENT] As time passes, the data range that is accessible can also change with time because
the server's s 0 position can change.
Furthermore, the s N position can increase with time, usually causing the duration of the content
binary to either temporarily increase when s 0 is temporarily non-changing or remain relatively
constant over time when s 0 slides with s N .
Given the nature of infinite streams (e.g. live content), Content Sources are permitted to use a
lesser values for first-byte-pos and npt-start-time.
The following example is an example timeline that exhibits this behavior.
11.4.2.16.4
[G UIDELINE ] If a Content Source uses the Limited Random Access Data Availability model under
Mode=1, then the following shall be true.
• The s 0 data boundary shall map to a fixed and non-changing beginning. This requirement is a
restriction of 11.4.2.14.3.
• The s 0 data position shall be the static and absolute beginning for the content. (i.e. The s 0
position is the beginning of the content that does not change with time.)
• The data range of [s 0 , s N ] shall map to the npt range of [0, npt-last-time] and the byte range of [0,
last-byte-pos], where npt-last time is in units of npt and last-byte-pos is in units of bytes.
• The content binary's zero position (i.e. npt-time=0 and byte-pos=0) shall map to the UCDAM's
data position of s 0 .
• The last-byte-pos and npt-last-time shall map to the UCDAM's s N data position and the s N data
boundary shall map to the end of the available content data. (This requirement works in
conjunction with 11.4.2.14.3.)
• Random access operations on [r 0 , r N ], where units are in npt, shall be timely for the entire range
of [r 0 , r N ].
• Random access operations on [r 0 , r N ], where units are in bytes, shall be timely only for a limited
subset of [r 0 , r N ]. Random access operations outside this subset are guaranteed to be satisfied
but timeliness is not guaranteed.
• If the Content Source receives a transport layer request that is not a random access request (e.g.
HTTP request that omits Range and TimeSeekRange.dlna.org) then the Content Source shall
respond with content data from the beginning (i.e. npt=0 or byte-pos=0).
Timely means that the Content Source (under Ideal Network Conditions) is able to begin responding
with the requested content data within 27 s of receiving the request.
Note that the npt-last-time, npt-time, last-byte-pos, and byte-pos tokens for this guideline are
relative to the complete content binary that is currently available, rather than being relative to the
content data returned in response.
[ATTRIBUTES ]
[C OMMENT] This guideline defines Mode=1 behaviors for the Limited Random Access Data
Availability model. Mode=1 is most useful for converted content, where Content Sources have
access to a fixed beginning for the content, but can lack the computational power to respond in a
timely manner to byte-based random access positions. In such cases, the Content Source's
indicated values for bytes-range represent the range where the server can provide a fast response,
which is often the portion of converted content that is available at the current moment. Content
Receivers are permitted to request data outside those ranges (assuming the requested data falls
within the [s 0 , s N ] data range, but the server might have a significant delay before responding.
Live broadcast streams are generally not ideal candidates for using this data availability model. Live
broadcast streams will likely favor a sliding s 0 data boundary. For implementations that can support
live broadcast streams where the s 0 data boundary is fixed (e.g. by buffering/recording the data to
a local hard disk), the Full Random Access Data Availability model is more appropriate when the
buffered content is served without having to go through a content transformation.
See the comment in 11.4.2.15.1 of 11.4.2.15 for help with interpreting the “relative to the complete
content binary” phrase.
• HTTP Client Endpoint – the DLNA entity that issues the HTTP GET or POST request;
• HTTP Server Endpoint – the DLNA entity that receives the HTTP GET or POST request and
issues an HTTP response (possibly including data);
• Streaming HTTP (Client/Server) Endpoint – An HTTP Client or Server Endpoint that processes
Streaming Transfers;
• Target Response: When a client makes a GET request to obtain a certain resource from the
server, the server normally responds with a message that includes a representation of the
resource as its entity body. This type of response is called here a Target Response to
differentiate it from other equally valid responses that do not involve transferring the requested
resource (e.g., redirections, authorization requests, error messages, etc). Similarly, for HEAD
requests, a Target Response is the same response that servers would form to satisfy the
matching GET request, but without carrying the resource representation as its entity body.
The generic term "HTTP endpoint" is used to represent either an HTTP Client Endpoint or an HTTP
Server Endpoint.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 500 –
Also note that the guidelines specified in this subclause apply to DLNA content transactions
between DLNA Device Classes or Device Capabilities. These guidelines do not specify behavior for
non-DLNA devices. A DLNA Device Class or Device Capability may be implemented by software
running on a more general-purpose device/platform. For example, the HTTP server of a DMS may
be used to serve DLNA and non-DLNA content. These guidelines apply only when the DLNA content
is being served to a DLNA device.
• 11.4.3.2 through 11.4.3.37: contains guidelines that are common to all HTTP transfers. These
guidelines are independent of the Transfer Mode.
• 11.4.3.38 through 11.4.3.58: contains guidelines that are specific to the use of HTTP for
Streaming Transfers.
• 11.4.3.59 through 11.4.3.61: contains guidelines that are specific to the use of HTTP for
Interactive Transfers.
• 11.4.3.62 through 11.4.3.64: contains guidelines that are specific to the use of HTTP for
Background Transfers.
• 11.4.3.65 through 11.4.3.69: contains guidelines that are specific to HTTP POST transactions.
HTTP POST transactions always work in conjunction with all other applicable HTTP guidelines.
11.4.3.2 MT baseline transport: HTTP
11.4.3.2.1
[G UIDELINE ] A DLNA device shall implement HTTP as the mandatory media transport with
constraints and extensions defined in subsequent entries of this subclause.
Guidelines 11.4.3.8 and 11.4.3.25 define the HTTP version expectations for HTTP servers and
clients.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 5HZVT
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
11.4.3.2.2
[G UIDELINE ] DLNA devices shall follow the syntax rules for HTTP headers defined in IETF RFC
2616 unless DLNA defines syntax for the HTTP header value.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC MHZLQ
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] The BNF rules used in IETF RFC 2616 is slightly different from that in DLNA. For
example, the default treatment of literals in IETF RFC 2616 is case-insensitive. Furthermore,
IETF RFC 2616 uses implied LWS between tokens and separator.
11.4.3.2.3
[G UIDELINE ] If the DLNA guidelines define a BNF syntax for an HTTP header, then DLNA devices
shall not include white spaces in the header-value of HTTP headers unless SP and LWS are
explicitly specified in the syntax (BNF) definitions.
If the DLNA guidelines do not define a BNF syntax for an HTTP header, then the header shall
conform to the message-header syntax in 4.2 of IETF RFC 26161999, regardless of whether the
HTTP header is defined in IETF RFC 2616 or if the HTTP header is vendor-defined. Note that the
syntax for field-value permits LWS to separate tokens and other data in the field-value.
Implied LWS between the HTTP header-name and the HTTP header-value are allowed as specified
in IETF RFC 2616, regardless of whether the DLNA guidelines specify a BNF syntax for the HTTP
header.
• Range: bytes=1539686400-
• Content-Range:bytes 21010-47021/47022
• TimeSeekRange.dlna.org: npt=00:05:35.3-00
The following examples are not allowed:
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC HZVTL
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] IETF RFC 2616 allows, including white spaces, between any two adjacent words
(token or quoted-string), and between adjacent words and separators, e.g. "=", SP, "/", ":" (See
"implied *LWS" in the 2.1 of IETF RFC 2616), but this guideline restricts "implied *LWS" to simplify
white space rules for HTTP headers.
White spaces can still be included between header-name and header-value. The header-name and
header-value are defined in the 4.2 of IETF RFC 2616.
This guideline applies to HTTP headers defined in IETF RFC 2616 and other HTTP headers, e.g,
DLNA and vendor defined headers, with the DLNA guidelines. At least one LWS will be inserted
between tokens in case of the "* rule" syntax (e.g. USER-AGENT and SERVER headers).
[ATTRIBUTES ]
+UPSYNC+
[C OMMENT] This guideline specifies that a media endpoint needs to be able to handle scenarios
where an HTTP connection is not properly terminated. Network conditions and/or HTTP Server
Endpoint behavior can cause this scenario to occur. Although a full definition for graceful recovery
is not provided, a baseline expectation is that users will not need to reset or power cycle the device
simply because a content transfer was interrupted.
[ATTRIBUTES ]
[C OMMENT] This guideline permits an endpoint to use URI values (obtained from a DLNA endpoint)
without having to implement logic for escaping the URI. This guideline is a clarification of 10.1.3.10,
which states that DMS devices will advertise URI values that are URI escaped. Although an
endpoint can implement additional logic for validating a URI, such logic is useful only for
interoperation with non DLNA devices.
This guideline applies generally, including HTTP GET, HEAD, and POST requests.
[ATTRIBUTES ]
[C OMMENT] This guideline essentially obliges an endpoint to send an HTTP response to an HTTP
request.
Also, the HTTP specification already obliges a server to return a valid HTTP response for each
received HTTP request. Valid HTTP responses include among others: content byte data responses,
requests for authorization, HTTP error responses, etc.
11.4.3.5.2
[G UIDELINE ] If an HTTP Server Endpoint cannot respond to an HTTP request by sending or
receiving content byte data due to the server capacity, network capacity, or current state of the
device (such as a tuner locked in a recording state), then the HTTP server should respond with an
HTTP error response code of 503 (Service Unavailable).
DLNA guidelines; Part 1-1: Architecture and protocols
– 503 –
[ATTRIBUTES ]
[C OMMENT] This guideline covers the case where the endpoint has the resources to send an error
response but lacks the resources to send or accept content data. Sending an HTTP error is better
than denying the TCP connection request because it explicitly tells the requesting endpoint that
content cannot be handled at this moment. HTTP servers will respond with other HTTP error codes
when responding to other error scenarios, as indicated in the HTTP specification.
11.4.3.5.3
[G UIDELINE ] If an HTTP Server Endpoint cannot respond to an HTTP request by sending or
receiving content byte data due to the device's lack of available network sockets, then the endpoint
may refuse to create new TCP connections for answering content requests.
[ATTRIBUTES ]
[C OMMENT] This guideline permits an HTTP server to refuse the creation of new TCP connections
when it lacks the resources for transporting content. Although this behavior is allowed by standard
convention, endpoints can continue to retry the creation of a TCP connection. Therefore, whenever
the situation is both appropriate and possible, HTTP servers are encouraged to respond with an
HTTP 503 error.
11.4.3.5.4
[G UIDELINE ] HTTP Client Endpoints that issue requests (e.g. for playback, download operation, or
any normative system usage) shall be capable of performing such operations even if the HTTP
Server Endpoint accepts only a single open HTTP connection at any given time.
HTTP Client Endpoints that claim support for a media operation for a particular content binary shall
be capable of perfoming such operations even if the HTTP Server Endpoint accepts only a single
open HTTP connection an any given time.
[ATTRIBUTES ]
[C OMMENT] Some HTTP Server Endpoints can accept multiple simultaneous HTTP connections,
but others can accept only one. This guideline ensures that HTTP Client Endpoints provide reliable
services even with the most constrained case (only one HTTP connection available).
For example, the following procedures in HTTP Client Endpoints will not work with HTTP Server
Endpoints that support a single HTTP connection:
• tuner channel changes where one HTTP connection is used for the current channel and another
time-overlapping HTTP connection is used for the new channel selection.
11.4.3.5.5
[G UIDELINE ] HTTP Server Endpoints should support more than one simultaneous HTTP media
transport connection.
[ATTRIBUTES ]
[C OMMENT] It is a good practice for an HTTP Server Endpoint to support multiple HTTP Client
Endpoints simultaneously.
11.4.3.5.6
[G UIDELINE ] If an HTTP Server Endpoint has not completed the transmission of an HTTP response
and the HTTP Client Endpoint wants to stop the current data flow to issue a new request, then the
HTTP Client Endpoint should close the existing TCP connection and then create a new TCP
connection for the new HTTP request.
[ATTRIBUTES ]
[C OMMENT] Since clients cannot assume that endpoints can support multiple HTTP connections,
this guideline recommends that clients use one TCP connection. Implementers of HTTP servers and
clients should also consider this guideline in conjunction with guidelines 11.4.3.49.1 and
11.4.3.49.2, which deal with scan operation playback (also known as trick-modes) for streaming
transfers.
11.4.3.5.7
[G UIDELINE ] An HTTP Server Endpoint shall begin sending a response message to an HTTP
requests within 27 s of receiving the request. Valid response messages shall be either the response
with content byte data, or appropriate error messages.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the maximum response time for an HTTP Server Endpoint for a
request for content.
in conjunction with 11.4.3.5.9, these guidelines ensure HTTP transactions for media transport.
The time-out value is for the worst case. HTTP Server Endpoints are urged to respond to a request
as soon as possible.
11.4.3.5.8
[G UIDELINE ] An HTTP Client Endpoint shall wait at least 30 s before closing the TCP connection if
it has not received any response from the HTTP Server Endpoint to an HTTP GET request for
content.
[ATTRIBUTES ]
[C OMMENT] This guideline is not subject to scenarios involving user cancellation. A connection can
be cancelled through user intervention at any time.
This does not imply that the entire content binary will be received within the 30 s, only that it has
started.
11.4.3.5.9
[G UIDELINE ] HTTP Server Endpoints shall be capable of providing at least one media transport
HTTP connection and it shall also be capable of processing sequential HTTP requests without
responding with an HTTP error response code 503 (Service Unavailable).
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that rendering endpoints are capable of rendering a content
binary using one media transport HTTP connection (see 11.4.3.5.4).
This guideline is not subject to preventing Content Sources to respond with 503 (Service
Unavailable) when it currently is unable to process a HTTP request (see 11.4.3.5.2). But a Content
Source will never return 503 (Service Not Available) under "Test Conditions".
11.4.3.5.10
[G UIDELINE ] An HTTP Server Endpoint shall use the HTTP status code of 503 (Service Unavailable)
for an HTTP request only on the conditions that the Content Source does not have sufficient
platform resources (network sockets, stored file in readable state, available tuner hardware, etc.)
for sending the response with content byte data. On other conditions, the HTTP Server Endpoint
shall not use the HTTP status code of 503 (Service Unavailable) for an HTTP request.
[ATTRIBUTES ]
[C OMMENT] This guideline defines the maximum response time for an HTTP Server Endpoint for a
request for content.
In conjunction with 11.4.3.5.9, these guidelines ensure HTTP transactions for media transport.
Time-out value is for the worst case. HTTP Server Endpoints are urged to respond to a request as
soon as possible.
11.4.3.5.11
[G UIDELINE ] An HTTP Client may treat HTTP Status code 503 (Service Unavailable) as equivalent
to HTTP Status code 500 (Internal Server Error).
[ATTRIBUTES ]
[C OMMENT] The guideline clarifies a Content Receiver behavior for response message 503 with or
without Retry-After. Hence, no retry is required.
Tolerant behavior is defined as being able to successfully "parse and interpret" or "parse and
ignore" the HTTP headers and their values.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 8EP7N
+DN+ +UP+ 1945
+DNSYNC+ IETF RFC
+UPSYNC+ 2616
[C OMMENT] This guideline addresses forward compatibility and allows for broader interoperability
with implementations that employ transport layer vendor extensions by way of HTTP headers.
11.4.3.6.2
[G UIDELINE ] Each HTTP header line (including the header's name and value but excluding the last
carriage-return/line-feed sequence, CRLF) shall not exceed 998 B.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC SFHYQ
+DN+ +UP+ 2616
+DNSYNC+ IETF RFC
+UPSYNC+ 2822
[C OMMENT] These guidelines limit the length of an HTTP header line according to 2.2.1 of
IETF RFC 2822. The guidelines also specify the normative way to encode HTTP headers that span
multiple lines.
11.4.3.6.3
[G UIDELINE ] If an HTTP header line (header's name and value but excluding the last CRLF)
exceeds 998 B, then the HTTP header shall span multiple lines. HTTP headers that span multiple
lines shall prefix the additional lines with at least one space (SP) or horizontal tab (HT) as described
in 4.2 of IETF RFC 2616.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 9GK5S
+DN+ +UP+ 2616
+DNSYNC+ IETF RFC
+UPSYNC+ 2822
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC FW6L8
+DN+ +UP+ 1945
+DNSYNC+ IETF RFC
+UPSYNC+ 2616
[ATTRIBUTES ]
[C OMMENT] HTTP servers need to support both HTTP/1.0 and HTTP/1.1 requests to ensure wide
interoperability.
11.4.3.8.2
[G UIDELINE ] HTTP/1.1 Server Endpoints used for media transport should return HTTP version 1.1
in the response header, regardless of the version specified in the HTTP client's request.
[ATTRIBUTES ]
[C OMMENT] IETF RFC 2145 clarifies that HTTP/1.1 servers are expected to return HTTP/1.1 even
if the HTTP server receives a request marked with HTTP/1.0. The robustness rules, specified by the
HTTP specification, enables clients and servers that employ different HTTP version numbers to
coexist properly.
Message format refers to both the HTTP headers and HTTP response body. As described by
IETF RFC 2145, the version field in a response message header indicates the protocol level that the
server is capable of understanding. However, a server that understands protocol version 1.1 can
generate messages compatible with version 1.0 in order to communicate with clients capable of
handling only the lower 1.0 version. When this happens, the response message has a version
header equal to 1.1, but the format of the message contains only version 1.0 headers. Reference
IETF RFC 2145 provides more details for interoperability between hosts with different HTTP
versions.
11.4.3.8.3
[G UIDELINE ] When responding to a request of version 1.0, an HTTP Server Endpoint shall format
the response message in such a way that the result of decoding and processing the message does
not depend on headers outside the scope of the HTTP 1.0 specification.
[ATTRIBUTES ]
11.4.3.8.4
[G UIDELINE ] HTTP Server Endpoints shall not report a higher version of HTTP than is actually
supported by the implementation.
[ATTRIBUTES ]
11.4.3.8.5
[G UIDELINE ] Interoperability between HTTP Client and Server Endpoints that implement different
versions of the HTTP protocol shall follow the provisions and recommended actions defined in
IETF RFC 2145.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC Z3F6V
+DN+ +UP+ 2145
+DNSYNC+
+UPSYNC+
[C OMMENT] Reference IETF RFC 2145 defines the significance of HTTP version numbers, the
rules for interoperability between hosts with different version numbers, and rules for the actual
version number to be included when creating messages.
11.4.3.8.6
[G UIDELINE ] HTTP Server Endpoints should support persistent HTTP/1.1 connections and
pipelined HTTP/1.1 requests.
[ATTRIBUTES ]
[C OMMENT] The default behavior for HTTP servers responding to HTTP/1.1 requests is to support
persistent connections, which means that the HTTP server can respond to multiple HTTP/1.1
requests on one HTTP session. Pipelined requests can be used to facilitate seek operations. See
11.4.3.69 for more information.
[ATTRIBUTES ]
O A DMS DMP +PU+ +UP+ M-DMS M-DMP n/a IETF RFC L8OUB
+DN+ +DNSYNC+ 2616
+UPSYNC+ AHRA
[C OMMENT] These guidelines make it possible to comply with regional legal requirements, such as
in AHRA. The flag is to be used with both DLNA and non DLNA audio only content. The syntax of the
value is strictly defined by these guidelines.
11.4.3.9.2
[G UIDELINE ] The notation of scmsFlag.dlna.org header field is defined as follows.
Definition of the value of the 1st character (i.e. left most) of the scmsFlag.dlna.org HTTP header:
• 0: copyright is asserted
• 1: no copyright is asserted
Definition of the value of the 2nd character of scmsFlag.dlna.org HTTP header:
• 0: Original recording
• 1: First generation or higher recording
The following example means copyright is asserted and first-generation or higher recording.
• scmsFlag.dlna.org: 01
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] It is imperative that endpoints specify the Content-Type field to allow the receiver to
know the MIME TYPE for the content that is to be sent in the HTTP response message.
11.4.3.10.2
[G UIDELINE ] The MIME-TYPE values that appear in Clause 5 of IEC 62481-2 shall be used as
values for Content-Type when an HTTP message describes DLNA media contents.
[ATTRIBUTES ]
[C OMMENT] This guideline specifies the correct mime type values for use with the Content-Type
header field when transporting content encoded in a DLNA media format.
11.4.3.10.3
[G UIDELINE ] HTTP Client Endpoints shall specify the Content-Type HTTP header in the HTTP
request if using a POST operation to send data.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] As noted, this guideline permits an HTTP Server endpoint o use the
contentFeatures.dlna.org in an HTTP response.
11.4.3.11.2
[G UIDELINE ] An HTTP Server Endpoint may respond with the contentFeatures.dlna.org HTTP
header to an HTTP GET or HEAD request that does not have the getcontentFeatures.dlna.org HTTP
header.
[ATTRIBUTES ]
11.4.3.11.3
[G UIDELINE ] HTTP Client Endpoints may use the getcontentFeatures.dlna.org when issuing GET
or HEAD requests.
[ATTRIBUTES ]
[C OMMENT] These guidelines describe how an HTTP client endpoint can request an HTTP server
to use the contentFeatures.dlna.org in the response.
11.4.3.11.4
[G UIDELINE ] The notation of getcontentFeatures.dlna.org header field is defined as follows:
Example:
• getcontentFeatures.dlna.org: 1
[ATTRIBUTES ]
M A DMS DMP DMR +DN+ M-DMS M-DMP n/a IETF RFC W6L8O
+UP+ +PU+ 2616
+DNSYNC+ ISO/IEC
+UPSYNC+ 29341-20-3
11.4.3.11.5
[G UIDELINE ] If an HTTP Server Endpoint receives any value except "1" in the
getcontentFeatures.dlna.org header it shall return an error code response of 400 (Bad Request).
[ATTRIBUTES ]
11.4.3.11.6
[G UIDELINE ] The value of the contentFeatures.dlna.org HTTP header shall be the same value as
the fourth field of the content's res@protocolInfo value, as described in the 10.1.3.17 MM
protocolinfo values: 4th Field guideline.
The notation of contentFeatures.dlna.org header field for DLNA media transport is defined as
follows:
[C OMMENT] This guideline allows HTTP transport transactions to carry information (that is
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 512 –
normally only accessible at the UPnP AV ContentDirectory service layer) about the requested
content (and the server capabilities for that content).
11.4.3.11.7
[G UIDELINE ] HTTP Client Endpoints shall not include the following headers in HTTP requests,
unless the appropriate protocolInfo 4th field parameters indicate support for them.
• Range
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
• getAvailableSeekRange.dlna.org
[ATTRIBUTES ]
[C OMMENT] The 4th field of a protocolInfo is obtained from contentFeatures.dlna.org. Devices can
also directly check metadata in the CDS, without using contentFeatures.dlna.org.
These guidelines do not define interoperability guidelines for a scenario where an HTTP Client
Endpoint attempts to use an optional transport layer feature when the 4th field does not indicate
support for the transport layer feature.
11.4.3.11.8
[G UIDELINE ] An HTTP client that issues a POST request for uploading DLNA-conformant content
shall use the contentFeatures.dlna.org HTTP header. The value sent shall match the 4th field that
was sent in the CDS:CreateObject request, as defined in 10.1.8.19.6.
[ATTRIBUTES ]
11.4.3.11.9
[G UIDELINE ] If an HTTP Server Endpoint receives a POST request
[ATTRIBUTES ]
29341-20-3
[C OMMENT] This guideline allows an HTTP Server Endpoint to accept upload of non-DLNA content
or allow it to reject such content.
If an HTTP Server Endpoint does not provide a res@dlna:ifoFileURI for a resource, then the HTTP
server shall not provide the Pragma-with-ifoFileURI-pragma-directive in the HTTP response.
[ATTRIBUTES ]
[C OMMENT] Subclause 14.32 of IETF RFC 2616 defines the Pragma as a general-header for
implementation-specific directives.
The DLNA.ORG_PN parameter in the contentFeatures.dlna.org header field indicates the DLNA
Media Format Profile ID. Furthermore, as described in 10.1.4.9, content profiled as
MPEG_PS_NTSC or MPEG_PS_PAL can have an IFO file. If the HTTP response to a request with
the Pragma-with-getIfoFileURI-pragma-directive does not include the
Pragma-with-ifoFileURI-pragma-directive, then the HTTP client endpoint needs to be aware that the
AV content does not have an IFO file.
Implementers need to be careful not to exceed the maximum 998 B limit for HTTP header lines when
using the Pragma-with-IfoFileURI-pragma-directive.
11.4.3.12.2
[G UIDELINE ] HTTP Client Endpoints may use the Pragma-with-getIfoFileURI-pragma-directive
when issuing GET or HEAD requests.
[ATTRIBUTES ]
11.4.3.12.3
[G UIDELINE ] The notation of the PRAGMA header field with the getIfoFileURI-pragma-directive is
defined as follows:
Examples:
• PRAGMA: getIfoFileURI.dlna.org
• PRAGMA: getIfoFileURI.dlna.org, no-cache
[ATTRIBUTES ]
[C OMMENT] The "1#token" syntax means a comma separated list including one or more elements.
LWS can appear before and after the separator comma ',' in this syntax. See 2.1 of IETF RFC 2616.
11.4.3.12.4
[G UIDELINE ] The notation of the PRAGMA header field with the ifoFileURI-pragma-directive is
defined as follows
• PRAGMA: ifoFileURI.dlna.org="http://192.168.0.1:8080/IFO_101.ifo"
The PRAGMA HTTP header name, the pragma-directive token, and the ifoFileURI-pragma-directive
token are case insensitive.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] There are several interpretations to the format of HEAD responses. These guidelines
provide consistent interpretation.
11.4.3.13.2
[G UIDELINE ] A Target Response to a HEAD request shall be composed of only HTTP headers and
a zero-length response entity body.
[ATTRIBUTES ]
11.4.3.13.3
[G UIDELINE ] Target Responses to identical HTTP version HEAD and GET requests for a given
content binary shall use consistent transfer encoding headers. For example, if Content-Length is
included in a HEAD Target Response then Content-Length shall also be present in the GET Target
Response for the same content binary.
This guideline assumes that the content binary has not changed between the different HTTP
requests.
[ATTRIBUTES ]
[C OMMENT] This guideline forbids HTTP Server Endpoints from responding to a GET request using
a different encoding method than the HEAD Target Response. For example, a DMS could not
respond to a HEAD request with Content-Length and respond to a GET request using chunked
encoding.
11.4.3.13.4
[G UIDELINE ] If an HTTP server does not know the length of a requested resource, such as in the
case when Chunked Transfer Coding is employed in HTTP/1.1, the Content-Length field shall be
omitted from the HEAD Target Response.
[ATTRIBUTES ]
11.4.3.13.5
[G UIDELINE ] If an HTTP Server Endpoint (HTTP/1.1 and HTTP/1.0) responds to an HTTP GET
request with a non-error response, the HTTP server should respond to the equivalent HEAD request
with a non-error response.
A successful response is defined as an HTTP response with a status code in the 1xx or 2xx range.
[ATTRIBUTES ]
[C OMMENT] HTTP specification requires HTTP servers to respond to HEAD requests. This
guidelines clarifies that HTTP servers cannot respond with an error code for HEAD requests that
target a valid URI for the HTTP server.
This is not mandatory because conditions can be different than for those of the GET request (e.g.
server saturation, etc).
11.4.3.13.6
[G UIDELINE ] The HTTP headers of a HEAD Target Response shall include the Content-Type HTTP
header.
[ATTRIBUTES ]
[C OMMENT] Ideally, an HTTP server can know all of the HTTP headers (for requests that use
TimeSeekRange.dlna.org, Range, PlaySpeed.dlna.org, or other HTTP headers) that will be sent in
an HTTP response without doing any of the computational work to buffer content data, but some
scenarios (such as those involving transcoding, live streams, random access requests, etc.) require
a lot of computational cycles. For these reasons, these guidelines specify minimal expectations for
HEAD responses while recommending the ideal expectations.
11.4.3.13.7
[G UIDELINE ] HTTP HEAD Target Responses should have the exact same HTTP headers as those
in the equivalent HTTP GET Target Response.
[ATTRIBUTES ]
11.4.3.13.8
[G UIDELINE ] An HTTP client should not issue an HTTP HEAD request to a URI intended for a file
upload (e.g. res@importUri, res@dlna:importIfoFileURI).
[ATTRIBUTES ]
that use the same URI value for res@importUri and the <res> value might choose to only respond in
the manner of a GET request.
[ATTRIBUTES ]
[C OMMENT] HTTP/1.0 HEAD requests allow control points to query a server for the length of an
image file, when res@size metadata is not available. The reason why HTTP/1.0 is used for this
purpose is that chunked transfer coding and Content-Length are used in a mutually exclusive
manner. Since HTTP servers are required to support HTTP/1.1, many servers use chunked transfer
coding. Furthermore, DLNA guidelines require HTTP headers to be the same for equivalent GET
and HEAD requests. Therefore, using HTTP/1.0 for the HEAD request improves the odds of
success.
[ATTRIBUTES ]
[C OMMENT] Incorrect HTTP header parsing has been the source of numerous compatibility issues
during plugfest events.
[ATTRIBUTES ]
[C OMMENT] The usage of Content-Length is not allowed under 4.4 of the HTTP spec in IETF RFC
2616.
Applies to both HTTP GET response messages and POST request messages.
11.4.3.16.2
[G UIDELINE ] If the Content-Length HTTP header is omitted from an HTTP GET response, then the
HTTP Server Endpoint shall do one of the following.
• The HTTP server will close the TCP connection after sending the last byte of the response
message. Furthermore, if the HTTP server is responding to an HTTP/1.1 transaction, then the
HTTP server shall also use the CONNECTION: CLOSE header and value to explicitly indicate
that it will close the connection. Lastly, any additional byte sequence following the headers shall
be treated as entity-body bytes until the instant when the connection is closed.
• The HTTP/1.1 server will use chunked transfer-coding for the response when communicating
with an HTTP/1.1 client.
This guideline applies in all scenarios with the following exceptions.
• Response messages that are prohibited from having an entity-body (such as the 1xx, 204, and
304 responses).
• The HTTP server returns an HTTP/1.1 response with no entity-body, Chunked Transfer Coding
is not used, and the CONNECTION:CLOSE header is not used (i.e. persistent connection).
[ATTRIBUTES ]
[C OMMENT] These guidelines clarify the expected behavior regarding Content-Length usage for
response messages.
For pipelined requests, if the server decides to close a TCP connection for some response, any
additional requests submitted afterwards will not be processed by the server.
If the Content-Length is used in messages with no entity body, then the accurate value of "0" is
required per guideline 11.4.3.16.5. Likewise messages encoded with Chunked Transfer Coding will
use the accurate value of "0" for the chunk-size.
11.4.3.16.3
[G UIDELINE ] If the Content-Length HTTP header is omitted from an HTTP POST request, then the
HTTP Client Endpoint shall use Chunked Transfer Coding for the request.
[ATTRIBUTES ]
11.4.3.16.4
[G UIDELINE ] An HTTP message that carries no content binary data in the entity body, and which
uses Chunked Transfer Coding shall use a single chunk with chunk-size indicator equal to 0.
[ATTRIBUTES ]
[C OMMENT] Some response messages do not carry content binary data in the message payload. If
the HTTP Server Endpoint is using Chunked Transfer Coding to produce this message, then the
message has a single one-line chunk-size indicator with a value of 0.
11.4.3.16.5
[G UIDELINE ] When operating under persistent connections (including pipelining), an HTTP/1.1
client shall detect the existence of a message entity body when it receives a message with
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the process used by a client to parse and extract the body (if
any) of received response messages.
Response messages that do not carry a Content-Length, and do not use transfer encoding, could
carry content bytes if the server closes the connection after sending the last byte. The server needs
to explicitly announce that the connection will be closed by using the adequate header.
11.4.3.16.6
[G UIDELINE ] When operating under persistent connections (including pipelining), an HTTP/1.1
Server shall detect the existence of a message entity body when it receives a POST message with
[C OMMENT] This guideline clarifies the process used by a server to parse and extract the body (if
any) of a request messages.
11.4.3.16.7
[G UIDELINE ] If an HTTP Server Endpoint knows the byte length of a response body, then the HTTP
server should use the Content-Length HTTP header in the HTTP Target Response.
[ATTRIBUTES ]
[C OMMENT] As a general rule, the Content-Length provides useful information to HTTP clients.
However, the Content-Length HTTP header is not required because it is difficult to provide an
accurate byte length in some scenarios. For example, HTTP servers that are transmitting live
content (and some transcoded content) might not know the value for the Content-Length HTTP
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 520 –
header field. In cases when the Content-Length is provided, the value needs to match the byte
length of the response body.
11.4.3.16.8
[G UIDELINE ] If the HTTP Server Endpoint does not know the byte length of the response entity
body or if Content-Length cannot be used due to some exceptions listed in IETF RFC 2616, 4.4,
then HTTP servers shall omit the Content-Length HTTP header from HEAD, and GET Target
Responses.
[ATTRIBUTES ]
11.4.3.16.9
[G UIDELINE ] If an HTTP Server Endpoint sends an HTTP GET Target Response with the
Content-Length HTTP header, then the byte length of the response entity body shall match the
value of the Content-Length HTTP header.
[ATTRIBUTES ]
11.4.3.16.10
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP/1.0 GET request and sends an HTTP
Target Response that does not have a Content-Length HTTP header, then the HTTP server shall
close the TCP connection when all data is transferred.
[ATTRIBUTES ]
[C OMMENT] The HTTP server is required to close the TCP connection in this scenario because only
the HTTP server knows when it has finished sending the bytes for the requested URI.
11.4.3.16.11
[G UIDELINE ] If an HTTP Client Endpoint knows the byte length of the entity-body in a POST request,
then the HTTP client should use the Content-Length HTTP header in the HTTP request.
[ATTRIBUTES ]
11.4.3.16.12
[G UIDELINE ] If the HTTP Client Endpoint does not know the byte length of the entity-body in a
POST request or if Content-Length cannot be used, the HTTP Client Endpoint shall omit the
Content-Length HTTP header from the POST request and use the Chunked Transfer Coding as
specified in IETF RFC 2616, 4.4.
[ATTRIBUTES ]
11.4.3.16.13
[G UIDELINE ] If an HTTP Client Endpoint sends an HTTP POST Request with the Content-Length
HTTP header, then the byte length of the entity-body shall match the value of the Content-Length
HTTP header.
[ATTRIBUTES ]
• Content-Length header;
• first byte pos and last byte pos (as defined in 14.35.1 and 14.16 of IETF RFC 2616 and guideline
11.4.3.22.2);
• instance-length (as defined in 14.16 of IETF RFC 2616);
• chunk-size (as defined in 3.6.1 of IETF RFC 2616).
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 4J4YC
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] The HTTP specification, IETF RFC 2616, does not limit the maximum content length.
Note that a 32 bit integer is not sufficient, especially, for a 2 hour MPEG-2 stream that exceeds
4 GiB. The specified range covers the maximum size of a DLNA content binary.
Chunk-size is in hexadecimal form, while the other fields are in decimal form.
11.4.3.17.2
[G UIDELINE ] An HTTP Client or Server Endpoint shall parse and interpret values up to
281474976710655 (i.e. 2^48 - 1) for the Content-Length header field, Range Units in bytes, and
chunk-size field that are represented in HTTP requests/responses.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC W58V5
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
The process for acquiring the random access data ranges for Full Random Access Data Availability
and Limited Random Access Data Availability model are described in 11.4.3.19 and 11.4.3.19.10,
respectively.
All guidelines in this subclause apply for both Full Random Access Data Availability and Limited
Random Access Data Availability models.
[ATTRIBUTES ]
[C OMMENT] Guideline 11.4.3.5.4 states that HTTP clients will not assume that HTTP servers
accept more than one media transport HTTP connection at a time. Although an HTTP client will not
assume that the HTTP server accepts more than one HTTP GET request simultaneously, this
guideline clarifies the intent for HEAD requests. In cases where a random access data range is
updated while an HTTP client is receiving streaming data from a HTTP GET request, it is useful for
the HTTP client to use an HTTP HEAD request to get the current random access data range
simultaneously.
11.4.3.18.2
[G UIDELINE ] If an HTTP Server Endpoint supports the TimeSeekRange.dlna.org header field for
the specified URI, it shall process any requested range in the random access data range at the time.
[ATTRIBUTES ]
[C OMMENT] This is a general requirement that random access requests be supported on the entire
[r 0 , r N ] data range.
11.4.3.18.3
[G UIDELINE ] If an HTTP Server Endpoint supports the Range header field for the specified URI, it
shall process any requested range in the random access data range at the time.
[ATTRIBUTES ]
[C OMMENT] This is a general requirement that random access requests be supported on the entire
[r 0 , r N ] data range.
• Byte position 0;
• The decoder friendly position (see 11.4.3.23.5, GUN ES2RR).
All guidelines in this subclause apply only in the case of Full Random Access Data Availability
model.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 4397E
2616
[C OMMENT]
a) These guidelines clarify guidelines 11.4.2.15 by explaining how npt values and byte indices are
used with the TimeSeekRange.dlna.org and Range headers.
b) For some media formats the decoder friendly position is not byte position 0. For example, in the
case of DLNA-compliant MP4 files, the GOP for time 0 could be located up to 1 MB away from
the beginning of the file
11.4.3.19.2
[G UIDELINE ] If the end position is not specified in a GET request with Range or
TimeSeekRange.dlna.org, then the HTTP Server Endpoint's transmission of the Target Response
shall include the content data that is currently available and the content data that will be available in
the future for the current stream. (That is, assuming s N is changing with time, the server keeps
transmitting data until s N becomes permanently fixed.)
[ATTRIBUTES ]
11.4.3.19.3
[G UIDELINE ] The byte position of 0 for the Range header field shall refer to the beginning of the
content binary.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 3PU8U
+DN+ +DNSYNC+ 2616
11.4.3.19.4
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP GET request that omits the Range and
TimeSeekRange.dlna.org HTTP headers, then the HTTP Server Endpoint shall infer a byte-pos of 0
(i.e. respond from the beginning of the content binary).
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that HTTP clients will receive content in a manner consistent
with the conventions established by HTTP.
11.4.3.19.5
[G UIDELINE ] If an HTTP Server Endpoint supports the Range HTTP header (as defined in the
11.4.3.22) with the Full Random Access Data Availability model, the HTTP Server Endpoint should
specify the instance-length in the Content-Range HTTP header field of the Target Response to a
HTTP GET/HEAD request with the Range HTTP header field.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies 14.16 of IETF RFC 2616. The asterisk "*" can be used instead
of the instance-length if the instance-length is unknown at the time when the response was
generated or when s N increasing is true. However, DLNA recommends that HTTP servers provide
an instance-length.
11.4.3.19.6
[G UIDELINE ] If an HTTP Client Endpoint wants to get the instance-length of a content binary, then
it should use an HTTP HEAD request with the Range HTTP header that specifies 0 for the
first-byte-position and omits the end byte-position.
[ATTRIBUTES ]
[C OMMENT] The response will include the Content-Range header. If the instance length is known,
then it will be number of bytes in the UCDAM [s 0 , s N ] data range. Otherwise, the instance-length
token will be "*".
11.4.3.19.7
[G UIDELINE ] If an HTTP Server Endpoint is serving stored content it shall provide the
instance-length in the Content-Range header.
[ATTRIBUTES ]
11.4.3.19.8
[G UIDELINE ] If an HTTP Server Endpoint supports the TimeSeekRange.dlna.org HTTP header (as
defined in guideline 11.4.3.23) with the Full Random Access Data Availability model, the HTTP
Server Endpoint shall specify the duration of the entire content binary in the instance-duration field
of the TimeSeekRange.dlna.org HTTP header sent in response to an HTTP GET/HEAD request with
the TimeSeekRange.dlna.org HTTP header field.
[ATTRIBUTES ]
11.4.3.19.9
[G UIDELINE ] In conjunction with the guideline 11.4.3.19.8, if an HTTP Server Endpoint supports
both byte-based seek and time-based-seek operations for a resource, it shall specify the byte length
of the entire content binary in the instance-length field of the TimeSeekRange.dlna.org HTTP
header field sent in response to an HTTP GET/HEAD request with the TimeSeekRange.dlna.org
HTTP header field.
[ATTRIBUTES ]
11.4.3.19.10
[G UIDELINE ] If an HTTP Client Endpoint wants to get the instance-duration of a content binary,
then it should use an HTTP HEAD request with the TimeSeekRange.dlna.org HTTP header that
specifies 0 for the npt-start-time and omits the npt-end-time.
[ATTRIBUTES ]
[C OMMENT] The response will include the TimeSeekRange.dlna.org header. If the instance
duration is known, then it will be the duration of the UCDAM [s 0 , s N ] data range. Otherwise, the
instance-duration token will be "*".
All guidelines in this subclause apply only in the case of Limited Random Access Data Availability
model.
[ATTRIBUTES ]
[C OMMENT] In the case of live content, the end of the content binary is undefined. If the end
position is not specified in the request, it means the client wants to continue receiving data until the
absolute end of the stream.
11.4.3.20.2
[G UIDELINE ] Since the random access data range of [r 0 , r N ] is able to change at any time, the HTTP
Client Endpoint should not assume that a GET request (with either Range or
TimeSeekRange.dlna.org) that specifies a range with a previous random access data range will
always return the requested data range when mode-flag is “0”.
[ATTRIBUTES ]
[C OMMENT]
a) When mode-flag is 0, an HTTP byte seek or time seek request canreturn a range response
that differs from the requested range due to the continuously changing random access data
range. So long as there is some overlap between the seek request and the currently
available content, the Client Endpoint can determine the effective range of a seek via the
Content-Range or TimeSeekRange.dlna.org response headers.
b) A seek request that falls completely outside the random access data range will return error
code 416 (Requested Range Not Satisfiable), (see 11.4.3.22.5)
c) Note that if sN is increasing, and an end position is not specified in the range request, the
end position and content length/duration will not be provided in the seek response header.
(see 11.4.3.20.1)
11.4.3.20.3
[G UIDELINE ] If the HTTP Client Endpoint includes both the TimeSeekRange.dlna.org HTTP header
field and the PlaySpeed.dlna.org HTTP header field in an HTTP GET request for a content binary in
case of the Limited Random Access Data Availability model, it shall specify the end position of the
request range in the range specifier of the TimeSeekRange.dlna.org HTTP header. This guideline
applies to both positive speed value (forward scan mode) and negative speed value (backward scan
mode).
[ATTRIBUTES ]
[C OMMENT] Even if the HTTP server supports the PlaySeed.dlna.org HTTP header field for server
side's trick mode, it cannot process it beyond the current available data in case of Limited Random
Access Data Availability.
11.4.3.20.4
[G UIDELINE ] If an HTTP Server Endpoint supports either the Range HTTP header (as defined in
guideline 11.4.3.22) or the TimeSeekRange.dlna.org HTTP header (as defined in guideline
11.4.3.23) with the Limited Random Access Data Availability model for a content binary, the HTTP
Server Endpoint shall support the getAvailableSeekRange.dlna.org HTTP header field and
availableSeekRange.dlna.org HTTP header field in HTTP GET/HEAD requests for the content
binary.
[ATTRIBUTES ]
[C OMMENT] Essentially, a server that supports the Limited Random Access Data Availability model
for HTTP needs to implement support for the getAvailableSeekRange.dlna.org and
availableSeekRange.dlna.org HTTP headers. These headers allow clients to request the random
access data range and allow servers to respond with that information.
11.4.3.20.5
[G UIDELINE ] If an HTTP Server Endpoint that supports the availableSeekRange.dlna.org HTTP
header field (for a content binary) receives an HTTP HEAD/GET request with the
[ATTRIBUTES ]
11.4.3.20.6
[G UIDELINE ] The notation of getAvailableSeekRange.dlna.org header field shall be as follows:
Example:
• getAvailableSeekRange.dlna.org: 1
[ATTRIBUTES ]
M A DMS DMP DMR +DN+ M-DMS M-DMP n/a IETF RFC R8WAA
+PU+ +DNSYNC+ 2616
11.4.3.20.7
[G UIDELINE ] If an HTTP Server Endpoint receives any value except "1" in the
getAvailableSeekRange.dlna.org header it shall return an error code response of 400 (Bad
Request).
[ATTRIBUTES ]
11.4.3.20.8
[G UIDELINE ] The notation of the availableSeekRange.dlna.org header field for DLNA media
transport shall be as follows:
Examples:
• availableSeekRange.dlna.org: 0 bytes=214748364-224077003
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 528 –
• availableSeekRange.dlna.org: 0 npt=00:05.30.12-00:10:34
• availableSeekRange.dlna.org:1npt=00:05.30.12-00:10:34 bytes=214748364-224077003
[ATTRIBUTES ]
11.4.3.20.9
[G UIDELINE ] If mode-flag is "0", then the following behaviors shall be implemented by the HTTP
Server Endpoint when responding with the availableSeekRange.dlna.org HTTP header.
• The HTTP Server Endpoint shall implement rules in 11.4.2.16, guideline 11.4.2.16.2 and
guideline 11.4.2.16.3 for Mode=0.
• The range-specifier (i.e. npt-range and/or bytes-range) shall indicate the [r 0 , r N ] data range,
effective at the time the response with the availableSeekRange.dlna.org header is generated.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the Mode=0 rules described in 11.4.2.16, Requirement
11.4.2.16.2, by explaining how specific syntax tokens refer to the UCDAM data boundaries.
The npt and byte positions provided in the range-specifier indicate the available data range for
Range or TimeSeekRange.dlna.org seek requests.
11.4.3.20.10
[G UIDELINE ] An HTTP Client Endpoint operating on Limited Random Access Data Availability
model content with mode-flag set to “0” may specify a value for the first-byte-pos or the
npt-start-time tokens in a request that precedes the available seek range and expect a seek
response so long as the last-byte-pos or npt-end-time do not also precede the available seek range.
[ATTRIBUTES ]
[C OMMENT]
c) A GET request with no Range or TimeSeekRange.dlna.org header will return data as the
data becomes available (“live”) when sN is increasing. (see 11.4.2.16.2)
11.4.3.20.11
[G UIDELINE ] If mode-flag is "1", then the following behaviors shall be implemented by the HTTP
Server Endpoint when responding with the availableSeekRange.dlna.org HTTP header.
• The HTTP Server Endpoint shall implement rules in 11.4.2.16.4 (MT Limited Random Access
Data Availability model) for Mode=1.
• If present, the npt-range shall map to [r 0 , r N ] such that if the HTTP Server Endpoint receives a
request that specifies an npt-range that is inclusively within the server's range-specifier (as
indicated in availableSeekRange.dlna.org), then the HTTP Server Endpoint shall be able to
serve the requested data bytes in a timely manner.
• If present, the bytes-range map to a subset of [r 0 , r N ] such that if an HTTP Server Endpoint
receives a request that specifies a bytes-range that is inclusively within the server's
range-specifier (as indicated in availableSeekRange.dlna.org), then the HTTP Server Endpoint
shall be able to serve the requested data bytes in a timely manner.
• The npt-pos and byte-pos of "0" shall be valid and shall point to the beginning of the content.
• Servers that receive a GET request that omits both Range and TimeSeekRange.dlna.org shall
respond with content data from the absolute beginning (i.e. s 0 ) of the content.
A timely response is defined in 11.4.2.16.4.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the Mode=1 rules described in 11.4.2.16 , Requirement
11.4.2.16.4, by explaining how syntax tokens refer to the UCDAM data boundaries.
The byte range in the range-specifier indicate the data range for use in requests that use Range
where the response will return in a timely manner.
Unlike Range, responses with TimeSeekRange.dlna.org are timely for the entire content binary.
Unlike Mode=0, a request that omits the Range and TimeSeekRange.dlna.org headers results with
content data from the beginning of the content binary, which is required to be static and
non-changing.
11.4.3.20.12
[G UIDELINE ] If mode-flag is "1", then the HTTP Server Endpoint shall be able to respond with the
requested data bytes, even if the request specifies a bytes-range (in the HTTP request) that is not
inclusively within the server's range-specifier (as indicated in the HTTP server's responses with
availableSeekRange.dlna.org).
[ATTRIBUTES ]
[C OMMENT] The content data mapped by range-specifier is where timely responses are
mandatory.
The content data for [s 0 , s N ] is always available for transmission although the computational
complexity to perform responses for the portions outside of the server's indicated range-specifier (in
the availableSeekRange.dlna.org header value) can cause in responses that are not timely.
11.4.3.20.13
[G UIDELINE ] If mode-flag is "1" and the HTTP Server Endpoint responds with data bytes that is not
inclusively within the server's range-specifier (as indicated in the HTTP server's responses with
availableSeekRange.dlna.org), then the HTTP server, may begin its response with content data
after 27 s.
[ATTRIBUTES ]
11.4.3.20.14
[G UIDELINE ] If an HTTP Server Endpoint supports the TimeSeekRange.dlna.org HTTP header for
a content binary that operates under the Limited Random Access Data Availability model, it shall
provide the npt-range in the availableSeekRange.dlna.org HTTP header field of the Target
Response to an HTTP request with the getAvailableSeek.Range.dlna.org header HTTP header
field.
[ATTRIBUTES ]
11.4.3.20.15
[G UIDELINE ] If an HTTP Server Endpoint supports the Range HTTP header for a content binary
that operates under the Limited Random Access Data Availability model, it shall provide the
bytes-range in the availableSeekRange.dlna.org HTTP header field of the Target Response to an
HTTP request with the getAvailableSeek.Range.dlna.org header HTTP header field.
[ATTRIBUTES ]
11.4.3.20.16
[G UIDELINE ] If the mode-flag=0, then an HTTP Client Endpoint shall not assume an npt value 0 or
a byte position of 0 returned in an availableSeekRange.dlna.org HTTP header has any special
significance.
[ATTRIBUTES ]
[C OMMENT] When the mode-flag is zero, then the "beginning of the content" becomes undefined.
Clients are not to assume that npt or byte positions of 0 map to the beginning of the content or that
the same content will be associated with time/byte 0. See 10.1.3.33.2 for conditions that can cause
the Content Source to reset the s0 position.
11.4.3.20.17
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP GET request when s 0 increasing is
false and neither Range nor TimeSeekRange.dlna.org are supported by the HTTP Server Endpoint,
then the HTTP Server Endpoint shall infer a byte-pos of 0 (i.e. respond from the beginning of the
content binary).
[ATTRIBUTES ]
[C OMMENT] This guideline ensures that HTTP clients will receive content in a manner consistent
with the conventions established by HTTP.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC BZ33H
2616
[C OMMENT] Byte-based seek is a generic, transport layer term that applies only to Streaming
Transfer. The Range header is a specific transport layer mechanism for HTTP.
Range header is valid for Interactive Transfer and Background Transfer, as described in 11.4.3.61
and 11.4.3.64. However, the byte-based seek operation is only valid for Streaming Transfer.
11.4.3.21.2
[G UIDELINE ] The TimeSeekRange.dlna.org HTTP header shall be used as the mechanism for
time-based seek operations on the HTTP transport protocol. The seek-able data range shall be
equivalent to the random access data range of [r 0 , r N ].
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC XZZXW
2616
[C OMMENT]
a) Time-based seek is a generic, transport layer term that applies only Streaming Transfer. The
TimeSeekRange.dlna.org header is a specific transport layer mechanism for HTTP.
b) Time-based seek operation is valid only for Streaming Transfer. Using the
TimeSeekRange.dlna.org header is expressly prohibited for Background Transfer and
Interactive Transfer.
[ATTRIBUTES ]
[C OMMENT] HTTP Server Endpoints that receive an HTTP request with a Range header field are
expected to respond in a specific manner. The rules below describe what an HTTP server needs if
the URI can or cannot support requests with a specified Range.
11.4.3.22.2
[G UIDELINE ] The notation of Range header field for DLNA media transport shall be as defined in
IETF RFC 2616 with the restriction that only one interval is allowed.
Examples:
• Range: bytes=1539686400-
• Range: bytes=1539686400-1540210688
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC Z33H5
+UP+ +DN+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] This guideline simplifies the implementation of HTTP Server Endpoints by requiring
only a subset of the allowed Range syntax afforded by IETF RFC 2616. Essentially, DLNA
implementations of HTTP clients can only assume that a DLNA implementation of an HTTP server
will support Range values that indicate the first byte index and an optional last byte index. In
summary, this restriction means that only a single range will be used within the Range header field.
While this guideline limits the number of range intervals to a single one, any other rules on syntax or
semantics from IETF RFC 2616 remain applicable.
DLNA guidelines; Part 1-1: Architecture and protocols
– 533 –
11.4.3.22.3
[G UIDELINE ] If an HTTP Server Endpoint returns data including the requested range (Target
Response) with the HTTP response code 206 (Partial Content), then it shall specify the
Content-Range header field.
[C OMMENT] This guidelines obliges an HTTP Server Endpoint to respond with a 206 response code
for a request thatis satisfiable according to IETF RFC 2616 10.4.7 and 14.35.1. This allows HTTP
Client Endpoints to depend on the availability of this response header, simplifying their
implementations.
Subclause 14.16 in IETF RFC 2616 has examples on this guideline usage.
This guideline does not explain the relationship between first-byte-pos and last-byte-pos and the s 0
and s N data boundaries. For example, if first-byte-pos=50 and last-byte-pos=200, then the
response entity body will contain 151 B. The first byte of the entity-body will correspond to the 51st
byte of the complete file and the last byte of the entity body will correspond to the 201st byte,
relative to the complete content binary. This scenario does not at all imply that the 51st or 201st
bytes (of the complete content binary) have any specific relationship to the s 0 or s N data boundaries.
Building on this example, if the s N increasing flag is true, then the complete binary is still increasing
size. This results in a scenario where the 201st byte does not map to the s N data boundary.
11.4.3.22.4
[G UIDELINE ] If the HTTP Server Endpoint uses the Content-Range HTTP header, then the
provided values shall be accurate with respect to the entity response body. Specifically,
• the value indicating the first-byte-pos shall properly match the first byte of the response entity
body;
• the first-byte-pos in the response shall match the first-byte-pos in the request message;
• the value indicating the last-byte-pos shall properly match the last byte of the response entity
body;
• the value indicating the instance-length shall indicate the length of the entire content binary or
asterisk (*) if unknown.
Note that "accurate with respect to the entity response body" means that the guideline explains that
the values used for the Content-Range header's first-byte-pos and last-byte-pos tokens need to
correspond to the actual content data that is returned in the response entity body.
[ATTRIBUTES ]
11.4.3.22.5
[G UIDELINE ] If the requested range does not overlap the available content for the resource with a
URI specified in the HTTP request, the HTTP Server Endpoint shall respond with the HTTP
response code of 416 (Requested Range Not Satisfiable).
When encountering syntax errors with the Range HTTP header as defined in IETF RFC 2616, the
HTTP server shall respond using one of the following:
[C OMMENT] Ignoring the erroneous RANGE header means that the server will process the request
as if such a header were not present in the request.
IETF RFC 2616, 14.35.1 defines what constitutes a valid range request and when the request is
invalid. For example, for a file of size 500, a request for bytes 200 to 800 is valid. A request for bytes
700 to 800 is invalid. Similarly, when a resource is operating under the Limited Data Availability
model in mode “0” with an available byte range of 200-500, a request for bytes 100-400 is valid. But
a request for bytes 0-100 is invalid.
11.4.3.22.6
[G UIDELINE ] If an HTTP Server Endpoint can support HTTP requests with a specified Range for a
particular URI, then the HTTP Server Endpoint should support persistent connections (HTTP/1.1)
for that URI.
[ATTRIBUTES ]
[C OMMENT] Content that is requested with the Range option can often get many Range requests in
a short period of time, potentially causing content serving devices to run out of available sockets.
11.4.3.22.7
[G UIDELINE ] An HTTP Server Endpoint should accept and honor an HTTP/1.0 GET or HEAD
requests for media transfers with the Range header field.
[ATTRIBUTES ]
[C OMMENT] Although the Range option is not covered in the HTTP/1.0 specification, HTTP/1.0
clients can still benefit from having the ability to issue GET requests with a specified Range.
11.4.3.22.8
[G UIDELINE ] If the Content Source does not indicate support for the Range HTTP header for a
content binary (as defined in guidelines 10.1.3.20.1 and 10.1.3.28.4), then the HTTP Client
Endpoint shall not issue HTTP GET and HEAD requests with the Range HTTP header.
[ATTRIBUTES ]
[C OMMENT] This prohibition includes HTTP GET and HEAD requests with Range: bytes=0-.
11.4.3.22.9
[G UIDELINE ] If the Range request is syntactically correct and the requested range is valid, and if
the HTTP Server Endpoint returns data including the requested range (Target Response), then it
shall respond to the HTTP GET request with the 206 (Partial Content) HTTP response code.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] HTTP requests with the Range header field do not provide a very accurate experience
when seeking to playback positions in variable bitrate encoded content. This HTTP header provides
a way for DLNA HTTP clients to request an HTTP server to send the content bytes for a specified
range of time.
HTTP clients can also use seek operations to implement a forward/backward variable speed
playback capability.
11.4.3.23.2
[G UIDELINE ] The notation of the TimeSeekRange.dlna.org header field is defined as follows.
The npt-range specifies the range in normal playing time as found in 3.6 of IETF RFC 2326 with the
exception of the concept of the "now" literal. It is used in the request and response.
The bytes-range specifies the range in bytes and it is used only in the response. Refer to
11.4.3.23.4.
The instance-duration specifies the duration of an entire content binary and is mandatory in the
response and prohibited in the request. The asterisk "*" character indicates that the
instance-duration is unknown at the time the response is generated. Refer to 11.4.3.23.6 for more
information.
The instance-length specifies the byte length of an entire content binary and bytes-range shall
include instance-length in the response. The asterisk "*" character indicates that the
instance-length is unknown at the time the response is generated. Refer to 11.4.3.23.4 for more
information.
Examples:
• TimeSeekRange.dlna.org: npt=335.11-336.08
• TimeSeekRange.dlna.org: npt=00:05:35.3-00:05: 37.5
Specifying the range value in the combination of npt-sec and npt-hhmmss, e.g. 335.11-00:05:37.5,
is allowed, but not recommended.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC S2RRM
2616
IETF RFC
2326
[C OMMENT] The field value specifies the requested range of a resource in absolute time. The range
is specified by the start point and the endpoint. When both points are specified, the range value
adopts the form:
TimeSeekRange.dlna.org: npt=time1-time2
The first value (time1) defines the start time, while the second value (time 2) defines the end
time.
In forward scan mode (positive play-speed values): time1 <= time2 (as defined in 11.4.3.23.10).
In backward scan mode (negative play-speed values): time1 >= time2 (as defined in
11.4.3.23.10).
The end time can be omitted resulting in a expression of the form:
TimeSeekRange.dlna.org: npt=time1-
If the end time is omitted in forward scan mode, it means the end of the resource is specified. If the
end time is omitted in backward scan mode, it means the beginning of the resource is specified.
11.4.3.23.3
[G UIDELINE ] If an HTTP Server Endpoint returns data in forward scan mode including the
requested time range (Target Response), then it shall return the content bytes for a time-range that
starts at or before the requested start time and ends at or after the requested end time.
If an HTTP Server Endpoint returns data in backward scan mode including the requested time-range
(Target Response), then it shall return the content bytes for a time-range that starts at or after the
requested start time and ends at or before the requested end time.
The following exceptions are allowed for the Full Random Access Data Availability model.
• In forward scan mode an HTTP Server Endpoint may ignore the requested end time and return
the range data up to the end of the content data.
• In backward scan mode an HTTP Server Endpoint may ignore the requested end time and return
the range data up to the beginning of the content data.
The following exceptions are allowed for the Limited Random Access Data Availability model when
the mode-flag is 0.
• In forward scan mode an HTTP Server Endpoint may ignore the requested start time if it
precedes the available seek range and return the range data from the start of the available
content data.
• In backward scan mode an HTTP Server Endpoint may ignore the requested end time if it
precedes the available seek range and return the range data up to the start of the available
content data.
The following exception is allowed for both the Full Random Access Data Availability model and the
Limited Random Access Data Availability model.
• HTTP Server Endpoint may round up or down to one decimal place, the npt time values specified
in the HTTP response TimeSeekRange.dlna.org, compared to the actual returned data in the
response body.
Examples
• TimeSeekRange.dlna.org: npt=335.1-336.1/40445.4
• TimeSeekRange.dlna.org: npt=00:05:35.2-00:05:38.1/*
In forward scan mode, if the requesting endpoint specifies an end time beyond the end of the
content data, then the HTTP Server Endpoint shall return the range data to the end of the content
data.
In backward scan mode, if the requesting endpoint specifies a start time beyond the end of the
content data, then the HTTP Server Endpoint shall return the range data to the end of the content
data.
[ATTRIBUTES ]
[C OMMENT] This guideline obliges an HTTP server to respond with a time range (of bytes) that is
close to the time range specified in the request.
11.4.3.23.4
[G UIDELINE ] If an HTTP Server Endpoint supports both byte-based seek and time-based-seek
operations for a resource, then in addition to an npt-range value the byte range corresponding with
the npt time range and the byte length of an entire content binary shall be provided in the
bytes-range value of the HTTP Target Response to the HTTP request with the
TimeSeekRange.dlna.org header field, unless one of the following exceptions apply.
Exceptions
• The data access model is the Limited Random Access Data Availability model and the mode-flag
(as indicated in availableSeekRange.dlna.org) is “1”.
• The HTTP request includes a valid PlaySpeed.dlna.org header.
• The Media Format Profile corresponding to the requested resource requires a modified form of
the content binary in a time-seek response (e.g. MP4 container-based media profiles).
Examples
• TimeSeekRange.dlna.org: npt=335.1-336.1/40445.4
bytes=1539686400-1540210688/304857907200
• TimeSeekRange.dlna.org: npt=00:05:35.2-00:05:38.1/* bytes=1539686400-1540210688/*
[ATTRIBUTES ]
[C OMMENT] The time-based-seek capability is useful for seeking to playback positions in variable
bit rate encoded content; but it is not useful to retrieve subsequent data blocks. For Trick Mode
playback after an initial time-based-seek, use of multiple HTTP GET requests with the Range
header field to retrieve subsequent content data is encouraged. To support this functionality, byte
range value is also specified in addition to time range value for the response to a time-based-seek
only when byte-seek is also supported for the resource.
This functionality requires an HTTP server (that supports both TimeSeekRange.dlna.org and Range)
to specify both the time-range and a byte-range in the HTTP response's headers.
11.4.3.23.5
[G UIDELINE ] If an HTTP Server Endpoint returns data (Target Response) from a GET request with
time range, then the response entity body data should start at a decoder friendly point (for example
the start of the GOP in a video sequence).
[ATTRIBUTES ]
[C OMMENT] This guideline recommends that stream segments returned by servers start, if possible,
DLNA guidelines; Part 1-1: Architecture and protocols
– 539 –
with a recognizable decoding entry point, such as the headers in a group of pictures (GOP) in
MPEG-2.
11.4.3.23.6
[G UIDELINE ] If an HTTP Server Endpoint returns data including the requested time range (Target
Response) with the HTTP response code 200 (OK), then it shall specify the
TimeSeekRange.dlna.org header field to indicate the time range of the content data that is returned
in the HTTP response.
Examples
• TimeSeekRange.dlna.org: npt=335.10-336.10/40445.4
• TimeSeekRange.dlna.org: npt=00:05:35.3-00:05: 37.5/*
• For a response in backward scan mode: TimeSeekRange.dlna.org: npt=897.5-241.5/3966.3
[ATTRIBUTES ]
[C OMMENT] These guidelines oblige an HTTP server to respond with either a 200 response code
(for a time range request that can be honored) or a 416 response code (for time range requests that
cannot be honored). The guideline simplifies HTTP client implementations as it makes limits the
behavior of the HTTP server more predictable.
11.4.3.23.7
[G UIDELINE ] If the requested time range is not valid for the resource with URI specified in the HTTP
GET request, then the HTTP streaming server shall respond with the HTTP response error code of
416 (Requested Range Not Satisfiable).
• The requested time range does not overlapthe time boundaries of the actual content.
[ATTRIBUTES ]
[C OMMENT] The HTTP server indicates support for the TimeSeekRange.dlna.org header in the
DLNA.ORG_OP parameter in guideline 10.1.3.20.1. IETF RFC 2616 reserves the definition for error
416 (Requested Range Not Satisfiable) to cases where none of the range request values overlap
the current extent of the content. This requirement clarifies the IETF RFC 2616 definition of this
error for time range requests.
11.4.3.23.8
[G UIDELINE ] If the requested time range is not syntactically correct, then the HTTP streaming
server shall return the HTTP response error code of 400 (Bad Request).
[ATTRIBUTES ]
11.4.3.23.9
[G UIDELINE ] If the Content Source does not indicate support for the TimeSeekRange.dlna.org
HTTP header for a content binary (as defined in guidelines 10.1.3.20.1 and 10.1.3.28.4), then the
HTTP Client Endpoint shall not issue HTTP GET and HEAD requests with the
TimeSeekRange.dlna.org HTTP header.
[ATTRIBUTES ]
11.4.3.23.10
[G UIDELINE ] In forward scan mode (positive play-speed values) the start time in the range defined
by the TimeSeekRange.dlna.org header shall be smaller than or equal to the end time.
In backward scan mode (negative play-speed values) the start time in the range defined by the
TimeSeekRange.dlna.org header shall be larger than or equal to the end time.
[ATTRIBUTES ]
11.4.3.23.11
[G UIDELINE ] If the TimeSeekRange.dlna.org request is syntactically correct and the requested
time range is valid, and if the HTTP Server Endpoint returns data including the requested time range
(Target Response) then it shall respond to the HTTP GET request with the 200 (OK) HTTP response
code.
[ATTRIBUTES ]
11.4.3.23.12
[G UIDELINE ] If an HTTP Content Source returns data (Target Response) from a GET request with
time range, then the response entity body data shall be compliant with the Media Format Profile
indicated in the corresponding <res> element
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Chunked Transfer Coding is an HTTP response encoding methodology that can only
be used in response to HTTP/1.1 requests by HTTP/1.1 servers.
11.4.3.24.2
[G UIDELINE ] HTTP Server Endpoints shall not use Chunked Transfer Coding in response to
HTTP/1.0 GET requests.
[ATTRIBUTES ]
11.4.3.24.3
[G UIDELINE ] HTTP Client Endpoints may use Chunked Transfer Coding in HTTP/1.1 POST
requests.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] HTTP client endpoints are restricted to HTTP versions that HTTP server endpoints are
prepared to support.
11.4.3.25.2
[G UIDELINE ] HTTP Client Endpoints shall not report a higher version of HTTP than is actually
supported by the implementation.
[ATTRIBUTES ]
[C OMMENT] For example an HTTP client endpoint that does not support Chunked Transfer Coding
responses will never issue an HTTP/1.1 GET request.
11.4.3.25.3
[G UIDELINE ] HTTP/1.1 Client endpoints shall be able to process HTTP/1.1 Chunked Transfer
Coding responses.
[ATTRIBUTES ]
[C OMMENT] When making HTTP/1.1 requests, it is important that HTTP client endpoints properly
handle responses encoded with Chunked Transfer Coding.
11.4.3.25.4
[G UIDELINE ] HTTP/1.1 Client Endpoints shall be prepared to properly handle an HTTP response
code of 1xx from HTTP servers, even when not expected.
[ATTRIBUTES ]
[C OMMENT] A 1xx can be generated by the server regardless of whether or not the client issued an
HTTP request encoded with Chunked Transfer Coding.
[ATTRIBUTES ]
[C OMMENT] This guideline simplifies the implementation of HTTP servers by not requiring support
of multiple ranges or suffix byte range specification.
[ATTRIBUTES ]
[C OMMENT] Implementing this guideline reduces the setup/teardown load on HTTP Server
Endpoints. Furthermore, HTTP Server Endpoints will be able to reserve the allocated socket for the
requesting client. Clients that do not use HTTP/1.1 persistent connections can encounter a scenario
where an HTTP Server Endpoint does not answer the subsequent requests because it has run out
of sockets.
DLNA guidelines; Part 1-1: Architecture and protocols
– 543 –
[ATTRIBUTES ]
[C OMMENT] This ensures that sockets do not remain consumed after a content transfer has
successfully completed.
11.4.3.28.2
[G UIDELINE ] If an HTTP server detects 5 min of inactivity after a POST transaction, then the HTTP
server should close persistent (HTTP/1.1) connections.
[ATTRIBUTES ]
[C OMMENT] This ensures that sockets do not remain consumed by an Upload Controller.
[ATTRIBUTES ]
[C OMMENT] Incorrect HTTP header parsing has been the source of numerous compatibility issues
during plugfest events.
The total HTTP header size is the total number of bytes from the first byte in the start-line token and
the last byte of the CRLF token, as used in the generic-message token defined in 4.1 of IETF RFC
2616, as quoted in the syntax below.
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC CX7UF
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 544 –
[C OMMENT] This provides a reasonable assumption as to how much memory is necessary is for all
HTTP headers in an HTTP request or response.
If determined to be necessary, future DLNA guidelines can define a parameter in the USER-AGENT
to indicate a DLNA version for governing total HTTP header sizes.
[ATTRIBUTES ]
[C OMMENT] As a general rule, HTTP status codes for DLNA defined HTTP headers take
precedence over HTTP status codes. For standard HTTP headers, IETF RFC 2616 status codes
apply. For HTTP responses that involve DLNA defined HTTP headers, the DLNA specified status
code applies when there exists an ambiguity between using a DLNA-specified error code and an
error code made by IETF RFC 2616. Whenever possible, DLNA guidelines align with IETF RFC
2616.
A value of "Interactive" for an HTTP request indicates that the HTTP client is requesting an
Interactive Transfer.
A value of "Streaming" for an HTTP request indicates that the HTTP client wishes a Streaming
Transfer of the content.
A value of "Background" for an HTTP response indicates that the HTTP server is attempting a
Background Transfer of the content.
A value of "Interactive" for an HTTP response indicates that the HTTP server is attempting an
Interactive Transfer of the content.
A value of "Streaming" for an HTTP response indicates that the HTTP server is attempting a
Streaming Transfer of the content.
Note that the mode token values ("Streaming", "Interactive", and "Background") are case sensitive
values.
Example
• transferMode.dlna.org: Interactive
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC LACX7
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] This header carries the transfer mode as listed in the introduction.
11.4.3.32.2
[G UIDELINE ] An HTTP server that receives an HTTP request from an HTTP client of a DLNA
endpoint that omits the transferMode.dlna.org header shall treat it as equivalent to the header-value
pair of transferMode.dlna.org:Streaming for content binaries of the AV or Audio Media Classes or
transferMode.dlna.org:Interactive for all other content binaries.
[ATTRIBUTES ]
[C OMMENT] HTTP transfers that do not include this header are treated as Streaming Transfers for
AV or Audio Media Classes and as Interactive Transfers for all other content binaries.
11.4.3.32.3
[G UIDELINE ] The transferMode.dlna.org header may be used by HTTP clients and servers in
requests and responses. The transferMode.dlna.org header is used to convey the transfer mode
information as specified in guideline 11.4.2.3.
[ATTRIBUTES ]
O C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC YL6RN
+DN+ +UP+ 2616
+UPSYNC+
+DNSYNC+
[C OMMENT] This guideline clarifies the use of the transferMode.dlna.org, according to guideline
11.4.2.3.
11.4.3.32.4
[G UIDELINE ] If an HTTP Client Endpoint requests a transfer mode that is not valid for the Media
Class of data that is being exchanged or is not supported by an HTTP Server Endpoint for the given
content binary, the HTTP Server Endpoint shall respond with error code 406 (Not Acceptable).
[ATTRIBUTES ]
[C OMMENT] The list of transfer modes for the given Media Class is given in guideline 11.4.2.3.1.
However, a server might restrict the list further if the content warrants it. For example, for live
captured content, Background Transfer might not be available. For details on the Media Transfer
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 546 –
Modes that are available for a particular content binary within a DMS structure, see guideline
10.1.3.24.2.
11.4.3.32.5
[G UIDELINE ] All DLNA endpoints communicating with a v1.0 DMS shall tolerate HTTP responses
that omit the transferMode.dlna.org HTTP header.
Tolerate means that the HTTP client shall "parse and ignore" or "parse and interpret" the HTTP
response.
(That is, all DLNA endpoints communicating with a v1.0 DMS shall assume that the media will be
returned without the transferMode.dlna.org HTTP header and using a best effort QoS level.)
[ATTRIBUTES ]
[C OMMENT] All v1.0 DMS media transfers were assumed to be for immediate rendering and at a
default best effort QoS level. A v1.5 entity communicating with a v1.0 DMS needs to allow any media
transfer to have these parameters.
• HTTP/1.0, and
• GET requests and responses.
This definition of applicable-http-endpoints is valid only for this guideline.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC JYL6R
+DN+ +UP+ 1945
+DNSYNC+
+UPSYNC+
[C OMMENT] Per HTTP/1.0 specifications, intermediate caching operations are allowed by default
when content is transferred using the GET method.
11.4.3.33.2
[G UIDELINE ] If an HTTP Server Endpoint transfers non-cacheable content using HTTP/1.0 GET
responses, then the HTTP Server Endpoint shall prevent intermediate caching by including this
directive amongst the HTTP headers in the response.
• Pragma: no-cache
[ATTRIBUTES ]
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
[ATTRIBUTES ]
[C OMMENT] In HTTP 1.0 no method exists to signal the different bit stream variations that result
from the use of Time Seek and play-speed operations. For this reason, intermediate caching
operations have to be avoided.
• HTTP/1.1, and
• GET requests and responses.
This definition of applicable-http-endpoints is valid only for this guideline.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC XTY7C
+DN+ +UP+ 2616
+DNSYNC+
+UPSYNC+
[C OMMENT] Per HTTP/1.1 specifications, intermediate caching operations are allowed by default
when content is transferred using the GET method.
11.4.3.34.2
[G UIDELINE ] HTTP Server Endpoints that transfer non-cacheable content using HTTP/1.1 GET
responses shall prevent intermediate caching by including among the HTTP response headers both
of the following directives.
• Pragma: no-cache
• Cache-control: no-cache
[ATTRIBUTES ]
11.4.3.34.3
[G UIDELINE ] If an HTTP Server Endpoint transfers Audio or AV content binaries using HTTP/1.1
GET responses that include one or both of these HTTP headers, then such transfers should be
marked as cacheable.
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
[ATTRIBUTES ]
[C OMMENT] Unlike HTTP/1.0, the newer version HTTP/1.1 includes caching directives that, when
used, enable transparent caching even when the transferred objects include headers that modify
the object's binary representation. In DLNA, Time Seek and play-speed headers modify the binary
representation of the object that is transferred using the HTTP protocol. The "Vary" header
described below can be used to restore transparent caching for these objects.
11.4.3.34.4
[G UIDELINE ] If an HTTP Server Endpoint transfers Audio or AV content binaries that permit
variable play-speed and time-based seek operations for cacheable content transported in an
HTTP/1.1 GET response, then the HTTP Server Endpoint shall include a "Vary" HTTP header as
defined in IETF RFC 2616.
The "Vary" header shall list either or both of the following two arguments to inform caches of the
corresponding supported operations:
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
[ATTRIBUTES ]
[C OMMENT] The “Vary” header serves to indicate potential intermediate caches that certain
headers create variants of the object binaries defined by its URI. For example, a 30 min media
stream requested in full is a different object variant when only the first 3 min of the stream are
requested using Time Seek operations.
Per IETF RFC 2616 the “Vary” header has to be included whenever the server responds to a client
request for the CDS object. The “Vary” header has to be included even if the request does not
include Time Seek or play-speed headers.
DLNA guidelines; Part 1-1: Architecture and protocols
– 549 –
11.4.3.34.5
[G UIDELINE ] If applicable-http-endpoints want to supersede the default caching prohibition for
POST transfers, they shall do so in a manner compliant with IETF RFC 2616.
• HTTP/1.1 and
• POST requests and responses.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The peerManager.dlna.org HTTP Header is not required. However, this feature is
useful for HTTP Clients that want to facilitate BCM on DMS with BCM support.
11.4.3.35.2
[G UIDELINE ] The value of the peerManager.dlna.org HTTP header shall be the same value as the
PeerConnectionManager, as described in the UPnP AV Architecture.
• peerManager.dlna.org:
uuid:12345678123456781234567812345678/urn:schemas-upnp-org:serviceId:ConnectionMan
ager
[ATTRIBUTES ]
2616
[ATTRIBUTES ]
[C OMMENT] The friendlyName.dlna.org HTTP Header is not required. However, this feature is
useful for HTTP Clients that want to facilitate BCM on DMS with BCM support.
11.4.3.36.2
[G UIDELINE ] The notation of the friendlyName.dlna.org header field is defined as follows:
[ATTRIBUTES ]
11.4.3.37.2
[G UIDELINE ] The syntax of the scid.dlna.org HTTP header shall be as follows:
11.4.3.37.3
[G UIDELINE ] HTTP Client Endpoints may use scid.dlna.org in subsequent HTTP requests to
identify a known and associated UPnP AV Connection only if the HTTP requests are for the same
URI.
[ATTRIBUTES ]
[C OMMENT] This guideline allows Content Receivers to provide the ConnectionID in the transport
layer requests. This guideline assumes the HTTP client of the Content Receiver acquired the
ConnectionID in an earlier HTTP response. This mechanism can be used to combine logically
related, but separated transport layer requests for the same content URI.
[ATTRIBUTES ]
[C OMMENT] Legacy clients will still request streaming transfers without using the
transferMode.dlna.org HTTP header. Guideline 11.4.3.32.2 requires that servers that receive such
a request treat it as equivalent to a request for a streaming transfer for Audio and AV Media
Classes.
11.4.3.38.2
[G UIDELINE ] Unless a streaming HTTP Server Endpoint responds with an error response code, it
shall respond to HTTP HEAD or GET requests for a streaming transfer (as defined in 11.4.3.38.1 )
by sending a response that contains the transferMode.dlna.org HTTP header and gives it a value of
"Streaming".
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline recommends the way to stop a media stream. Although HTTP clients
can technically stall the TCP connection, that technique is discouraged. The preferred technique
makes better use of an HTTP Server Endpoint's platform resources, which can be limited.
This guideline specifies that HTTP Client endpoints visually and/or aurally stop rendering of content,
although the continuation of data streaming from the HTTP Server Endpoint is permissible for data
buffering/caching purposes.
11.4.3.40.2
[G UIDELINE ] An audio or AV streaming HTTP Client Endpoint shall implement the Stop media
operation by disconnecting the TCP connection of the HTTP transaction.
[ATTRIBUTES ]
[C OMMENT] This technique makes better use of an HTTP Server Enpoint’s platform resources,
which can be limited.
This guideline specifies that HTTP Client endpoints visually and/or aurally stop rendering of content,
although the continuation of data streaming from the HTTP Server Endpoint is permissible for data
buffering/caching purposes.
• Connection Stalling: Suspending the reading of data from the HTTP connection. Resuming the
reading of data from the HTTP connection is the mechanism for Pause-Release.
[ATTRIBUTES ]
11.4.3.41.2
[G UIDELINE ] If a streaming HTTP Client Endpoint performs a Pause media operation, then the
HTTP Client Endpoint shall support all of the following Pause media operation methods.
• Disconnecting and Seeking: Disconnecting the HTTP connection and using byte-base seek
transport layer features as the mechanism for Pause-Release.
• Disconnecting and Seeking: Disconnecting the HTTP connection and using time-based seek
transport layer features as the mechanism for Pause-Release.
[ATTRIBUTES ]
2616
[C OMMENT] This guideline is applicable to audio Media Class and AV Media Class.
11.4.3.41.3
[G UIDELINE ] If a streaming HTTP Client Endpoint wants to pause the current media stream, it shall
first ensure that all of the necessary media operations and information are available to resume the
play (Pause-Release) of the media stream.
[ATTRIBUTES ]
[C OMMENT] The ability to do a Pause-Release media operation depends on both the Content
Receiver and the Content Source sharing support for at least one of the following HTTP transport
features: byte-based seek, time-based seek, or Connection Stalling.
[ATTRIBUTES ]
[C OMMENT] The HTTP connection can be closed for different reasons. If the connection is
disconnected, the streaming HTTP Client Endpoint can use a Seek media operation (see
11.4.3.44.1) to Pause-Release the playback.
11.4.3.42.2
[G UIDELINE ] If a streaming HTTP Client Endpoint supports the Pause media operation using the
Disconnecting and Seeking method, it should support the byte-based seek transport layer feature.
[ATTRIBUTES ]
[C OMMENT] This guideline recommends that a Content Source supports byte-based seek, as
defined in 11.4.3.22.
11.4.3.42.3
[G UIDELINE ] If a streaming HTTP Client Endpoint supports the Pause media operation using the
Disconnecting and Seeking method, it may perform the Pause media operation by first suspending
the reading of data from the HTTP connection (as described for the Connection Stall method). When
the streaming HTTP Client Endpoint detects a TCP-layer disconnect, it may perform the
Pause-Release media operation using the time-based seek or byte-based seek transport layer
feature that is supported by the Content Source.
[ATTRIBUTES ]
[C OMMENT] Using TCP flow control to stall/pause the flow of data can enable quick Pause-Release
behavior. Content Sources are recommended to support the Connection Stalling method, in
addition to byte-based seek or time-based seek transport layer features.
[ATTRIBUTES ]
[C OMMENT] A Pause media operation initiated by the Connection Stalling method does not require
the use of time-based seek or byte-based seek since the Content Source maintains the TCP
connection, using standard TCP flow control. Content Sources can choose to support only the
Connection Stalling method for some content binaries, such as those created by dynamic, real-time
transcoding.
11.4.3.43.2
[G UIDELINE ] When the HTTP connection is lost for any reason, the streaming HTTP Client
Endpoint may attempt to use time-based seek or byte-based seek transport layer features to
Pause-Release the media stream.
[ATTRIBUTES ]
[C OMMENT] This guideline assumes that both the Content Receiver and Content Source support
the same transport layer features.
11.4.3.43.3
[G UIDELINE ] If the http-stalling flag is true for a content binary, then the streaming HTTP Server
Endpoint shall allow Connection Stalling for an indefinite amount of time on that content binary.
Equivalently, streaming HTTP Server Endpoints that support the Connection Stalling method for a
content binary shall be able to maintain the HTTP connection and shall not use an HTTP connection
inactivity timeout to terminate the HTTP connection.
[ATTRIBUTES ]
The guideline permits the streaming HTTP Server Endpoint to terminate HTTP connections for the
following scenarios:
• a local UI, associated with the Content Source, allows the user to manually terminate the HTTP
connections;
• the Content Source has user-configurable policies that can overrule the default behavior of
indefinite connection stalling by terminating HTTP connections that have been inactive for a
lengthy time. These guidelines do not define a minimum time but the suggested minimum HTTP
inactivity timeout is 5 min;
• UPnP AV MediaServer control points invoke CMS (ConnectionComplete to terminate
connections).
11.4.3.43.4
[G UIDELINE ] If the http-stalling flag is true for a content binary, then the streaming HTTP Server
Endpoint shall not change encoding rate based on the HTTP throughput.
[ATTRIBUTES ]
[C OMMENT] If a Rendering Endpoint has already opened a normal (1x) GET request, then it does
not need to inform the server of the slow-motion playback since the Rendering Endpoint could
simply consume the data more slowly. This is similar to the connection stalling approach to
pause/resume, except that the client does not completely pause, it continues to consume and
decode the content, but configures its decoder to do so at a slower rate. If the server supports
stalling, then this is indistinguishable on the server side from a client that is doing pause/resume.
11.4.3.43.5
[G UIDELINE ] If the http-stalling flag is true for a content binary, then the streaming HTTP Server
Endpoint shall allow streaming at rates slower than real-time, while in streaming transfer mode, to
support a Slow Forward Scan media operation using Connection Stalling to accommodate slower
decode and display of the streamed content.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline recommends two ways to implement the seek operation on content. The
method used by the client is conditional on whether or not the HTTP server supports the capability
for that content.
See guideline 10.1.3.19 and 10.1.3.28.4 for information on discovering server seek capabilities.
11.4.3.44.2
[G UIDELINE ] For every content binary not using DLNA Link Protection, if a streaming HTTP Client
Endpoint performs a Seek media operation, then the HTTP Client Endpoint shall support all of the
following Seek media operation methods:
[C OMMENT] This guideline is applicable to Audio Media Class and AV Media Class.
• Issuing multiple HTTP GET requests with a specified Range header field.
• Issuing multiple HTTP GET requests with a specified TimeSeekRange.dlna.org header field.
• Issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
[C OMMENT] Forward Scan and backward Scan operations fall into a category of playback
capabilities referred to as trick modes. These guidelines specify three general techniques for
implementing trick modes:
• The first technique is to issue multiple HTTP requests with specified byte ranges, such that the
byte data can be rendered sequentially, giving the effect of a trick mode playback. With this
technique, the HTTP Client endpoint is responsible for specifying the appropriate byte ranges
that will achieve the desired effect.
• The second technique is a variant of the first, and it works by requesting the HTTP server to
return time ranges (instead of byte ranges). In this technique, the HTTP Client endpoint is
responsible for choosing the appropriate time ranges that achieve the desired effect.
• The third technique works by having the HTTP Client endpoint instruct the HTTP Server
Endpoint to return byte data that is already time scaled for a particular play-speed.
See 11.4.3.22, 11.4.3.23, and 11.4.3.53 guidelines for more information on Range,
TimeSeekRange.dlna.org, and PlaySpeed.dlna.org header fields.
11.4.3.45.2
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Fast Forward Scan media operation (positive play-speed greater than
1x), then the HTTP Client Endpoint shall support all of the following methods.
• Issuing multiple HTTP GET requests with a specified Range header field.
• Issuing multiple HTTP GET requests with a specified TimeSeekRange.dlna.org header field.
[ATTRIBUTES ]
11.4.3.45.3
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Fast Forward Scan media operation (positive play-speed greater than
1x), then the HTTP Client Endpoint should support the following method.
• Issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
• issuing multiple HTTP GET requests with a specified Range header field;
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
11.4.3.46.2
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Slow Forward Scan media operation (positive play-speed less than 1x),
then the HTTP Client Endpoint shall support all of the following methods:
• issuing multiple HTTP GET requests with a specified Range header field;
• issuing a single HTTP GET request and subsequently using Connection Stalling Method (see
11.4.3.43) to accommodate slower decode and display of the streamed content.
[ATTRIBUTES ]
11.4.3.46.3
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Slow Forward Scan media operation (positive play-speed less than 1x),
then the HTTP Client Endpoint should support the following method:
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
• issuing multiple HTTP GET requests with a specified Range header field;
• issuing multiple HTTP GET requests with a specified TimeSeekRange.dlna.org header field;
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
11.4.3.47.2
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Fast Backward Scan media operation (negative play-speed less than
−1x), then the HTTP Client Endpoint shall support all of the following methods:
• issuing multiple HTTP GET requests with a specified Range header field;
• issuing multiple HTTP GET requests with a specified TimeSeekRange.dlna.org header field.
[ATTRIBUTES ]
11.4.3.47.3
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Fast Backward Scan media operation (negative play-speed less than
−1x), then the HTTP Client Endpoint should support the following method:
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
2616
• issuing multiple HTTP GET requests with a specified Range header field; or
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
11.4.3.48.2
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Slow Backward Scan media operation (negative play-speed less than
zero and greater than or equal to −1x), then the HTTP Client Endpoint shall support the following
methods:
• issuing multiple HTTP GET requests with a specified Range header field.
[ATTRIBUTES ]
11.4.3.48.3
[G UIDELINE ] For every AV content binary not using DLNA Link Protection, if a streaming HTTP
Client Endpoint performs a Slow Backward Scan media operation (negative play-speed less than
zero and greater than or equal to −1x), then the HTTP Client Endpoint should support the following
method:
• issuing a single HTTP GET request with a specified PlaySpeed.dlna.org header field.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Transitions from scan operations to normal playback can be achieved by making open
ended (i.e. last-byte-pos value in Range header is absent) GET requests with the Range option.
11.4.3.49.2
[G UIDELINE ] If a streaming HTTP Client Endpoint wants to stop a normal playback stream in order
to start a scan operation playback using the PlaySpeed.dlna.org header under conditions where
11.4.3.5.6 applies, then it should close the original HTTP connection before issuing a GET request
with the PlaySpeed.dlna.org header to perform scan operations (also known as trick modes). After
closing the original connection, the streaming HTTP Client should open a new HTTP connection for
the scan operation. Please observe that the new HTTP connection might be a persistent connection,
which allows the client to issue multiple GET requests on a single HTTP connection.
[ATTRIBUTES ]
[C OMMENT] Transitions from scan operations to normal playback can be achieved by closing the
HTTP connection that provides scan operations and opening a new HTTP connection for normal
playback speed.
[ATTRIBUTES ]
Operation Reference
Fast Forward Scan 11.4.3.45 MT HTTP Fast Forward Scan media operation
Slow Forward Scan 11.4.3.46 MT HTTP Streaming Slow Forward Scan media operation
Fast Backward Scan 11.4.3.47 MT HTTP Streaming Fast Backward Scan media operation
Slow Backward Scan 11.4.3.48 MT HTTP Streaming Slow Backward Scan media operation
[ATTRIBUTES ]
• The HTTP Client Endpoint supports a media operation on a DLNA Media Format Profile.
• The HTTP Server Endpoint supports the necessary protocol elements to support the media
operation.
[ATTRIBUTES ]
[C OMMENT] Necessary protocol elements can include optional parameters such as byte Range
and TimeSeekRange.dlna.org.
11.4.3.52.2
[G UIDELINE ] If an HTTP Server Endpoint supports byte Range and/or TimeSeekRange.dlna.org
capabilities on the content for a particular DLNA Media Format Profile, it should support that on all
content with that Media Format Profile.
[ATTRIBUTES ]
[C OMMENT] In some cases, such as transcoded or live content, it can be difficult to support byte
Range and/or TimeSeekRange.dlna.org.
[ATTRIBUTES ]
[C OMMENT] The PlaySpeed.dlna.org HTTP header allows HTTP clients to request the HTTP server
to return content in a time scaled form.
For example, a DLNA HTTP client can request a DLNA HTTP server to return DLNA content in a 4x
playback speed. The HTTP server's response would send content that gives the appearance of 4x
playback speed.
This HTTP header can be used by DLNA servers for content conforming to DLNA Media Format
Profiles and content that does not conform to DLNA Media Format Profiles.
11.4.3.53.2
[G UIDELINE ] If a streaming HTTP Server Endpoint receives the PlaySpeed.dlna.org HTTP header
in a HEAD request, then the HTTP server may respond without the PlaySpeed.dlna.org HTTP
header.
[ATTRIBUTES ]
[C OMMENT] HTTP servers are required to support the HEAD method. When an HTTP server gets a
HEAD request with this option, the HTTP server can omit it from the response.
If HTTP clients need to determine if the PlaySpeed.dlna.org is supported for a URI, then the client
are supposed to use the mandatory getcontentFeatures.dlna.org HTTP header and examine the
DLNA.ORG_PS parameter.
The reason why HEAD responses do not require the use of PlaySpeed.dlna.org is that the
computational effort to respond with only the headers for a request that includes
PlaySpeed.dlna.org is significant.
11.4.3.53.3
[G UIDELINE ] If the streaming HTTP Endpoint uses the PlaySpeed.dlna.org HTTP header, then the
Endpoint shall use the following syntax for the HTTP header and its value.
Examples:
• PlaySpeed.dlna.org: speed=10
• PlaySpeed.dlna.org: speed=-1/2
When encountering syntax errors with the PlaySpeed.dlna.org HTTP header, the HTTP server shall
use the HTTP response code 400 (Bad Request).
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC A772R
2616
[C OMMENT] The field value specifies a play-speed to scale content data of a resource. The value is
represented as same as TransportPlaySpeed state variable defined by AV Transport service type
(e.g. 5, 10, -1/2. -10, -3/2, etc.).
11.4.3.53.4
[G UIDELINE ] If the streaming HTTP Server Endpoint returns data (Target Response) for scaled
content to be decoded for a scan operation (also known as variable play-speed) with the HTTP
response code 200 (OK), then the HTTP response message shall specify the PlaySpeed.dlna.org
HTTP header field to indicate the play-speed of the scaled content.
[ATTRIBUTES ]
[C OMMENT] This guideline requires the HTTP server to indicate if content bytes in the HTTP
response represent content that has been time scaled.
11.4.3.53.5
[G UIDELINE ] If the requested play-speed is not valid for the resource with the URI specified in the
HTTP GET request, then the HTTP server shall respond with the HTTP response error code 406
(Not Acceptable). Interpretation of not valid includes the following types of errors.
If an HTTP server supports the PlaySpeed.dlna.org header and the requested play-speed is not
valid for the resource with the URI specified in the HTTP GET request, then the HTTP server shall
respond with the HTTP response error code 406 (Not Acceptable). Interpretation of not valid
includes the following types of errors:
[C OMMENT] This guideline specifies the error code to be used in scenarios where the HTTP server
cannot accommodate a request to time scale content.
The HTTP Server Endpoint indicates support for the PlaySpeed.dlna.org header in the
DLNA_ORG_PS parameter which is in the contentFeatures.dlna.org in guideline 10.1.3.22.
11.4.3.53.6
[G UIDELINE ] The scaled data (returned by the streaming HTTP Server Endpoint as a Target
Response) shall be compliant the Media Format Profile associated with the requested resource.
[ATTRIBUTES ]
[C OMMENT] This guideline obliges an HTTP Server Endpoint to return content bytes that are
conformant to the characteristics described for that content by its Media Format Profile. For
example, if the content is exposed as MPEG2_PS_NTSC content, the returned content shall
conform to the MPEG syntax defined for that Media Format Profile. For example, if the content is
exposed as MPEG2_PS_NTSC content, the returned content conforms to the MPEG syntax defined
for that Media Format Profile, or, if the Media Format Profile definition calls for MPEG-2 video
compression, that same media format applies during trick modes
11.4.3.53.7
[G UIDELINE ] The scaled data stream (returned by the streaming HTTP Server Endpoint as a Target
Response) may utilize different media format parameters than the original (unscaled) stream, as
long as these differences do not impact its compliance with the Media Format Profile of the original
(unscaled) content binary. Generating scaled data streams by dropping or adding frames to the
stream is called Decimation and Augmentation
[ATTRIBUTES ]
[C OMMENT] This guideline provides considerable leeway in the Serving Endpoint’s implementation
of scaled content. For example, consider a Serving Endpoint A that implements a Scale value of 2
by dropping every other frame in a 30 frames per second stream resulting in a content stream that
still contains 30 frames per second, but that appears to be playing at twice the normal speed. Next ,
consider Serving Endpoint B that implements the same Scale value of 2 by sending 4 I-Frames a
second with a presentation time of 250 ms per frame, which will also appear to be playing twice as
fast. Finally, consider a Serving Endpoint C that implements a Scale value of 2 by transcoding the
original stream into a new stream with the same Format Profile, and which gives the appearance of
playing twice as fast. For slow speed trick modes, consider a serving endpoint D that implements a
Scale value of ½ by duplicating each I-Frame in a 30 fps stream playing at 30 frames per second
thus appearing to play at half speed. The technique of dropping or adding frames to generate scaled
streams is called Decimation and Augmentation. Such streams may contain partial “P” frames for
MPEG-2 content and non-conformant values for Presentation Time Stamp (PTS). In addition to
using Decimation and Augmentation, servers may also choose to omit audio tracks, in order to
minimize the bitrate of scaled streams.
11.4.3.53.8
[G UIDELINE ] If the Content Source does not indicate support for the PlaySpeed.dlna.org HTTP
header for a content binary (as defined in guideline 10.1.3.22), then the HTTP Client Endpoint shall
not issue HTTP GET and HEAD requests with the PlaySpeed.dlna.org HTTP header.
[ATTRIBUTES ]
11.4.3.53.9
[G UIDELINE ] If the PlaySpeed.dlna.org request is syntactically correct and the requested
play-speed is valid, and if the HTTP Server Endpoint returns data including the requested
play-speed (Target Response) then it shall respond to the HTTP GET request with the 200 (OK)
HTTP response code.
[ATTRIBUTES ]
11.4.3.53.10
[G UIDELINE ] An HTTP Client Endpoint should mute audio content when rendering scaled data
streams requested using the PlaySpeed.dlna.org header.
[ATTRIBUTES ]
[C OMMENT] While the requirements for AV stream formats mandate that there be an audio
DLNA guidelines; Part 1-1: Architecture and protocols
– 565 –
component in the stream, the actual playback of audio from scaled streams requested using the
PlaySpeed.dlna.org header would be problematic and likely to result in a poor user experience. It is
preferable that client devices mute audio when rendering scaled streams.
[C OMMENT] The client endpoint uses this information to keep track of elapsed time accurately. This
is specifically useful when there are discontinuities in PTS. One possible scenario where PTS
discontinuities are expected is segmented recordings.
[ATTRIBUTES ]
11.4.3.55.2
[G UIDELINE ] The notation for the ChunkEncodingMode.dlna.org header is defined as follows:
[ATTRIBUTES ]
[C OMMENT] An example is
• ChunkEncodingMode:1.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 566 –
11.4.3.55.3
[G UIDELINE ] A receiving endpoint may use the ChunkEncodingMode.dlna.org header to request
chunked transfer encoding from a serving endpoint.
[ATTRIBUTES ]
11.4.3.56 MT combined range, time based seek, and play-speed HTTP requests
11.4.3.56.1
[G UIDELINE ] If a streaming HTTP Server Endpoint receives an HTTP GET request with both the
PlaySpeed.dlna.org and the TimeSeekRange.dlna.org header fields, the endpoint shall understand
that a scan operation is requested for the specified time range.
If the streaming HTTP Server Endpoint can never process either or both time-scaling and time-seek,
the error code for time-scaling, 406 (Not Acceptable) shall be returned.
[ATTRIBUTES ]
[C OMMENT] This guideline covers what a streaming HTTP server endpoint needs to do if it receives
an HTTP request for both time based seek and play-speed. This guideline also infers how a
streaming HTTP Client endpoint can expect an HTTP Server Endpoint to behave.
11.4.3.56.2
[G UIDELINE ] If a streaming HTTP Server Endpoint receives an HTTP GET request with Range and
(TimeSeekRange.dlna.org or PlaySpeed.dlna.org) header fields, then the Range header field shall
take the highest precedence and the server shall ignore the other time seek and play-speed fields.
[ATTRIBUTES ]
[C OMMENT] This guideline covers what a streaming HTTP Server Endpoint needs to do if it
receives an HTTP request with Range and other DLNA fields for play-speed or time based seek.
This guideline also infers how a streaming HTTP Client endpoint can expect an HTTP Server
Endpoint to behave.
[ATTRIBUTES ]
[C OMMENT] By using this header, an HTTP Client Endpoint (e.g. DMP) informs an HTTP Server
Endpoint (e.g. DMS) the way it wants to receive content byte data (unmodified or in a real-time
manner). In the second case, the loss of content quality (i.e. drop data bytes) is possible.
In the case of real-time delivery, it provides a hint to an HTTP Client Endpoint on how long to
pre-buffer content data bytes before beginning the playback.
11.4.3.57.2
[G UIDELINE ] If an HTTP Client Endpoint request contains the realTimeInfo.dlna.org header, then
the HTTP Server Endpoint reply should include the realTimeInfo.dlna.org header.
[ATTRIBUTES ]
[C OMMENT] An HTTP Client Endpoint (e.g. DMP) shall be ready to receive an undesired value for
the max-delay-time from an HTTP Server Endpoint (e.g. DMS).
It is worth to mention that for a live content the max-lag-time value can't be set as infinite.
11.4.3.57.3
[G UIDELINE ] If an HTTP Server Endpoint responds with a realTimeInfo.dlna.org header with an
infinite max-lag-time (i.e. with value of "*"), then it shall not drop and/or modify any portion of content
byte data.
[ATTRIBUTES ]
11.4.3.57.4
[G UIDELINE ] If an HTTP Server Endpoint responds with a realTimeInfo.dlna.org header with a finite
max-lag-time, then it shall not send stale data when the delay time is more than the max-lag-time. In
this case an HTTP Server Endpoint shall omit the Content-Length header from HTTP response.
[ATTRIBUTES ]
11.4.3.57.5
[G UIDELINE ] An HTTP Server Endpoint should include the realTimeInfo.dlna.org header in each
HTTP reply.
[ATTRIBUTES ]
[C OMMENT] It is desirable to provide an HTTP Client Endpoint (e.g. DMP) the information for the
delivery manner each time.
11.4.3.57.6
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP GET or HEAD request with a Range
and realTimeInfo.dlna.org header, then an HTTP Server Endpoint shall never reply with a finite
max-lag-time parameter value.
[ATTRIBUTES ]
[C OMMENT] This guideline obliges an HTTP Server Endpoint to not change the content data bytes
in a reply to a request with a Range header.
11.4.3.57.7
[G UIDELINE ] The notation for the realTimeInfo.dlna.org HTTP header is defined as follows:
The max-lag-time is the maximum allowed delay between the current time and the time at which a
particular portion of content data shall be sent in order to meet the real-time delivery requirements
for content. If the delay for a particular portion of content data exceeds the max-lag-time, then an
HTTP Server Endpoint shall drop it instead of sending it. The value "*" indicates that the content
data bytes will never expire. This guarantees that an HTTP Client Endpoint will receive all of the
content data bytes.
Example:
• realTimeInfo.dlna.org: DLNA.ORG_TLAG=1.75
• realTimeInfo.dlna.org: DLNA.ORG_TLAG=*
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 72R2G
+DN+ +DNSYNC+ 2616
[C OMMENT] The max-lag-time value provides information to an HTTP Client Endpoint (e.g. DMP)
on how the content will be delivered. When it is infinite, all requested bytes of the original content
will be delivered without any modifications (i.e. data loss). Otherwise, an HTTP Client Endpoint (e.g.
DMP) can’t expect to receive the content unmodified (i.e. it can contain some data loss).
In the case for real-time delivery of content, the max-lag-time negotiation aids an HTTP Client
Endpoint (e.g. DMP) to adjust its pre-buffering time and for an HTTP Server Endpoint (e.g. DMS) its
delay buffer. This negotiation aids an HTTP Server Endpoint from sending stale content data bytes
instead of up-to-date ones.
[ATTRIBUTES ]
11.4.3.58.2
[G UIDELINE ] If an op-param (10.1.3.19.1) capability (for play, stop, pause/release, seek, scan
operations) is supported for a content binary, Content Sources shall support the media operation for
the entire length of the content binary.
[ATTRIBUTES ]
[C OMMENT] In the case of time seek range, HTTP Server Endpoints are still allowed to align
responses to frame boundaries as specified in IEC 62481-2, 9.3.2.7.1 (GUN UDJLP)
[ATTRIBUTES ]
[C OMMENT] Interactive Transfers with GET are used to get Image content for immediate rendering.
11.4.3.59.2
[G UIDELINE ] If an HTTP Client Endpoint requests an Interactive Transfer, then it shall specify the
transferMode.dlna.org HTTP header and the header shall have a value of "Interactive".
[ATTRIBUTES ]
[C OMMENT] Version 1.0 clients will still request Interactive Transfer of images without using the
transferMode.dlna.org HTTP header. Guideline 11.4.3.32.2 requires that servers that receive such
a request treat it as equivalent to a request for an Interactive Transfer for image Media Classes.
11.4.3.59.3
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP GET or HEAD request with a
transferMode.dlna.org HTTP header with the value of "Interactive" and the requested URI supports
Interactive Transfer mode (as defined in 10.1.3.36.1), then the Target Response shall replicate this
HTTP header.
[ATTRIBUTES ]
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
• realTimeInfo.dlna.org
[ATTRIBUTES ]
[C OMMENT] See 11.4.3.23, and 11.4.3.53 guidelines for more information on the operations of
these headers
[ATTRIBUTES ]
O C DMS DMR DMP +PU+ M-DMS M-DMP n/a IETF RFC F4F65
2616
[C OMMENT] The behavior and usage model for the Range header are governed by other guidelines.
Specifically:
• 10.1.3.19 describes how the op-param indicates whether the Range header is supported under
the "Full Random Access Data Availability" model.
• 10.1.3.28.4 describes how lop-bytes indicates whether the Range header is supported under the
"Limited Random Access Data Availability" model.
• 11.4.3.18, 11.4.3.19, and 11.4.3.19.10 explain details about both models.
Interactive Transfers involving stored content generally fall under the category of Full Random
Access Data Availability model. In some cases, an Interactive Transfer involving converted content
will fall under the Limited Random Access Data Availability model when the mode-flag is 1.The
Limited Random Access Data Availability model when the mode-flag is 0 does not apply to content
that is transferred with Interactive Mode because that content is not time based.
[ATTRIBUTES ]
11.4.3.62.2
[G UIDELINE ] An HTTP Client Endpoint uploading a content binary to an HTTP Server Endpoint with
a Background Transfer request shall use the HTTP POST method.
[ATTRIBUTES ]
11.4.3.62.3
[G UIDELINE ] If an HTTP Client Endpoint requests a Background Transfer, then it shall specify the
transferMode.dlna.org HTTP header and the header shall have a value of "Background".
[ATTRIBUTES ]
11.4.3.62.4
[G UIDELINE ] If an HTTP Server Endpoint receives an HTTP GET or HEAD request with a
transferMode.dlna.org HTTP header with the value of "Background" and the requested URI
supports the Background Transfer mode (as defined in 10.1.3.37), then the Target Response shall
replicate this HTTP header.
[ATTRIBUTES ]
• TimeSeekRange.dlna.org
• PlaySpeed.dlna.org
• realTimeInfo.dlna.org
[ATTRIBUTES ]
[C OMMENT] See 11.4.3.23, and 11.4.3.53 guidelines for more information on the operations of
these headers.
[ATTRIBUTES ]
[C OMMENT] The behavior and usage model for the Range header are governed by other guidelines.
Specifically:
• 10.1.3.19 describes how the op-param indicates whether the Range header is supported under
the "Full Random Access Data Availability" model;
• 10.1.3.28.4 describes how lop-bytes indicates whether the Range header is supported under the
"Limited Random Access Data Availability" model;
• 11.4.3.18, 11.4.3.19, and 11.4.3.19.10 explain details about both models.
Background Transfers involving stored content generally fall under the category of "Full Random
Access Data Availability" model. In some cases, a Background Transfer involving converted content
will fall under the "Limited Random Access Data Availability" model when the mode-flag is 1. The
"Limited Random Access Data Availability" model when the mode-flag is 0 is not recommended for
content that is transferred with the Background Mode since the server response cannot be
guaranteed to be accurate for "live contents" when using the Range HTTP header, as described in
11.4.2.16.2.
[ATTRIBUTES ]
11.4.3.65.2
[G UIDELINE ] HTTP Client Endpoints shall not use HTTP POST with an HTTP/1.0 indicator.
[ATTRIBUTES ]
11.4.3.65.3
[G UIDELINE ] An Upload Controller or Upload Synchronization Controller requesting a content
transfer process by using the HTTP/1.1 POST request, should set the transferMode.dlna.org HTTP
header to a value of "Background" in the request.
[ATTRIBUTES ]
[C OMMENT] Values other than "Background" can be used when uploading certain contents, such
as "live" content.
11.4.3.65.4
[G UIDELINE ] A DMS or M-DMS that implements the Upload Device Option (i.e. the upload
AnyContainer) as indicated by the <dlna:X_DLNACAP> element described in guideline 10.1.8.4.1),
shall accept HTTP POST requests for receiving content in a content transfer operation.
[ATTRIBUTES ]
11.4.3.65.5
[G UIDELINE ] The HTTP Client Endpoint shall issue its first HTTP POST request (to upload content)
within 30 s of the CDS:CreateObject response.
[ATTRIBUTES ]
11.4.3.65.6
[G UIDELINE ] If an HTTP Client Endpoint is using a persistent connection to perform multiple
content transfer processes, then the HTTP client should issue subsequent HTTP POST requests
within 5 min of the previous HTTP POST request's completion.
[ATTRIBUTES ]
[C OMMENT] Upload Controllers, or Upload Synchronization Controllers are urged to use persistent
HTTP connections to upload multiple content binaries. Ideally, these content transfers happen with
little delay between them. However, HTTP clients are discouraged from exceeding 5 min of
inactivity between transfers.
11.4.3.65.7
[G UIDELINE ] The HTTP Server Endpoint that is receiving an HTTP POST request is free to
terminate the connection at any time by closing the TCP connection.
[ATTRIBUTES ]
[C OMMENT] DMS or M-DMS devices implement this behavior to indicate an error during the content
transfer. For example, if the DMS no longer has enough space, it can terminate the TCP connection.
A DMS that does a TCP disconnection can automatically destroy CDS objects or <res> elements.
However, if possible and appropriate, the DMS is encouraged to allow an Upload Controller to retry
a content transfer process, by not destroying the CDS object or <res> element.
11.4.3.65.8
[G UIDELINE ] The HTTP Server Endpoint that supports HTTP POST requests shall support
requests that are encoded with Chunked Transfer Coding.
[ATTRIBUTES ]
[C OMMENT] HTTP clients can use either the default HTTP message encoding or Chunked Transfer
Coding.
11.4.3.65.9
[G UIDELINE ] The HTTP Client Endpoint shall provide the EXPECT HTTP header field with the
value of "100-continue" in the request.
[ATTRIBUTES ]
[C OMMENT] Subclause 8.2.3 Use of the 100 (Continue) Status in IETF RFC 2616 defines the
behavior when a HTTP client uses "Expect: 100-continue" in the request.
The HTTP client waits to send POST message body, i.e. a content binary, until it receives a
response to the request.
11.4.3.65.10
[G UIDELINE ] If an HTTP Server Endpoint receives a POST request without the "EXPECT:
100-continue", then it should return an HTTP error of 400 (Bad Request) and terminate the TCP
connection.
[ATTRIBUTES ]
11.4.3.65.11
[G UIDELINE ] If an HTTP Server Endpoint that receives a POST request's HTTP headers and the
HTTP server cannot accept the POST request's message body, then the HTTP Server Endpoint
shall not return an HTTP status code of 100 (Continue).
[ATTRIBUTES ]
[C OMMENT] The guideline 11.4.3.65.13 and 11.4.3.65.14 provides examples of error cases.
11.4.3.65.12
[G UIDELINE ] An HTTP Client Endpoint that uses Chunked Transfer Coding shall use a zero-length
chunk to indicate the end of the content binary.
[ATTRIBUTES ]
[C OMMENT] DMS and M-DMS devices look for the zero-length chunk to know if the content binary
was completely sent.
11.4.3.65.13
[G UIDELINE ] If the HTTP Server Endpoint cannot accept an HTTP POST request due to the
processing capacity or current state of the device, then the HTTP Server Endpoint should respond
with an HTTP status code of 503 (Service Unavailable).
[ATTRIBUTES ]
11.4.3.65.14
[G UIDELINE ] If the HTTP Server Endpoint cannot accept an HTTP POST request due to the lack of
storage capacity, then the HTTP Server Endpoint should respond with an HTTP status code 507
(Insufficient Storage).
[ATTRIBUTES ]
[C OMMENT] This error code aligns with IETF RFC 2518. DLNA does not use WebDAV as a
normative reference.
11.4.3.65.15
[G UIDELINE ] If the HTTP Server Endpoint receives an entire entity body, then the HTTP Server
Endpoint shall respond with either an HTTP status code of 200 (OK) or an HTTP status code of 201
(Created).
[ATTRIBUTES ]
11.4.3.65.16
[G UIDELINE ] If an HTTP Server Endpoint rejects a POST entity body in the middle of data transfer
(due to the processing capacity, current status of the device, storage capacity, etc.) then the HTTP
server may terminate the TCP connection.
[ATTRIBUTES ]
11.4.3.65.17
[G UIDELINE ] If an HTTP Server Endpoint rejects a POST entity body in the middle of data transfer,
then it should also send an HTTP error response right before terminating the TCP connection.
[ATTRIBUTES ]
[C OMMENT] HTTP error responses allow the HTTP server to provide more details on the cause of
the error. It is imperative that the HTTP server close the TCP connection after sending the error
response because the error can interfere with the logic associated with pipelined HTTP requests.
The requirement for HTTP clients to be tolerant of these scenarios means that the HTTP client can
gracefully handle the TCP disconnect. (i.e. devices that crash as a result of a TCP disconnect
exhibit bad behavior) There is no requirement that the HTTP client make the HTTP error response
available to the user.
HTTP clients can use pipelined POST requests, but these guidelines do not recommend their usage
because the Upload system usage model favors a model where an Upload Controller uses a set of
CDS:CreateObject and HTTP POST transactions, rather than a set of CDS:CreateObject requests
followed by a set of HTTP POST transactions.
Clients are encouraged to terminate the connection after receiving the POST response from the
server because HTTP/1.1 POST transactions operate under persistent connection rules.
11.4.3.65.18
[G UIDELINE ] If an HTTP Server Endpoint rejects a POST entity body in the middle of data transfer
by sending an HTTP error response, then it shall terminate the TCP connection after sending the
error response.
[ATTRIBUTES ]
11.4.3.65.19
[G UIDELINE ] HTTP Client Endpoints shall be tolerant of a TCP layer disconnect during an HTTP
POST transaction, including those scenarios where the HTTP Server Endpoint sends an HTTP error
response before the HTTP Client Endpoint has finished transmitting the POST request's
message-body.
[ATTRIBUTES ]
11.4.3.65.20
[G UIDELINE ] If the HTTP Server Endpoint detects or initiates a TCP disconnect during a content
transfer process that does not support the resume content transfer option, then the MediaServer
shall be capable of accepting the same upload AnyContainer or OCM: upload content request that
created the CDS object, which has the failed content transfer.
[ATTRIBUTES ]
[C OMMENT] In other words, the DMS is expected to not return an UPnP error in response to a new
CDS:CreateObject request when the Upload Controller attempts to retry a failed upload
AnyContainer or OCM: upload content operation.
• The DMS can immediately destroy the CDS object associated with the failed content transfer.
• The DMS can leave the CDS object in the CDS hierarchy for 30 min or less, from the point of the
failure. The CDS:CreateObject response returns a new CDS object.
• The DMS can leave the CDS object in the CDS hierarchy for 30 min or less, from the point of
failure. The CDS:CreateObject response returns the same CDS object because the metadata
specified in the request is exactly the same.
11.4.3.65.21
[G UIDELINE ] When the HTTP Client Endpoint detects a TCP disconnection before receiving the
final response to the HTTP POST request, it shall not assume that the HTTP Server Endpoint will
store the transferred portion of the entity body. Specifically, this means the following.
• If the HTTP Client Endpoint wants to retry an upload process without using the resume content
transfer or retry IFO attempt features, it shall start completely over by doing the
CDS:CreateObject request (as part of the upload AnyContainer or OCM: upload content
operation) and following up with a new content transfer process. (Note that retry IFO attempt
applies only to the transfer of IFO files and only is available when resume content transfer is also
available.)
• If the HTTP Client Endpoint wants to use the resume content transfer operation, then it shall
specify a first-byte-pos of res@dlna:uploadedSize for the Content-Range header in an HTTP
POST request. In this case, CDS:CreateObject is not invoked.
[ATTRIBUTES ]
[C OMMENT] If resume content transfer is not supported and the HTTP Client attempts to retry the
HTTP POST transaction without invoking CDS:CreateObject again, then the retry attempt can fail.
This type of a retry attempt is not covered by the DLNA guidelines.
[ATTRIBUTES ]
[C OMMENT] HTTP Client Endpoints are required to use the Content-Length in HTTP POST
requests that do not use Chunked Transfer Coding.
11.4.3.66.2
[G UIDELINE ] An HTTP Server Endpoint receiving a POST request shall observe at least 30 s of
data inactivity before closing the TCP connection and assuming that the HTTP Client Endpoint
failed to transfer the content.
Data inactivity is defined as the HTTP Server Endpoint not receiving content data from the HTTP
Client Endpoint even though there is an established TCP connection.
This guideline works in conjunction with 11.4.3.65.7 because this guideline assumes Ideal Network
Conditions and also assumes that neither user-initiated causes nor out-of-band system events
cause the connection to be closed.
[ATTRIBUTES ]
[C OMMENT] These guidelines specify a 5 min timeout for stalled content transfer.
[ATTRIBUTES ]
11.4.3.67.2
[G UIDELINE ] An HTTP Client Endpoint that uses the resume content transfer operation shall
include and specify the instance-length parameter on the Content-Range HTTP header and
last-byte position on the Content-Range HTTP header shall be instance-length −1.
DLNA guidelines; Part 1-1: Architecture and protocols
– 579 –
[ATTRIBUTES ]
[C OMMENT] The instance-length parameter (see IETF RFC 2616, 14.16) specifies the total size of
the object being uploaded.
The instance-length parameter shall specify a valid value, so "*" shall not be used for the
instance-length parameter.
This guideline applies even when the HTTP client uses chunked transfer coding.
11.4.3.67.3
[G UIDELINE ] If an HTTP Client Endpoint specifies the Content-Range HTTP header the
first-byte-pos shall be equal to the content length already stored in a peer HTTP server.
[ATTRIBUTES ]
[C OMMENT] Length of already stored data (on a peer HTTP server) can be known through the
res@dlna:uploadedSize in a CDS:Browse response.
11.4.3.67.4
[G UIDELINE ] An HTTP client shall use the Content-Range HTTP header only with POST requests
that are part of a resume content transfer operation (i.e. use with GET nor HEAD request is
prohibited).
[ATTRIBUTES ]
11.4.3.67.5
[G UIDELINE ] An HTTP Client Endpoint shall not specify the Content-Range HTTP header for a
POST request addressed to res@importUri included in an object that does not support the resume
content transfer functionality.
[ATTRIBUTES ]
11.4.3.67.6
[G UIDELINE ] An HTTP Client Endpoint shall not specify the Content-Range HTTP header for a
POST request addressed to res@dlna:importIfoFileURI.
[ATTRIBUTES ]
[C OMMENT] The resume content transfer operation can be supported for res@importUri and
cannot be used for res@dlna:importIfoFileURI. To recover from a failed transfer of an IFO file, the
HTTP client simply does a retry IFO attempt, which is an HTTP POST request without the
Content-Range HTTP header. Please note that type of transfer recovery is out of scope for
res@importUri values.
[ATTRIBUTES ]
11.4.3.68.2
[G UIDELINE ] If an HTTP Server Endpoint has resume functionality and receives a POST request
with the Content-Range header in which the content-range-spec has a first-byte-pos value that is
equal to the object byte size already stored (i.e. res@dlna:uploadedSize), then the HTTP Server
Endpoint shall append the incoming uploaded data to the stored one.
[ATTRIBUTES ]
[C OMMENT] The Content-Range header and the first-byte-pos parameter are defined in IETF RFC
2616, 14.16.
A client can get the value of res@dlna:uploadedSize from a browse operation after the failure.
11.4.3.68.3
[G UIDELINE ] If an HTTP Server Endpoint has resume functionality and receives a POST request
with the Content-Range header in which the content-range-spec has a first-byte-pos value that is
not equal to the object byte size already stored, then the HTTP server shall send an HTTP response
which status code is 409 (Conflict).
This guideline is applied only when another error condition is not satisfied.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.3.69.2
[G UIDELINE ] An HTTP Server Endpoint may terminate the HTTP session after responding to a
POST request with the 200 (OK) or 201 (Created) responses.
[ATTRIBUTES ]
[C OMMENT] DMS devices are not required to support pipelined HTTP POST transactions.
Therefore, it remains the responsibility of the Upload Controller to retry an attempted pipelined
POST transacations when the HTTP server does not support pipelined POST transactions, see
Figure 22.
The subclauses in 11.4.4 define guidelines for the implementation of the RTP Media Transport in
the context of home networking. These apply to the playback of DLNA content and the streaming
transactions between DLNA device classes. These guidelines do not specify behavior for non-DLNA
device entities. A device class can be implemented by software running on a more general-purpose
device/platform. For example, the RTP server of a Serving Endpoint can be used to serve DLNA and
non-DLNA content. These guidelines would apply only when the DLNA-content is being served.
For these DLNA guidelines, RTP/RTCP is a protocol which is carried over UDP/IP for unicast
connections. A graphical representation of the reference protocol stack for the RTP Media
Transport is shown in Annex F. The RTP Media Transport is enriched with the support of advanced
features. For example, RTP retransmission can be used to increase reliability of media delivery. The
RTP Media Transport also supports mechanisms for adaptive media delivery to improve continuous
playback even in adverse network conditions. These guidelines also cover the RTSP protocol,
which is carried over TCP connections. RTSP supports pause, seek and scan media operations
(fast forward, slow forward, fast backward and slow backward).
Lastly, the DLNA guidelines do not specify interoperability for the transfer of content for either the
Upload system usage or the Download system usage. Likewise, the DLNA guidelines also assume
that the RTP Media Transport applies only to the Streaming Transfer Mode. The Interactive and
Background Transfer modes do not apply to the RTP Media Transport.
• RTP/RTCP Protocols: 11.4.4.2 through 11.4.4.19 provides general RTP media transport
guidelines. 11.4.4.20 through 11.4.4.42 provides RTP Serving Endpoints guidelines, while
11.4.4.43 through 11.4.4.58 provides RTP guidelines for Receiving Endpoints. These
subclauses also include guidelines for RTCP.
• Adaptation of Media Format Profiles 11.4.4.60 through 11.4.4.127 provides guidelines on
adaptating several Media Format Profiles for use with RTP and RTP payload formats.
• RTSP/SDP Protocols: 11.4.4.129 through 11.4.4.211 includes guidelines for the support of the
Real-Time Streaming Protocol IETF RFC 2326 and the support for the Session Description
Protocol IETF RFC 2327.
The terms Serving Endpoint and Receiving Endpoint are specific to RTP, and they are defined
specifically in 11.4.4.4 and 11.4.4.5. Respectively, they represent the different RTP, RTCP, RTSP,
and SDP server/client components needed for a Content Source or Content Receiver using RTP.
[C OMMENT] In v1.0 of the DLNA guidelines, Serving Endpoint and Receiving Endpoint were used.
Since the system usages for v1.5 is greatly expanded, those terms were deemed insufficient to
represent the different content roles on the network.
[ATTRIBUTES ]
Endpoints and Receiving Endpoints, the guidelines that follow in these Tables shall be implemented
as described.
RTP is recommended for certain applications, e.g. Streaming Transfer of live content.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Certain RTP session parameters, such as UDP port, RTP clock frequency and RTP
payload type, shall be communicated before RTP packets can be exchanged. These parameters
shall be communicated using RTSP and SDP as defined in 11.4.4.129 through 11.4.4.211: RTP
Media Transport: RTSP/SDP.
RTP Profile for Audio and Video Conferences with Minimal Control as defined in IETF RFC 3551,
also called RTP/AVP.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC YR3RV
3550
IETF RFC
3551
11.4.4.7.2
[G UIDELINE ] The following RTP profile may optionally be supported by Serving Endpoints and
Receiving Endpoints:
Extended audio/visual profile for RTCP based feedback as defined in IETF RFC 4585 also called
RTP/AVPF.
[ATTRIBUTES ]
O L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 6R47M
4585
[ATTRIBUTES ]
[C OMMENT] RTP support levels (A or B) enable better understanding of the extent to which Serving
Endpoints support RTP.
11.4.4.8.2
[G UIDELINE ] If a Serving Endpoint claims "RTP support level A" it shall support transmitting at least
one Media Format Profile over RTP.
[ATTRIBUTES ]
[C OMMENT] This is a very basic requirement: an RTP-capable Serving Endpoint shall be able to
stream at least something over RTP (otherwise it is simply not an RTP-capable Serving Endpoint).
11.4.4.8.3
[G UIDELINE ] If a Serving Endpoint claims "RTP support level B" for each Media Format Profile that
it supports transmitting over HTTP, it shall also support transmitting that Media Format Profile over
RTP.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 586 –
[ATTRIBUTES ]
This level of support avoids confusion by the end-user. If a level B Serving Endpoint supports a
certain set of media formats and it supports RTP, then RTP is supported for all these media formats.
[ATTRIBUTES ]
[C OMMENT] RTP support levels (A or B) enable better understanding of the extent to which a
Receiving Endpoint supports RTP.
RTP support levels are not signaled between the serving endpoints and the Receiving Endpoints.
11.4.4.9.2
[G UIDELINE ] If a Receiving Endpoint claims "RTP support level A", it shall support receiving at least
one Media Format Profile over RTP.
[ATTRIBUTES ]
[C OMMENT] This is a very basic requirement: an RTP-capable Receiving Endpoint shall be able to
receive at least something over RTP (otherwise it is simply not an RTP-capable Receiving
Endpoint).
11.4.4.9.3
[G UIDELINE ] If a Receiving Endpoint claims "RTP support level B" for each Media Format Profile
that it supports receiving over HTTP, it shall also support receiving that Media Format Profile over
RTP.
[ATTRIBUTES ]
This level of support avoids confusion by the end-user. If a level B Receiving Endpoint supports a
certain set of media formats and it supports RTP, then RTP is supported for all these media formats.
11.4.4.9.4
[G UIDELINE ] If a Receiving Endpoint claims "RTP support level B" and supports a Program Stream
based Media Format Profile (over RTP), then it shall also support the corresponding Elementary
Stream based Media Format Profile for transport over RTP. In particular:
DLNA guidelines; Part 1-1: Architecture and protocols
– 587 –
The ES based Media Format Profiles are defined for the RTP media transport only (not for HTTP
media transport).
[ATTRIBUTES ]
[C OMMENT] For each Media Format Profile exactly one RTP encapsulation is defined, except for
full TS with zero TTS. This implies that the RTP encapsulation can be inferred from the Media
Format Profile as carried in the 4th protocolInfo field except for full TS with zero TTS. Full TS with
zero TTS encapsulation can be determined using a=rtpmap in SDP.
Transport Stream and Program Stream based Media Format Profiles are encapsulated as a single
RTP stream, whereas other file formats (e.g. MP4, 3GPP) are encapsulated as two separate RTP
streams for AV.
11.4.4.11 MT RTP header timestamps during PLAY requests with Speed or Scale headers
11.4.4.11.1
[G UIDELINE ] A Serving Endpoint shall maintain RTP Header Timestamp values that correspond to
playback timing during scaled playback (i.e. a PLAY request with a Scale header with a value not
equal to 1) as defined in IETF RFC 2326, Appendix B. The output of the Serving Endpoint during
scaled playback shall be compliant with the syntax rules of the Media Format Profile. The values of
the RTP Header timestamps shall be compliant with the requirements for the RTP payload format in
use (e.g. video/MP2P, video/MP2T, or video/MPV).
For example, a Receiving Endpoint requests a Scale value of 2 for a PLAY request. The Serving
Endpoint could comply by dropping every other video frame (or utilize some other algorithm) while
maintaining the original frame rate of the content. Assuming a 90 kHz RTP Header timestamp clock
timebase and PS encapsulation, the RTP Header timestamp values would increase by 90 000 for
each second of playback, even though the NPT time reference would increase by 2 000 each
second.
As a further example, if the Scale value was −4 (backwards at 4 times the nominal playback rate),
the RTP Header timestamp values will also increase by 90 000 for each second, but the NPT time
reference would decrease by −4 000 during the same time period.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 588 –
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the relationship between the RTP Header Timestamps and the
temporal scale of the content being transmitted when the Scale value is not equal to 1. (A Scale
value of 1 implies normal playback scale and direction). The output produced by scaling is
essentially a "normal" 1X sequence of RTP packets which would have RTP Header Timestamps that
are equivalent to a non-scaled content stream. This is expected be true regardless of the algorithm
used by the Serving Endpoint to generate the content.
For example, consider a Serving Endpoint A which implements a Scale value of 2 by dropping every
other frame in a 30 frames per second stream resulting in a content stream which still contains 30
frames per second, but which appears to be playing at twice the normal speed. Next consider
Serving Endpoint B which implements the same Scale value of 2 by sending 4 I-Frames a second
with a presentation time of 250 ms per frame, which will also appear to be playing twice as fast. In
both cases the RTP Header Timestamp values would increase by 90 000 each second.
11.4.4.11.2
[G UIDELINE ] A Serving Endpoint shall not change the RTP Header Timestamp values that
correspond to playback timing in response to a PLAY request with a Speed Header.
For example, a Receiving Endpoint requests a Speed value of 2 for a PLAY request. The Serving
Endpoint would transmit the content at twice the nominal playback rate while maintaining the
nominal RTP header timestamp values within each packet.
[ATTRIBUTES ]
[C OMMENT] This only applies to the RTP header timestamp and not to the wall clock as carried
within the RTP extension header.
11.4.4.11.3
[G UIDELINE ] If a PLAY request includes both Speed and Scale headers, the Serving Endpoint shall
satisfy the parameters of the Scale header, and then deliver the resultant sequence of RTP packets
to the network as specified in the Speed header.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies the order operations if both Scale and Speed headers are
included in a PLAY request. Details on the Scale and Speed headers can be found in 11.4.4.170
through 11.4.4.173.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC B44G2
3550
[ATTRIBUTES ]
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC CXX84
3550
[C OMMENT] RTCP is necessary for rate control and synchronization of RTP streams.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 44G2V
3550
Tolerate means that the endpoints shall be able to parse and interpret or parse and ignore such
packets.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC XX84R
3550
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC YFSYN
3550
[C OMMENT] If SDP specifies an RTCP reporting rate, then this rate has the highest precedence.
(See 11.4.4.199.)
11.4.4.17.2
[G UIDELINE ] In the absence of SDP provisions any RTCP reports shall be generated and sent at
the rate that is in accordance to one of the following:
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 4G2VZ
3550
[C OMMENT] The rules for calculating RTCP report intervals in RFC 3550 are complex to
accommodate large multicast sessions.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC SYN4F
3550
[ATTRIBUTES ]
[C OMMENT] Because RTP is defined only for UDP, RTCP messages are not subject to the same
constraints as HTTP messages sent over TCP. RTCP requests do not have to be the same priority
that the server will use to deliver the content.
RTCP packets from a DMS will contain Sender Report (SR) messages when the server is streaming,
or Receiver Report (RR) messages when the server is idle. The SR and RR messages are important,
but arguably not any more important than the RTP packets, because if the network is experiencing
congestion, then the RTP stream has more serious problems than any information lost in these
messages (e.g. clock sync).
11.4.4.19.2
[G UIDELINE ] If DLNAQOS as defined in 8 is implemented, all RTCP messages generated by a
Receiving Endpoint shall be tagged with DLNAQOS_3, or a lower DLNAQOS_UP value (where "or
a lower" is defined by 8.3.2.2.2 and 8.3.2.2.3), in accordance Table 7.
[ATTRIBUTES ]
[C OMMENT] All feedback messages are time critical, and especially important at times when the
DLNAQOS_2 RTP traffic is suffering from congestion.
RTCP messages sent by a DMP include Receiver Report (RR) messages and RTCP payload types
of 205 and 206. In the RTP/AVPF profile, RTCP payload type 205 is defined as a transport-layer
feedback message and 206 is defined as a payload-specific feedback message. This will cover not
only RTCP NACK messages, but also other kinds of RTCP-based feedback that we might want to
add in the future.
RTCP RR messages contain statistics about lost RTP packets, so they are time critical if the server
makes any decisions based on those statistics. Also, all RTCP packets that the client sends shall
include a RR message. Even if the client just wants to send a NACK, the RTCP packet shall also
include a RR message.
[ATTRIBUTES ]
11.4.4.20.2
[G UIDELINE ] The Serving Endpoint may select an Offset value at the start of the RTP stream, and
this value shall be maintained throughout the RTP stream unless a Timestamp Discontinuity is
indicated.
[ATTRIBUTES ]
[C OMMENT] Some RTP payload formats allow a Timestamp Discontinuity to be indicated using the
"M" bit in the RTP packet header, or through other means.
[ATTRIBUTES ]
SSRC collisions can occur in large conferences where multiple receivers/senders choose their own
SSRC.
In a unicast environment, the RTP Serving Endpoint shall ignore SSRC collisions and continue the
session with the negotiated SSRC values.
[ATTRIBUTES ]
• The retransmitted packet is formatted using the RTP payload format audio/rtx or video/rtx, in
accordance with IETF RFC 4588.
• The retransmitted packet is sent as an identical copy of the original packet and is sent to the
same UDP port as the original RTP packet.
[ATTRIBUTES ]
[C OMMENT] For interoperability reasons, it is suggested that the Serving Endpoint implement both
transmission methods and chooses the one supported by the Receiving Endpoint, as announced in
11.4.4.158.
11.4.4.23.2
[G UIDELINE ] A Serving Endpoint that retransmits RTP packets should format the retransmitted
packet using the RTP payload format audio/rtx or video/rtx, in accordance with IETF RFC 4588.
[ATTRIBUTES ]
11.4.4.23.3
[G UIDELINE ] A Serving Endpoint that retransmits RTP packets may send the retransmitted packet
as an identical copy of the original packet, and it is sent to the same UDP port as the original RTP
packet.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The purpose of this recommendation is to avoid IP Packet fragmentation and the
performance penalty associated with this.
A Serving Endpoint can determine the maximum MTU size for a given connection dynamically using
the algorithm described in RFC 1191. If the Serving Endpoint chooses not to, or is unable to
determine the size dynamically, it can assume an MTU of size of 1 492 B is safe.
11.4.4.24.2
[G UIDELINE ] A Serving Endpoint shall not select an RTP packet size in excess of 4 096 B.
[ATTRIBUTES ]
[C OMMENT] This provides the Receiving Endpoint with an upper limit on the size of an incoming
RTP packet.
[ATTRIBUTES ]
[C OMMENT] When RTSP is used, the Receiving Endpoint selects the UDP ports for each RTP
stream, and although not recommended by IETF RFC 3550, it can choose the same UDP port pair
for multiple RTP streams.
11.4.4.25.2
[G UIDELINE ] If an RTP Media Format Profile encapsulation (see 11.4.4.60 through 11.4.4.65)
mandates that content be sent as multiple RTP streams, the Serving Endpoint shall support sending
them to different (2n, 2n+1) UDP port pairs.
[ATTRIBUTES ]
[C OMMENT] This results in each RTP stream being sent on a different RTP session, which is
recommended by IETF RFC 3550.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The CNAME item is required as per IETF RFC 3550, 6.1.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This rule is compliant to IETF RFC 3550 (RTCP processing in translators).
[ATTRIBUTES ]
[C OMMENT] This is especially helpful to the Receiving Endpoint if multiple RTP streams are sent to
the same UDP port.
[ATTRIBUTES ]
[C OMMENT] This information can be used to detect network congestion and transrate the media
stream.
11.4.4.32.2
[G UIDELINE ] If BFRs indicate that the Receiving Endpoint's buffer levels are low, then the Serving
Endpoint may temporarily increase the transmission rate to fill the Receiving Endpoint's buffer.
Low buffer level is defined as being below the Target Buffer Duration value.
Temporarily increase the transmission rate means that the transmission rate increases until the
Serving Endpoint gets a report indicating the buffer level is equal to or greater than the Target Buffer
Duration value.
[ATTRIBUTES ]
[C OMMENT] This can be used for faster startup and to make the Receiving Endpoint more tolerant
to network jitter.
11.4.4.32.3
[G UIDELINE ] If the Serving Endpoint changes the transmission rate in response to a BFR, RTP
timestamps shall not be adjusted to reflect the changed transmission rate.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.33.2
[G UIDELINE ] If the Serving Endpoint has indicated that transmission rate adaptation is possible
(guideline 11.4.4.208.1) and the Receiving Endpoint specified a Target Buffer Duration for an RTP
stream using the Buffer-Info.dlna.org header (guideline 11.4.4.145), then the Serving Endpoint may
perform transmission rate adaptation for the first Target Buffer Duration of NPT.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The Wall Clock Time Sample denotes the actual transmission time of the RTP packet
very accurately.
This enables Receiving Endpoints to perform clock recovery to enable seamless A/V rendering.
It is up to the Receiving Endpoint whether it chooses to perform clock recovery or not. These
guidelines just strongly recommend that the Serving Endpoint does the minimum necessary to make
it possible.
For MPEG-2 TS or PS encapsulation, the RTP time stamps provide an alternate means for clock
recovery. However, RTP time stamps only denote the actual moment of transmission as accurately
as the pacing has been (i.e. 35 ms worst case), whereas the Wall Clock Time Sample is within
2,5 ms accurate. This enables more reliable clock recovery.
For encapsulation of elementary streams the RTP timestamps denote sample time and not
transmission time, making them unsuitable for clock recovery.
[ATTRIBUTES ]
[C OMMENT] The RTCP SR contains a sample of the Wall Clock Time – "NTP timestamp" – when
the RTCP packet was sent, along with a sample of the clock generating the RTP timestamps for the
RTP stream involved.
This means that the respective RTCP Sender Reports for the different RTP streams (for this media
format) can be used to relate all RTP timestamps to the common Wall Clock Time.
This can in turn be used for inter-media synchronization (i.e. "lip sync").
Guidelines 11.4.4.34 through 11.4.4.40 effectively enable reconstruction of the serving endpoint
Wall Clock Time at the Receiving Endpoint, and thereby serve the same role as e.g. NTP in more
conventional RTP implementations.
11.4.4.35.2
[G UIDELINE ] The Wall Clock Time source shall be at least as accurate as specified by the System
Clock specification (if any) of the RTP payload content concerned.
[ATTRIBUTES ]
[C OMMENT] For example, with MPEG-2 content the 90 kHz clock source shall be accurate to within
± 30 parts per million (ppm) and have a slew rate of less than 0,075 Hz per second as defined in
13818-1.
[ATTRIBUTES ]
[C OMMENT] Sampling the Wall Clock Time for each packet of each RTP stream results in the
largest number of clock samples per second.
For proper clock reconstruction it is advantageous to have as many samples per second as
possible.
[ATTRIBUTES ]
[C OMMENT] Puts upper bound on additional jitter imposed by the serving endpoint's
implementation (i.e. "OS jitter"). Typically, network jitter will dominate over "OS jitter".
The RTP timestamps (Y axis) versus the actual arrival time on the network (X axis) will be plotted
against each other, and a line calculated using a [simple average / least mean squares] fitting
algorithm. The slope of the Calculated Line will be unity if the clock source is accurate. A positive or
negative slope will indicate a frequency error or "drift". The second derivative or "curve" of the line
represents the slew rate of the clock source.
For testing suggestions, this guideline needs to be tested by connecting a packet capturing device
directly to the Device Under Test (DUT) using a crossover Ethernet cable for IEEE 802.3 interfaces
and/or an IEEE 802.11 station or another access point in close proximity with no observable radio
interference. This will allow the arrival time on the network to be measured as accurately as possible
by minimizing the effect of network jitter. However, it needs to be noted that presence of network
jitter does not invalidate the accuracy of this test with respect to clock source accuracy.
The accuracy of the Wall Clock Time samples will be determined by comparing each Wall Clock
Time sample with the actual time the RTP packet is placed on the network as described in ISO/IEC
13818-9 over a period of 10 min. The slope of the Calculated Line (see Figure 23) using a least
mean squares will be used to determine accuracy of the Wall clock time samples.
The distribution of the distance between the observed samples and the Calculated Line (see Figure
23) shall be such that 2 standard deviations of the distribution is ±2,5 ms as shown below in Figure
24.
11.4.4.38 MT RTP Wall Clock Time sample unaffected by Speed, Scale, and BFR
11.4.4.38.1
[G UIDELINE ] Wall Clock Time samples shall represent the "Actual" transmission time, irrespective
of whether the nominal transmission rate is used or not.
a) a rate other than 1,0 is requested by the use of the Speed header, or
b) transmission rate adaptation is performed as described in guidelines 11.4.4.208.2 and
11.4.4.208.4.
[ATTRIBUTES ]
[C OMMENT] The Wall Clock Time Sample will be unaffected by Scale header, Speed header, or
BFR, as it is not tied to the media stream in any way.
c) When the transmission rate is increased the Wall Clock Time samples of adjacent packets will
have smaller temporal distance compared to normal rate. When the transmission rate is
decreased the temporal distances will increase.
11.4.4.38.2
[G UIDELINE ] Wall Clock Time samples shall represent the "Actual" transmission time, irrespective
of whether the content is scaled (Scale header not 1) or not.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Use of the middle 32 bits reduces packet header overhead and is more commonly
used in IETF RFC 3550. It still features a resolution of about 65 kHz (same order of magnitude as
90 kHz RTP timestamps used for PS/TS encapsulation) and a wrap around time of about 18 h.
From IETF RFC 3550: Wall Clock Time (absolute date and time) is represented using the timestamp
format of the Network Time Protocol (NTP), which is in seconds relative to 0h UTC on 1 January
1900. The full resolution NTP timestamp is a 64-bit unsigned fixed-point number with the integer
part in the first 32 bits and the fractional part in the last 32 bits. In some fields where a more compact
representation is appropriate, only the middle 32 bits are used; that is, the low 16 bits of the integer
part and the high 16 bits of the fractional part. The high 16 bits of the integer part is determined
independently.
[ATTRIBUTES ]
[C OMMENT] Header extensions offer full backward compatibility: an implementation that does not
recognize a header extension shall silently ignore it.
11.4.4.40.2
[G UIDELINE ] The X bit in the RTP header shall be set to "1" to indicate the presence of a header
extension.
[ATTRIBUTES ]
11.4.4.40.3
[G UIDELINE ] For RTP streams using the RTP/AVP profile the "defined by profile" field in the header
extension header shall be set to 0x2356 to uniquely define this DLNA "Wall Clock Time Sample"
header extension.
[ATTRIBUTES ]
11.4.4.40.4
[G UIDELINE ] For RTP streams using the RTP/AVPF profile the "defined by profile" field in the
header extension header shall be set to 0x2356 to uniquely define this DLNA "Wall Clock Time
Sample" header extension.
[ATTRIBUTES ]
11.4.4.40.5
[G UIDELINE ] If no additional header extensions (in addition to Wall Clock Time Sample) are
required in the RTP packet header, the "length" field in the header extension header shall be set to
1 to indicate a single 32-bit word in the header extension contents.
[ATTRIBUTES ]
[C OMMENT] To cater to future needs, optionally, another header extension can follow the Wall
Clock Time Sample header extension. In this case the "length" field shall indicate the total length of
the header extension(s) following the header of the Wall Clock Time Sample header extension. Note
that future DLNA guidelines might apply this rule recursively. The case of a single Wall Clock Time
Sample header extension is illustrated in Figure 23. The case of another header extension following
it, is illustrated in Figure 24.
11.4.4.40.6
[G UIDELINE ] Another RTP header extension may follow the Wall Clock Time Sample header
extension, as described in IETF RFC 3550.
[ATTRIBUTES ]
11.4.4.40.7
[G UIDELINE ] If another header extension follows the Wall Clock Time Sample header extension,
the "length" field in the Wall Clock Time Sample header extension header shall be set to the total
size of the header extension following it (including its header) plus 1 to indicate the single 32-bit
word in the Wall Clock Time Sample header extension contents as shown in Figure 25 and Figure
26.
[ATTRIBUTES ]
The above does not apply when the Serving Endpoint performs transmission rate adaptation as
described in guidelines 11.4.4.208.2 and 11.4.4.208.4.
The accuracy of the RTP packet delivery will be determined by capturing the Observed Network
Arrival Time as defined in 11.4.4.37 and comparing it to a valid Target Transmission Time.
[ATTRIBUTES ]
[C OMMENT] The pace with which RTP packets are delivered to the network shall be such that no
pre-decoder buffer overflow can occur at the Receiving Endpoint.
This means that RTP packets shall be paced in accordance with the standard decoder buffer model
of the media format concerned. The standard decoder buffer model determines which are valid
delivery times – "Target Transmission Times" – for packets.
For TS/PS encapsulation a valid "Target Transmission Time" is present in the RTP timestamp (see
guideline 11.4.4.83).
For ES encapsulation the "Target Transmission Time" is not explicit in the packet, but can be
derived from the multiplex of the source material (if present).
11.4.4.41.2
[G UIDELINE ] For payload types other than the ones mentioned in 11.4.4.83, the "Target
Transmission Time" of an RTP packet shall be defined as the intended delivery time of the first byte
of its payload into the pre-decoder buffer of the Receiving Endpoint in a way that is consistent with
the standard decoder buffer model applicable to the payload type.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This rule recommends the Serving Endpoint not to exceed the maximum packet rate
specified by the Receiving Endpoint. Otherwise, the Receiving Endpoint might not be able to play all
packets
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 604 –
11.4.4.42.2
[G UIDELINE ] A Serving Endpoint that supports the Max-Prate.dlna.org header shall also
understand the feature tag dlna.Max-Prate (see guideline 11.4.4.157.2) in a Require header.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] If the P bit is 1, the Receiving Endpoint shall remove the padding before processing
the packet.
If the X bit is 1, the Receiving Endpoint shall correctly parse the packet and process any headers
that it understands, and tolerate any other headers.
[ATTRIBUTES ]
[C OMMENT] Contributing sources are created only by RTP mixers, which are not required by DLNA.
[ATTRIBUTES ]
SSRC collisions can occur in large conferences where multiple receivers/senders choose their own
SSRC.
In a unicast environment, the RTP Receving Endpoint shall ignore SSRC collisions and continue the
session with the negotiated SSRC values.
[ATTRIBUTES ]
[C OMMENT] Subclause 5.1 of IETF RFC 3550 recommends random starting sequence numbers, so
Receiving Endpoints shall expect a random starting sequence number.
[ATTRIBUTES ]
[C OMMENT] Subclause 5.1 of IETF RFC 3550 recommends random starting RTP timestamps, so
Receiving Endpoints shall expect a random starting timestamp.
[ATTRIBUTES ]
[C OMMENT] The CNAME item is required as per IETF RFC 3550, 6.1.
[ATTRIBUTES ]
[C OMMENT] BYE packets can be received before or after the transmission of RTP packets has
actually ended because of network reordering or retransmission.
Tolerate means that the Receiving Endpoint is able to "parse and interpret" or "parse and ignore"
header extensions.
[ATTRIBUTES ]
"Shall accept" means that the Receiving Endpoint is able to "receive and reorder" or "receive and
ignore" header extensions.
[ATTRIBUTES ]
11.4.4.51.2
[G UIDELINE ] A Receiving Endpoint should be capable of processing RTP packets that arrive with
up to 200 ms of total jitter.
[ATTRIBUTES ]
[C OMMENT] This jitter is the sum of the OS jitter (which is 35 ms) plus the network induced jitter.
11.4.4.51.3
[G UIDELINE ] If a Receiving Endpoint sends Buffer Fullness Reports, it shall tolerate variable rate
transmission of RTP packets for a period up to the duration of the Receiving Endpoint's buffer.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The Serving Endpoint uses SDP to indicate if RTP/AVPF is used, and which feedback
message types are acceptable.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.54.2
[G UIDELINE ] A Serving Endpoint that supports the audio/rtx and video/rtx RTP payload formats for
retransmitted packets shall use the SSRC-multiplexing method described in Clause 5 of IETF RFC
4588 and shall not use the session-multiplexing method (also described in Clause 5 of IETF RFC
4588).
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.56 MT RTP rules for counting RTP packets when retransmission requests are
supported
11.4.4.56.1
[G UIDELINE ] A Receiving Endpoint which requests the retransmission of an RTP packet using an
RTCP nack feedback message, shall count that packet as a lost packet in RTCP Receiver Reports,
even if the RTP packet is subsequently received.
[ATTRIBUTES ]
11.4.4.56.2
[G UIDELINE ] A Receiving Endpoint which requests the retransmission of an RTP packet using an
RTCP nack feedback message, shall not include that packet when computing the value for the
"interarrival jitter" field in RTCP Receiver Reports, even if the RTP packet is subsequently received.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] BFR's can be used to detect network congestion and ensure the RENEDERING
ENDPOINTS jitter buffer remains full.
11.4.4.57.2
[G UIDELINE ] A Receiving Endpoint that sends BFR's shall send them at the rate that is in
accordance with SDP provisions (if any).
[ATTRIBUTES ]
[C OMMENT] See guideline 11.4.4.204.2 for SDP provisions that define the rate at which BFRs shall
be sent. The Serving Endpoint requires BFR's to be sent at this rate to detect congestion.
11.4.4.57.3
[G UIDELINE ] A Receiving Endpoint that sends BFRs shall use the following syntax.
• An RTCP feedback message as defined in RTP/AVPF IETF RFC 4585, 6.1 shall be used.
• The FMT field shall be set to 3 indicating the BFR feedback message type.
• The PT field shall be set to 205 indicating a transport layer feedback message.
• The feedback control information (FCI) section consists of ten fields. The fields shall occur in the
FCI in the order listed below.
• N1: (32 bits) shall be set to the number of free bytes in the Receiving Endpoint's network de-jitter
buffer.
• N2: (32 bits) shall be set to the current size, in bytes, of the Receiving Endpoint's network
de-jitter buffer. The current size is the current maximum size and not the current utilization or
amount of data in the buffer.
• N3: (16 bits) shall be set to the amount of data queued in the Receiving Endpoint's network
de-jitter buffer counted in milliseconds. If this information is not available, this field shall be set
to 0xFFFF. If the amount of data is more than 65 534 ms, the fields shall be set to 0xFFFE.
• Playout Delay: (16 bits) Shall be set to the difference between the scheduled playout time of the
next ADU (Application Data Unit) to be transferred to the coded data buffer or decoded if coded
data buffer is not presented and the time of sending the BFR, as measured by the media playout
clock, expressed in milliseconds. If this information is not available, the Receiving Endpoint
shall set this value to 0xFFFF. In case of an empty buffer, the playout delay is not defined and
the field shall be set to 0xFFFF.
• NSN: (16 bits) shall be set to the RTP sequence number of the next ADU to be transferred or
decoded for the SSRC reported on. In the case where the buffer does not contain any packets
for this SSRC, the next not yet received RTP sequence number shall be reported, i.e. an NSN
value that is one larger than the least significant 16 bits of the RTCP SR or RR report block's
"extended highest sequence number received".
• NUN: (16 bits) shall be set to the unit number (within the RTP packet) of the next ADU to be
transferred or decoded as defined in the payload format subclause of these guidelines,
11.4.4.60 through 11.4.4.65, for the given RTP payload format. The first unit in a packet has a
unit number equal to zero. The unit number is incremented by one for each ADU in an RTP
DLNA guidelines; Part 1-1: Architecture and protocols
– 609 –
packet. In the case of RTP payload formats where each packet carries a single ADU, or where
the ADU is not defined, the NUN field shall be set to zero.
• D1: (32 bits) shall be set to the number of free bytes in the Receiving Endpoint's coded data
buffer, or 0 if the pre-decoder buffer is combined with the network de-jitter buffer. The field shall
be set to 0 if the RTSP Buffer-Info.dlna.org header did not provide a size for the coded data
buffer.
• D2: (32 bits) shall indicate the current size, in bytes, of the Receiving Endpoint's coded data
buffer, or 0 if the pre-decoder buffer is combined with the network de-jitter buffer. The field shall
be set to 0 if the RTSP Buffer-Info.dlna.org header did not provide a size for the coded data
buffer.
• D3: (16 bits) shall be set to the amount of data queued in the Receiving Endpoint's coded data
buffer counted in milliseconds. If this information is not available, this field shall be set to
0xFFFF. If the amount of data is more than 65 534 ms, the fields shall be set to 0xFFFE.
• TD: (16 bits) shall be set to the current value of Target Buffer Duration, as defined in guideline
11.4.4.145. The field shall be set to 0 if the Buffer-Info.dlna.org header was not included in the
RTSP SETUP request, or if the "TD" parameter on that header was not present.
[ATTRIBUTES ]
[C OMMENT] The fields N2 and D2 are necessary because the Receiving Endpoint can decide to
increase the sizes of these buffers as a result of headers in the PLAY response, or as a result of
network congestion, for example.
See Figure 26 for more information.
The definition of Application Data Unit is specific to each RTP payload format. See definitions in
11.4.4.60 through 11.4.4.65, and the comments about the NUN field, below.
In the two-buffer model where no RTP header is available in the coded data buffer, the reported
NSN and the associated playout delay and NUN shall use the next to be transferred RTP packet's
sequence number in the transmission (network) jitter buffer.
In the case of RTP payload formats where each packet carries a single ADU (for example H.263 and
MPEG-4 Visual Simple Profile) the NUN field will be set to zero.
MPEG-2 PS streams consist of a stream of bytes without payload-level framing. Therefore NUN
shall always be 0 for such streams.
Future additions of media encoding or transports capable of having more than one ADU in each RTP
payload shall define what shall be counted as an ADU for this format.
11.4.4.58 MT RTP tolerate Wall Clock Time Sample RTP header extension
[G UIDELINE ] Receiving Endpoint shall tolerate the Wall Clock Time sample RTP header extension
as defined in guidelines 11.4.4.34 through 11.4.4.40.
[ATTRIBUTES ]
[C OMMENT] IETF RFC 3550 already mandates RTP header extensions be silently ignored if they
cannot be interpreted.
The aim of the referenced guidelines is for a Receiving Endpoint to actively use the Wall Clock Time
samples to perform clock recovery. As stated before, this is not mandatory.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 IZ5XA
• the payload format MP2T as defined in IETF RFC 2250 and IETF RFC 3555 with constraints in
guideline 11.4.4.78, or
• the payload format vnd.dlna.mpeg-mp2t as defined in guideline 11.4.4.79.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 NJEQX
IETF RFC
2250
[C OMMENT] Full Single Program Transport Streams with zero TTS carrying MPEG-2 Media Format
Profiles.
11.4.4.61.2
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 AI8EX
[C OMMENT] Partial Single Program Transport Streams with zero TTS carrying MPEG-2 Media
Format Profiles.
11.4.4.61.3
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 X5398
[C OMMENT] Partial or Full Single Program Transport Streams with non-zero TTS carrying MPEG-2
Media Format Profiles.
11.4.4.61.4
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 9IZ5X
IETF RFC
2250
IETF RFC
3555
11.4.4.61.5
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 FNJEQ
IETF RFC
2250
• the payload format MP2T as defined in IETF RFC 2250 and IETF RFC 3555 with constraints in
guideline 11.4.4.78, or
• the payload format vnd.dlna.mpeg-mp2t as defined in guideline 11.4.4.79.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 TX539
IETF RFC
2250
[C OMMENT] Full Single Program Transport Streams with zero TTS carrying AVC Media Format
Profiles.
11.4.4.62.2
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 R9IZ5
[C OMMENT] Partial Single Program Transport Streams with zero TTS carrying AVC Media Format
Profiles.
11.4.4.62.3
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 Z5XAW
[C OMMENT] Partial or Full Single Program Transport Streams with non-zero TTS carrying AVC
Media Format Profiles.
11.4.4.62.4
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
• Audio and Video shall be encapsulated as elementary streams (no use of the MPEG-4 file format
or 3GPP file format).
• The RTP encapsulation for video shall use payload format H264 IETF RFC 3984 with
constraints in 11.4.4.91 through 11.4.4.98.
• The RTP encapsulation for audio shall comply with 11.4.4.66 through 11.4.4.76.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 JEQXQ
IETF RFC
3984
[C OMMENT] AVC Media Format Profiles that indicate MP4 or 3GPP encapsulation.
• the Payload format MP2T (IETF RFC 2250, IETF RFC 3555) with constraints in 11.4.4.78, or
• the Payload format vnd.dlna.mpeg-mp2t as defined in guideline 11.4.4.79.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 I8EXF
IETF RFC
2250
[C OMMENT] Full Single Program Transport Streams with zero TTS carrying MPEG-4 Part 2 Media
Format Profiles.
11.4.4.63.2
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 IW5Y5
[C OMMENT] Partial Single Program Transport Streams with zero TTS carrying MPEG-4 Part 2
Media Format Profiles.
11.4.4.63.3
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 EQXQ6
[C OMMENT] Partial or Full Single Program Transport Streams with non-zero TTS carrying MPEG-4
Part 2 Media Format Profiles.
11.4.4.63.4
[G UIDELINE ] For A/V Profile ID values in IEC 62481-2 for which the following holds:
• Audio and Video shall be encapsulated as elementary streams (no use of the MPEG-4 or ASF
file format).
• The RTP encapsulation for video shall use payload format mpeg4-generic IETF RFC 3640 with
constraints in 11.4.4.99 through 11.4.4.103: Guidelines for the encapsulation for MPEG-4 part 2
elementary streams.
• The RTP encapsulation for audio shall comply with 11.4.4.66 through 11.4.4.76.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 8EXFY
IETF RFC
3640
[C OMMENT] MPEG-4 Part 2 Media Format Profiles that indicate MP4 or ASF encapsulation.
• Audio and Video shall be encapsulated as elementary streams (no use of the MPEG-4 file
format).
• The RTP encapsulation for video shall use payload format H263-2000 IETF RFC 3555,
IETF RFC 2429 with constraints in 11.4.4.114 through 11.4.4.117: Guidelines for the
encapsulation of H.263 streams.
• The RTP encapsulation for audio shall comply with 11.4.4.66 through 11.4.4.76.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC W5Y5T
3555
IEC 62481-2
IETF RFC
2429
• Audio and Video shall be encapsulated as elementary streams (no use of the ASF file format).
• The RTP encapsulation for video shall use payload format WMV RTP Payload format with
constraints in guideline 11.4.4.84 through 11.4.4.90.
• The RTP encapsulation for audio shall comply with 11.4.4.66 through 11.4.4.76.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 Y5T9R
RTP Payload
format
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 EXFYZ
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 5Y5T9
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IEC 62481-2 RXG3B
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC ISH26
3551
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC WPN9Z
2250
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC FRXG3
3640
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 6ISH2
3551
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a RTP Payload ZWPN9
format
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC VFRXG
3267
IEC 62481-2
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 66ISH
4352
IEC 62481-2
[ATTRIBUTES ]
11.4.4.77.2
[G UIDELINE ] All RTP Timestamps for MPEG TS encapsulated content will be in 90 kHz clock units.
[ATTRIBUTES ]
11.4.4.77.3
[G UIDELINE ] The 90 kHz clock utilized as the basis for the RTP Header Timestamp field shall be
synchronized with the MPEG System Clock of the content.
[ATTRIBUTES ]
11.4.4.77.4
[G UIDELINE ] The RTP Timestamp values may differ from the MPEG
program_clock_reference_base value in the PCR field.
[ATTRIBUTES ]
11.4.4.77.5
[G UIDELINE ] An ADU (Application Data Unit) shall be one complete TS packet as specified in the
guidelines for the RTP payload format in use.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 3TYKK
2250
[C OMMENT] The size of a TS packet differs depending on the RTP payload format in use.
[ATTRIBUTES ]
[C OMMENT] This RTP payload format definition is a strict definition of IETF RFC 2250 using Full
SPTS streams.
11.4.4.78.2
[G UIDELINE ] Each MPEG TS Packet shall be 188 B in length and conform to the requirements of
ISO/IEC 13818-1. The MP2T Payload format can only be utilized with DLNA Media Format Profiles
that utilize MPEG2 TS encapsulation and have 188 byte TS Packets. Specifically MP2T is not a
valid RTP payload format for DLNA Media Format Profiles utilizing the 192 byte TS packet syntax.
[ATTRIBUTES ]
11.4.4.78.3
[G UIDELINE ] The RTP Timestamp shall represent the ideal transmission time of the first byte of the
first MPEG TS Packet contained within the RTP Payload as defined in IETF RFC 2250 and further
clarified below.
[ATTRIBUTES ]
11.4.4.78.4
[G UIDELINE ] The ideal transmission time of the first byte of an MPEG2 TS Packet shall be
calculated as follows:
where
I is the Index value of the TS Packet relative to the last TS Packet containing a PCR value. The first
TS Packet after a PCR value will have an Index of 1, the second TS Packet an Index of 2, and so on.
N is the Number of TS Packets between TS Packets with PCR values plus one for the TS Packet
with the PCR value. For example, if a SPTS has 2 000 TS Packets per second, and PCR values
occur every 100 ms, the value of N would be 200.
90KHZX is the value of the 90 kHz clock associated with the last TS Packet containing a PCR value.
∆T PCR is the Delta time value between PCR values as defined in 3.2.
[ATTRIBUTES ]
11.4.4.78.5
[G UIDELINE ] The Serving Endpoint shall utilize either a static Payload ID of "33" or a dynamic
Payload Format of "MP2T" in the SDP Media Description Fields as defined in 11.4.4.195.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This RTP TS Payload format definition is a looser definition of IETF RFC 2250 MP2T
that allows both Partial and Full SPTS streams. The RTP Timestamp calculations are identical even
though the temporal relationship between any two adjacent TS Packets is not always the same.
DLNA guidelines; Part 1-1: Architecture and protocols
– 621 –
11.4.4.79.2
[G UIDELINE ] This payload format definition is identical to MP2T as defined in guideline 11.4.4.78.2,
except for the name, and that it can also be used to carry partial SPTS streams.
[ATTRIBUTES ]
11.4.4.79.3
[G UIDELINE ] The RTP Packet Timestamp shall be calculated in the same manner as described in
11.4.4.78.3 and 11.4.4.78.4 for the MP2T Payload format definition.
[ATTRIBUTES ]
11.4.4.79.4
[G UIDELINE ] The Serving Endpoint shall utilize a dynamic Payload Format of vnd.dlna.mpeg-mp2t
in the SDP Media Description Fields as defined in 11.4.4.195.
[ATTRIBUTES ]
11.4.4.79.5
[G UIDELINE ] To reduce jitter on the transmission of PCR timestamps, the Serving Endpoint should
send RTP packets as soon as it contains a TS packet with a PCR, without waiting for the maximum
payload size to be reached.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This RTP Payload format definition is designed to preserve individual TS Packet
timing references in a Partial SPTS stream.
11.4.4.80.2
[G UIDELINE ] The vnd.dlna.mpeg-tts RTP Payload format definition can only be utilized with DLNA
Media Format Profiles that utilize MPEG2 TS encapsulation and have 192 byte TS Packets. It shall
be used for DLNA Media Format Profiles utilizing the DLNA-defined 192 byte TS packet format with
timestamp.
[ATTRIBUTES ]
[C OMMENT] The individual timestamps in each TS Packet are designed to preserve the temporal
relationship between each TS packet and its two adjacent packets.
11.4.4.80.3
[G UIDELINE ] Each TS Packet shall be 192 B in length consisting of a 4 byte TTS Timestamp field
followed by a 188 byte MPEG TS packet conforming to the requirements of ISO/IEC 13818-1.
[ATTRIBUTES ]
11.4.4.80.4
[G UIDELINE ] The TTS Timestamp field shall be in 27 MHz clock units. The 27 MHz clock utilized as
the basis for the TTS Timestamps shall be synchronized with the MPEG System Clock of the
content.
[ATTRIBUTES ]
11.4.4.80.5
[G UIDELINE ] The TTS Timestamp value is a 32-bit binary counter and is not defined using the same
syntax as the PCR field. If this TS Definition is utilized, the Serving Endpoint shall ensure that the
individual TTS Timestamp values have an accuracy of ±500 ns.
[ATTRIBUTES ]
11.4.4.80.6
[G UIDELINE ] The TTS Timestamp field shall contain valid timestamp values.
[ATTRIBUTES ]
[C OMMENT] This is different from how the TTS Timestamps are used in HTTP.
11.4.4.80.7
[G UIDELINE ] The RTP Timestamp shall be derived from the TTS Timestamp of the first TS Packet
in the RTP Payload using the following equations.
For the first RTP Timestamp (TSRTP) in the RTP stream, or after a Program System Clock
discontinuity:
where
where
TSRTP N is the RTP time stamp of the Nth RTP packet;
and
TSTTS N is the TTS time stamp of the first TS packet in the payload of the Nth RTP packet.
[ATTRIBUTES ]
[C OMMENT] These equations compensate for the difference in time base between the TTS
Timestamp (27 MHz) and the RTP Timestamp (90 kHz). It allows the RTP Timestamp to reach its
full value (roll over at 232). Implementers shall account for roller in the TSTTS N − TSTTS N-1
expression.
11.4.4.80.8
[G UIDELINE ] The Serving Endpoint shall utilize a dynamic Payload Format of vnd.dlna.mpeg-tts in
the SDP Media Description Fields as defined in 11.4.4.194.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] For full TS its up to the serving endpoint whether MP2T or vnd.dlna.mpeg-mp2t is used,
this implies the Receiving Endpoint shall be able to accept either one.
[ATTRIBUTES ]
[C OMMENT] Only that way the clock recovered by the Receiving Endpoint can meet the
specifications needed for decoding.
11.4.4.83 MT RTP Target Transmission Time for MPEG TS and PS encapsulated content
[G UIDELINE ] For payload types MP2P, MP2T, vnd.dlna.mpeg-mp2t, and vnd.dlna.mpeg-tts, the
"Target Transmission Time" of an RTP packet is defined by its RTP Timestamp field.
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a RTP Payload 84D89
format
11.4.4.85 MT RTP WMA time stamps in ASF are presentation time stamps
11.4.4.85.1
[G UIDELINE ] The "Timestamp" field in the RTP header shall be set to a value reflecting the
presentation time of the first payload in the RTP packet. The "Presentation Time" field of a WMA
Media Object in ASF specifies the presentation time of the WMA Media Object.
[ATTRIBUTES ]
11.4.4.85.2
[G UIDELINE ] The "Decode Time" field shall not be included in the RTP Payload Format header,
unless the decode time of the WMA media object is known.
[ATTRIBUTES ]
[C OMMENT] When WMA is stored in an ASF container, decode times of WMA Media Objects are
not available.
11.4.4.86 MT RTP WMV time stamps in ASF are decode time stamps
11.4.4.86.1
[G UIDELINE ] The "Timestamp" field in the RTP header shall be set to a value reflecting the decode
time of the first payload in the RTP packet The "Presentation Time" field of a WMV Media Object in
ASF specifies the decode timeof the WMV Media Object.
[ATTRIBUTES ]
11.4.4.86.2
[G UIDELINE ] The a=fmtp line in SDP shall specify ts=DTS to indicate this usage.
[ATTRIBUTES ]
11.4.4.86.3
[G UIDELINE ] The "Presentation Time" field of a WMV media object in ASF shall not be used as the
Presentation Time field of the RTP packet.
[ATTRIBUTES ]
[C OMMENT] When WMV is stored in an ASF container, presentation times of WMV Media Objects
are not explicitly available.
11.4.4.87 MT RTP determining the value of the SDP "profile" parameter for WMV
[G UIDELINE ] If the ASF Meta Data Object exists, and if it contains a
"DeviceConformanceTemplate" attribute for the WMV media stream, then that attribute may be
used to determine the value for the "profile" parameter in the WMV SDP syntax.
The first two characters in the "DeviceConformanceTemplate" value determine the SDP "profile"
parameter as follows:
• SP: profile=0;
• MP: profile=1.
[ATTRIBUTES ]
11.4.4.88 MT RTP determining the value of the SDP "level" parameter for WMV
[G UIDELINE ] If the ASF Meta Data Object exists, and if it contains a
"DeviceConformanceTemplate" attribute for the WMV media stream, then that attribute may be
used to determine the value for the "level" parameter in the WMV SDP syntax.
The last two characters in the "DeviceConformanceTemplate" value determine the SDP "level"
parameter as follows:
• LL: level=0;
• ML: level=1;
• HL: level=2.
[ATTRIBUTES ]
11.4.4.89 MT RTP determining the value of the SDP "aspect" parameter for WMV
[G UIDELINE ] If the ASF Meta Data Object exists, and if it contains both an "AspectRatioX" attribute
and an "AspectRatioY" attribute for the WMV media stream, then those attributes can be used to
determine the value for the "aspect" parameter in the WMV SDP syntax.
[ATTRIBUTES ]
11.4.4.90 MT RTP determining the value of the SDP "profile" parameter for WMA
[G UIDELINE ] If the ASF Meta Data Object exists, and if it contains a
"DeviceConformanceTemplate" attribute for the WMA media stream, then that attribute may be
used to determine the value for the "profile" parameter in the WMA SDP syntax.
If the first character in the "DeviceConformanceTemplate" value is "L", then the second character
may be used as the value for the SDP "profile" parameter.
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 6QS3W
3984
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC ZALCW
3984
[ATTRIBUTES ]
[C OMMENT] For the single NAL unit mode, non-interleaved mode, and interleaved mode, the
values of the packetization-mode MIME/SDP parameter are equal to 0, 1, and 2, respectively.
[ATTRIBUTES ]
11.4.4.94.2
[G UIDELINE ] A Receiving Endpoint shall support the interleaved packetization mode with the value
of the sprop-interleaving-depth parameter in the a=fmtp line of the SDP equal to 0.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
Example:
• rtp-h264-deint-buf-cap.dlna.org: 32768
This specifies that the Receiving Endpoint is capable of supporting such RTP streams that require
a de-interleaving buffer up to 32 768 B (inclusive).
[ATTRIBUTES ]
[C OMMENT] This indicates how big a buffer a Receiving Endpoint can allocate for the
de-interleaving process of interleaved H.264 RTP streams.
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC G3BWT
3640
[ATTRIBUTES ]
[C OMMENT] Generic mode is the only mode defined in IETF RFC 3640 that is applicable to
MPEG-4 Part 2.
The usage of generic mode is signaled by "mode=generic" on the a=fmtp line in SDP. See IETF RFC
3640, 3.3.2.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 3BWT8
3640
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Setting "AU-Index-delta" to 0 means that the index number of the Access Unit is equal
to the previous index number plus one.
11.4.4.104 MT RTP payload format for MPEG-4 AAC and HE-ACC streams
[G UIDELINE ] If MPEG-4 AAC or HE-ACC streams are transmitted over RTP, then the RTP payload
format IETF RFC 3640 shall be used as specified in guidelines 11.4.4.105 to 11.4.4.113 inclusive.
[ATTRIBUTES ]
[C OMMENT] This guideline applies irrespective of the encoding tools used in the bit stream, such as
AAC LC, LTP, BSAC, etc.
[ATTRIBUTES ]
[C OMMENT] The usage of High Bit-rate AAC mode is signaled by "mode=AAC-hbr" on the a=fmtp
line in SDP. See IETF RFC 3640, 3.3.5.
Alternative, low Bit-rate AAC mode could have been used only when AAC frame length is at most 63
octets, i.e., corresponding such a low bit rates that are used rarely in DLNA. Therefore low bit-rate
mode is not allowed.
[ATTRIBUTES ]
11.4.4.106.2
[G UIDELINE ] If a Serving Endpoint concatentates or fragments MPEG-4 AAC Access units, RTP
packets shall not contain fragments of multiple Access Units.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Setting "AU-Index-delta" to 0 means that the index number of the Access Unit is equal
to the previous index number plus one.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The H.263 profile and level included in the a=fmtp line shall follow the H263-2000
MIME media type specified in IETF RFC 3555.
• a=framesize:96176-144
[ATTRIBUTES ]
11.4.4.116.2
[G UIDELINE ] Receiving Endpoints may support the a=framesize SDP attribute.
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC XG3BW
3555
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC V7QD3
3267
[ATTRIBUTES ]
[C OMMENT] Subclause 8.1 of IETF RFC 3267 explains the SDP "maxptime" attribute.
11.4.4.119.2
[G UIDELINE ] The recommended value for the SDP maxptime attribute is 200 ms.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.120.2
[G UIDELINE ] If a Serving Endpoint supports interleaving then it shall apply interleaving when the
rtp-amr-deint-buf-cap.dlna.org header is present in the RTSP DESCRIBE request.
[ATTRIBUTES ]
11.4.4.120.3
[G UIDELINE ] A Serving Endpoint shall set the value of the interleaving parameter in the a=fmtp line
of the SDP equal to or less than the value of the rtp-amr-deint-buf-cap.dlna.org header in the RTSP
DESCRIBE request.
[ATTRIBUTES ]
[C OMMENT] Subclause 8.1 of IETF RFC 3267 explains the SDP interleaving parameter.
11.4.4.120.4
[G UIDELINE ] A Receiving Endpoint may support interleaving.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 634 –
[ATTRIBUTES ]
11.4.4.120.5
[G UIDELINE ] If a Receiving Endpoint supports interleaving then it shall include the
rtp-amr-deint-buf-cap.dlna.org header in the DESCRIBE request.
[ATTRIBUTES ]
[C OMMENT] Subclause 8.1 of IETF RFC 3267 explains the SDP "interleaving" parameter.
[ATTRIBUTES ]
11.4.4.121.2
[G UIDELINE ] A Receiving Endpoint should be able to support values of the SDP maxptime attribute
of at least 200 ms.
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC QTIMZ
4352
[ATTRIBUTES ]
11.4.4.123.2
[G UIDELINE ] The recommended value for the SDP maxptime attribute is 200 ms.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.124.2
[G UIDELINE ] A Receiving Endpoint shall support basic mode.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This is limitation to IETF RFC 4352 that mandates to support both basic and
interleaving modes.
11.4.4.125.2
[G UIDELINE ] If a Serving Endpoint supports interleaving mode then it shall use interleaving when
the rtp-amrwbplus-deint-buf-cap.dlna.org header is present in the RTSP DESCRIBE request.
[ATTRIBUTES ]
11.4.4.125.3
[G UIDELINE ] A Serving Endpoint shall set the value of the "interleaving" parameter in the a=fmtp
line of the SDP equal to or less than the value of the rtp-amrwbplus-deint-buf-cap.dlna.org header
in the RTSP DESCRIBE request.
[ATTRIBUTES ]
[C OMMENT] Subclauses 4.4 and 7.2.1 of IETF RFC 4352 explain the use of SDP parameters for
interleaving.
11.4.4.125.4
[G UIDELINE ] If a Receiving Endpoint supports interleaving mode then it shall include
rtp-amrwbplus-deint-buf-cap.dlna.org header in the DESCRIBE request.
[ATTRIBUTES ]
[C OMMENT] The value of interleaving parameter shall be greater than zero (see 7.2.1 of IETF RFC
4352). If it is not present, interleaving mode shall not be used.
Subclauses 4.4 and 7.2.1 of IETF RFC 4352 explain the use of SDP parameters for interleaving.
[ATTRIBUTES ]
11.4.4.126.2
[G UIDELINE ] A Receiving Endpoint should be able to support values of the SDP maxptime attribute
of at least 200 ms.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The AMR-WBplus decoder has the capability of stereo to mono downmixing as part of
the decoding process.
11.4.4.128 RTP Media Transport: RTSP for control of RTP streams – General
The Real Time Streaming Protocol (RTSP) provides a standard protocol for controlling media
streams, including starting, stopping and pausing. Media operations such as fast forward scan, slow
backward scan, etc., can also be implemented in a standard way using RTSP. RTSP is the required
protocol for controlling streams for RTP transport.
The Session Description Protocol (SDP) provides a standard method of communicating RTP
session parameters. It is used as the format of the description of the media that is sent from the
Serving Endpoint to the Receiving Endpoint in the response to the RTSP DESCRIBE method.
The DLNA RTSP and SDP signaling in 11.4.4.129 through 11.4.4.211 specifies a minimal strict
subset of RTSP (IETF RFC 2326) and SDP (IETF RFC 2327) to be implemented by DLNA Serving
Endpoints and Receiving endpoints.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC PESQI
2326
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC T8592
2327
[C OMMENT] SDP declares the properties of the media streams that can be present in the RTSP
session.
[ATTRIBUTES ]
M L DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC WT859
2326
11.4.4.131.2
[G UIDELINE ] A Serving Endpoint should support persistent TCP connections. This means that the
TCP connection should not be closed by Serving Endpoint until after all RTSP sessions using the
TCP connection have been terminated.
[ATTRIBUTES ]
11.4.4.131.3
[G UIDELINE ] A Receiving Endpoint should use a persistent TCP connection for each RTSP session.
This means that the TCP connection should not be closed by Receiving Endpoint until after the
RTSP session has been terminated.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] It is a good practice for a serving endpoint to support multiple Receiving Endpoints
simultaneously.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.135.2
[G UIDELINE ] If a Receiving Endpoint does not implement support for an RTSP request type, it shall
respond to a Serving Endpoint with a "501 Not Implemented" status code.
[ATTRIBUTES ]
[ATTRIBUTES ]
S C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC G6O7W
2326
11.4.4.136.2
[G UIDELINE ] If a Serving Endpoint or a Receiving Endpoint receives a RTSP request that specifies
a higher version of RTSP than is supported, then it shall respond with status code 505 ("RTSP
version not supported").
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC W9FJ7
2326
11.4.4.136.3
[G UIDELINE ] Serving Endpoints and Receiving Endpoints shall accept RTSP responses that
specify a RTSP version number higher than the highest supported RTSP version.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC YTGXO
2326
Tolerant behavior is defined as being able to successfully "parse and interpret" or "parse and
ignore" the RTSP headers, their values and SDP attributes and their values.
[ATTRIBUTES ]
M R DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 6O7W7
2326
IETF RFC
2327
[C OMMENT] This guideline addresses forward compatibility and allows for broader interoperability
with implementations that employ transport layer vendor extensions by way of RTSP headers.
[ATTRIBUTES ]
M C DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC VG6O7
2326
• DESCRIBE;
• SETUP;
• PLAY;
• OPTIONS;
• TEARDOWN.
A Serving Endpoint need not support receiving any other RTSP requests.
[ATTRIBUTES ]
11.4.4.139.2
[G UIDELINE ] A Receiving Endpoint shall not depend on the support of any RTSP request not listed
in guideline 11.4.4.139.1.
[ATTRIBUTES ]
11.4.4.139.3
[G UIDELINE ] A Receiving Endpoint shall support sending the following RTSP requests:
• DESCRIBE;
• SETUP;
• PLAY;
• OPTIONS;
• TEARDOWN.
[ATTRIBUTES ]
The CSeq header in requests sent by the Serving Endpoint shall be independent of the CSeq
header in requests sent by the Receiving Endpoint.
[ATTRIBUTES ]
• supported-line = "Supported" *LWS ":" *LWS [feature-tag *(*LWS "," *LWS feature-tag)];
• feature-tag = token.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 642 –
Examples:
• Supported: dlna.announce
• Supported: dlna.announce, rtsp.basic
The RTSP header name is the "Supported" string and the header value is zero or more
comma-separated tokens. Both header name and value are treated as case insensitive strings.
Note that the Supported header can be used by Serving Endpoints and Receiving Endpoints issuing
an RTSP request on non-DLNA content.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC VJ9KN
3261
[C OMMENT] The Supported header is currently defined for the SIP protocol (see IETF RFC
32612002, 20.37).
[C OMMENT] This header is used with the ANNOUCE request (guideline 11.4.4.180.1) to indicate an
event that has occurred at the Serving Endpoint.
• available-range-line = "Available-Range.dlna.org" *LWS ":" *LWS "npt" "=" npt-time "-" npt-time;
• npt-time = <syntax as defined in 11.4.2.13>.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 8OYB8
2326
11.4.4.144.2
[G UIDELINE ] The first npt-time parameter should correspond to the smallest NPT time value that
Receiving Endpoint may specify as the start time in a Range header.
The second npt-time parameter should correspond to the largest NPT time value that Receiving
Endpoint may specify as the start time in a Range header.
[ATTRIBUTES ]
• buffer-info-line = "Buffer-Info.dlna.org" *LWS ":" *LWS "dejitter" "=" 1*10DIGIT [";" cdb-params]
[";" td-params] [";"bfr-params]
• cdb-params = "CDB" "=" 1*10DIGIT ";" "BTM" "=" "0" | "1" | "2"
• td-params = "TD" "=" 1*10DIGIT
• bfr-params = "BFR" "=" "0" | "1"
Note that the literals, "dejitter", "CDB", "BTM", "TD", and "BFR", are case sensitive.
The first parameter, "dejitter", specifies the size, in bytes, of the network de-jitter buffer.
If cdb-params is present, the "CDB" parameter specifies the size of the Coded Data Buffer in bytes.
The BTM parameter specifies the buffer transfer mechanism between the network de-jitter buffer
and the coded data buffer. The BTM parameter shall comply with the following syntax.
• 0: When the coded data buffer has empty space then the de-jitter buffer will transfer the data
immediately.
• 1: The data is transferred according to packet's timestamp.
• 2: Other transfer mechanism than the above.
If td-params is present, the TD (Target Buffer Duration) parameter specifies the minimal amount of
data that is required for interrupt free playback in the combination of the Receiving Endpoint's
network de-jitter buffer and the Coded Data Buffer (if any). The value of the TD parameter is
represented in millisecond time units.
If bfr-params is present, the BFR parameter specifies if the Receiving Endpoint will transmit Buffer
Fullness Reports.The value 1 means that the Receiving Endpoint will transmit Buffer Fullness
Reports and the value 0 indicates that the Receiving Endpoint will not transmit Buffer Fullness
Reports.
Example:
• Buffer-Info.dlna.org: dejitter=65536;CDB=98302;BTM=0;TD=1000;BFR=1
[ATTRIBUTES ]
[C OMMENT] The Coded Data Buffer (CDB) contains only raw compressed data bit stream without
RTP headers.
If the CDB is present on the Receiving Endpoint and the buffer transfer mechanism is not signaled,
the input to the coded data buffer shall follow an appropriate buffering model. In other words, when
a Receiving Endpoint maintains a coded data buffer for an audio elementary stream, coded audio
frames are moved to the CDB according to their RTP timestamp. When a Receiving Endpoint
maintains a coded data buffer for a video elementary stream, the input to the CDB is done as
specified in the Hypothetical Reference Decoder specification of the video coding profile in use.
When a Receiving Endpoint maintains a coded data buffer for a MPEG-2 TS or MPEG-2 PS, RTP
payloads are input to the CDB according to their RTP timestamps.
The Target Buffer Duration indicated by a Receiving Endpoint informs the Serving Endpoint to fill up
the receiver buffer (network de-jitter buffer + Coded Data Buffer) to a minimum amount of data to
prevent buffer underflow.
If the amount of data associated with the Target Buffer Duration is larger than the size of the
receiver buffer, then it does not imply that the Serving Endpoint is allowed to exceed size of the
receiver buffer.
The Serving Endpoint shall not intentionally overflow the Receiving Endpoint's receiver buffer at any
time.
The Serving Endpoint might need to adjust the encoding rate to fulfill the Target Buffer Duration
indication while maintaining the Receiving Endpoint's receiver buffer.
• WCT.dlna.org: 1
[ATTRIBUTES ]
[C OMMENT] This header is used to request Serving Endpoint to add Wall Clock Time samples.
• Max-Prate.dlna.org: 200
[ATTRIBUTES ]
[C OMMENT] The Receiving Endpoint can include the header Require: dlna.Max-Prate in a request
to determine if the Serving Endpoint takes the Max-Prate.dlna.org header into account. (See
guideline 11.4.4.157.2.)
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] For RTSP sessions consisting of multiple RTP streams, the RTSP protocol supports
most methods at both the presentation (= aggregate) and at the individual RTP stream (=
non-aggregate) level.
However, PLAY, PAUSE and TEARDOWN is most appropriately done at the aggregate level.
11.4.4.149.2
[G UIDELINE ] The Receiving Endpoint shall support aggregate control for PAUSE, PLAY, and
TEARDOWN commands.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] When the RTSP session is paused, RTSP enters Ready state. (The RTSP state
machine is defined in IETF RFC 2326.) RTCP reports shall be sent even when the RTSP session is
paused.
11.4.4.150.2
[G UIDELINE ] If a Serving Endpoint is sending RTCP reports, it shall do so while the RTSP session
is in the Ready and Playing states if at least one RTP packet has been transmitted.
[ATTRIBUTES ]
[C OMMENT] RTCP reports shall be sent even when the RTSP session is paused.
If a Serving Endpoint is relaying an RTP stream, it might not know the SSRC of the RTP stream (and
will be unable to send an RTCP Sender Report) until it has relayed the first RTP packet for that
stream.
[ATTRIBUTES ]
11.4.4.151.2
[G UIDELINE ] The recommended timeout interval for receiving RTCP Receiver Reports or RTSP
requests is 30 s.
[ATTRIBUTES ]
11.4.4.151.3
[G UIDELINE ] For timeout interval values other than 60 s the Serving Endpoint shall use the
"timeout" parameter in the RTSP Session header to communicate the value of the timeout interval
to the Receiving Endpoint.
[ATTRIBUTES ]
[C OMMENT] If the "timeout" parameter is not specified, the timeout interval defaults to 60 s.
11.4.4.151.4
[G UIDELINE ] A Receiving Endpoint shall send at least one RTSP request with the Session header
per timeout interval.
[ATTRIBUTES ]
[C OMMENT] Commands such as SETUP, PLAY and PAUSE alter the RTSP session state, while
OPTIONS does not.
The recommended "keep alive" method is to send a RTSP OPTIONS request with Session header.
RTCP can also be used if implemented.
11.4.4.151.5
[G UIDELINE ] A Receiving Endpoint should send an OPTIONS request with the Session header per
timeout interval if no other RTSP request needs to be sent during a given timeout interval.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Some RTSP servers might not send RTCP packets while in Paused state, so this
guideline applies to Playing state only.
When choosing a timeout interval, a Receiving Endpoint is exptected to consider the streaming bit
rate and the bit rate used for RTCP reports. (Low bit rates might require a larger timeout interval.)
11.4.4.152.2
[G UIDELINE ] A Receiving Endpoint should assume that the RTSP session has been terminated if it
has not received an RTSP command response within a timeout interval.
[ATTRIBUTES ]
11.4.4.152.3
[G UIDELINE ] If the RTSP session is assumed to have been terminated, the Receiving Endpoint
should close the RTSP TCP connection to the Serving Endpoint.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The Receiving Endpoint can request additional content types using the Accept header,
but the Serving Endpoint might not support any additional content types.
11.4.4.153.2
[G UIDELINE ] If the Serving Endpoint receives a DESCRIBE request and the request does not
contain an Accept header, then the Serving Endpoint shall infer that "application/sdp" is the only
MIME content type supported by the Receiving Endpoint.
[ATTRIBUTES ]
11.4.4.153.3
[G UIDELINE ] If the Serving Endpoint responds to a DESCRIBE request with status code 200 ("OK"),
then the response shall include the following:
• an entity body in one of the formats specified in the Accept header of the DESCRIBE request, or
in SDP format if no Accept header was included;
• a Content-Type header, and this header shall specify the MIME content type of the entity body.
[ATTRIBUTES ]
[C OMMENT] Since Receiving Endpoints always specify "application/sdp" as one of the MIME
content types, this means that the Serving Endpoint shall always support respdonding with an entity
body in SDP format.
[ATTRIBUTES ]
11.4.4.154.2
[G UIDELINE ] If the Available-Range.dlna.org header is included in the DESCRIBE response, the
first npt-time parameter in that header should be set to the UCDAM's data position of of r 0 , and the
second npt-time parameter should be set to the UCDAM's data position of r N .
[ATTRIBUTES ]
[C OMMENT] The variables r 0 and r N , represent the earliest time and latest time, respectively, in the
RTP stream (or media stream) that the Receiving Endpoint can seek to.
[ATTRIBUTES ]
11.4.4.155.2
[G UIDELINE ] The value of the header peerManager.dlna.org shall be the same value as the
PeerConnectionManager, as described in the UPnP AV Architecture.
The notation of the peerManager.dlna.org RTSP header is the same as peerManager-line, defined
in 11.4.3.35.2.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.156.2
[G UIDELINE ] The notation of the friendlyName.dlna.org RTSP header is the same as the
friendlyName-line, defined in 11.4.3.36.2 (MT/BCM HTTP Header:friendlyName.dlna.org).
[ATTRIBUTES ]
The header Max-Prate.dlna.org declares the maximum packet data rate capability of the Receiving
Endpoint.
The header may be included in any subsequent RTSP request, in case the Receiving Endpoint
wants to update its maximum reception packet rate capability during a RTSP session.
[ATTRIBUTES ]
[C OMMENT] This rule enables the signaling of the maximum Receiving Endpoint reception packet
rate to inform the Serving Endpoint.
It avoids a lightweight Receiving Endpoint having performance problems or losing packets in case
the incoming packet rate is too high to be sustained.
This guideline does not enable a Receiving Endpoint to change/override the supported and/or
negotiated media profile(s) for a particular RTSP session.
11.4.4.157.2
[G UIDELINE ] If a Receiving Endpoint includes the Max-Prate.dlna.org in an RTSP request, then it
should also include the Require: dlna.Max-Prate header in the same RTSP request.
[ATTRIBUTES ]
[C OMMENT] This allows the Receiving Endpoint to get an acknowledgment from the Serving
Endpoint.
Example:
• Supported: dlna.rtx
[ATTRIBUTES ]
[C OMMENT] The indication of which retransmission methods, if any, are supported, allows Serving
Endpoint to decide if it will accept RTCP nack feedback messages, and allows it to indicate this
decision in the SDP a=rtcp-fb parameter.
11.4.4.158.2
[G UIDELINE ] If a Receiving Endpoint supports retransmitted packets sent as an identical copy of
the original packet to the same UDP port as the original packet, then the Receiving Endpoint shall
include the Supported header with feature-tag dlna.rtx-dup in the DESCRIBE request.
Example:
• Supported: dlna.rtx-dup
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The RTSP protocol state machine is described in IETF RFC 2326, Clause A.1.
[ATTRIBUTES ]
M A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC 92PBO
4585
IETF RFC
2326
[ATTRIBUTES ]
[C OMMENT] Receiving Endpoints that do not support RTP/AVPF can specify RTP/AVP in the
Transport header.
11.4.4.161.2
[G UIDELINE ] A Receiving Endpoint shall accept Transport headers that specify the transport field
as "RTP/AVPF" when "RTP/AVP" is expected.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The Serving Endpoint can use the network de-jitter buffer size and the pre-decoder
buffer size along with buffer fullness reported in the bfr RTCP feedback message to compute buffer
levels at the RENEDERING ENDPOINT. See also guideline 11.4.4.32.
11.4.4.162.2
[G UIDELINE ] A Receiving Endpoint may send the Buffer-Info.dlna.org header (guideline 11.4.4.145)
in the RTSP SETUP request.
[ATTRIBUTES ]
[C OMMENT] Even if BFRs will not be used, the Receiving Endpoint can still include the
Buffer-Info.dlna.org header in the SETUP request. This is particularly useful if the size of the
pre-decoder buffer is smaller than specified in the a=predecbufsize.dlna.org SDP attribute, because
it can allow Serving Endpoint to adapt the encoding rate to match the smaller pre-decoder buffer
size.
[ATTRIBUTES ]
[C OMMENT] The PAUSE request is required to bring the RTSP protocol state machine from the
Playing state to the Ready state. (A PLAY request sent while in the Playing state would cause the
serving endpoint to interpret it as a "queued PLAY" request, as defined in 10.5 of IETF RFC 2326.)
11.4.4.163.2
[G UIDELINE ] If the response to a PAUSE request indicates error code 455 ("Method Invalid in the
current state"), then this error should be ignored by the Receiving Endpoint.
[ATTRIBUTES ]
[C OMMENT] Some Serving Endpoints can enter Ready state at the end of the RTP stream. In that
case they might respond to a PAUSE request with a 455 error. This can be safely ignored by the
Receiving Endpoint.
11.4.4.163.3
[G UIDELINE ] If the response to a PAUSE request indicates error code 501 ("Not Implemented"),
then the Receiving Endpoint shall send a TEARDOWN request to destroy the RTSP session,
followed by creating a new RTSP session.
[ATTRIBUTES ]
2326
[C OMMENT] If PAUSE is not supported by the Serving Endpoint, the only way to bring the RTSP
protocol state machine to Ready state is by sending a TEARDOWN, followed by a new DESCRIBE
and new SETUP requests.
[ATTRIBUTES ]
[C OMMENT] The RTSP protocol state machine is described in IETF RFC 2326, Clause A.1.
11.4.4.164.2
[G UIDELINE ] If the RTSP protocol state machine of the Receiving Endpoint is not in the Ready state,
then it shall implement the Play Media Operation by bringing the RTSP protocol state machine into
the Ready state, followed by sending a PLAY request as described in guideline 11.4.4.164.1.
[ATTRIBUTES ]
[C OMMENT] To bring the state machine into Ready state, it might be necessary to send one or more
SETUP requests. In order to be able to send SETUP requests, the Receiving Endpoint might have
to send a DESCRIBE request. If the state machine is in Playing state, guideline 11.4.4.164.1
describes how to reach Ready state.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.166.2
[G UIDELINE ] If a Serving Endpoint supports Wall Clock Time samples in accordance with guideline
11.4.4.34, then it shall understand the WCT.dlna.org header (defined in guideline 11.4.4.146) in a
RTSP PLAY request.
[ATTRIBUTES ]
11.4.4.166.3
[G UIDELINE ] A Serving Endpoint is strongly recommended to include Wall Clock Time samples as
defined in 11.4.4.34. If all of the following conditions are met:
• the RTSP PLAY request contains the WCT.dlna.org header (defined in guideline 11.4.4.146);
• the <val> parameter of the WCT.dlna.org header is 1.
[ATTRIBUTES ]
11.4.4.166.4
[G UIDELINE ] A Serving Endpoint shall not include Wall Clock Time samples as defined in 11.4.4.34
if all of the following conditions are met:
[ATTRIBUTES ]
[C OMMENT] RTSP provides seeking capability by the inclusion of the RTSP Range header into the
RTSP PLAY request. This enables random access within the RTSP session.
11.4.4.167.2
[G UIDELINE ] If a Receiving Endpoint supports the Seek Media Operation and the RTSP protocol
state machine is not in the Ready state, then it shall implement it by first bringing the RTSP protocol
state machine into the Ready state, as described in guideline 11.4.4.164.2, and then by sending a
PLAY request, as described in guideline 11.4.4.167.1.
[ATTRIBUTES ]
11.4.4.167.3
[G UIDELINE ] If the Serving Endpoint has specified a limited data range using the
Available-Range.dlna.org header (guideline 11.4.4.144), then the values on the Range header in
the PLAY request should be within the range specified by the Serving Endpoint.
[ATTRIBUTES ]
[C OMMENT] The Receiving Endpoint is discouraged from seeking outside the limited data range
that was specified by the Serving Endpoint, even though it can do so.
11.4.4.167.4
[G UIDELINE ] A Serving Endpoint that supports the Seek Media Operation shall advertise this
feature using the range SDP attribute (see guideline 11.4.4.192) and by setting the a-val parameter
of the op-param field (defined in 10.1.3.19) or the lop-npt flag of the flags-param field (defined in
10.1.3.24) of the protocolInfo to 1. The Serving Endpoint shall also support the RTSP Range header
in RTSP PLAY requests.
[ATTRIBUTES ]
11.4.4.167.5
[G UIDELINE ] If a Serving Endpoint supports the Seek Media Operation, it shall implement the
PAUSE method.
[ATTRIBUTES ]
11.4.4.167.6
[G UIDELINE ] RTP sequence numbers and RTP timestamps shall be continuous across jumps of
NPT.
[ATTRIBUTES ]
[C OMMENT] As noted in guideline 11.4.4.165, the Serving Endpoint includes the Rtp-Info header
with the seq parameter in the PLAY response, if the value of the seq parameter is known at the time
of issuing the response.
[ATTRIBUTES ]
11.4.4.168.2
[G UIDELINE ] A Receiving Endpoint shall include no more than 1 Range header in the RTSP PLAY
request.
[ATTRIBUTES ]
11.4.4.168.3
[G UIDELINE ] The Range header shall include exactly 1 range specifier.
[ATTRIBUTES ]
If the Range header requests a range that cannot be satisfied (for example, because the Serving
Endpoint does not support the Seek Media Operation), the Serving Endpoint shall respond with
status code 457 ("Invalid Range").
Note that if the Range header specifies a start time that is equal to the start time specified on the
a=range attribute at the SDP session level (see guideline 11.4.4.192) the Range header shall be
considered valid, and the Serving Endpoint shall not respond with status code 457 even if does not
support the Seek Media Operation.
[ATTRIBUTES ]
[C OMMENT] This entry applies even if Serving Endpoint does not support the Seek Media
Operation.
Example:
If the Serving Endpoint specifies "a=range:npt=0-" at the SDP session level, then the header
"Range: npt=0-" is always valid, even if Serving Endpoint does not support the Seek Media
Operation.
The Serving Endpoint that does not support the Seek Media Operation can simply do a string
compare of the value specified on the Range header and the value indicated in SDP, and reject all
other range strings with status code 457.
11.4.4.169.2
[G UIDELINE ] A Serving Endpoint shall include the Range header in the response to RTSP PLAY
requests. The Range header shall use "npt" range units.
[ATTRIBUTES ]
[C OMMENT] This guideline applies even if Serving Endpoint does not support the Seek Media
Operation.
11.4.4.169.3
[G UIDELINE ] If the Serving Endpoint is unable to determine the starting NPT time value of the
content, such as for live captured content, then the npt range units may be specified as "now-".
[ATTRIBUTES ]
[C OMMENT] When streaming live content, the Serving Endpoint might be unable to provide
numerical values for the Range header.
The RTP Serving Endpoint shall support the Scale header in a RTSP PLAY request if the value of
the Scale header is numerically identical to the one of the scale-param values in the scale-value
token. Furthermore, the RTP Serving Endpoint shall support all scale-value tokens that are listed in
the ps-param of the 4th field protocolInfo. The RTSP Scale header is defined in subclause 12.34 of
IETF RFC 2326.
[ATTRIBUTES ]
[C OMMENT] If Receiving Endpoint uses a scale value that is not included in the server-speed
parameter of the maxsp-param (defined in 10.1.3.26) in the 4th field of the protocolInfo then Serving
Endpoint can choose an alternate scale value at its discretion.
11.4.4.171.2
[G UIDELINE ] Serving Endpoints and Receiving Endpoints that implement the RTP Media Transport
may support any of the Scan Media Operations
[ATTRIBUTES ]
O A DMS DMP DMR +PU+ M-DMS M-DMP n/a IETF RFC JY2ZP
2326
11.4.4.171.3
[G UIDELINE ] A Receiving Endpoint should use the Scale header of the PLAY method to signal any
of the Scan Media Operations.
[ATTRIBUTES ]
[C OMMENT] The Scale header is recommended over the Speed header, because Scale allows the
Fast Forward Scan Media Operation to occur using less bandwidth than with the Speed header.
11.4.4.171.4
[G UIDELINE ] A Receiving Endpoint may use the Speed header of the PLAY method to signal a Fast
Forward Scan or Slow Forward Scan media operation.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.172.2
[G UIDELINE ] If Scan Media Operations are supported, the Serving Endpoint shall implement the
PAUSE method.
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.173.2
[G UIDELINE ] If a Speed header is included in the PLAY request then the Serving Endpoint shall
indicate the speed value that it chose using a Speed header in the PLAY response
[ATTRIBUTES ]
[C OMMENT] If Receiving Endpoint uses a speed value that exceeds the attribute value of the
maxsp-param (10.1.3.26) in the 4th field of the protocolInfo then Serving Endpoint can choose an
alternate Speed value at its discretion
11.4.4.173.3
[G UIDELINE ] If the Receiving Endpoint uses a value of the Speed header that is not included in the
4th field of the protocolInfo then the Serving Endpoint may choose an alternate value of the Speed
header.
[ATTRIBUTES ]
11.4.4.173.4
[G UIDELINE ] A Receiving Endpoint shall be prepared to receive a different value of the Speed
header in the PLAY response than what it requested in the PLAY request.
[ATTRIBUTES ]
11.4.4.173.5
[G UIDELINE ] If Receiving Endpoint specifies the Speed header in a PLAY request, its value shall be
greater than zero.
[ATTRIBUTES ]
[C OMMENT] The guideline clarifies that the Speed Header value cannot be zero or negative.
• size-val = value;
• value = 1*DIGIT.
Note that the literals, "url" and "size" are case sensitive.
The size-val parameter specifies the minimum pre-decoder buffer size, in bytes, required for the
RTP stream identified by stream-url for the specified play-speed/scale setting.
The time-val parameter specifies the minimum initial buffering in NPT milliseconds the Receiving
Endpoint may use for the media stream identified by stream-url. NPT and its relationship to units of
time are defined in 3.6 of IETF RFC 2326.
stream-url is the URL for the RTP stream that the value tokens apply to. It may be either an absolute
URL or a relative URL. (See IETF RFC 2326, C.1.1, for rules for how to convert a relative URL to an
absolute URL.)
Example:
[C OMMENT] The Serving Endpoint can specify the minimum pre-decoder buffer size required to
avoid pre-decoder buffer overflow and underflow when receiving an RTP stream as a result of RTSP
PLAY request.
If the values of the RTSP headers Speed and Scale are both 1, then Pre-Decoder Buffer Size will be
less than or equal to the value of the a=predecbufsize.dlna.org attribute signaled in the SDP. For
Speed or Scale values not equal to 1, Pre-Decoder Buffer Size can be larger than the value of the
a=predecbufsize.dlna.org attribute in SDP.
The NPT time can be derived from the decode time of the RTP payload.
11.4.4.174.2
[G UIDELINE ] If the Predec-Buffer-Size.dlna.org header is specified in the response to a PLAY
request, then the Receiving Endpoint should use a pre-decoder buffer that is at least as large as the
value specified by this header in order to avoid decoder underflow during Streaming Transfer.
[ATTRIBUTES ]
[C OMMENT] If the pre-decoder buffer is combined with the network de-jitter buffer, this guideline
refers to the size of the combined buffer.
[ATTRIBUTES ]
[C OMMENT] RTSP PAUSE request simply stops the RTP media data transport, but keeps the RTSP
session alive for future requests.
Serving Endpoint indicates support for Pause media operation by setting the rtsp-pause flag in the
DLNA.ORG_FLAGS param (defined in 10.1.3.24) in the 4th field of the protocolInfo.
11.4.4.175.2
[G UIDELINE ] If the response to a PAUSE request indicates error code 455 ("Method Invalid in the
current state"), then this error should be ignored by the Receiving Endpoint.
[ATTRIBUTES ]
[C OMMENT] Some serving endpoints can enter Ready state at the end of the RTP stream. In that
case they might respond to a PAUSE request with a 455 error. This can be safely ignored by the
Receiving Endpoint.
11.4.4.175.3
[G UIDELINE ] When a RTSP session is paused, then the Serving Endpoint shall stop transmiting
RTP packets for all RTP streams in the RTSP session.
[ATTRIBUTES ]
[ATTRIBUTES ]
2326
[C OMMENT] The Range header in the PLAY request can be used to accomplish a similar function
as a Range header in a PAUSE request.
11.4.4.176.2
[G UIDELINE ] A Serving Endpoint may respond to a PAUSE request that contains a Range header
with error 457 ("Invalid Range").
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Serving Endpoint indicates support for Pause media operation by setting the
rtsp-pause flag in the DLNA.ORG_FLAGS param (defined in 10.1.3.24) in the 4th field of the
protocolInfo.
11.4.4.178 MT RTP time stamp clock is not paused while in RTSP Paused state
11.4.4.178.1
[G UIDELINE ] If a Serving Endpoint transitions from RTSP Paused state into the RTSP Playing state,
then the RTP time stamps shall be incremented by the amount of NPT (measured in RTP time stamp
units) that the Serving Endpoint spent in RTSP Paused state.
[ATTRIBUTES ]
[C OMMENT] The RTP time stamp "clock" is not paused when the Serving Endpoint is in Paused
state. After a Pause-Release or Seek Media operation, the RTP time stamps shall be increased by
an amount corresponding to the length of time that the server was paused.
11.4.4.178.2
[G UIDELINE ] If a Serving Endpoint transitions from RTSP Paused state into RTSP Playing state,
then it shall support that the RTP time stamps of the RTP packets received after entering Playing
state may not be continous with time stamps of RTP packets received prior to entering Paused
state.
[ATTRIBUTES ]
[C OMMENT] A Receiving Endpoint might need to recompute the mapping between NPT time and
RTP timestamp each time it receives a PLAY response.
Example:
• Supported: dlna.announce
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The purpose of the ANNOUNCE request is to indicate that Serving Endpoint has
reached the end of the requested play range, and to indicate the last RTP sequence number for
each RTP stream.
11.4.4.180.2
[G UIDELINE ] The ANNOUNCE request for the purpose of sending an end of stream indication shall
include the following RTSP headers:
• Session;
• CSeq;
• Rtp-Info;
• Event-Type.dlna.org.
[ATTRIBUTES ]
11.4.4.180.3
[G UIDELINE ] The Rtp-Info header shall specify the seq parameter for each selected RTP stream.
The value of the seq parameter shall be equal to the RTP sequence number of the last RTP packet
plus one.
[ATTRIBUTES ]
[C OMMENT] The Rtp-Info header indicates the "next" RTP sequence number for each RTP stream.
The "next" sequence number is the same as the last sequence number plus one.
11.4.4.180.4
[G UIDELINE ] The Event-Type.dlna.org header shall specify the event-code 2000.
[ATTRIBUTES ]
[C OMMENT] Event code 2000 indicates that Serving Endpoint has reached the end of the requested
play range.
• A PLAY request included the Supported header with the feature tag dlna.announce.
• The Available-Range.dlna.org header was included in the DESCRIBE response.
• The current limited seekable range, which is defined as the closed range bounded by the
UCDAM's data positions of r 0 and r N , has changed since the last time Serving Endpoint included
the Available-Range.dlna.org header in any of the following RTSP methods: An ANNOUNCE
request to indicate the current limited seekable range, a DESCRIBE response, an OPTIONS
response
• Serving Endpoint has not sent an ANNOUNCE request to indicate the current limited seekable
range in the last N seconds. (The parameter N is defined in guidelines 11.4.4.181.5 and
11.4.4.181.6.)
[ATTRIBUTES ]
11.4.4.181.2
[G UIDELINE ] If a Serving Endpoint sends an ANNOUNCE request to indicate the current limited
seekable range, then the request shall include the following RTSP headers:
• Session;
• CSeq;
DLNA guidelines; Part 1-1: Architecture and protocols
– 665 –
11.4.4.181.3
[G UIDELINE ] If the Available-Range.dlna.org header is included in an ANNOUNCE request, the
parameters on that header should be set as described in guideline 11.4.4.154.2.
[ATTRIBUTES ]
11.4.4.181.4
[G UIDELINE ] If a Serving Endpoint sends an ANNOUNCE request to indicate the current limited
seekable range, the Event-Type.dlna.org header in that request shall specify the event-code 9000.
[ATTRIBUTES ]
[C OMMENT] Event code 9000 indicates that the purpose of the ANNOUNCE request is to indicate
the current limited seekable range.
11.4.4.181.5
[G UIDELINE ] The recommended value for N in guideline 11.4.4.181.1 is 20.
[ATTRIBUTES ]
11.4.4.181.6
[G UIDELINE ] The value for N in guideline 11.4.4.181.1 shall not be less than 1.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] A Receiving Endpoint can send an OPTIONS request with a Session header as a way
to keep the RTSP session alive, or to query the current limited seekable range.
11.4.4.182.2
[G UIDELINE ] If the Session header in an OPTIONS request identifies an RTSP session for which
the Serving Endpoint supports the Seek Media Operation, and if the Serving Endpoint supports the
Limited Random Access Data Availability model this content binary (see guideline 10.1.3.28.4) for
the RTSP session, then the Available-Range.dlna.org header (guideline 11.4.4.144) shall be
included in the OPTIONS response.
[ATTRIBUTES ]
11.4.4.182.3
[G UIDELINE ] If the Available-Range.dlna.org header is included in an OPTIONS response, the
parameters on that header should be set as described in guideline 11.4.4.154.2.
[ATTRIBUTES ]
11.4.4.182.4
[G UIDELINE ] If the DESCRIBE response included the Available-Range.dlna.org header, then the
Receiving Endpoint may query the Serving Endpoint about the current limited seekable range by
sending an OPTIONS request with the Session header.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The RTSP TEARDOWN request ends the RTSP session, but the same TCP
connection can be used to start another RTSP session.
11.4.4.183.2
[G UIDELINE ] A Receiving Endpoint should wait for the response from the Serving Endpoint after
sending a TEARDOWN request.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
M A DMS DMP DMR DMC M-DMS M-DMP n/a IETF RFC 9MDTQ
M-DMC 2327
[ATTRIBUTES ]
[ATTRIBUTES ]
11.4.4.187.2
[G UIDELINE ] If SDP fields are not in the defined order, the Receiving Endpoint should accept and
process those fields.
[ATTRIBUTES ]
11.4.4.188.2
[G UIDELINE ] The following SDP fields are optional for the SDP session:
11.4.4.188.3
[G UIDELINE ] If the connection field is not specified in the SDP session, then it shall be specified in
each SDP media description section.
[ATTRIBUTES ]
<username>, <session id>, <network type>, <address type>, and <address> shall be set in
accordance to IETF RFC 2327 with the exceptions mentioned in the next guideline entry.
[ATTRIBUTES ]
11.4.4.189.2
[G UIDELINE ] Allowed exceptions:
[ATTRIBUTES ]
11.4.4.190.2
[G UIDELINE ] <session name> may be set to a single space character (' ') when session name is not
available.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] It is not allowed to use a=control as a way to redirect the Receiving Endpoint to a
different Serving Endpoint or as a way to replace RTSP with another protocol.
Subclause 3.2 of IETF RFC 2326 defines the syntax of RTSP URLs.
11.4.4.191.2
[G UIDELINE ] Receiving Endpoint shall support the use of relative URLs in the a=control attribute.
[ATTRIBUTES ]
[C OMMENT] The following are examples of a=control attributes that specify relative URLs:
• a=control:stream=1
• a=control:*
The use of relative URLs is described in C.1.1 of IETF RFC 2326.
[ATTRIBUTES ]
11.4.4.192.2
[G UIDELINE ] If a Serving Endpoint supports the Full Random Access Data Availability model for a
content binary, then the seekable range shall be indicated using the a=range attribute at the SDP
session level. In this case, the a=range attribute shall include both a start time and a stop time.
[ATTRIBUTES ]
[C OMMENT] The a=range attribute specifies the start and stop time only if the seekable range never
changes.
11.4.4.192.3
[G UIDELINE ] If a Serving Endpoint supports Limited Random Access Data Availability model for a
content binary, then the a=range attribute at the SDP session level shall specify an open-ended
interval. The start time shall be specified as a value that falls within the current seekable range,
defined as the closed range bounded by the UCDAM's data positions of r 0 and r N , or as "now".
Examples:
• a=range:npt=now-
• a=range:npt=0-
[ATTRIBUTES ]
[C OMMENT] The 4th_field is the 4th field of the protocolInfo value supplied by the serving endpoint
for this content binary as defined in guideline 10.1.3.17.
11.4.4.195.2
[G UIDELINE ] The following SDP fields are optional for each media description:
• rtpmap attribute field (a=rtpmap), only required if conditions described in guideline 11.4.4.197
apply;
• fmtp attribute field (a=fmtp), only required if mandated by the Media Format Profile;
• Bandwidth modifier field (b=);
• connection field (c=);
• range attribute field (a=range);
• acceptable RTP/AVPF feedback message types (a=rtcp-fb);
• DLNA pre-decoder buffer size (a=predecbufsize.dlna.org);
• DLNA minimum required pre-decoder buffer size (a=adaptation-predecbufsize.dlna.org);
• DLNA transmission rate adaptation field (a=trans-rate-adapt.dlna.org).
[ATTRIBUTES ]
Note that the literals, "m=", "RTP/AVP", and "RTP/AVPF", are case sensitive.
[ATTRIBUTES ]
[C OMMENT] <port> shall be zero because the Receiving Endpoint will select a different port using
the RTSP SETUP method.
[ATTRIBUTES ]
[C OMMENT] See Clause 6 of IETF RFC 2327 for an example on using the rtpmap attribute.
[ATTRIBUTES ]
[C OMMENT] If media streams are stored in a file which is compliant with the file format defined in
3GPP TS 26.244, then the start and stop times of each media stream are usually readily available as
fields in the file format.
11.4.4.198.2
[G UIDELINE ] The a=range attribute at the SDP media level shall use "npt" range units.
[ATTRIBUTES ]
11.4.4.198.3
[G UIDELINE ] The a=range attributes at the SDP media level shall all be subranges of the range
indicated by the a=range attribute at the SDP session level.
[ATTRIBUTES ]
2326
[ATTRIBUTES ]
[C OMMENT] This bandwidth modifier specifies the maximum bit rate of the RTP stream.
11.4.4.199.2
[G UIDELINE ] A Serving Endpoint should include a SDP b= field with the RR bandwidth modifier for
each RTP stream.
[ATTRIBUTES ]
[C OMMENT] This bandwidth modifier allows the Serving Endpoint to specify the bit rate used for
RTCP Receiver Reports.
11.4.4.199.3
[G UIDELINE ] A Serving Endpoint should include a SDP b= field with the RS bandwidth modifier for
each RTP stream.
[ATTRIBUTES ]
11.4.4.199.4
[G UIDELINE ] A Receiving Endpoint shall support the AS bandwidth modifier for the SDP b= field.
[ATTRIBUTES ]
[C OMMENT] The bit rate allowed for RTCP Receiver Reports is 2,5 % of the value on the b=AS field,
unless overruled by a b=RR field.
11.4.4.199.5
[G UIDELINE ] A Receiving Endpoint shall support the RR bandwidth modifier for the SDP b= field.
[ATTRIBUTES ]
[C OMMENT] b=RR:0 means that Receiving Endpoint shall not send any RTCP Receiver Reports.
[ATTRIBUTES ]
11.4.4.200.2
[G UIDELINE ] If the Serving Endpoint uses the RTP/AVPF profile for an RTP stream, this shall be
indicated by setting the <transport> field in the media field to "RTP/AVPF" and by using the
a=rtcp-fb attribute to specify the permitted RTCP feedback messages types.
[ATTRIBUTES ]
[C OMMENT] The following is a sample media description, which indicates support for RTP/AVPF
and which specifies that the nack feedback message type is supported:
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Guideline 11.4.4.57.3 describes the syntax of the bfr RTCP feedback message.
DLNA guidelines; Part 1-1: Architecture and protocols
– 675 –
[ATTRIBUTES ]
11.4.4.204.2
[G UIDELINE ] When the rtcp-fb-id parameter of the rtcp-fb attribute is set to "bfr", the corresponding
rtcp-fb-param parameter shall be set to a byte string representation of the maximum interval
between BFRs sent from the Receiving Endpoint to the Serving Endpoint.
Example:
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] The trr-int parameter allows the Serving Endpoint to specify a minimal time interval
between full (complete) RTCP Receiver Reports.
The value token specifies the required minimum pre-decoder buffer size in bytes for the media
stream that the Receiving Endpoint shall have for normal speed playback (speed=1, scale=1).
Example:
• a=predecbufsize.dlna.org:480750
[ATTRIBUTES ]
[C OMMENT] The Serving Endpoint can specify the required minimum pre-decoder buffer size for
the media stream to avoid the Receiving Endpoint (pre-decoder) buffer underflow.
11.4.4.206.2
[G UIDELINE ] The attribute predecbufsize.dlna.org shall not exceed the size of the pre-decoder
buffer defined in the Media Format Profile used.
[ATTRIBUTES ]
[C OMMENT] DLNA Media Format Profile refers to underlying standards (codecs or system layer)
which in turn define the size of pre-decoder buffer.
11.4.4.206.3
[G UIDELINE ] If the a=predecbufsize.dlna.org SDP attribute is specified, then the Receiving
Endpoint should use a pre-decoder buffer that is at least as large as the value specified by this
attribute in order to avoid decoder underflow.
[ATTRIBUTES ]
This specifies the absolute minimum pre-decoder buffer size in bytes that the Receiving Endpoint
shall have to be able to render this media stream.
Example:
• a=adaptation-predecbufsize.dlna.org:84752
[ATTRIBUTES ]
[C OMMENT] The Serving Endpoint can support adapting the encoding rate of the media stream to
support a pre-decoder buffer size at the Receiving Endpoint that is smaller than the minimum
required pre-decoder buffer size. The absolute minimum pre-decoder buffer size when the encoding
rate is adapted, can be signaled by the Serving Endpoint using this SDP attribute.
Examples of encoding rate adaptation mechanisms are trans-rating, trans-coding and live encoding
at different bit rates.
11.4.4.207.2
[G UIDELINE ] Exceed the value of the attribute predecbufsize.dlna.org.
[ATTRIBUTES ]
11.4.4.207.3
[G UIDELINE ] If the a=adaptation-predecbufsize.dlna.org SDP attribute is specified then the
Receiving Endpoint should use a pre-decoder buffer of a size that is at least as large as the value
specified by this attribute.
[ATTRIBUTES ]
The bin token is 0 if no transmission rate adaptation will be performed, 1 if transmission rate
adaptation is possible.
Note that even if the a=trans-rate-adapt.dlna.org SDP attribute indicates that transmission rate
adaptation is possible, the Serving Endpoint is not allowed to perform transmission rate adaptation
unless additional requirements are satisfied (see guideline 11.4.4.33).
[ATTRIBUTES ]
[C OMMENT] If the Serving Endpoint supports transmission rate adaptation, i.e., speed up or slow
down the transmission rate of the RTP packets, it indicates this by specifying 1 on the <bin> field of
the a=trans-rate-adapt.dlna.org SDP attribute.
11.4.4.208.2
[G UIDELINE ] If the Receiving Endpoint is transmitting Buffer Fullness Reports and the <bin> field of
the a=trans-rate-adapt.dlna.org attribute is equal to 1, then the Receiving Endpoint shall decide the
rate at which content is presented.
[ATTRIBUTES ]
11.4.4.208.3
[G UIDELINE ] If the Receiving Endpoint is transmitting Buffer Fullness Reports and the <bin> field of
the a=trans-rate-adapt.dlna.org attribute is equal to 1, then a Receiving Endpoint is recommended
not to recover Serving Endpoints clock.
[ATTRIBUTES ]
[C OMMENT] Furthermore, clock recovery based on Target Transmission Timestamps (e.g. RTP
time stamps for PS/TS encapsulation) is not possible when transmission rate adaptation is
performed.
11.4.4.208.4
[G UIDELINE ] If the Receiving Endpoint specifies a Target Buffer Duration using the
Buffer-Info.dlna.org header (guideline 11.4.4.145) and the <bin> field of the
a=trans-rate-adapt.dlna.org attribute is equal to 1, then Receiving Endpoint shall not attempt to
recover the Serving Endpoint's clock from the RTP time stamp until the amount of data (in NPT)
specified by the Target Buffer Duration has been received.
[ATTRIBUTES ]
The NPT time can be derived from the decode time of the RTP payload.
Receiving Endpoint can still recover the Serving Endpoints clock during this time period from the
Wall Clock Time in the RTP packet (if available).
[ATTRIBUTES ]
[C OMMENT] PAUSE and TEARDOWN are important RTSP commands to stop the stream of a
congested network. RTSP messages use their own TCP connection, i.e. media is not transferred by
the DMS on the same connection. Because of this separate connection, RTSP request messages do
not have to be at the same priority that the server will use to deliver the media.
A valid speed s is one whose value is "1" or is included by the UPnP AV MediaRenderer in the
play-speed-list (identified by X_DLNA_PS as defined in 10.1.6.29.2) of
AVT.CurrentTransportActions virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] When a UPnP AV MediaRenderer Control Point sends the UPnP AV MediaRenderer a
request to play content at some speed, the UPnP AV MediaRenderer decides the best way to satisfy
the request. The UPnP AV MediaRenderer could send HTTP time/byte seek requests to the UPnP
AV MediaServer, or it could perform the operation locally using cached content, or both.
11.4.4.210.2
[G UIDELINE ] If a UPnP AV MediaRenderer indicates support for controller-time seek operations for
a resource whose first field of protocolInfo is "http-get", then upon receiving an AVT:Seek request to
perform such operations, the UPnP AV MediaRenderer may issue HTTP time-based seek requests
against the UPnP AV MediaServer.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that upon receiving a request from a UPnP AV MediaRenderer
Control Point to perform a controller-time seek operation (on a resource associated with "http-get"),
the UPnP AV MediaRenderer will decide the best way to satisfy the request. Some UPnP AV
MediaRenderers might have cached the entire file and consequently, will be able to perform the
request locally. Other UPnP AV MediaRenderers will send time-based seek requests to the UPnP
AV MediaServer. Other UPnP AV MediaRenderers will send byte-range requests to the UPnP AV
MediaServer. The UPnP AV MediaRenderer determines any necessary means to satisfy the
request.
11.4.4.210.3
[G UIDELINE ] If a UPnP AV MediaRenderer indicates support for controller-byte seek operations for
a resource whose first field of protocolInfo is "http-get", then upon receiving an AVT:Seek request to
perform such operations, the UPnP AV MediaRenderer may issue HTTP byte-based seek requests
against the UPnP AV MediaServer.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that upon receiving a request from a UPnP AV MediaRenderer
Control Point to perform a controller-byte seek operation (on a resource associated with "http-get"),
the UPnP AV MediaRenderer will decide the best way to satisfy the request. Some UPnP AV
MediaRenderers might have cached the entire file and consequently, will be able to perform the
request locally. Other UPnP AV MediaRenderers will send time-based seek requests to the UPnP
AV MediaServer. Other UPnP AV MediaRenderers will send byte-range requests to the UPnP AV
MediaServer. The UPnP AV MediaRenderer determines any necessary means to satisfy the
request.
A valid speed s is one whose value is "1" or is included by the UPnP AV MediaRenderer in the
play-speed-list (identified by X_DLNA_PS as defined in 10.1.6.29.2) of
AVT.CurrentTransportActions virtual instance state variable.
[ATTRIBUTES ]
[C OMMENT] This guideline indicates that upon receiving a request to play some resource at a
speed of s, a UPnP AV MediaRenderer could pass the request to the UPnP AV MediaServer, or it
could satisfy the request using a cached copy (if available). If the UPnP AV MediaRenderer sends
a request to the UPnP AV MediaServer, the UPnP AV MediaRenderer could use the RTSP Scale
header, or the Speed header in RTSP Play as defined in the RTP subclause of the guidelines.
11.4.4.211.2
[G UIDELINE ] If a UPnP AV MediaRenderer indicates support for controller-time seek operations for
a resource whose first field of protocolInfo is "rtsp-rtp-udp", then upon receiving an AVT:Seek
request to perform such operations, the UPnP AV MediaRenderer may issue a request for an RTP
Seek Media Operation against the UPnP AV MediaServer.
[ATTRIBUTES ]
[C OMMENT] This guideline clarifies that upon receiving a request from a UPnP AV MediaRenderer
Control Point to perform a controller-time seek operation (on a resource associated with
"rtsp-rtp-udp"), the UPnP AV MediaRenderer could issue a seek request against the server, or it
could satisfy the request using a cached copy (if available).
the digital home might not accept the handheld optimized profiles. In addition, media servers might
not be able to interpret bitstreams of content formats that are important to the handheld devices,
and hence, cannot stream that content. In order to increase the interoperability between mobile and
home devices, content transformation is an important consideration of the interface between
handheld devices and the digital home. Content transformation can include transcoding, transrating,
or scaling of a content binary. There should exist within the network, a device that accepts media
from the handheld device and makes it available in common home networking profiles, and it shall
accept media from the home network and make it available to the handheld device in a profile
appropriate to that environment. Within the DLNA guidelines, media is made available through the
use of a Digital Media Server and consumed through Digital Media Player or Digital Media Renderer
devices. Content transformation can be accomplished by making use of these same concepts to
make media available in and consume media in alternate profiles. We define a "virtual" device as
one that encapsulates and extends the capabilities of another device on the network. The existing
device on the network is known as the "native" device. A virtual device can extend the functionality
of a native device without any special relationship with that device. It uses the existing public
interface to control the device when necessary. Other devices on the network can connect to the
virtual device as if it were the native device, and the virtual device will control the native device to
create any intermediate results or operations necessary. A virtual renderer does not have the
capability to display the media itself but it encapsulates and extends a native renderer. For example,
if there is a renderer available that can accept MPEG2 content (such as an HND television) a virtual
media renderer can be created that can accept MPEG4 content and displays it on the television.
When a control point sends an MPEG4 URL to the virtual renderer, the media is transcoded from
MPEG4 to MPEG2 and the virtual renderer uses a control point to drive the real renderer to actually
display the transcoded MPEG2 content. Figure 29 shows an example of a virtual renderer for an
audio renderer.
A similar action can be performed for media servers. If content is available on a home DMS, a virtual
server can be created which uses knowledge of content transformation that it can perform to make
available that same content in alternate DLNA Media Format Profiles. For example as shown in
Figure 28, when a CDS:Browse request comes in to the virtual server, it will use a control point to
perform a CDS:Browse on the same container of the native server. Once it receives the metadata of
the content on the native server, it can add <res> fields to the metadata representing content
transformations that it can perform. The URLs of these <res> fields can point to different systems
than the native server.
To allow a control point to determine if it is communicating with a virtual device, the virtual device
shall specify the DLNAVIRT tag in its device description document and specify the native device
that it is a virtual copy of. This will allow the control point to sort out the relationships between virtual
and native devices on the network. A control point will then see a number of servers and renderers
on the network with different capabilities. The control point should be aware of the concept of virtual
devices and should never present to the user an interface to both the virtual device and the
underlying real device. The virtual device should expose all of the capabilities of the underlying
devices and make it unnecessary for the user to access the underlying device.
[ATTRIBUTES ]
[C OMMENT] A virtual server or renderer is one which encapsulates the functionality of another
device. A virtual server does not manage its own container hierarchy, but relies on an underlying
DLNA guidelines; Part 1-1: Architecture and protocols
– 683 –
native server. A virtual renderer does not have direct rendering capabilities, but relies on another
device in the network to render content.
12.2.2.2
[G UIDELINE ] If a device implements virtual server or renderer functionality, it shall adhere to all
guidelines in this subclause for the appropriate virtual device.
[ATTRIBUTES ]
12.2.2.3
[G UIDELINE ] A virtual DMS server shall adhere to all mandatory and conditionally mandatory
guidelines for a DMS in addition to the guidelines contained in this subclause that are for virtual
servers.
[ATTRIBUTES ]
12.2.2.4
[G UIDELINE ] A virtual M-DMS server shall adhere to all mandatory guidelines for an M-DMS in
addition to the guidelines contained in this subclause that are for virtual servers.
[ATTRIBUTES ]
12.2.2.5
[G UIDELINE ] A virtual DMR shall adhere to all mandatory guidelines for a DMR in addition to the
guidelines contained in this subclause that are for virtual renderers.
[ATTRIBUTES ]
<dlna:X_DLNAVIRT xmlns:dlna="urn:schemas-dlna-org:device-1-0">
14EF6B21-7130-4525-B8C8-93FBFCF8C1A8
</dlna:X_DLNAVIRT>
[ATTRIBUTES ]
[C OMMENT] This tag allows a control point to determine that this is a virtual device and specifies
the native device that it is operating on.
12.3.2.2
[G UIDELINE ] The urn:schemas-dlna-org:device-1-0 namespace shall be specified for the
<dlna:X_DLNAVIRT> element and the namespace prefix shall be "dlna:"
[ATTRIBUTES ]
12.3.2.3
[G UIDELINE ] The namespace prefix declaration for the dlna: namespace may be specified in the
<root> element of the device description.
[ATTRIBUTES ]
12.3.2.4
[G UIDELINE ] The value of the UUID in the <dlna:X_DLNAVIRT> element shall match the UUID of
the device that is being virtualized. This value is as specified in that device's SSDP advertisement
message.
[ATTRIBUTES ]
12.3.2.5
[G UIDELINE ] The value of "*" in the <dlna:X_DLNAVIRT> XML element represents "all servers
currently on the network".
Note that this is a dynamic set and if a native server leaves the network, the aggregate virtual server
does not have to leave the network as well.
[ATTRIBUTES ]
[C OMMENT] This will allow aggregation. It is possible to create one virtual server which represents
all content currently available on the network.
12.3.2.6
[G UIDELINE ] The value of "*" in the <dlna:X_DLNAVIRT> XML element shall not be used for
renderers.
[ATTRIBUTES ]
[C OMMENT] There is no way to virtualize multiple renderers because there is no way to choose
where the content is to be actually played.
12.3.2.7
[G UIDELINE ] A virtual device that represents a single native device should have a device name that
contains the native device's name and informs the user that this is a virtual device based upon the
given native device.
[ATTRIBUTES ]
[C OMMENT] If the DLNAVIRT tag is not understood, the device name can direct the user to realize
that this is a virtual device. For example, if the name of the native server is "My_Media_Server" the
virtual device could have a name such as "Mobile ready My_Media_Server". This guideline does not
specify how the virtual server transforms the device name.
If this is an aggregating virtual server, it could have a name such as "Mobile Media Server".
Since this is only given to the user and is not interpreted by software, having various mechanisms
does not cause an interoperability issue.
12.3.2.8
[G UIDELINE ] A virtual server that aggregates content from multiple native servers shall have a
unique name on the network that represents its function as an aggregating virtual server performing
content transformation.
[ATTRIBUTES ]
12.3.2.9
[G UIDELINE ] The virtual device's name shall allow localized native device names to be included as
part of the text of the virtual device's name.
This does not require the virtual device's name to match the language of the native device's name,
only that the portion of the native device's name that is included in the virtual device's name, shall
be able to be in a localized language, and that language shall be preserved in the portion of the
copied name.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] If the native device is a 1.0 device, the control point shall adhere to 1.0 calling
conventions and requirements, if a 1.5 device, it shall adhere to that specification, etc. The
requirements are set by the underlying native device.
12.3.3.2
[G UIDELINE ] When relaying an action, the control point implemented in the device hosting the
virtual server or renderer shall adhere to all guidelines for the version and types of the device that
it is calling.
[ATTRIBUTES ]
[ATTRIBUTES ]
12.3.4.2
[G UIDELINE ] A virtual server or renderer bound to a single native device shall issue a ssdp:byebye
if it fails to receive advertisements from the native device within a CACHE-CONTROL interval. It
shall issue this ssdp:byebye within 5 s of the end of the CACHE-CONTROL interval.
[ATTRIBUTES ]
12.3.4.3
[G UIDELINE ] A virtual server that aggregates content from multiple native servers shall issue its
own ssdp:byebye message within 5 s of the last native device that it is virtualizing issuing a
ssdp:byebye.
[ATTRIBUTES ]
12.3.4.4
[G UIDELINE ] A virtual server that aggregates content from multiple native servers shall issue its
own ssdp:byebye message within 5 s of recognizing that all native servers' CACHE-CONTROL
intervals have expired without receiving an advertisement set.
[ATTRIBUTES ]
12.3.4.5
[G UIDELINE ] A virtual device which has any pending UPnP requests at the time that the virtual
device receives the ssdp:byebye from the native device should respond to the UPnP requests with
an error 503 (Service Unavailable).
[ATTRIBUTES ]
[ATTRIBUTES ]
• <action>
• <name>X_GetDLNAInputProfiles</name>
• <argumentList>
• <argument>
• <name>InputProfiles</name>
• <direction>in</direction>
• <relatedStateVariable>X_A_ARG_Type_InputProfiles</relatedStateVariable>
• </argument>
• <argument>
• <name>SupportedInputProfiles</name>
• <direction>out</direction>
• <relatedStateVariable>X_A_ARG_Type_SupportedInputProfiles</relatedStateVariable>
• </argument>
• </argumentList>
• </action>
The X_A_ARG_TYPE_InputProfiles and X_A_ARG_TYPE_SupportedInputProfiles state variables
are defined below.
• <stateVariable sendEvents="no">
• <name>X_A_ARG_Type_InputProfiles</name>
• <dataType>string</dataType>
• </stateVariable>
• <stateVariable sendEvents="no">
• <name>X_A_ARG_Type_SupportedInputProfiles</name>
• <dataType>string</dataType>
• </stateVariable>
[ATTRIBUTES ]
These guidelines are intended to allow control points to quickly find virtual servers and renderers
that might have content optimized for the device at the time that the UPnP device discovery occurs.
It is not intended to imply that all content will be available in these formats from a virtual server or
that the virtual renderer can accept these formats for all native renderers in the network.
It is intended as a general description of the types of media that a control point can expect to find on
this server. This is useful when a control point attempts to locate a virtual server with a particular
type of specialized Media Format Profiles, which it will then explore in more detail for the supported
media formats for each content binary.
The InputProfiles input argument is an unordered, comma separated list of DLNA Media Format
Profile names.
The SupportedInputProfiles output argument is an unordered, comma separated list of DLNA Media
Format Profile names.
• If the InputProfiles input argument is not empty, then SupportedInputProfiles contains all DLNA
Media Format Profiles that this virtual server can support as input for transformation that are
also listed in the InputProfiles input argument.
• Or, in case of an empty InputProfiles value, the SupportedInputProfiles list shall contain the
complete list of DLNA Media Format Profiles that this virtual device can accept as input for
transformation.
For a virtual renderer SupportedInputProfiles will be the profiles that it can accept from a control
point for transforming. For a virtual server, SupportedInputProfiles will be the profiles that can be
read from a native server for transformation.
• If InputProfiles is empty, then SupportedInputProfiles contains a complete list of profiles that the
virtual device is able to transform. Control points specify an empty value for InputProfiles when
they want to acquire the full profile set.
• If InputProfiles contains one or more profiles, then SupportedInputProfiles contains the subset
of InputProfiles that the virtual device is able to transform. Control points specify one or more
profiles for InputProfiles when they are interested finding out if the virtual device is able to
transform certain profiles.
12.4.2.2
[G UIDELINE ] A virtual device shall define the output Media Format Profiles that it supports through
the use of the CMS:X_GetDLNAOutputProfiles action.
<action>
<name>X_GetDLNAOutputProfiles</name>
<argumentList>
<argument>
<name>OutputProfiles</name>
<direction>in</direction
<relatedStateVariable>
X_A_ARG_Type_OutputProfiles
</relatedStateVariable>
</argument>
<argument>
<name>SupportedOutputProfiles</name>
<direction>out</direction>
<relatedStateVariable>
X_A_ARG_Type_SupportedOutputProfiles
</relatedStateVariable>
</argument>
</argumentList>
</action>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_OutputProfiles</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_SupportedOutputProfiles </name>
<dataType>string</dataType>
</stateVariable>
[ATTRIBUTES ]
[C OMMENT] The OutputProfiles intput argument is an unordered, comma separated list of DLNA
Mmedia Format Profile names.
• If the OutputProfiles input argument is not empty, then SupportedOutputProfiles contains all
DLNA Media Format Profiles that this virtual server can support as output from transformation
that are also listed in the OutputProfiles input argument.
• Or, in case of an empty OutputProfiles value, the SupportedOutputProfiles list shall contain the
complete list of DLNA Mmedia Format Profiles that this virtual device can support as output from
transformation.
For a virtual renderer SupportedOutputProfiles will be the profiles that it can transform content to for
output to a native renderer. For a virtual server, SupportedOutputProfiles will be the profiles that
can be made available as alternate Media Format Profiles.
[ATTRIBUTES ]
12.4.2.4
[G UIDELINE ] The CMS:X_ GetDLNATransformProfiles action's definition in the service description
shall be as follows:
<action>
<name>X_GetDLNATransformProfiles</name>
<argumentList>
<argument>
<name>TransformProfiles</name>
<direction>in</direction>
<relatedStateVariable>
X_A_ARG_Type_TransformProfiles
</relatedStateVariable>
</argument>
<argument>
<name>SupportedTransformProfiles</name>
<direction>out</direction>
<relatedStateVariable>
X_A_ARG_Type_SupportedTransformProfiles
</relatedStateVariable>
</argument>
</argumentList>
</action>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_TransformProfiles</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>X_A_ARG_Type_SupportedTransformProfiles</name>
<dataType>string</dataType>
</stateVariable>
[ATTRIBUTES ]
The SupportedTransformProfiles list contains the ordered pairs of DLNA Media Format Profile
names that is described by this boolean statement of (([a] AND [b]) OR ([c])).
• If the ordered pairs listed in the TransformProfiles input argument is not empty, then
SupportedTransformProfiles contains all ordered pairs that this virtual server can support as
transformations that are also listed in the TransformProfiles input argument.
• Or, in case of an empty TransformProfiles value, the SupportedTransformProfiles list shall
contain the complete list of ordered pairs that this virtual device can support for transformations.
An ordered pair is a pair of DLNA Media Format Profile names such that the first profile (i.e.
transform-from) can be transformed into the second Media Format Profile (i.e. transform-to).
Formally, it is defined with this syntax:
[ATTRIBUTES ]
12.4.3.2
[G UIDELINE ] All virtual servers shall support the required UPnP components of a DMS or M-DMS,
including all required actions and state variables.
[ATTRIBUTES ]
[C OMMENT] Specifically, it shall adhere to the following guideline requirements for components.
[ATTRIBUTES ]
[C OMMENT] The reason for this guideline is, the situation where the control point goes to the virtual
DLNA guidelines; Part 1-1: Architecture and protocols
– 693 –
server and finds that it can't perform a critical action shall be avoided. It then shall locate the native
server and perform that action on the native server. It is a better solution for the control point to be
assured that it can perform all actions by just working with the virtual server.
12.4.3.4
[G UIDELINE ] A virtual server that does not aggregate content from multiple native servers shall
make available all of the events of the native server.
The control point on the virtual server shall subscribe for events on the native server, and when the
event occurs on the native server, it shall be forwarded as if it had occurred on the virtual server.
[ATTRIBUTES ]
12.4.3.5
[G UIDELINE ] A virtual server that aggregates content from multiple native servers may limit the
actions and events that it supports.
[ATTRIBUTES ]
[C OMMENT] If some of the native servers do not support optional actions, such as Search, it is
impossible for the virtual server to supply the necessary functionality.
12.4.3.6
[G UIDELINE ] A UPnP action on a virtual server shall fail if it cannot meet the timing restrictions for
UPnP actions even if the underlying UPnP action on the native server succeeds. See guideline 9.2.9
for UPnP device responsiveness.
[ATTRIBUTES ]
12.4.3.7
[G UIDELINE ] A virtual server shall return a result that is within the size limit of UPnP results. See
guideline 9.2.17 for UPnP SOAP packet size.
Copyright © 2016 Digital Living Network Alliance.
Any form of reproduction and/or distribution of these works is prohibited.
– 694 –
[ATTRIBUTES ]
[C OMMENT] The virtual server is free to truncate the response from the native server at an
appropriate boundary so that the final return value from the virtual server will fit within the space
constraints.
12.4.3.8
[G UIDELINE ] The CMS.SourceProtocolInfo variable of a virtual server shall comprise the
protocolInfos listed in the CMS.SourceProtocolInfo of the native server(s) and protocolInfos
corresponding to the profiles listed in the SupportedOutputProfiles output argument of the virtual
server's CMS: X_GetDLNAOutputProfiles when the OutputProfiles argument is set to an empty
string.
[ATTRIBUTES ]
12.4.3.9
[G UIDELINE ] If the virtual server supports optional content management (OCM) operations, see
guideline 10.1.8.2, it shall control the native server as a valid UPnP AV MediaServer Control point
for the given operation. Specifically, it shall adhere to the control point portions of the following
guidelines.
[ATTRIBUTES ]
12.4.3.10
[G UIDELINE ] Any action on a virtual server shall fail if the corresponding operation on the native
server fails and the virtual server shall return the same error message as the native server.
[ATTRIBUTES ]
[C OMMENT] An operation in this context might consist of a number of UPnP actions, for example an
implementation of an action on a virtual server is free to call multiple actions on the native server.
Some of these actions on the native server might fail. However, taken as a whole, all of the calls to
the native server represent a single operation.
For example, the virtual server can make several calls to the native server to test the level of support
for media profiles. Some of these calls might fail if the native server does not support a format, but
overall, the operation will succeed when a compatible format is found.
12.4.3.11
[G UIDELINE ] Any action on a virtual server will be declared successful only if the native server
operation succeeds.
[ATTRIBUTES ]
12.4.3.12
[G UIDELINE ] If an operation occurs on the DLNA.ORG_AnyContainer on the virtual server, the
virtual server shall map that to a corresponding operation on the DLNA.ORG_AnyContainer of one
of the native servers that it is virtualizing.
[ATTRIBUTES ]
ISO/IEC
29341-20-12
ISO/IEC
29341-20-3
[C OMMENT] If the virtual server is aggregating multiple native servers, it shall choose one to apply
the operation to. If it is not aggregating, there is a 1-to-1 mapping to the native server.
12.4.3.13
[G UIDELINE ] If the native server can accept the incoming Media Format Profile of an upload
operation, then the ImportURI returned by the virtual server shall point to the native server and the
upload content transfer process shall occur directly to the native server.
[ATTRIBUTES ]
12.4.3.14
[G UIDELINE ] If the native server cannot accept the incoming Media Format Profile of an upload
operation, then the Import URI shall point to the virtual server. It shall accept the content through a
content transfer process and transform it to a format that the native server can support, and place
the transformed content on the native server.
[ATTRIBUTES ]
12.4.3.15
[G UIDELINE ] The upload of content to the virtual server shall fail if the virtual server cannot upload
transformed content to the native server or the native server cannot accept the transformed content.
[ATTRIBUTES ]
12.4.3.16
[G UIDELINE ] If a virtual server receives content that it cannot place on the native server it shall fail
the Media Transport operation with the same error response as returned from the native server.
[ATTRIBUTES ]
12.4.3.17
[G UIDELINE ] If a virtual server receives content via an HTTP POST operation, the virtual server
shall delay the final response on the final chunk of received data until the media is (possibly
transformed) and stored on the native server.
[ATTRIBUTES ]
[C OMMENT] This ensures that all incoming media is correctly received and accepted by the native
server before sending a final acceptance.
12.4.3.18
[G UIDELINE ] If a virtual server is aggregating content from a number of native servers, and one of
the native servers leaves the network, any query issued more than 1 s after the native server leaves
the network shall not show that content in the hierarchy.
[ATTRIBUTES ]
[C OMMENT] A native server can leave the network by issuing a ssdp:byebye message or
CACHE-CONTROL seconds can elapse without seeing an advertisement set.
12.4.3.19
[G UIDELINE ] For every CDS object on the native server, the virtual server shall advertise that
content with the original content format, scaling, and rate available through a direct URL reference
to the native server.
[ATTRIBUTES ]
29341-14-11
ISO/IEC
29341-20-12
ISO/IEC
29341-20-3
[C OMMENT] This is required so that a user doesn't have to manipulate one profile of content on one
server and switch to a different server to manipulate a different format of the same content. A v1.0
DMP will only be able to use direct URL references.
12.4.3.20
[G UIDELINE ] For every CDS object on the native server, the virtual server may advertise that
content with the original content format, scaling, and rate available through an indirect URL
reference to the native server, using the PlaySingleURI mechanism as specified in 10.1.4.27.
[ATTRIBUTES ]
12.4.3.21
[G UIDELINE ] A virtual server shall use additional <res> elements on a CDS object to advertise
alternate profiles or alternate data rates, or alternate media scalings.
[ATTRIBUTES ]
[C OMMENT] The virtual server will not create new content entries to represent the transcoded
content.
12.4.3.22
[G UIDELINE ] New <res> elements shall not be advertised until the virtual server can correctly
respond to a request for the content in the indicated media parameters.
[ATTRIBUTES ]
[C OMMENT] There are no static reasons why the content cannot be served when requested. For
instance, if offline content transformation is performed and the transformed file is not available, a
<res> element would not be published.
Do not use dynamic conditions, such as network bandwidth, processor resources, etc. that can
change rapidly, to determine whether a <res> field is provided or not.
12.4.3.23
[G UIDELINE ] If offline transformation of content is performed, the <res> element shall not be
published in the response to a CDS:Browse or CDS:Search until the transformation is complete and
the content binary is available.
[ATTRIBUTES ]
12.4.3.24
[G UIDELINE ] If real time conversion of content is performed, the <res> element shall not be
published in the response to a CDS:Browse or CDS:Search until the transformation subsystem is
ready to respond to requests for content binaries.
The request for content binaries may fail due to dynamic reasons. However, the transformation
service shall be ready to respond with an appropriate failure condition.
[ATTRIBUTES ]
12.4.3.25
[G UIDELINE ] If a real time transformation cannot be completed when requested due to dynamic
conditions on the virtual server, the media transport layer shall issue an appropriate error message
within the transport protocol requested
[ATTRIBUTES ]
12.4.3.26
[G UIDELINE ] New <res> elements shall advertise URI values that allow for the virtual server to
setup the requested content transformation.
[ATTRIBUTES ]
[C OMMENT] If a realtime transform is performed, information in the URI can be used to define the
server and URI of the original content.
12.4.3.27
[G UIDELINE ] If a virtual server cannot create a URI value for content that meets the above guideline
and also meets the maximum allowable URI size restriction, it shall not publish a <res> element for
this content transformation
[ATTRIBUTES ]
12.4.3.28
[G UIDELINE ] A virtual server shall retain all recommended metadata (as specified by guideline
10.1.3.12.3) that is available for a CDS object.
[ATTRIBUTES ]
[C OMMENT] The virtual server can choose to delete other metadata entries at its discretion.
12.4.3.29
[G UIDELINE ] A virtual server shall specify the available media operations in the 4th field of a
protocolInfo on a <res> element to transformed content.
[ATTRIBUTES ]
ISO/IEC
29341-14-11
ISO/IEC
29341-20-12
ISO/IEC
29341-20-3
[C OMMENT] For example, the native server might be able to support fast forward playback, while
the transformed ontent cannot, so for the new <res> elements, they shall have the correct
corresponding set of media operations that the virtual server can support.
12.4.3.30
[G UIDELINE ] A virtual server may reduce the set of media operations in the 4th field of a
protocolInfo for a <res> element added for transformed content.
[ATTRIBUTES ]
12.4.3.31
[G UIDELINE ] The virtual server shall copy the entire protocolInfo unaltered for a <res> element
where the URI is a direct reference to the native server's content.
[ATTRIBUTES ]
[C OMMENT] The URI still points to the native server. The availability of that server’s media
operations is independent of the source of the content directory.
[ATTRIBUTES ]
[C OMMENT] Specifically, it shall adhere to the following guideline requirements for components.
The control point on the virtual renderer shall subscribe to the events on the native and when the
event occurs on the native renderer, it shall be forwarded as if it had occurred on the virtual
renderer.
[ATTRIBUTES ]
12.4.4.3
[G UIDELINE ] The CMS.SinkProtocolInfo variable of a virtual renderer shall comprise the
protocolInfos listed in the CMS.SinkProtocolInfo of the native renderer and protocolInfos
corresponding to the profiles listed in the SupportedInputProfiles output argument of the virtual
renderer's CMS:X_GetDLNAInputProfiles response when the InputProfiles argument is set to an
empty string.
[ATTRIBUTES ]
12.4.4.4
[G UIDELINE ] A virtual renderer shall be bound to a single real renderer.
[ATTRIBUTES ]
12.4.4.5
[G UIDELINE ] A virtual renderer may buffer any reasonable amount of data for a transformation
before starting the playback on the native renderer.
[ATTRIBUTES ]
[C OMMENT] Due to items like network bandwidth, jitter, or capabilities of the content transformation
engine, the virtualizer might need to buffer a substantial portion of the content before starting the
playback.
[ATTRIBUTES ]
12.5.1.2
[G UIDELINE ] A virtual DMS server shall make additional Media Format Profiles available as DLNA
Media Format Profiles.
[ATTRIBUTES ]
[ATTRIBUTES ]
12.5.2.2
[G UIDELINE ] A virtual M-DMS server shall make additional Media Format Profiles available as
DLNA Media Format Profiles
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This reiterates the requirement that a virtual DMS shall implement all of the mandatory
requirements for a native DMS.
[ATTRIBUTES ]
[C OMMENT] This reiterates the requirement that a virtual M-DMS shall implement all of the
mandatory requirements for a native M-DMS.
[ATTRIBUTES ]
[C OMMENT] This reiterates the requirement that a virtual DMR shall implement all of the mandatory
requirements for a native DMR.
[ATTRIBUTES ]
IETF RFC
2616
[C OMMENT] This reiterates the requirement that a virtual device shall interact with the native
device using the appropriate HTTP version.
13.1
[G UIDELINE ] When decoding Stereoscopic 3D (S3D) content, the Rendering Endpoint or the RUI
client shall render all overlaid non-stereoscopic graphics, as duplicated images on each
"half-frame" to match the decoded frame-compatible S3D format, including the
frame_grid_alignment data provided in the Supplemental Enhancement Information (SEI) message.
[ATTRIBUTES ]
13.2
[G UIDELINE ] A 3D-media-capable Rendering Endpoint or a 3D-media-capable RUI client shall
respond to the format changes at Group of Picture (GOP) boundaries indicated by
S3D_video_format_type data by rendering the indicated formats ISO/IEC 13818-2
[ATTRIBUTES ]
13.3
[G UIDELINE ] A 3D-media-capable Rendering Endpoint or a 3D-media-capable RUI client shall
respond to the format changes indicated by the SEI Format Values at random access points by
rendering the indicated formats.ANSI/SCTE 128
[ATTRIBUTES ]
13.4
[G UIDELINE ] After any change from an S3D media content to a 2D media content, a
3D-media-capable Rendering Endpoint or a 3D-media-capable RUI client shall not display 2D
media content in 3D mode for more than 500 ms
[ATTRIBUTES ]
13.5
[G UIDELINE ] If a Rendering Endpoint or a RUI client that supports 3D media uses any provided
depth offset (disparity) metadata to render closed captions CEA-708, it shall establish the z-space
placement without exceeding video frame boundaries.
[ATTRIBUTES ]
Annex A
(informative)
Access Point (AP) APs are IEEE 802.11 hubs, the central points of contact in IEEE 802.11 wireless
networks. APs typically include bridges (see Bridge below) between IEEE 802.11 and
IEEE 802.3 network segments or between IEEE 802.11 and HomePlug AV or HD-PLC
network segments.
Bridge Bridges connect two networks of different physical media types with translation between
formats of the media types occurring at layer 2 of the ISO model.
Interconnect Interconnects are device functions such as switches or hubs that connect two network
segments of the same type (e.g. Ethenet segments). This annex recommends that all
interconnects be switches. Hub functionality should be avoided on the home network.
Internet Gateway IGDs interface the home network to the public Internet. IGDs present different interfaces
Device (IGD) with different characteristics to their LAN side-the home network-and their WAN side-the
public Internet.
Router Routers pass traffic between two or more IP subnets and, within a single subnet, perform
address resolution of IP addresses. Routers can be considered to do translation between
networks at layer 3 of the ISO model.
Switch Switches route network traffic by MAC address, layer 2 of the ISO model, within a single
subnet.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] RFC7084 defines the basic requirements needed to provision a Customer Edge
Router with IPv6 addresses, an IPv6 Prefix, and necessary options such as an IPv6 DNS server to
serve the needs of IPv6 devices operating in the home network. The mandatory requirements in this
RFC represent the minimum feature set needed to route and offer IPv6 services for an IGD device.
[ATTRIBUTES ]
[C OMMENT] UPnP SSDP uses messages directed to address 239.255.255.250 port 1900 for DLNA
device discovery.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] Wi-Fi interoperability requirements are increasing with time as new capabilities and
features are specified by IEEE 802.11. When these capabilities are added to the Wi-Fi certification
test plans, wireless implementations are encouraged to conform to them.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
Plan
WMM provides the base level QoS specification for IEEE 802.11 network devices.
AC_BK 1 BK 0x08
AC_BE 0 BE 0x00
AC_VI 5 VI 0x28
AC_VO 7 NC 0x38
[ATTRIBUTES ]
[C OMMENT] In the case of bridging IEEE 802.3 traffic onto IEEE 802.11, the WMM test plan defines
mapping from DSCP and IEEE 802.1Q into WMM priorities. However, Wi-Fi does not mandate
which approach to implement. This yields an interoperability problem that is addressed by this
guideline.
A.3.3.6.2
[G UIDELINE ] If WMM is supported on an IEEE 802.11 network interface by an AP and it is bridging
between the IEEE 802.11 network interface and an IEEE 802.3 network interface, packets received
on the IEEE 802.3 network interface and transmitted on the IEEE 802.11 network interface should
include the WMM Access Category corresponding to the IEEE 802.1D user priority value in the
IEEE 802.1Q header tag of the received IEEE 802.3 packets in accordance with Table A.3.
1 BK 0x08 AC_BK
2 – 0x10
0 BE 0x00 AC_BE
3 EE Ox18
4 CL 0x20 AC_VI
5 VI 0x28
6 VO 0x30 AC_VO
7 NC 0x38
[ATTRIBUTES ]
A.3.3.6.3
[G UIDELINE ] If WMM is supported on an IEEE 802.11 network interface by an AP that is bridging
between the IEEE 802.11 network interface and an IEEE 802.3 network interface and an
IEEE 802.3 packet is received that does not contain an IEEE 802.1Q tag, the AP should look at the
DSCP tag and map that to a WMM Access Category in accordance with the Table A.2 and preserve
the DSCP tag across the IEEE 802.3 and IEEE 802.11 segments.
[ATTRIBUTES ]
A.3.3.6.4
[G UIDELINE ] If an AP receives an IEEE 802.3 packet that does not contain an IEEE 802.1Q or a
DSCP tag, the packet should be passed through to the IEEE 802.11 interface unmodified without
the addition of any priority tagging.
[ATTRIBUTES ]
A.3.3.6.5
[G UIDELINE ] If an AP receives an IEEE 802.11 packet that is not tagged with a WMM Access
Category, the packet should be passed through to the IEEE 802.3 interface unmodified without the
addition of any priority tagging.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This guideline allows DLNA Device Classes with IEEE 802.11 network interfaces to
properly use AC_VO and AC_VI for DLNAQOS_3 and DLNAQOS_2 respectively.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] This recommendation does not call out specific methods or protocols for managing a
bridge. The choice of management solution is left to vendors, but all bridges need to be IP
addressable so that the specific management solution can be invoked over the network.
[ATTRIBUTES ]
[C OMMENT] Ethernet switches forward Ethernet frames from one port to a single port based on the
destination MAC address of the frame. This operating characteristic is highly desirable for QoS
because the Ethernet frame will only be transmitted on the path necessary to reach its destination.
Devices that do not perform frame forwarding based on destination MAC address (some times
called Ethernet Hubs) cause unnecessary collisions.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] MoCA interoperability requirements will increase with time as new capabilities and
features are specified by MoCA. When these capabilities are added to the MoCA certification test
plans, MoCA implementations are expected to conform to them.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
(low) 0 BE 0x00
(medium) 5 VI 0x28
(high) 7 NC 0x38
[ATTRIBUTES ]
A.3.6.6.2
[G UIDELINE ] When bridging between the MoCA network interface and an IEEE 802.3 network
interface, packets received on the IEEE 802.3 network interface and transmitted on the MoCA
network interface should include the MoCA Priority corresponding to the IEEE 802.1D user priority
value in the IEEE 802.1Q header tag of the received IEEE 802.3 packets in accordance with Table
A.5.
1 BK 0x08 low
2- 0x10 low
0 BE 0x00 low
3 EE 0x18 low
4 CL 0x20 medium
5 VI 0x28 medium
6 VO 0x30 high
7 NC 0x38 high
[ATTRIBUTES ]
A.3.6.6.3
[G UIDELINE ] When bridging between the MoCA network interface and an IEEE 802.3 network
interface and an IEEE 802.3 packet is received that does not contain an IEEE 802.1Q tag, the
MoCA bridge should look at the DSCP tag and map that to a MoCA Priority in accordance with Table
A.5 in A.3.6.6.2 and preserve the DSCP tag across the IEEE 802.3 and MoCA segments.
[ATTRIBUTES ]
IEEE 802.1Q
IETF RFC
2474
MoCA
MAC/PHY
A.3.6.6.4
[G UIDELINE ] If a MoCA Bridge receives an IEEE 802.3 packet that does not contain an
IEEE 802.1Q or a DSCP tag, the packet should be passed through to the MoCA interface
unmodified without the addition of any priority tagging.
[ATTRIBUTES ]
A.3.6.6.5
[G UIDELINE ] If a MoCA Bridge receives a MoCA packet that is not tagged with a MoCA Priority, the
packet should be passed through to the IEEE 802.3 interface unmodified without the addition of any
priority tagging.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] HPNA interoperability requirements will increase with time as new capabilities and
features are specified by HPNA. When these capabilities are added to the HPNA certification test
plans, HPNA implementations are expected to conform to them.
[ATTRIBUTES ]
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] QoS support is optional, but if supported should conform to HPNA requirements. The
HPNA specification provides the base level QoS specification for HPNA network devices.
0 1 BK 0x08
1 2- 0x10
2 0 BE 0x00
3 3 EE 0x18
4 4 CL 0x20
5 5 VI 0x28
6 7 NC 0x38
7 6 VO 0x30
[ATTRIBUTES ]
A.3.7.6.2
[G UIDELINE ] When bridging between the HPNA network interface and an IEEE 802.3 network
interface, packets received on the IEEE 802.3 network interface and transmitted on the HPNA
network interface should include the HPNA Priority corresponding to the IEEE 802.1D user priority
value in the IEEE 802.1Q header tag of the received IEEE 802.3 packets in accordance with Table
A.7.
1 BK 0x08 0
2- 0x10 1
0 BE 0x00 2
3 EE 0x18 3
4 CL 0x20 4
5 VI 0x28 5
6 VO 0x30 7
7 NC 0x38 6
[ATTRIBUTES ]
A.3.7.6.3
[G UIDELINE ] When bridging between the HPNA network interface and an IEEE 802.3 network
interface and an IEEE 802.3 packet is received that does not contain an IEEE 802.1Q tag, the
HPNA bridge should look at the DSCP tag and map that to a HPNA Priority in accordance with Table
A.7 in A.3.7.6.2 and preserve the DSCP tag across the IEEE 802.3 and HPNA segments.
[ATTRIBUTES ]
A.3.7.6.4
[G UIDELINE ] If a HPNA Bridge receives an IEEE 802.3 packet that does not contain an
IEEE 802.1Q or a DSCP tag, the packet should be passed through to the HPNA interface
unmodified without the addition of any priority tagging.
[ATTRIBUTES ]
A.3.7.6.5
[G UIDELINE ] If a HPNA Bridge receives a HPNA packet that is not tagged with a HPNA Priority, the
packet should be passed through to the IEEE 802.3 interface unmodified without the addition of any
priority tagging.
[ATTRIBUTES ]
[ATTRIBUTES ]
A.3.8.1.2
[G UIDELINE ] ]: HD-PLC PHY Bridges should include Ethernet or IEEE 802.11 connectivity
conformant to all [NC NID Ethernet:] or A.3.3.1/A.3.3.2 labeled requirements with bridging between
the Ethernet, IEEE 802.11 and HD-PLC PHY segments.
[ATTRIBUTES ]
[ATTRIBUTES ]
[C OMMENT] HomePlug AV PHY interoperability requirements will increase with time as new
capabilities and features are specified by HomePlug AV. When these capabilities are added to the
applicable HomePlug AV PHY certification test plans, HomePlug AV PHY implementations should
conform to them
A.3.8.2.2
[G UIDELINE ] HD-PLC PHY Bridges should conform to the HD-PLC PHY Intermediate Device test
plan requirements at the time the product is offered to the market.
[ATTRIBUTES ]
[C OMMENT] HD-PLC PHY interoperability requirements will increase with time as new capabilities
and features are specified by HD-PLC. When these capabilities are added to the applicable HD-PLC
PHY certification test plans, HD-PLC PHY implementations should conform to them.
[ATTRIBUTES ]
A.3.8.3.2
[G UIDELINE ] HD-PLC PHY Bridges should be firmware updatable by the end user.
[ATTRIBUTES ]
[ATTRIBUTES ]
A.3.8.4.2
[G UIDELINE ] HD-PLC PHY Bridges should support DLNAQOS on all their network interfaces in
accordance with the HD-PLC PHY recommendations in Section A.3.8.5 and Section A.3.8.6.
[ATTRIBUTES ]
[ATTRIBUTES ]
Specification
A.3.8.5.2
[G UIDELINE ] If DLNAQOS is supported on an HD-PLC PHY network interface by an HD-PLC PHY
Bridge, the HD-PLC PHY interface should conform to all HD-PLC PHY mandatory requirements.
[ATTRIBUTES ]
CA0 1 BK 0x08
2- 0x10
CA1 0 BE 0x00
3 EE 0x18
4 CL 0x20
CA2 5 VI 0x28
6 VO 0x30
CA3 7 NC 0x38
[ATTRIBUTES ]
A.3.8.6.2
[G UIDELINE ] When bridging between the HD-PLC PHY network interface and an IEEE 802.3
network interface, packets received on the HD-PLC network interface and transmitted on the
IEEE 802.3 network interface should include the IEEE 802.1D user priority value in the
IEEE 802.1Q header and the DSCP tag corresponding to the Priority of the received HD-PLC PHY
packets in accordance with Table A.9.
1 1 BK 0x08
2 2- 0x10
0 0 BE 0x00
3 3 EE 0x18
4 4 CL 0x20
5 5 VI 0x28
6 6 VO 0x30
7 7 NC 0x38
[ATTRIBUTES ]
A.3.8.6.3
[G UIDELINE ] When bridging between the Homeplug AV PHY network interface and an IEEE 802.3
network interface, packets received on the IEEE 802.3 network interface and transmitted on the
Homeplug AV PHY network interface should include the Homeplug AV PHY Priority corresponding
to the IEEE 802.1D user priority value in the IEEE 802.1Q header tag of the received IEEE 802.3
packets in accordance with Table A.10.
1 BK 0x08
CA0
2- 0x10
0 BE 0x00
CA1
3 EE 0x18
4 CL 0x20
CA2
5 VI 0x28
6 VO 0x30
CA3
7 NC 0x38
[ATTRIBUTES ]
A.3.8.6.4
[G UIDELINE ] When bridging between the HD-PLC PHY network interface and an IEEE 802.3
network interface, packets received on the IEEE 802.3 network interface and transmitted on the
HD-PLC PHY network interface should include the HD-PLC PHY Priority corresponding to the
IEEE 802.1D user priority value in the IEEE 802.1Q header tag of the received IEEE 802.3 packets
in accordance with Table A.11.
1 BK 0x08 1
2- 0x10 2
0 BE 0x00 0
3 EE 0x18 3
4 CL 0x20 4
5 VI 0x28 5
6 VO 0x30 6
7 NC 0x38 7
[ATTRIBUTES ]
A.3.8.6.5
[G UIDELINE ] When bridging between the Homeplug AV PHY network interface and an IEEE 802.3
network interface and an IEEE 802.3 packet is received that does not contain an IEEE 802.1Q tag,
the Homeplug AV PHY bridge should look at the DSCP tag and map that to a Homeplug AV PHY
Priority in accordance with the Table A.10 and preserve the DSCP tag across the IEEE 802.3 and
Homeplug AV PHY segments.
[ATTRIBUTES ]
A.3.8.6.6
[G UIDELINE ] When bridging between the HD-PLC PHY network interface and an IEEE 802.3
network interface and an IEEE 802.3 packet is received that does not contain an IEEE 802.1Q tag,
the HD-PLC PHY bridge should look at the DSCP tag and map that to a HD-PLC PHY Priority in
accordance with Table A.11 and preserve the DSCP tag across the IEEE 802.3 and HD-PLC PHY
segments.
[ATTRIBUTES ]
A.3.8.6.7
[G UIDELINE ] If a Homeplug AV PHY Bridge receives an IEEE 802.3 packet that does not contain an
IEEE 802.1Q or a DSCP tag, the packet should be passed through to the Homeplug AV PHY
interface unmodified without the addition of any priority tagging.
[ATTRIBUTES ]
A.3.8.6.8
[G UIDELINE ] If an HD-PLC PHY Bridge receives an IEEE 802.3 packet that does not contain an
IEEE 802.1Q or a DSCP tag, the packet should be passed through to the HD-PLC PHY interface
unmodified without the addition of any priority tagging.
[ATTRIBUTES ]
A.3.8.6.9
[G UIDELINE ] If a Homeplug AV PHY Bridge receives a Homeplug AV PHY packet that is not tagged
with a Homeplug AV PHY Priority, the packet should be passed through to the IEEE 802.3 interface
unmodified without the addition of any priority tagging.
[ATTRIBUTES ]
A.3.8.6.10
[G UIDELINE ] If an HD-PLC PHY Bridge receives a HD-PLC PHY packet that is not tagged with a
HD-PLC PHY Priority, the packet should be passed through to the IEEE 802.3 interface unmodified
without the addition of any priority tagging.
[ATTRIBUTES ]
Annex B
(informative)
The UPnP namespace currently does not provide a subChannelNr property that makes
representation of some channel numbers difficult because the fact that the channelNr property is
restricted to integer values. Digital Television broadcasts commonly provide a multiple-program
Transport Stream within a single radio-frequency channel, and these programs are commonly
referred to as "subchannels". At this time, it is up to the implementer to decide how to best represent
subchannel numbers as there is no subChannelNr property in the upnp namespace. In the case of
broadcast sources where there exists a "primary" subchannel, an implementer could create a CDS
Broadcast item representing the "primary" subchannel using the main channel number (to preserve
the user expected channel number order), then a set of CDS Broadcast items representing the
subchannels, can be exposed by the DMS using channel numbers that are vendor specific. For
example, an over-the-air ATSC broadcast on radio-frequency Channel 40 with four subchannels,
with licensed Channel Number 7, could have a primary CDS Broadcast Item with a channelNr value
of 7 and four additional CDS Broadcast Items with channelNr values of 900, 901, 902, and 903 for
each subchannel.
If the Channel Number represents a preset number, the range should reflect the numbering scheme
normally presented to the user. This will typically be an ordinal number sequence (see guideline
10.1.4.20.1).
A typical scenario for a device incorporating both a Rendering Endpoint and control point
component that interacts with a tuner occurs in the following manner. The control point component
presents the available channels to the user as they are exposed by a CDS. When the user selects
a specific channel for viewing, the Rendering Endpoint component issues an HTTP Get to the
Content Source for the URI of the selected channel's content to initiate streaming. When the user
DLNA guidelines; Part 1-1: Architecture and protocols
– 727 –
wishes to change channels, the Rendering Endpoint component closes the existing HTTP
connection, and then issues a new HTTP GET to the Content Source for the URI of the new
channel's content.
Implementers should note that there is no feedback mechanism to notify a control point or
Rendering Endpoint that the current tuner channel has been changed by another control point or a
local user. Once a Rendering Endpoint has established an HTTP connection with the Content
Source to stream the Channel content, and later the Content Source changes the "current" channel,
the Content Source should stop streaming content and close the HTTP connection to indicate to the
Rendering Endpoint that the channel is no longer the "current" channel. A Rendering Endpoint may
terminate an HTTP connection at any time that it no longer wishes to receive the broadcast content.
Rendering Endpoints should be aware of the buffering requirements that live broadcast content
places on the Content Source. Due to the possible network congestion, the server will need to buffer
any temporary differences in the streaming rates between the incoming broadcast stream and the
rate that the Rendering Endpoint accepts data over the network. If the server is unable to buffer any
difference in rates, some of the data in the incoming broadcast stream will be lost. To avoid such
data loss, Rendering Endpoints should be designed to accept data from network with an average
rate equal to the live broadcast. Rendering Endpoints should also be designed to accept live
broadcast content as a continuous stream, rather than a series of burst transfers. Note that this
does not prevent a Rendering Endpoint from buffering content at the beginning of the streaming
session, or changing the amount of content buffered at the Rendering Endpoint during the session,
to account for the normal (and often dynamic) delays in HTTP network traffic.
<DIDL-Lite
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
<!-- Root Container -->
<!--(
NOTE XML Comments prohibited per 9.2.30 and are only included for clarity) -->
<container id="0" parentID="-1" restricted="1" childCount="2">
<dc:title>DLNA Device</dc:title>
<upnp:class>object.container</upnp:class>
<!-- NTSC TV Basic Tuner container -->
<container id="1" parentID="0" restricted="1" childCount="2">
<dc:title>NTSC TV Tuner</dc:title>
<upnp:class>object.container</upnp:class>
<dlna:containerType>Tuner_1_0</dlna:containerType>
<!-- NTSC TV Channels -->
Annex C
(informative)
Previously, there were two primary techniques for representing UPnP device on multiple network
interfaces. Both techniques were allowed for IPv4 deployments, but for devices that support IPv6,
now only a single technique is recommended. The first technique is for the UPnP device to
represent itself as multiple UPnP devices at the UPnP network layer, by using different UDN values
for each discoverable UPnP device, with each UPnP device bound to a specific network interface.
Figure C.1 describes this concept, with one logical UPnP device advertising two UPnP AV
MediaServers (DMS devices). Each UPnP AV MediaServer also has a different UDN. Furthermore,
through guideline 9.2.27.4, control points also obtain the correct IP address for each logical UPnP
device.
___________
6 Throughout the DLNA Home Networked Device interoperability guidelines, the terms “network interface”, “home network
segment”, or “home network interface” are used to denote one of the layer-2 connectivity technologies such as Wi-Fi,
Ethernet, MoCA, etc.
An important observation is that Network A and Network B can be bridged or completely separate
networks. Another important clarification is that MS-1 and MS-2 are not part of he same UPnP
device hierarchy. Similarly, control points find MS-1 and MS-2 in separate device description files.
For all intents and purposes, a control point that discovers MS-1 and MS-2 will not be able to
conclude that both UPnP devices are part of the same product. Regardless of the topology, the only
conclusions that a control point can make about the two UPnP devices is whether the (logical) UPnP
devices are on the same UPnP network.
• If the control point sees UDN-1 and UDN-2 on the same network interface, then MS-1 and MS-2
are on the same UPnP network.
• If the control point sees UDN-1 and UDN-2 on different network interfaces, then MS-1 and MS-2
are on different UPnP networks.
Although a control point might not be able to identify the discoverable UPnP devices as part of a
common logical UPnP device, additional meta-information might allow the user to make such a
conclusion. For example, DMS-1 might have a UPnP friendly name of "Living Room Server (Wired)"
and DMS-2 might have a friendly name of "Living Room Server (Wireless)". Of course, the friendly
name for both UPnP devices could be identical, such as "Living Room Server". The interoperability
guidelines do not make any recommendations or set requirements about the friendly names of
UPnP devices because rules on meta-information depend more on philosophy and are less about
protocol interoperability.
Lastly, even though the interoperability guidelines do not specifically state guidelines describing
this type of behavior, the implementation technique is understood to be acceptable. The guidelines
are worded to allow representation of a logical UPnP device through multiple, discoverable UPnP
devices. The primary reason why this implementation technique is not described in guidelines is that
it is virtually impossible for a UPnP control point to detect that two discoverable UPnP devices
represent a logical UPnP device.
The second and reccomended technique for representing UPnP devices on multiple IPv4 network
interfaces or an IPv6 network interface is to have the UPnP device report the same UDN on multiple
network interfaces or the same interface with multiple addresses. Figure C.2 describes this concept.
Just like Figure C.1, Network A and Network B may be bridged or separate networks, for IPv4, IPv6
or both. In this type of implementation, a control point discovers only one UPnP device instead of
multiple UPnP devices. However, the control point might see multiple IP addresses, depending on
the network topology, allowing the control point to generally conclude one or more of the following.
• If the control point sees IP address 1 and IP address 2 on the same network interface, then the
UPnP device is on one network with two different addresses. This includes the case of IPv4 and
IPv6 addresses on the same interface.
• If the control point sees IP address 1 and IP address 2 on separate network interfaces (within
10 s of each other), then the UPnP device is on two different UPnP networks.
• If the control point sees IP address 1 and sees IP address 2 within 10 s, then the control point
can conclude that the UPnP device has two IP destinations that seem equally reliable.
The advantage of using this technique is that the control point knows for sure that there is only one
UPnP device. This allows the user interface of a control point to report one UPnP device instead of
reporting multiple UPnP devices.
The interoperability guidelines focus mostly on what the UPnP devices can or shall do about
multiple network interfaces. The interoperability guidelines do not specify any mandatory behavior
for a control point because vendors believe that a variety of techniques can be used to present
UPnP devices to a user. Guidelines 9.2.27.4 and 9.2.27.5 provide some ideas about what a control
point can do, but vendors will need to design their control point taking into account many factors that
are not discussed in the interoperability guidelines.
• The logical UPnP AV MediaServer represents itself with a single discoverable UPnP AV
MediaServer (DMS device).
• The discoverable UPnP AV MediaServer is associated with all available network interfaces and
IP addresses.
• The discoverable UPnP AV MediaServer reports the same UDN value on each network
interface.
• If the discoverable UPnP AV MediaServer receives a CDS:Browse or CDS:Search request and
the Filter argument does not have the ALLIP value, then it returns all URI values for the network
interface that received the SOAP request. Essentially, a control point can assume that there
exists a network route from the control point to any of the URI values' network addresses, which
are returned by the DMS.
• If the discoverable UPnP AV MediaServer receives a CDS:Browse or CDS:Search request and
the Filter argument has the ALLIP value, then the UPnP AV MediaServer responds with all URI
values, regardless of whether the URI is associated with the interface that received the SOAP
request.
For this type of implementation, a control point that does not use the ALLIP value in the Filter
argument can safely assume that a network route exists between the control point and each of the
returned URI values. This assumption can be made because of guideline 10.1.4.6.1, which requires
DMS-1 to never report URI values that have a Network B address, unless ALLIP is used. Likewise,
DMS-2 can never report URI values that have a Network A address, unless ALLIP is used.
However, when the ALLIP value is used in the Filter argument, a control point will get all of the URI
values, regardless of their network address values. Although not important for transactions between
a DMS and DMP, this capability becomes important for future use cases such as supporting both
IPv4 and IPv6.
Lastly, this clause applies to any IP URI regardless of whether the content complies with a DLNA
Media Format Profile. In the case of non-IP URI values, a DMS should always publish non-IP URI
values (e.g. IEEE 1394, etc.) because a DMP can determine routability from the ProtocolInfo value.
networks, in different formats, or via different transports. Furthermore, control points can build
better user interfaces.
Annex D
(informative)
Given a stream, there is one data range of primary interest: [s 0 , s N ]. This data range represents
what a Content Source can transmit. A secondary data range of interest is [r 0 , r N ], which is a data
range that supports random access operations on the Content Source. If enabled, this data range is
always an equal [s 0 , s N ].
Tangential to these data ranges is the [d 0 , d N ] data range. This is the range of data that the Content
Receiver has available to it from either local buffering or directly from the Content Source. This data
range is not referenced in transport layer guidelines because Content Receivers have a wide range
of options for local buffering techniques. Ultimately, the [d 0 , d N ] data range is neither discoverable
nor of any interest to Content Sources, so the focus of the guidelines remains on the Content Source
data ranges.
Since the DLNA guidelines primarily focus on network transactions, the guidelines generally avoid
distinctions between stored, converted, or live content. The guidelines focus more on a Content
Receiver's ability to determine the Content Source's transport layer behaviors. Therefore, it is
important to remember that implementation details that are discussed in this annex are for
information only. The examples serve to illustrate how vendors can implement against the
guidelines based on the UCDAM. Although examples might cite a specific context (such as stored
content versus live content) actual implementations may deviate from these examples while
conforming to the normative guidelines.
Random access operations are not limited to HTTP requests that involve the Range header, see
Figure D.4. Other examples include HTTP requests with the TimeSeekRange.dlna.org header. The
guidelines for RTP seek operations might also have dependencies on being able to do some form of
random access.
the original version is in an optional Media Format Profile. Common forms of conversions include
transcoding, transscaling, and transrating.
A Content Source that claims support for [r 0 , r N ] data range is required to support random access on
the entire range of [s 0 , s N ]. The only time where this is computationally difficult is when performing
random access operations and when responding to requests with the Range header. This difficulty
manifests itself primarily in the server having a (long) delay when responding to such requests. To
assist Content Receivers in making intelligent decisions about using such requests, the guidelines
allow the server to report a byte range that is a subset of [r 0 , r N ].
During the initialization phase, the buffer exhibits the behavior of a growing buffer. In this phase, the
Content Source has fixed values for d X , s 0 , r 0 , and r N , while having an increasing value for d Y = s N ,
see Figure D.5.
Figure D.5 – Live stream with growing buffer and no random access
If the Content Source is able to handle random access requests, then the model is slightly different.
Given the UCDAM, it is possible for a Content Source to change the [r 0 , r N ] range after the
transmission starts. In Figure D.6, the Content Source supports random access requests on the
same range as the [s 0 , s N ] data range.
Figure D.6 – Live stream with growing buffer and random access
Since this is an infinite stream, the Content Source will eventually run out of local memory or storage
for buffering. When this happens, the Content Source may exhibit a sliding window behavior, as
shown in Figure D.7.
Figure D.7 – Live stream with sliding buffer and random access support
The last variant is really an implementation detail that is hidden. Some live streams might be time
delayed. Some implementations can use time delaying as a way of having sliding buffer from the
very beginning of stream. In practice, there is no way to distinguish between a time-delayed live
stream and other live streams. Therefore, it is functionally identical to the previous case. The only
difference is the relationship between the normative s N data position and the theoretical d Y data
position, see Figure D.8.
Figure D.8 – Time-delayed live stream with sliding buffer and random access support
For numerous Content Receivers, the [s 0 , s N ] and [d 0 , d N ] are effectively identical. This means that
the Content Receiver only accesses data that the Content Source can provide at any given time.
However, some Content Receivers are able to expand their [d 0 , d N ] data range by caching data. For
example, a Content Receiver might be able to display data to the user that is no longer available
from the Content Source.
Although the UCDAM takes data caching into account, DLNA guidelines do not specify how a
Content Receiver determines its [d 0 , d N ] data range because it is considered an implementation
detail that is out-of-scope. (This is the same reason why DLNA guidelines do not specify how a
Content Source determines its [s 0 , s N ] buffer, relative to the theoretical [d X , d Y ] data range.
However, the role of guidelines is specifying interoperable behavior. To meet this objective, the
DLNA guidelines define media operations in terms of the [d 0 , d N ] data range because that is the data
range that affects what a user will perceive. Simultaneously, the guidelines specify syntax and
transport protocol requirements that govern transactions between Content Sources and Content
Receivers.
In the case of live content, the Content Source generally uses the dLive position (at the time of
receiving the Play request) as the dPlayStart value. Generally, the dLive position moves forward
with time by being attached to an original broadcast source's live position. However, the DLNA
guidelines do not define a mandatory rate for updating the dLive position, so two Play requests
could have the same dPlayStart even though they were made at different times. This leads to a
corollary that dLive might be a time-shifted stream, although it is impossible for Content Receivers
to know the size of the time-shift. The DLNA guidelines do not define a normative time-range for
time-shifting, so it is theoretically possible for a Content Source (with a lot of local storage) to
always choose the first byte of an always-increasing [s 0 , s N ] data range as the dPlayStart.
In summation, vendors can assume two things. Content Sources have a lot of flexibility when
choosing a dPlayStart position when responding to a Play request. Content receivers can rely on a
convention that the first received byte maps to the "beginning of content" but the convention is not
generally applicable to live content. Without precise, formal definitions for stored, converted, or live
content, the guidelines can only rely on conventions, which might be sufficient since the typical
convention for stored content is already in widespread use by both computing and consumer
electronics devices.
In the cases for stored content, the Pause and Pause-release operations operate consistently by
convention. Generally, a user initiates the Pause operation at some particular playback position
(dPause). When the user initiates the Pause-release operation, playback resumes. The Content
Source and Content Receiver determine the location dResume in the content stream where the
transfer resumes. Depending on user preferences and the type of the stream, the Content Receiver
might wish to continue the stream from where the Pause operation was initiated (i.e. dResume =
dPause). In many cases however, the ability to resume can sometimes be affected by a Content
Source's ability to randomly access data at the dResume position. For example, if the Content
Receiver disconnected the TCP connection as part of a Pause operation, and it wishes to resume
with dResume = dPause, it should reconnect the TCP connection and perform a Seek operation to
move to dPause. In order to satisfy this request, the Content Source would need to have dResume
in the [r 0 , r N ] data range in order to support this request. However, in the case of live or transcoded
content, the Content Source might not be able to satisfy this request. In this case, the Content
Source and Content Receiver, given the knowledge of the Content Source's [s 0 , s N ] data range,
determine an appropriate location in the stream to continue the transfer. For example, for live
content where s 0 = s N the point at which the stream is continued is the current sample of the live
stream.
Regardless of whether the content is stored, converted, or live, Content Receivers are always able
to determine the supported transport layer features for the content. Therefore, the most consistent
behavior is to disable the Pause operation when the Content Receiver detects that it cannot perform
a Pause-release operation from the paused position.
Since the UCDAM does not mandate a particular buffering model on the content source, there are
no requirements about how the Content Source's [s 0 , s N ] data range changes with time. In the case
for stored and converted content, the [s 0 , s N ] data range generally never changes. It remains fixed
and represents the entire content binary. In the case of live content, the data range can grow,
exhibiting a growing buffer. At other times the data range can appear to slide forward with time
because the content source has a buffering limit. In some cases, the data range can even
temporarily shrink because the content source buffers use a variable bitrate.
Despite the possible diversity of Content Source buffering models, Content Receivers need to
handle one general problem that can happen with any of the scan operations: what does the Content
Receiver do when a scan operation has reached the [d 0 , d N ] boundary? (Usually, this problem is
caused by a limited [s 0 , s N ] data range.)
Annex E
(informative)
E.2 Overview
The DLNA guidelines support two IPv4 address allocation systems, DHCPv4 and Auto-IP. DHCPv4
supports the allocation of routable IPv4 addresses for network environments that have multiple
subnets, while Auto-IP allocates non-routable, link-local addresses. In various DLNA
interoperability testing, it has been observed that some IPv4 stack implementations have difficulty
communicating between a device that has used DHCPv4 to obtain its IPv4 address and one that has
used Auto-IP. This situation can arise during times when the DHCPv4 server is offline. DHCPv4
address leases expire at randomly spaced times, so some devices might need to renew their
address leases while the DHCPv4 server is offline. Not finding a DHCPv4 server, the device will
assign its own IPv4 address with the Auto-IP protocol. Other devices, whose leases have not
expired, will continue to use their DHCPv4 assigned address. This mix of address allocation
systems will persist until all of the leases have expired and every device has allocated Auto-IP
addresses, or until the DHCPv4 server is online again, and devices sense its presence and revert to
using the DHCPv4 server (as per the mechanism defined in the guidelines). This annex will provide
additional guidance for device implementations to overcome the communication problems during
this transition.
IPv4 Mixed Network (Auto-IP and DHCPv4), as shown in Figure E.1 depicts a simple network
configuration where device A is using an IPv4 address assigned by a DHCPv4 server and device B
has an Auto-IP allocated address. Auto-IP assigned addresses are in the range 169.254.0.0/16
while DHCPv4 assigned addresses use other addressing ranges. Device A has been configured
with IPv4 address 192.168.1.100 and a subnet mask of 255.255.255.0. When it attempts to send a
packet to device B with Auto-IP assigned address 169.254.21.113 it does not recognize that
address as being on the local subnet and sends all IPv4 packets to device B to the default gateway.
Additionally, device B is not configured with a default gateway because it is using a link local
address. When device B attempts to send a packet to device A, it cannot determine if the packet is
bound for the local subnet or elsewhere. Because it does not have a gateway, the observed
behavior for some implementations is for device B to hold all IPv4 packets with a destination IPv4
address different from the Auto-IP subnet. In this situation, device A and device B cannot
communicate.
Some IPv4 stack implementations have been observed to exhibit this behavior. While the Auto-IP
specification version used by UPnP ISO/IEC 29341-1 requires that no packet with a link-local
address as either the source or destination be sent to a gateway, it does not strictly require that a
device attempt to send such a packet on the local subnet by default. It is also recognized that device
manufacturers might not have the ability to change the IPv4 stack implementations on their devices
because they obtain the stacks from other third party software vendors. This annex suggests a
simple mechanism to allow communication between devices with two different IPv4 address types
while not requiring software changes on either device.
The consequence of such a route is that traffic to any IPv4 address (Auto-IP allocated, DHCPv4
allocated or other IPv4 addresses) is considered reachable on the local link. While this does not
allow communication between devices that assign addresses with Auto-IP and devices on other
subnets, this is not a limitation of the solution but rather a limitation of Auto-IP itself. The Auto-IP
specification requires that no packet to or from a device using an Auto-IP allocated address is to be
forwarded to a gateway. This route simply makes that requirement explicit in the routing table.
The UPnP AV Media Server on device A and UPnP AV Media Renderer on device B broadcast their
presence with their own IP addresses. With the help of the new routes both applications
communicate correctly and transparently without any problems.
Please note that under Windows the IP address of the device itself (169.254.21.113 or
192.168.1.100) is used to specify a local link interface. The device's IP address is also used for the
gateway parameter.
Alternatively, the API functions CreateIpForwardEntry and DeleteIpForwardEntry from the Platform
SDK*: IP Helper can also be used within an application to add and remove routing table entries.
Table E.3 and Table E.4 show Windows routing table examples respectively for a device using an IP
address assigned by a DHCP server (device A) and for a device using an Auto-IP address (device
B).
Table E.3 – Windows routing table example for device w/DHCP address
Table E.4 – Windows routing table example for device w/Auto-IP address.
Alternatively, the system ioctl function in combination with socket IO Controls SIOCADDRT and
SIOCDELRT can also be used within an application to add and remove routing table entries.
Table E.5 and Table E.6 show Linux routing table examples respectively for a device using an IP
address assigned by a DHCP server (device A) and for a device using an Auto-IP address (device
B).
Table E.5 – Linux routing table example for device w/DHCP address
Table E.6 – Linux routing table example for device w/Auto-IP address
Figure E.3 shows an example of the additional route (grey boxes) in the IP Address assignment
flow.
Annex F
(informative)
Annex G
(informative)
“At any time, if a host receives an ARP packet (request *or* reply) where the 'sender IP address' is
(one of) the host's own IP address(es), but the 'sender hardware address' does not match any of the
host's own interface addresses, then this is a conflicting ARP packet, indicating some other host
also thinks it is validly using this address. To resolve the address conflict, a host shall respond to a
conflicting ARP packet as described in either (a), (b) or (c) below:
a) Upon receiving a conflicting ARP packet, a host MAY elect to immediately cease using the
address, and signal an error to the configuring agent as described above, or
b) If a host currently has active TCP connections or other reasons to prefer to keep the same IP
address, and it has not seen any other conflicting ARP packets recently (for Ethernet, within the
last ten seconds) then it MAY elect to attempt to defend its address. To defend its address, the
host first records the time that the conflicting ARP packet was received, and then broadcasts
one single ARP announcement, giving its own IP and hardware addresses. Having done this,
the host can then continue to use the address normally without any further special action.
However, if this is not the first conflicting ARP packet the host has seen, and the time recorded
for the previous conflicting ARP packet is recent (within ten seconds for Ethernet) then the host
SHALL immediately cease using this address and signal an error to the configuring agent as
described above. This is necessary to ensure that two hosts do not get stuck in an endless loop
with both hosts trying to defend the same address.
c) If a host has been configured such that it should not give up its address under any
circumstances (perhaps because it is the kind of device that needs to have a well-known stable
IP address, such as a link's default router, or a DNS server) then it MAY elect to defend its
address indefinitely. If such a host receives a conflicting ARP packet, then it should take
appropriate steps to log useful information such as source Ethernet address from the ARP
packet, and inform an administrator of the problem. The number of such notifications should be
appropriately controlled to prevent an excessive number of error reports being generated. If the
host has not seen any other conflicting ARP packets recently (for Ethernet, within the last ten
seconds) then it SHALL record the time that the conflicting ARP packet was received, and then
broadcast one single ARP announcement, giving its own IP and hardware addresses. Having
done this, the host can then continue to use the address normally without any further special
action. However, if this is not the first conflicting ARP packet the host has seen, and the time
recorded for the previous conflicting ARP packet is recent (within ten seconds for Ethernet) then
the host SHALL NOT send another defensive ARP announcement. This is necessary to ensure
that two misconfigured hosts do not get stuck in an endless loop flooding the network with
broadcast traffic while they both try to defend the same address.”
Annex H
(informative)
Wi-Fi Direct is an extension to the Wi-Fi transport or link layer technology from a DLNA perspective.
TCP/IP Networking operates over Wi-Fi Direct in the same manner as traditional Wi-Fi. Wi-Fi Direct
Certification requires each Wi-Fi Direct device to support Wi-Fi Simple Config™ enrollee and
Internal Registrar functionality, and also requires a DHCP server and DHCP client in order to
provide devices with a proper IP address.
H.1.2 Terminology
According to the WFA Wi-Fi Direct Certification, a P2P device is capable of two roles.
• P2P Group Owner (GO) role: An “AP-like” capability that controls a Wi-Fi P2P Group and
enables P2P Device connectivity.
• P2P Client role: A Wi-Fi P2P-compliant device that can connect to a P2P Group Owner.
Once created, a P2P Group (see Figure H.1) can be comprised of both P2P devices and legacy
devices. A legacy device can only be a client within a P2P Group. The created P2P Group can be
classified as temporary (single-session) or persistent (multiple sessions) for which credentials are
retained for subsequent sessions’ establishment.
___________
This information is given for the convenience of users of this standard and does not constitute an
endorsement by IEC of the product named. Equivalent products may be used if they can be shown
to lead to the same results.
A P2P Group is uniquely identified by a P2P Group ID, composed of the P2P Device address of the
GO, and an SSID that begins with the ASCII characters “DIRECT-“.
The scan phase performed on all channels supported by the P2P device serves two main purposes:
• discover P2P Devices that are currently member of an operational P2P Group;
• collect information about surrounding networks, and identify best potential operating channel(s)
for establishing a new P2P Group.
Scan
Find
Service
P2P Device Found Discovery
Group Owner
Negotiation
Provisioning
Group
Operational
The Find phase is used for two searching P2P devices to find each other in view of (re-)establishing
a P2P Group using the listen channel of one of the devices for initial signalling. During the Find
phase, a searching P2P device alternates between search and listen state (see Figure H.3).
• In the Search state, the P2P device transmits one or more Probe Request frames on each of the
Social Channels, i.e. channel 1, 6, and 11 in the 2.4 GHz band. The Probe Request contains
both P2P and WSC attributes. To narrow its search, the Probe Request can contain one or more
Requested Device Types or a P2P Device ID. In that case, only devices that match the request
will send a Probe Response.
• In the Listen state, the P2P device tunes to its chosen Listen channel, one among the three
social channels, and responds to received Probe Requests as required. The listen state duration
is randomized to ensure that two searching devices will eventually find each other.
P2P Device 1 P2P Device 2
Listen State of
Random duration. 802.11 Scan
listen
ch 1
listen
search
Listen State of
Random duration.
ch 1
Probe Request
Probe Request
ch 6
ch 6
Probe Response
Notify that P2P
Device found
ch11
Probe Request
listen
Once a P2P Device has found another P2P Device, it can optionally invoke P2P Service Discovery
to verify that both devices implement compatible services.
During the Group Owner negotiation phase, the two devices use a 3-way handshake to negotiate
which one will take the role of P2P Group Owner based on user preference and/or capabilities,
encoded as GO Intent value (0-15). Group Owner negotiation fails if both devices require to be the
Group Owner (intent value= 15). Other group parameters are also negotiated, such as Group
Operating Channel, Group duration (temporary or persistent), Group credentials, Group
capability…etc.
Group Provisioning takes place after Group Negotiation, all information required to execute
provisioning (e.g., PIN from a label or from the display, etc.) is obtained prior to P2P Group
Formation. The new P2P Group Owner starts the P2P Group session using the credentials
established during Group Owner Negotiation and then allows association by the Wi-Fi Direct device
with which it is in Group Formation.
Both devices can employ power savings techniques to address battery-operated devices
requirements.
• A P2P Client uses standard mechanism for indicating that it is using power management and
transiting from doze to awake state, with adapted mechanisms due to GO Power Saving or
unavailability.
• A P2P GO uses Wi-Fi Direct specific mechanisms for power saving or time-sharing other
activities. Such mechanism can be used as long as no legacy stations have joined the group.
Indeed, a legacy device expects the GO to behave just like an AP and, in particular, be always
available. The P2P GO advertises its periods of availability/ unavailability in Beacon. These
periods can be of type “one off” or “periodic” depending on traffic.
P2P Clients can influence the use of P2P Power Save by submitting a P2P Presence Request
when they have specific traffic requirements, such as when transmitting latency-sensitive data.
The duration that communication is unavailable due to power savings is on the order of 10’s of
milliseconds with little impact expected to higher layer protocols and applications.
In addition to arbitrating group access and data communication, the GO also provides client
discovery services, by including device information and available services for each P2P Client
associated to it, in Probe Responses returned to P2P Devices on receiving a Probe Request.
A P2P Group session ends when the GO leaves the group. A persistent Group (consisting of
multiple sessions) ceases to exist when the GO deletes the stored credentials for that group.
H.1.5.7 Cross-connection
This is the capability for a concurrent P2P GO to route traffic from the P2P Group to the
infrastructure network, and vice-versa. Cross-connection between a WLAN and a P2P Group uses
mechanisms above layer 2. A P2P Client cannot cross-connect, see Figure H.4.
H.2.2 and H.2.3 examines how an ephemeral Wi-Fi Direct connection can affect the assumptions
of long term network connectivity within the DLNA 2-box and 3-box system usages. To be more
specific, if a user starts a Wi-Fi Direct task after devices are on a DLNA home network, then
applications assuming the devices are still on the home network might not successfully operate
because IP addresses and IP subnets might change as the Wi-Fi Direct link activates. DLNA
networks today have a similar problem if they are reconfigured by changing cables or installing
new networking gear. In both the 2-box and 3-box cases, implementation decisions can be made to
mitigate the problem.
Subclauses H.2.2 and H.2.3 describe specific scenarios of the problems that can occur and
implementation methods to mitigate those problems.
The video server implementation that allows for multiple network interfaces has no interruption of
service from the DLNA perspective (Step 2a in Figure H.6).
The video server implementation that does not allow for multiple network interfaces can have an
interruption of service between the laptop and video server (Step 2b in Figure H.7 and Figure H.8).
Interruption of service can be mitigated by the video server deciding to disconnect only if the video
server is idle or sending an impending disconnect, and then automatically reconnecting back to the
DLNA Home Network once the camcorder and video server finish synchronization. The video
server implementation has the option to not accept the connection from the camcorder.
The video server implementation that allows for multiple network interfaces has no interruption of
service from the DLNA perspective (Step 2a in Figure H.10).
The video server implementation that does not allow for multiple network interfaces can have an
interruption of service between the laptop and video server (Step 2b in Figure H.11 and Figure
H.12). Interruption of service can be mitigated by the video server sending an impending
disconnect, and then automatically reconnecting back to the DLNA Home Network once the
camcorder and video server finish synchronization.
Annex I
(informative)
Another scenario that is enabled by the EPG device option is the use of an EPG data only server.
The user subscribes to a service which offers more extensive EPG data for a certain set of channels.
The application would retrieve the EPG data offered by such a service and make it available to any
DLNA EPG control point in the home. The advantage is that the clients make use of the DLNA
standard while the EPG service can use a proprietary way of providing the fuller EPG data.
A DMS (UPnP AV MediaServer) that implements the EPG device option will assign values to the
mandatory properties of EPG elements. The guidelines describe what type of information will be
assigned to each mandatory property. A detailed description for each property is provided for the
following standards: OpenEPG, TV-Anytime, and DVB-SI.
For example, consider a DMS implementing the EPG device option that uses an OpenEPG based
EPG description as its source. In this case, the guidelines define which OpenEPG data elements will
be assigned to which CDS properties. If a certain OpenEPG data element is not present, the
guidelines define the information which will be assigned as an alternative. Since the OpenEPG input
format can provide much more information than the small set of mandatory properties, the additional
data can be added to an EPGItem as foreign metadata. A client that is able to parse OpenEPG data
elements can use the OpenEPG based foreign meta-data to provide a richer EPG. A client which
cannot parse the OpenEPG data can still show a basic EPG.
I.3.2 FreeFormQuery
The EPG device option defines how the EPG data is presented as a set of EPGItem objects in the
CDS. Typically, an EPG control point would search the CDS to obtain relevant EPGItems. The
defined mapping of EPG data elements into CDS properties allows the UPnP CDS search action to
have access to the basic EPG information. Access to the additional information stored in foreign
metadata uses FreeFormQuery. The FreeFormQuery search mechanism allows a search to be
specified using the XQuery language. Typically an XQuery would be used to constrain the amount
of EPG data returned to the querier. For example, a query could be constructed which restricts the
EPG data to a limited set of channels and a time window to build an EPG grid screen.
The XQuery Language is a complex language that allows searching (and modifying) any XML based
document. Using a complete XQuery engine, a DLNA EPG Server would need to represent the
EPGItems in the CDS as an XML document, regardless of how the information is actually stored.
The XQuery engine uses this XML document as the source against which the query will be executed.
For a small embedded device it can be preferable to store the EPGItems in a local database. Since
executing an arbitrary XQuery on a database in a compact and efficient way is difficult or impossible,
two levels of XQuery subsets have been defined. The first XQuery subset, which is specified in
10.5.7.5, defines the bare minimum that needs to be implemented in any DLNA EPG Server. This
subset can be used on simple servers and is sufficient for common EPG searches. The second
subset, specified in 10.5.7.6, enables more complex searches while still being able to map an
XQuery to an internal database. The first subset is a subset of the second subset. Using this
approach allows data from an EPG source to be efficiently stored in a local database and each
XQuery is parsed and translated to a local database query. Through the CDS:FreeFormCapabilities
action, a UPnP AV Media Server can indicate which properties it emits in an XQuery. A small list of
mandatory properties is defined in the guidelines. A server can choose to support searching of
foreign metadata properties as well. Using the CDS:FreeFormCapabilities action an EPG control
point can determine, for example, if a server supports an XQuery that returns a list of movies from
a certain director in a certain year using TV-Anytime based foreign-metadata. Likewise, an EPG
control point can determine if a server supports an XQuery that returns a list of genres or other
features that are specified in other foreign-metadata formats.
elements simply do not contain a URL. In this case, the tuner feature merely provides a way to
communicate the channel lineup.
To distinguish between the cases described above the upnp:channelID property has a @type
attribute. In case of a DVB based system, the value of the channelID@type attribute will be “SI”. The
upnp:channelID property value will contain a DVB triplet consisting of “<Network ID>,<Transport
Stream ID>,<Service ID>”. In other systems where channels are indicated using a major and a minor
number (i.e. used in terrestrial digital broadcast systems), the value of the upnp:channelID@type
property will be “DIGITAL”. The upnp:channelID property will contain the major and minor number
separated by a comma. Finally, in systems where the channel numbering consists of integers only,
the value of the upnp:channelID@type property will be “ANALOG”. The upnp:channelID property
contains the channel number.
I.3.5 channelID@distriNetworkID
The upnp:channelID@distriNetworkID attribute value will contain a value indicating the network
from which a program is distributed and allows channels to be queried by the distribution source.
Note that the upnp:channelID@distriNetworkID attribute was defined in ISO/IEC 29341-14-12 as an
additional channelID qualifier.
Since the DLNA Extended Tuner is intended to expose a channel lineup through the CDS, rather
than expose a physical tuner, the number of Channel Lineup Containers is not necessarily tied to
the number of physical tuners in a system. For example, a device could have two physical tuners
and expose just one Channel Lineup Container representing a single line up. It is also possible to
have a system with no physical tuner, and one or more different lineups. The latter could be used in
the scenario where a PC based EPG Server offers rich EPG descriptions for other devices.
It is also possible to expose multiple views of the channel lineup of a tuner through the use of
Favorites and Presets Containers. For example, while the Channel Lineup Container contains the
list of all channels, a Favorites or Presets Container would show only the channels which the user
subscribes to. Other Favorites or Presets Containers can also be defined to allow users to compile
a list of favorite channels.
An EPG Server always supports the CDS:FreeFormQuery action for all EPG containers or an
ancestor container of each EPG container.
For each ObjectId listed as part of the FFQ <Feature> element, the extent of support for the XQuery
language is denoted by the level attribute. If the objectID@level attribute is set to “0” this means that
the full XQuery language is supported for this container. If the objectID@level attribute is set to
“DLNA_EPG” this means that only the minimal subset of XQuery is supported. If the objectID@level
attribute is set to “DLNA_EPG_EXPANDED” the extended XQuery subset is supported.
</Feature>
</Features>
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
for $x in DIDL-Lite//item[fn:starts-with(upnp:class,
“object.item.VideoBroadcast”) and fn:not(fn:exists(@refID))]
order by $x/upnp:channelID/@distriNetworkID ascending,
$item/upnp:channelID ascending
return $x
)
[fn:position()= (1 to 10)]
}
</DIDL-Lite>
If the DLNA_EPG query subset is supported, it is not possible to search for video broadcast items.
In that case, the EPG Server control point can revert to the CDS:Browse action to obtain the channel
lineup.
Searches on EPG data should pass an ObjectID (see 10.5.2) to restrict the search to the EPG tree
only.
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
for $item in DIDL-Lite//item[fn:starts-with(upnp:class, “object.item.epgItem”) and
fn:not(fn:exists(@refID))]
where $item/@id = “current epg item”
return <item>{$item/@id, $item/upnp:longDescription }</item>
)
[fn:position()= (1 to 10)]
}
</DIDL-Lite>
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”> {
(
for $item in DIDL-Lite//item
where $item/@id = “current epg item”
return <descr>{$item/@id, $item/upnp:longDescription }</descr>
)
}
</DIDL-Lite>
Retreiving EpgItem(s) by Keyword search on all channels: (search for TV programs containing
keyword in title or description in the coming two days)
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
for $item in DIDL-Lite//item[fn:starts-with(upnp:class, “object.item.epgItem”) and
fn:not(fn:exists(@refID))]
where $item/upnp:scheduledStartTime >= “2008-08-10T00:00:00” and
$item/upnp:scheduledEndTime < “2008-08-12T00:00:00”
(
fn:contains($item/dc:title,”keyword”) or
fn:contains($item/upnp:longDescription,”keyword”) order by $item/upnp:scheduledStartTime
ascending
return <item>{$item/@id, $item/dc:title, $item/upnp:longDescription}</item>
)
[fn:position()= (5 to 10)]
}
</DIDL-Lite>
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
for $i in DIDL-Lite//item[fn:starts-with(upnp:class, “object.item.epgItem”) and
fn:not(fn:exists(@refID))]
where $i/upnp:scheduledStartTime >= “2008-08-10T00:00:00” and
$item/upnp:scheduledEndTime < “2008-08-12T00:00:00” and
$i/upnp:channelID/@distriNetworkID = “example-tv“
AND
($i/upnp:channelID = “201“ OR $i/upnp:channelID = “202“ OR $i/upnp:channelID = “203“)
AND fn:contains($i/dc:title,”keyword”) or
fn:contains($i/upnp:longDescription,”keyword”)
order by $i/upnp:scheduledStartTime ascending
return <item>{$i/@id, $i/dc:title, $i/scheduledStartTime,
$i/scheduledEndTime }</item>
)
[fn:position()= (1 to 10)]
}
</DIDL-Lite>
<DIDL-Lite
xmlns=“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:upnp=“urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dc=“http://purl.org/dc/elements/1.1/”>
{
(
for $item in DIDL-Lite//item[fn:starts-with(upnp:class, “object.item.epgItem”) and
fn:not(fn:exists(@refID))]
where $item/upnp:scheduledStartTime >= “time 1” and $item/upnp:scheduledEndTime <
“time 2” and
$item/upnp:channelID/@distriNetworkID = “example-tv“ and $item/upnp:channelID =
“201“
order by $item/upnp:scheduledStartTime ascending
return <item>{$item/dc:title, $item/scheduledStartTime,
$item/scheduledEndTime }</item>
)
[fn:position()= (1 to 2)]
}
</DIDL-Lite>
Annex J
(normative)
Rating systems
This annex lays out all the currently recognized rating systems and their attributes. These are
summarized in Table L.1. The columns labeled “domain”, “valid ratings”, “age equivalence” and
“valid advice” are all normative fields, and their use is prescribed by the guidelines in 10.5.5.6. All
other columns are informative.
• all audiences – this rating indicates that the media is generally unrestricted and appropriate for
all ages and groups;
• X or over – this rating indicates that the media shall only be viewed by persons over the age of
“X”;
• X or over, supervised – this rating indicates that the media shall only be viewed by persons over
the age of “X”, but may be viewed by persons under the age of “X” with parental or adult
supervision;
• parental guidance – this rating indicates that the media may be viewed by persons of any age,
but parental or adult supervision may be recommended for children;
• exempt – this rating indicates that the media is exempt from classification, as may commonly be
the case for sports media or documentary films;
• banned – this rating indicates that the media has been banned in this country, and is not
appropriate for viewing by persons of any age or group;
• sexual – this item contains themes of a sexual nature;
• graphic – this item contains graphic violence;
• special – this content has a special rating, where special is defined by the local government or
domain;
• children – this rating indicates that the media may be viewed by persons of any age, and is noted
to be especially friendly or informative to young children;
• young adults – this content is appropriate for “young adults”, where the age range for young
adults is not defined;
• professional use – this content is intended for professional use;
• adult – this content is only appropriate for “adults”, where the age range for adults is not defined;
• under X – friendly to all ages, but especially intended for children under the age of X;
• film only – in some domains where ratings apply to both film and TV, this rating only applies to
movies;
• restricted – may only be shown under certain (government specific) restrictions;
• not for public viewing – these films may only be viewed in private residences;
• rating pending – this content has not yet been rated, and is currently under review.
The column labeled “age equivalence” is intended to be used programmatically to limit the viewing
of programs. Note that this field is not guaranteed to be accurate, or reflects local laws where the
EPG is being used or deployed, but is simply meant to be a best effort due to the lack of a global
rating system. This column should be interpreted as follows:
• XPG – this content should be freely available to persons that are of the age X or over, and may
be viewed by persons under the age of X with parental or adult supervision;
• X-YPG – this content should not be viewed by persons under the age of X, and may be viewed
freely by persons over the age of Y; persons that are at least X and younger than Y may view the
content with parental or adult supervision;
• <all ages valid> – this domain has age ratings for any integer that is equal to or larger than zero.
Note that due to the way that various countries rate their films, the ratings from one country may not
be transferrable to another country, despite the fact that some countries use common notations for
their rating systems. As a hypothetical example, one country could allow limited nudity and adult
language in a film that is rated for "all audiences", while another country may have an "all
audiences" rating that does not allow for any nudity and language. It would be especially
problematic if the second country banned nudity altogether, and an EPG developer allowed a film
from the first country to be shown to children. The same applies to the age ratings of various
counties, where moral and ethical judgments vary of which age group should be exposed to various
adult themes.
Unfortunately, there is no way of translating from one parental control system to another, so the task
of figuring out which film can be shown to which age group in which country is something that is left
to the judgment of the system implementer.
K-11 11 or over 11
K-13 13 or over 13
K-15 15 or over 15
K-18 18 or over 18
K-E exempt
France TV csa.fr -10 10 or over 10
-12 12 or over 12
-16 16 or over 16
-18 18 or over 18
France Film culture.gouv.fr U all audiences 0
-12 12 or over 12
-16 16 or over 16
-18 18 or over 18
-E Exempt
Germany Film spio.de FSK 0 all audiences 0
FSK 6 6 or over 6
FSK 12 12 or over 12
FSK 16 16 or over 16
FSK 18 18 or over 18
Germany Games usk.de ohne all audiences 0
ab 6 6 or over 6
ab 12 12 or over 12
ab 16 16 or over 16
ab 18 18 or over 18
Hong Kong Film tela.gov.hk I all audiences 0
IIA children,
supervised
IIB young adults,
supervised
III 18 or over 18
IV exempt
Iceland Film smais.is L all audiences 0
7 7 or over 7
12 12 or over 12
14 14 or over 14
16 16 or over 16
18 18 or over 18
India Film cbfcindia.tn.nic.in U all audiences 0
U/A 12 or over, 12PG
supervised
A 18 or over 18
S special
Indonesia Film lsf.go.id SU all audiences 0
A children
BO parental guidance
R teen 13
D mature
Ireland TV rte.ie GA all audiences 0
CH children
YA young adults
PS parental guidance
MA mature
Ireland Film ifco.ie G all audiences 0
PG parental guidance
12A 12 or over, 12PG
supervised
15A 15 or over, 15PG
supervised
16 16 or over 16
18 18 or over 18
Japan Film eirin.jp G all audiences 0
PG-12 12 or over, 12PG
supervised
R-15 15 or over 15
R-18 18 or over 18
Japan / CERO Games cero.gr.jp A all audiences 0
B 12 or over 12
C 15 or over 15
D 17 or over 17
Z 18 or over 18
Latvia Film nfc.lv V all audiences 0
VP-10 10 or over, 10PG
supervised
VP-12 12 or over, 12PG
supervised
N-12 12 or over 12
N-14 14 or over 14
N-16 16 or over 16
N-18 18 or over 18
Maldives Film nbc.gov.mv G all audiences 0
and TV PG parental guidance
12+ 12 or over 12
15+ 15 or over 15
18+ 18 or over 18
18+R 18 or over, graphic 18
PU professional use
Mexico Film rtc.gob.mx AA children, under 7 0
and TV A all audiences 0
B 12 or over 12
B-15 15 or over, film 15
only
C 18 or over 18
D adult 0
Netherlands Film kijkwijzer.nl AL all audiences 0 Violence
and TV 6 6 or over 6 Scary
Sex
9 9 or over 9
Discrimin
12 12 or over 12 ation
16 16 or over 16 Drugs
Language
New Zealand Film censorship.govt.n E exempt
z G all audiences 0
PG parental guidance
M13 13 or over 0
M mature 0
R13 13 or over 13
R15 15 or over 15
R16 16 or over 16
R18 18 or over 18
RP16 16 or over 16
Nigeria Film nfvcb.gov.ng G all audiences 0
PG parental guidance
12 12 or over 12
12A 12 or over, 12PG
supervised
15 15 or over 15
18 18 or over 18
RE restricted 0
Norway Film medietilsynet.no A all audiences 0
7 7 or over 7
11 11 or over 11
15 15 or over 15
18 18 or over 18
Philippines / TV .ph_MTRCB_TV General all audiences 0
MTRCB Patronage
Parental parental guidance
Guidance
Philippines / Film .ph_MTRCB_FILM G all audiences 0
MTRCB GP all audiences 0
PG-13 13 or over, 13PG
supervised
R 17 or over 17
R-13 13 or over 13
R-18 18 or over 18
X not for public
viewing
Poland TV krrit.gov.pl Green all ages
Circle
Yellow parental guidance
Circle
Red Circle adult
Yellow 7 7 or over 7
Yellow 12 12 or over 12
Yellow 16 16 or over 16
Poland Film .po_ FILM BO all audiences 0
6 6 or over 6
12 12 or over 12
15 15 or over 15
18 18 or over 18
21 21 or over 21
Green all audiences 0
Circle
Yellow 7 7 or over 7
Yellow 12 12 or over 12
Yellow 16 16 or over 16
Red Circle 18 or over 18
Annex K
(normative)
Table K.2 shows examples of mapping of SEI 3D format type information to HDMI VSI values. Note
that correct signalling through use of the HDMI VSI is necessary to ensure that the 3D-capable
display automatically detects the active 3D format.
Table K.2 – Examples of mapping of SEI 3D format type information to HDMI VSI
• frame_packing_arrangement_extension_flag: 0
Note that this does not preclude other post-decode operations such as scaling of the video to fit in
a quarter-screen GUI window. The purpose is to prevent obliteration of the intentional 3D floating
window effects that may be added by the content producer.
• The Rendering Endpoint or the RUI client should output the S3D content via HDMI if the value of
the diagnostic parameter: DVIHDMI3DIncompatibilityControl is set to passthru3D(1). If any user
message is generated in this condition, it must be displayed in the same panelization
arrangement as the detected S3D content.
• The Rendering Endpoint or the RUI client should block the output of S3D content if the value of
the diagnostic parameter: DVIHDMI3DIncompatibilityControl is set to block3D. If any user
message is generated in this condition, it must be displayed in 2D.
Note that certain DTVs may support S3D formats but are not capable of reporting 3D support in the
Enhanced EDID (E-EDID) where EDID stands for Extended Display Identification Data). These
requirements only apply to user messages generated by the DMR/DMP. The default setting for the
DVIHDMI3DIncompatibilityControl is “block3D” to prevent panelized 3D from showing on 2D
displays, while the ability to change the parameter to “pass-through” is necessary to support certain
legacy 3D displays such as Samsung and Mitsubishi.
Annex L
Bibliography
ISO 639-1, Language code
IETF RFC 2518, HTTP Extensions for Distributed Authoring – WEBDAV, Februaty 1999
http://www.ietf.org/rfc/rfc2518.txt
Nielsen Norman Group: Response Times: The 3 Important Limits, January 1, 1993
http://www.nngroup.com/articles
Shneiderman, Ben: Designing the User Interface: Strategies for Effective Human-Computer
Interaction
http://www.nngroup.com/articles/
Traditionally live content is closely tied with broadcast content so is very often linked to a tuner as
the Content Source. Guideline in 10.1.4.16.1 identifies the set of guidelines for Basic and Extended
Tuner Representation. However, the source of live content is no longer limited to a local tuner. For
example, IPTV delivery of broadcast content does not require use of a tuner.
This Annex is to provide a consistent and explicit association between implementations of live
content delivery and DLNA guidelines for protocolInfo. This association is to help avoid confusion in
implementing DLNA guidelines for live content support as well as to help avoid running into
interoperability issues between the servers and the clients.
Various implementations exist for the TSB feature. Two common implementations exhibit different
behaviours in terms of updating seek-able time or byte range. One implementation increases the
starting data boundary s0 periodically while the other implementation updates the starting data
boundary s0 when the playback point enters the next event/program. In the latter case, s0 is fixed
for a period of time such as the duration of the current event or program, and then jumps to the
starting point of the next event.
Both of these implementations need to be considered as legitimate scenarios for supporting the
Limited Random Access Data Availability Mode 0 defined in DLNA guidelines.
Specifically, one of the characteristics of the Limited Random Access Data Availability model under
mode 0, as defined in 11.4.2.16.2, is:
“The s0 data boundary shall map to a beginning that shall change with time”
Both of these implementations, i.e., s0 data boundary increases continuously and s0 increases
stepwise with time, is consistent with this characteristic.
For the live streaming or TSB cases, streaming from the live position is initiated in response to a
client HTTP request that is not a random access request (e.g. an HTTP request that omits the
Range and TimeSeekRange.dlna.org header), according to 10.1.3.33.2 and 11.4.2.16.2.
In either the TSB or in-progress recording cases, streaming from the live position can also occur
if/when the client consumes all buffered content returned in response to a request that includes the
live position (according to 11.4.3.19.2 and 11.4.3.20.1). A client can establish the range of the
buffered content by issuing a HTTP HEAD request containing a type-specific random access
request (e.g. "Range: bytes=0-" or "TimeSeekRange.dlna.org: npt=0-"). The server response will
contain the random access range (s 0 -s N ) - with s N indicating the effective live position (described in
11.4.3.23.3 and 11.4.3.20.5).
Figure M.1 illustrates the relationship of the live position to a TSB available data range.
S0 SN ~ live position
S0 increasing SN increasing
Target Response consumption is being regulated by the server instead of the client's on-demand
processing of the stream (described in 10.1.3.28.1(b)).
For the TSB or in-progress recording cases, the client may "fall behind" the live position due to
network bandwidth disruptions or for pausing via Connection Stalling (described in 11.4.3.43). Once
behind the live position, the client may continue reading the Target Response without any
expectation of data loss since the source data can be returned from the data in the TSB or
in-progress recording.
In the live streaming case, however, the server’s ability to buffer source content is limited. And
if/when the client falls sufficiently behind in its consumption of the Target Response, the server will
have no choice but to drop source data. The server needs to set the sp-flag (the Sender Paced flag)
in this case, indicating to the client that all Target Response data returned is from the live position
and discontinuities will be introduced (in a profile-compliant fashion) if/when the client falls behind
(described in 10.1.3.28.1 and 10.1.3.35.1). A client streaming content with sp-flag set to “true”
should read the content data as quickly as possible to avoid creating discontinuities unnecessarily.
A client still needs to be tolerant of discontinuities, however, since they can be introduced by the
server when the client falls behind due to conditions outside the client’s control (e.g. network
disruptions).
Since the Sender Paced flag expresses the inability for the server to support transfer rates lower
than the source content delivery rate (due to limited buffering resources), the http-stalling (HTTP
Connection Stalling) and tm-b (Background Transfer) flags cannot be set in conjunction with the
Sender Paced flag (described in 10.1.3.38 and 10.1.3.37, respectively).
A client can make a HTTP HEAD or GET request using HTTP 1.1 and the server could respond with
Chunked Transfer Coding in which case the Content-Length header is not allowed via 11.4.3.13.4.
In this case the server will indicate a size for each chunk during HTTP transfer and terminate the
transfer by sending a chunk of zero size.
Alternatively, the client could send an HTTP HEAD or GET message using HTTP 1.0 in which case
the server cannot respond with Chunked Transfer Coding because it’s not supported by HTTP 1.0.
In this case the server needs to support HTTP 1.0 requests according to 11.4.3.8.1 and close the
HTTP connection when the last byte of the response message has been sent (according to
11.4.3.16.2).
• The op-param a-val indicates support of the TimeSeekRange.dlna.org HTTP header (see
11.4.3.23) for the context of the protocolInfo under the "Full Random Access Data Availability"
model
• The op-param b-val indicates support of the Range HTTP header (see 11.4.3.22) for the context
of the protocolInfo under the "Full Random Access Data Availability" model
• If link protection is supported, as indicated by bit 16, the lp-flag, the flags-param
cleartextbyteseek-full (Bit-15) indicates support for cleartext byte seek on the resources under
the “Full Random Access Data Availability” model.
If the Content Source assigns "0" to both a-val and b-val of the op-param, then the op-param is
omitted from the 4th field as specified in 10.1.3.20.2.
The limited operation flags, including lop-npt, lop-bytes and lop-cleartextbytes, are part of
flags-param:
o op-param to be present with a-val and b-val set according to the access modes
supported for the recorded content
o flags-param with lop-npt, lop-bytes, and lop-cleartextbytes set to zeroes and
cleartextbyteseek-full set if cleartext byte seek is supported for the link-protected
(lp-flag set) recorded content
• s 0 -increasing=false; s N -increasing=true
• sp-flag=false
M.4.2.3 Live streaming content
• No random access
o op-param to be omitted
o flags-param with lop-npt, lop-bytes, lop-cleartextbytes, and cleartextbyteseek-full
bits set to zeroes
• s 0 -increasing=true; s N -increasing=true
• sp-flag=true
M.4.2.4 Complete DVR recording content
• Full Random Access Data Availability
o op-param to be present
o flags-param with lop-npt, lop-bytes and lop-cleartextbytes set to zeroes
• s 0 -increasing=false; s N -increasing=false
• sp-flag=false
• Note: Once completed, instance-length and instance-duration needs to be returned in all
response headers and res@size and res@duration needs to be set.