Information technology — UPnP Device Architecture — Part 20-10: Audio video device control protocol — Level 4 — Audio video transport service

ISO/IEC 29341-20-10:2017 is compliant with UPnP Device Architecture version 1.0 [14]. This service type enables control over the transport of audio and video streams. The service type defines a common model for A/V transport control suitable for a generic user interface. It can be used to control a wide variety of disc, tape and solid-state based media devices such as CD players, VCRs and MP3 players. A minimal implementation of this service can be used to control tuners. The service type is related to the ConnectionManager service type, which describes A/V connection setup procedures, and the ContentDirectory service, which offers meta-information about the resource stored on the media. AVTransport also offers an action to retrieve any metadata embedded in the resource itself. This service type does not offer scheduled recording.

Technologies de l'information — Architecture de dispositif UPnP — Partie 20-10: Protocole de contrôle de dispositif audio-vidéo — Niveau 4 — Service de transport audio-vidéo

General Information

Status
Published
Publication Date
12-Sep-2017
Current Stage
9060 - Close of review
Start Date
03-Mar-2028
Ref Project

Buy Standard

Standard
ISO/IEC 29341-20-10:2017 - Information technology -- UPnP Device Architecture
English language
114 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 29341-20-10
First edition
2017-09
Information technology — UPnP
Device Architecture —
Part 20-10:
Audio video device control
protocol — Level 4 — Audio video
transport service
Technologies de l'information — Architecture de dispositif UPnP —
Partie 20-10: Protocole de contrôle de dispositif audio-vidéo —
Niveau 4 — Service de transport audio-vidéo
Reference number
ISO/IEC 29341-20-10:2017(E)
©
ISO/IEC 2017

---------------------- Page: 1 ----------------------
ISO/IEC 29341-20-10:2017(E)

COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2017, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO/IEC 2017 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 29341-20-10:2017(E)


CONTENTS
1  Scope . 1
2  Normative references . 1
3  Terms, definitions, symbols and abbreviations . 4
3.1  Provisioning terms . 4
3.2  Symbols . 5
4  Notations and Conventions . 5
4.1  Notation . 5
pes . 5
4.1.1  Data Ty
4.1.2  Strings Embedded in Other Strings . 5
4.1.3  Extended Backus-Naur Form . 6
4.2  Derived Data Types . 6
4.2.1  Summary . 6
4.2.2  CSV Lists . 6
4.3  Management of XML Namespaces in Standardized DCPs . 8
4.3.1  Namespace Prefix Requirements . 12
4.3.2  Namespace Names, Namespace Versioning and Schema Versioning . 13
4.3.3  Namespace Usage Examples . 15
4.4  Vendor-defined Extensions . 15
4.4.1  Vendor-defined Action Names . 15
4.4.2  Vendor-defined State Variable Names . 15
4.4.3  Vendor-defined XML Elements and attributes . 16
4.4.4  Vendor-defined Property Names . 16
5  Service Modeling Definitions. 16
5.1  ServiceType . 16
5.2  State Variables . 16
5.2.1  State Variable Overview . 16
5.2.2  TransportState . 18
5.2.3  TransportStatus . 19
5.2.4  CurrentMediaCategory . 19
5.2.5  PlaybackStorageMedium . 19
5.2.6  RecordStorageMedium . 21
5.2.7  PossiblePlaybackStorageMedia . 21
5.2.8  PossibleRecordStorageMedia . 21
5.2.9  CurrentPlayMode . 21
5.2.10  TransportPlaySpeed . 21
5.2.11  RecordMediumWriteStatus . 21
5.2.12  CurrentRecordQualityMode . 22
5.2.13  PossibleRecordQualityModes . 22
5.2.14  NumberOfTracks . 22
5.2.15  CurrentTrack . 23
5.2.16  CurrentTrackDuration . 23
5.2.17  CurrentMediaDuration . 23
5.2.18  CurrentTrackMetaData . 24
5.2.19  CurrentTrackURI . 24
5.2.20  AVTransportURI . 24
 ISO/IEC 2017 – All rights reserved  iii

