1、Information technology UPnP Device Architecture Part 20-10: Audio video device control protocol Level 4 Audio video transport service BS ISO/IEC 29341-20-10:2017 BSI Standards Publication WB11885_BSI_StandardCovs_2013_AW.indd 1 15/05/2013 15:06Information technology UPnP Device Architecture Part 20-
2、10: Audio video device control protocol Level 4 Audio video transport service Technologies de linformation Architecture de dispositif UPnP Partie 20-10: Protocole de contrle de dispositif audio-vido Niveau 4 Service de transport audio-vido INTERNATIONAL STANDARD ISO/IEC 29341-20-10 Reference number
3、ISO/IEC 29341-20-10:2017(E) First edition 2017-09 ISO/IEC 2017 National foreword This 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 organization
4、s represented on 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 2017 ISBN
5、 978 0 580 90844 6 ICS 35.200 Compliance 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 publication Date Text affect
6、ed BRITISH STANDARD BS ISO/IEC 293412010:2017Information technology UPnP Device Architecture Part 20-10: Audio video device control protocol Level 4 Audio video transport service Technologies de linformation Architecture de dispositif UPnP Partie 20-10: Protocole de contrle de dispositif audio-vido
7、Niveau 4 Service de transport audio-vido INTERNATIONAL STANDARD ISO/IEC 29341-20-10 Reference number ISO/IEC 29341-20-10:2017(E) First edition 2017-09 ISO/IEC 2017 BS ISO/IEC 293412010:2017 ii ISO/IEC 2017 All rights reserved COPYRIGHT PROTECTED DOCUMENT ISO/IEC 2017, Published in Switzerland All ri
8、ghts 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
9、either ISO at the address below or ISOs 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 copyrightiso.org www.iso.org ISO/IEC 29341-20-10:2017(E) BS ISO/IEC 293412010:2017 ii I
10、SO/IEC 2017 All rights reserved 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 p
11、osting on the internet or an intranet, without 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 office Ch. de Blandonnet 8 CP 401 CH-1214 Vernier, Geneva, Switzerland Tel. +41 22 749 01 11 Fa
12、x +41 22 749 09 47 copyrightiso.org www.iso.org ISO/IEC 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 Conv
13、entions 5 4.1 Notation 5 4.1.1 Data Types 5 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
14、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
15、 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
16、 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 CurrentMedi
17、aDuration 23 5.2.18 CurrentTrackMetaData . 24 5.2.19 CurrentTrackURI 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 Rela
18、tiveTimePosition . 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_T
19、YPE_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_P
20、laylistOffset 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
21、_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 SetAVTranspor
22、tURI() . 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 BS ISO/IEC 293412010:201
23、7ISO/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.2.26 RelativeCounterPosition . 25 5.2.27 AbsoluteCounterPosition 2
24、5 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.
25、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_Playl
26、istExtendedType . 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
27、_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()
28、 . 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 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 S
29、etPlayMode() . 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 SyncS
30、top() . 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
31、.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() . 9
32、3 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 Stream
33、ing 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 O
34、peration 97 B.1 TransportState Control 97 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.5 AVTransport Abstraction 99 B.6 Supporting Multiple Virtual Transports 101 B.7 Playlis
35、t 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
36、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 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) vi ISO/IEC 2017 All rights reserved B.2 Transport Settings . 9
37、8 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 Pla
38、ylist 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 (in
39、formative) Bibliography 113 ISO/IEC 29341-20-10:2017(E) 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 Stat
40、e 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 fo
41、r 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 all
42、owedValueRangefor 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 Ta
43、ble 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 Argum
44、ents 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 GetDeviceCapa
45、bilities() . 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 BS ISO/IEC 293412010:2017ISO/IEC 29341-20-10:2017(E) viii ISO/IEC 2017 All rights reserved Ta
46、ble 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 Cod
47、es 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 Ta
48、ble 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
49、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 Ad