1、Information technology UPnP Device ArchitecturePart 20-10: Audio video device control protocol Level 4 Audio video transport serviceBS ISO/IEC 29341-20-10:2017BSI Standards PublicationWB11885_BSI_StandardCovs_2013_AW.indd 1 15/05/2013 15:06Information technology UPnP Device Architecture Part 20-10:
2、Audio video device control protocol Level 4 Audio video transport serviceTechnologies de linformation Architecture de dispositif UPnP Partie 20-10: Protocole de contrle de dispositif audio-vido Niveau 4 Service de transport audio-vidoINTERNATIONAL STANDARDISO/IEC 29341-20-10Reference numberISO/IEC 2
3、9341-20-10:2017(E)First edition2017-09 ISO/IEC 2017National forewordThis British Standard is the UK implementation of ISO/IEC 29341-20-10:2017.The UK participation in its preparation was entrusted to Technical Committee ICT/-/1, Information systems co-ordination.A list of organizations represented o
4、n this committee can be obtained on request to its secretary.This publication does not purport to include all the necessary provisions of a contract. Users are responsible for its correct application. The British Standards Institution 2017 Published by BSI Standards Limited 2017ISBN 978 0 580 90844
5、6ICS 35.200Compliance with a British Standard cannot confer immunity from legal obligations.This British Standard was published under the authority of the Standards Policy and Strategy Committee on 30 September 2017.Amendments/corrigenda issued since publicationDate Text affectedBRITISH STANDARDBS I
6、SO/IEC 293412010:2017Information technology UPnP Device Architecture Part 20-10: Audio video device control protocol Level 4 Audio video transport serviceTechnologies de linformation Architecture de dispositif UPnP Partie 20-10: Protocole de contrle de dispositif audio-vido Niveau 4 Service de trans
7、port audio-vidoINTERNATIONAL STANDARDISO/IEC 29341-20-10Reference numberISO/IEC 29341-20-10:2017(E)First edition2017-09 ISO/IEC 2017BS ISO/IEC 293412010:2017ii ISO/IEC 2017 All rights reservedCOPYRIGHT PROTECTED DOCUMENT ISO/IEC 2017, Published in SwitzerlandAll rights reserved. Unless otherwise spe
8、cified, 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
9、ISOs member body in the country of the requester.ISO copyright officeCh. de Blandonnet 8 CP 401CH-1214 Vernier, Geneva, SwitzerlandTel. +41 22 749 01 11Fax +41 22 749 09 47copyrightiso.orgwww.iso.orgISO/IEC 29341-20-10:2017(E)BS ISO/IEC 293412010:2017ii ISO/IEC 2017 All rights reservedCOPYRIGHT PROT
10、ECTED DOCUMENT ISO/IEC 2017, Published in SwitzerlandAll 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
11、prior written permission. Permission can be requested from either ISO at the address below or ISOs member body in the country of the requester.ISO copyright officeCh. de Blandonnet 8 CP 401CH-1214 Vernier, Geneva, SwitzerlandTel. +41 22 749 01 11Fax +41 22 749 09 47copyrightiso.orgwww.iso.orgISO/IEC
12、 29341-20-10:2017(E)ISO/IEC 29341-20-10:2017(E) ISO/IEC 2017 All rights reserved iii 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 4.1.1 Data Types 5 4.1.2 String
13、s 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
14、.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
15、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 .
16、 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 Cur
17、rentTrackURI 24 5.2.20 AVTransportURI . 24 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) iv ISO/IEC 2017 All rights reserved 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
18、.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.3
19、6 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 .
20、 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_Sy
21、ncOffsetAdj 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 GetMe
22、diaInfo() . 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 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) iv ISO/IEC 2017 All rights
23、reserved 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 .
24、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_
25、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
26、.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
27、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 GetDeviceCapabili
28、ties() 47 5.4.9 GetTransportSettings() . 47 5.4.10 Stop() 48 5.4.11 Play(). 49 5.4.12 Pause() 50 ISO/IEC 29341-20-10:2017(E) ISO/IEC 2017 All rights reserved v 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.1
29、9 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 SetStaticPlaylis
30、t() 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
31、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
32、 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 Implem
33、entation 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 BS ISO/IEC 293
34、412010:2017ISO/IEC 29341-20-10:2017(E) vi ISO/IEC 2017 All rights reserved 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 Playlis
35、t 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 Exa
36、mple of SyncOffset State Variable 109 B.9.3 Example Scenarios for SyncPlay() Action . 109 Annex C (informative) Bibliography 113 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) vi ISO/IEC 2017 All rights reserved B.2 Transport Settings . 98 B.3 Navigation . 98 B.4 AVTransportURI Concept . 98 B.
37、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 S
38、ubmitting 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 ISO/IEC 29341-20-10:2017(E)
39、ISO/IEC 2017 All rights reserved vii 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 TransportSta
40、te . 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 f
41、or 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 allowedValueLis
42、t 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 E
43、rror 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
44、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 GetDeviceCapabi
45、lities() . 47 Table 39 Arguments for GetTransportSettings() . 47 Table 40 Error Codes for GetTransportSettings() . 48 Table 41 Arguments for Stop() 48 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) viii ISO/IEC 2017 All rights reserved Table 42 Error Codes for Stop() 49 Table 43 Arguments for
46、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 Tabl
47、e 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 5
48、9 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 Argume
49、nts 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 AdjustSy