---------------------- Page: 3 ----------------------
ISO/IEC 29341-20-10:2017(E)

5.2.21  AVTransportURIMetaData . 24
5.2.22  NextAVTransportURI . 24
5.2.23  NextAVTransportURIMetaData . 24
5.2.24  RelativeTimePosition . 25
5.2.25  AbsoluteTimePosition . 25
5.2.26  RelativeCounterPosition . 25
5.2.27  AbsoluteCounterPosition . 25
5.2.28  CurrentTransportActions . 26
5.2.29  LastChange . 26
5.2.30  DRMState . 26
5.2.31  SyncOffset . 27
5.2.32  A_ARG_TYPE_SeekMode . 28
5.2.33  A_ARG_TYPE_SeekTarget . 28
5.2.34  A_ARG_TYPE_InstanceID . 29
5.2.35  A_ARG_TYPE_DeviceUDN . 29
5.2.36  A_ARG_TYPE_ServiceType . 29
5.2.37  A_ARG_TYPE_ServiceID . 29
5.2.38  A_ARG_TYPE_StateVariableValuePairs . 29
5.2.39  A_ARG_TYPE_StateVariableList . 30
5.2.40  A_ARG_TYPE_PlaylistData . 30
5.2.41  A_ARG_TYPE_PlaylistDataLength . 30
5.2.42  A_ARG_TYPE_PlaylistOffset . 30
5.2.43  A_ARG_TYPE_PlaylistTotalLength . 30
5.2.44  A_ARG_TYPE_PlaylistMIMEType . 31
5.2.45  A_ARG_TYPE_PlaylistExtendedType . 31
5.2.46  A_ARG_TYPE_PlaylistStep . 31
5.2.47  A_ARG_TYPE_PlaylistType . 31
5.2.48  A_ARG_TYPE_PlaylistInfo . 32
5.2.49  A_ARG_TYPE_PlaylistStartObjID . 35
5.2.50  A_ARG_TYPE_PlaylistStartGroupID . 35
5.2.51  A_ARG_TYPE_SyncOffsetAdj . 35
5.2.52  A_ARG_TYPE_PresentationTime . 36
5.2.53  A_ARG_TYPE_ClockId . 36
5.3  Eventing and Moderation . 36
5.3.1  Eventing and Moderation Overview. 36
5.3.2  Event Model . 38
5.4  Actions . 39
5.4.1  Action Overview . 39
5.4.2  SetAVTransportURI() . 41
5.4.3  SetNextAVTransportURI() . 42
5.4.4  GetMediaInfo() . 44
5.4.5  GetMediaInfo_Ext() . 45
5.4.6  GetTransportInfo() . 45
5.4.7  GetPositionInfo() . 46
5.4.8  GetDeviceCapabilities() . 47
5.4.9  GetTransportSettings() . 47
5.4.10  Stop() . 48
5.4.11  Play(). 49
5.4.12  Pause() . 50
iv   ISO/IEC 2017 – All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 29341-20-10:2017(E)

5.4.13  Record() . 51
5.4.14  Seek() . 52
5.4.15  Next() . 54
5.4.16  Previous() . 55
5.4.17  SetPlayMode() . 56
5.4.18  SetRecordQualityMode() . 57
5.4.19  GetCurrentTransportActions() . 57
5.4.20  GetDRMState() . 58
5.4.21  GetStateVariables() . 58
5.4.22  SetStateVariables() . 59
5.4.23  GetSyncOffset() . 60
5.4.24  SetSyncOffset() . 61
5.4.25  AdjustSyncOffset() . 61
5.4.26  SyncPlay() . 62
5.4.27  SyncStop() . 64
5.4.28  SyncPause() . 65
5.4.29  SetStaticPlaylist() . 66
5.4.30  SetStreamingPlaylist() . 68
5.4.31  GetPlaylistInfo() . 69
5.4.32  Common Error Codes . 70
6  XML Service Description . 72
7  Test . 92
Annex A (normative) SetAVTransportURI() Protocol Specifics . 93
A.1  Application to HTTP Streaming . 93
A.1.1  AVTransportURI Definition . 93
A.1.2  Control Point Behavior for SetAVTransportURI() . 93
A.1.3  Implementation of SetAVTransportURI() . 93
A.1.4  Cleanup . 93
A.2  Application to RTSP/RTP/UDP Streaming . 93
A.2.1  AVTransportURI Definition . 93
A.2.2  Control Point behavior for SetAVTransportURI() . 93
A.2.3  Implementation of SetAVTransportURI() . 94
A.2.4  Cleanup . 94
A.2.5  Implementation of Transport Controls . 94
A.3  Application to Internal Streaming . 95
A.3.1  AVTransportURI Definition . 95
A.3.2  Implementation of SetAVTransportURI() . 95
A.3.3  Cleanup . 95
A.4  Application to IEC61883 Streaming . 95
A.4.1  AVTransportURI Definition . 95
A.4.2  Implementation of SetAVTransportURI() . 95
A.4.3  Cleanup . 95
A.5  Application to Vendor-specific Streaming . 95
A.5.1  AVTransportURI Definition . 95
A.5.2  Implementation of SetAVTransportURI() . 96
A.5.3  Cleanup . 96
Annex B (informative) Theory of Operation . 97
B.1  TransportState Control . 97
 ISO/IEC 2017 – All rights reserved v

---------------------- Page: 5 ----------------------
ISO/IEC 29341-20-10:2017(E)

B.2  Transport Settings . 98
B.3  Navigation . 98
B.4  AVTransportURI Concept . 98
B.5  AVTransport Abstraction . 99
B.6  Supporting Multiple Virtual Transports . 101
B.7  Playlist Playback . 102
B.8  Dynamic Playlists . 103
B.8.1  Playlist Updating . 103
B.8.2  Determining Playlist Rendering Capabilities . 103
B.8.3  Submitting a Streaming Playlist . 104
B.8.4  Modifying a Current Playlist . 105
B.8.5  Submitting a Static Playlist . 106
B.8.6  Retrieving a Current Static Playlist . 107
B.9  CLOCKSYNC feature: Synchronized Playback . 108
B.9.2  Example of SyncOffset State Variable . 109
B.9.3  Example Scenarios for SyncPlay() Action . 109
Annex C (informative) Bibliography . 113


vi   ISO/IEC 2017 – All rights reserved

---------------------- Page: 6 ----------------------
ISO/IEC 29341-20-10:2017(E)

List of Tables
Table 1 — EBNF Operators . 6
Table 2 — CSV Examples . 7
Table 3 — Namespace Definitions . 9
Table 4 — Schema-related Information. 11
Table 5 — Default Namespaces for the AV Specifications . 13
Table 6 — State Variables . 17
Table 7 — allowedValueList for TransportState . 19
Table 8 — allowedValueRange for TransportStatus . 19
Table 9 — allowedValueList for CurrentMediaCategory . 19
Table 10 — allowedValueList for PlaybackStorageMedium . 20
Table 11 — allowedValueList for CurrentPlayMode . 21
Table 12 — allowedValueList for RecordMediumWriteStatus . 22
Table 13 — allowedValueList for CurrentRecordQualityMode . 22
Table 14 — allowedValueRange for NumberOfTracks . 23
Table 15 — allowedValueRange for CurrentTrack . 23
Table 16 — allowedValueList for CurrentTransportActions . 26
Table 17 — allowedValueList for DRMState . 27
Table 18 — allowedValueRangefor SyncOffset . 28
Table 19 — allowedValueList for A_ARG_TYPE_SeekMode . 28
Table 20 — Format of A_ARG_TYPE_SeekTarget . 29
Table 21 — allowedValueList for A_ARG_TYPE_PlaylistStep . 31
Table 22 — allowedValueList for A_ARG_TYPE_PlaylistType . 31
Table 23 — Event Moderation . 36
Table 24 — Actions . 39
Table 25 — Arguments for SetAVTransportURI() . 41
Table 26 — Error Codes for SetAVTransportURI() . 42
Table 27 — Arguments for SetNextAVTransportURI() . 43
Table 28 — Error Codes for SetNextAVTransportURI() . 44
Table 29 — Arguments for GetMediaInfo() . 44
Table 30 — Error Codes for GetMediaInfo() . 45
Table 31 — Arguments for GetMediaInfo_Ext() . 45
Table 32 — Error Codes for GetMediaInfo_Ext() . 45
Table 33 — Arguments for GetTransportInfo() . 46
Table 34 — Error Codes for GetTransportInfo() . 46
Table 35 — Arguments for GetPositionInfo() . 46
Table 36 — Error Codes for GetPositionInfo() . 47
Table 37 — Arguments for GetDeviceCapabilities() . 47
Table 38 — Error Codes for GetDeviceCapabilities() . 47
Table 39 — Arguments for GetTransportSettings() . 47
Table 40 — Error Codes for GetTransportSettings() . 48
Table 41 — Arguments for Stop() . 48
 ISO/IEC 2017 – All rights reserved vii

---------------------- Page: 7 ----------------------
ISO/IEC 29341-20-10:2017(E)

Table 42 — Error Codes for Stop() . 49
Table 43 — Arguments for Play() . 49
Table 44 — Error Codes for Play() . 50
Table 45 — Arguments for Pause() . 51
Table 46 — Error Codes for Pause() . 51
Table 47 — Arguments for Record() . 51
Table 48 — Error Codes for Record() . 52
Table 49 — Arguments for Seek() . 53
Table 50 — Error Codes for Seek() . 54
Table 51 — Arguments for Next() . 54
Table 52 — Error Codes for Next() . 55
Table 53 — Arguments for Previous() . 55
Table 54 — Error Codes for Previous() . 56
Table 55 — Arguments for SetPlayMode() . 56
Table 56 — Error Codes for SetPlayMode() . 57
Table 57 — Arguments for SetRecordQualityMode() . 57
Table 58 — Error Codes for SetRecordQualityMode() . 57
Table 59 — Arguments for GetCurrentTransportActions() . 58
Table 60 — Error Codes for GetCurrentTransportActions() . 58
Table 61 — Arguments for GetDRMState() . 58
Table 62 — Error Codes for GetDRMState() . 58
Table 63 — Arguments for GetStateVariables() . 59
Table 64 — Error Codes for GetStateVariables() . 59
Table 65 — Arguments for SetStateVariables() . 60
Table 66 — Error Codes for SetStateVariables() . 60
Table 67 — Arguments for GetSyncOffset() . 60
Table 68 — Error Codes for GetSyncOffset() . 61
Table 69 — Arguments for SetSyncOffset() . 61
Table 70 — Error Codes for SetSyncOffset() . 61
Table 71 — Arguments for AdjustSyncOffset() . 62
Table 72 — Error Codes for AdjustSyncOffset() . 62
Table 73 — Arguments for SyncPlay() . 63
Table 74 — Error Codes for SyncPlay() . 64
Table 75 — Arguments for SyncStop() . 65
Table 76 — Error Codes for SyncStop(). 65
Table 77 — Arguments for SyncPause() . 66
Table 78 — Error Codes for SyncPause() . 66
Table 79 — Arguments for SetStaticPlaylist() . 67
Table 80 — Error Codes for SetStaticPlaylist() . 68
Table 81 — Arguments for SetStreamingPlaylist() . 68
Table 82 — Error Codes for SetStreamingPlaylist() . 69
Table 83 — Arguments for GetPlaylistInfo() . 69
Table 84 — Error Codes for GetPlaylistInfo() . 70
viii   ISO/IEC 2017 – All rights reserved

---------------------- Page: 8 ----------------------
ISO/IEC 29341-20-10:2017(E)

Table 85 — Common Error Codes .
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.