跳到主要內容

An Introduction to the DLNA Architecture

$3697元 定價: $4108 9折 可訂購

也可以到門市自行翻閱這本書

店內位置

下單選門市自取可使用文化幣
有團購需求請加官方LINE詢問

LINE US!
直接購買
作者
Edwin A. Heredia
出版社
John Wiley
ISBN
9780470881262
出版日期
2011/05

簡介

This book describes the architecture and protocols for interconnecting media devices in home networks. The architecture and protocols described in this book have been developed during the last 10 years by R&D teams from several companies working jointly in two industry organizations known as UPnP and DLNA. This book mainly deals with the DLNA (Digital Living Network Alliance) protocol. This text is especially relevant for the design and development of smart homes, where media devices, communication devices, appliances, and sensors are all integrated in an intelligent network.

目錄

Preface xvii Acknowledgments xxi Acronyms xxiii 1. Introduction 1 1.1 Networks of Media Devices 1 1.2 Ubiquitous Computing at Home 3 1.3 Home Networking Challenges 5 1.4 Protocols for Networks of Media Devices 6 1.5 Protocol Development 6 2. Scenarios and Models 11 2.1 Usage Scenarios 11 2.1.1 Picture Sharing 11 2.1.2 Audio and A/V Streaming 12 2.1.3 Upload, Download, and Content Synchronization 14 2.1.4 Photo Printing 16 2.2 Control Models 16 2.2.1 The 2-Box Pull Model 17 2.2.2 The 2-Box Push Model 18 2.2.3 The 3-Box Model 19 2.2.4 Players vs. Renderers 19 2.3 Media Characterization 21 3 Device Classification 25 3.1 UPnP Devices and Control Points 25 3.2 UPnP Media Servers and Media Renderers 26 3.3 Device Taxonomy 29 3.4 Device Classes and Capabilities 30 3.4.1 Digital Media Servers 30 3.4.2 Digital Media Players 32 3.4.3 Digital Media Renderers 34 3.4.4 Digital Media Controllers 34 3.4.5 Push Controllers 36 3.4.6 Upload Devices and Controllers 37 3.4.7 Download Devices and Controllers 38 3.4.8 Printer Devices and Controllers 39 3.4.9 Home Infrastructure Devices 40 3.5 Device Nomenclature 41 4. Network Connectivity 43 4.1 Physical and Link Layers 43 4.2 TCP/IP Protocols 44 4.2.1 IP 44 4.2.2 TCP 46 4.2.3 UDP 49 4.2.4 ICMP 50 4.2.5 ARP 50 4.3 IP Addressing 51 4.4 DHCP 53 4.4.1 Address Acquisition 54 4.4.2 Verification and Renewal 55 4.4.3 Additional Functions 55 4.5 Auto-IP 56 4.5.1 Initialization Phase 56 4.5.2 Operational Phase 56 5. Discovery Protocols 59 5.1 Root and Embedded Devices 59 5.2 Discovery Messages 60 5.3 Presence Advertisements (SSDP Alive Messages) 63 5.4 Number and Types of Presence Advertisements 66 5.5 Exit Advertisements (SSDP Bye-Bye Messages) 67 5.6 Discovery Search Requests (M-SEARCH Requests) 68 5.7 Discovery Search Responses (M-SEARCH Responses) 70 6. Description Protocols 73 6.1 Device Description Document (DDD) 73 6.1.1 Structure of the Device Description Document 75 6.1.2 UPnP Device Type Identifier 76 6.1.3 Device Class Identifier 76 6.1.4 Capability Identifier 77 6.1.5 Icons in the Device Description Document 78 6.1.6 Service List in the Device Description Document 79 6.1.7 Embedded Devices 82 6.2 Service Description Document (SDD) 83 6.2.1 Structure of the Service Description Document 84 6.2.2 Description of Actions 85 6.2.3 Description of State Variables 87 6.2.4 Data Types 89 7. Server Control Protocols 91 7.1 The DMS Content Directory Service 92 7.1.1 The CDS Hierarchy 93 7.1.2 Class Values for Containers and Items 95 7.1.3 XML Representation of the CDS 97 7.1.4 Time Format for dc:date 102 7.1.5 The Element 106 7.1.6 Properties res@size and res@duration 107 7.1.7 Property res@bitrate 107 7.1.8 Property res@resolution 108 7.1.9 Property res@protocolInfo 109 7.1.10 CDS Actions and State Variables 116 7.1.11 CDS Example 117 7.1.12 CDS Browse Operations 122 7.1.13 CDS Search Operations 127 7.1.14 CDS Update Information 136 7.1.15 Album Art and Thumbnail Images 137 7.2 The DMS Connection Manager Service 139 7.2.1 CMS Actions and State Variables 139 7.2.2 Use of GetProtocolInfo() in a DMS 140 8. Renderer Control Protocols 147 8.1 Usage Model 147 8.2 Discovery of Content and Devices 150 8.3 The Connection Manager Service in a DMR 150 8.3.1 Use of protocolInfo in a DMR 151 8.3.2 Use of GetProtocolInfo() in a DMR 153 8.3.3 Connection and Service ID Values 155 8.4 The AV Transport Service in a DMR 156 8.4.1 AVT Media and Tracks 156 8.4.2 Relevant Actions and State Variables 157 8.4.3 DMR Transport States 160 8.4.4 Playing a Media Resource 161 8.4.5 Using SetAVTransportURI() 162 8.4.6 DMR State Transitions 164 8.4.7 Setting up the URI and Metadata State Variables 166 8.4.8 Playing Media Collections 168 8.4.9 Controller Seek Operations 171 8.4.10 Controller-Time Seek Operations 173 8.4.11 Time Format 175 8.4.12 Controller-Byte Seek Operations 176 8.4.13 Other Seek Operations 177 8.4.14 Playing at Different Speeds 178 8.4.15 AVT Service Events 180 8.5 The Rendering Control Service in a DMR 182 8.5.1 Relevant RCS Actions and State Variables 182 8.5.2 Audio Control Actions 184 8.5.3 Display Control Actions 187 8.5.4 RCS Service Events 189 8.6 Multiple Controllers in the Network 190 9. Exchange Protocols for Actions and Events 193 9.1 Control and Event URLs 193 9.2 Exchange Protocols for Actions 195 9.2.1 Action Requests 195 9.2.2 Action Response–Success 198 9.2.3 Action Response–Error 200 9.3 Exchange Protocols for Events 201 9.3.1 Subscription Request and Response 203 9.3.2 Renewal Request and Response 205 9.3.3 Cancellation Request and Response 206 9.3.4 Event Message and Response 206 10. HTTP Media Streaming 209 10.1 HTTP Servers and Clients 210 10.2 Transfer Modes 211 10.2.1 TCP Flow Control 212 10.2.2 Ideal Network Conditions 217 10.2.3 Interactive Mode 217 10.2.4 Background Mode 218 10.2.5 Streaming Mode 219 10.2.6 HTTP Streaming in Practice 221 10.3 HTTP Methods 223 10.3.1 The HTTP GET Method 223 10.3.2 The HTTP HEAD Method 225 10.3.3 The HTTP POST Method 226 10.4 HTTP Versions 226 10.5 Relevant HTTP Headers 227 10.5.1 Cache-Control 227 10.5.2 ContentFeatures.dlna.org 229 10.5.3 Content-Length 230 10.5.4 Content-Range 230 10.5.5 Content-Type 231 10.5.6 Date 231 10.5.7 getContentFeatures.dlna.org 232 10.5.8 Host 232 10.5.9 PlaySpeed.dlna.org 233 10.5.10 Pragma 234 10.5.11 Range 235 10.5.12 scmsFlags.dlna.org 235 10.5.13 Server 236 10.5.14 TimeSeekRange.dlna.org 237 10.5.15 Transfer-Encoding 239 10.5.16 TranferMode.dlna.org 239 10.5.17 User-Agent 240 11. Media Control Experience 241 11.1 Navigation Operations 243 11.1.1 Server Discovery 243 11.1.2 Renderer Discovery 246 11.1.3 Content Browsing 248 11.2 Playback Operations 250 11.2.1 Play 250 11.2.2 Stop 251 11.2.3 Pause 251 11.2.4 Seek 255 11.2.5 Fast Forward and Rewind 262 12. Digital Media Requirements 269 12.1 Media Formats and Profiles 270 12.1.1 Media Classes 270 12.1.2 Media Formats 270 12.1.3 Media Format Profiles 271 12.2 Proliferation of Media Format Profiles 271 12.3 Exposing Content in a CDS 273 12.4 MIME Types 274 12.5 The Profile ID 275 12.6 Media Interoperability 276 12.7 Mandatory Profiles for the MHD Category 278 12.7.1 MHD Image Class 278 12.7.2 MHD Audio Class 278 12.7.3 MHD A/V Class 278 12.8 Mandatory Profiles for the HND Category 279 12.8.1 HND Image Class 279 12.8.2 HND Audio Class 279 12.8.3 HND A/V Class 279 12.9 Summary of DLNA Media Requirements 280 13. Media Format Profiles 281 13.1 Image Class: JPEG Content 281 13.1.1 JPEG Content: Profile ID 281 13.1.2 JPEG Content: Introduction 282 13.1.3 JPEG Content: Encoding and File Format 282 13.1.4 JPEG Content: MIME Type 283 13.2 Audio Class: AAC Content 283 13.2.1 AAC Content: Profile ID 283 13.2.2 AAC Content: Introduction 284 13.2.3 AAC Content: Encoding and File Format 284 13.2.4 AAC Content: MIME Types 285 13.3 Audio Class: LPCM Content 285 13.3.1 LPCM Content: Profile ID 285 13.3.2 LPCM Content: Introduction 285 13.3.3 LPCM Content: Encoding and File Format 285 13.3.4 LPCM Content: MIME Types 285 13.3.5 LPCM Content: Transcoding Options 286 13.4 Audio Class: MP3 Content 286 13.4.1 MP3 Content: Profile ID 286 13.4.2 MP3 Content: Introduction 287 13.4.3 MP3 Content: Encoding and File Format 287 13.4.4 MP3 Content: MIME Type 287 13.5 Audio Class: WMA Content 287 13.5.1 WMA Content: Profile ID 287 13.5.2 WMA Content: Introduction 288 13.5.3 WMA Content: Encoding and File Format 288 13.5.4 WMA Content: MIME Type 288 13.6 A/V Class: AVC Content 289 13.6.1 AVC Content: Profile ID 289 13.6.2 AVC Content: Introduction 289 13.6.3 AVC Content: File Format 289 13.6.4 AVC Content: Video Encoding 289 13.6.5 AVC Content: Audio Encoding 290 13.6.6 AVC Content: MIME Type 290 13.7 A/V Class: MPEG-2 PS Content 290 13.7.1 MPEG-2 PS Content: Profile ID 290 13.7.2 MPEG-2 PS Content: Introduction 290 13.7.3 MPEG-2 PS Content: File Format 291 13.7.4 MPEG-2 PS Content: IFO Files 291 13.7.5 MPEG-2 PS Content: Video Encoding 292 13.7.6 MPEG-2 PS Content: Audio Encoding 292 13.7.7 MPEG-2 PS Content: MIME Type 293 13.8 A/V Class: MPEG-2 TS Content 293 13.8.1 MPEG-2 TS Content: Profile ID 293 13.8.2 MPEG-2 TS Content: Introduction 293 13.8.3 MPEG-2 TS Content: File Format 294 13.8.4 MPEG-2 TS Content: Video Encoding 299 13.8.5 MPEG-2 TS Content: Audio Encoding 300 13.8.6 MPEG-2 TS Content: MIME Types 301 13.9 A/V Class: WMV Content 301 13.9.1 WMV Content: Profile ID 301 13.9.2 WMV Content: Introduction 301 13.9.3 WMV Content: File Format 302 13.9.4 WMV Content: Video Encoding 302 13.9.5 WMV Content: Audio Encoding 302 13.9.6 WMV Content: MIME Type 302 13.10 MP4 Files 303 13.11 Profiles for Link Protection 303 13.12 Assignment of Profile IDs 304 14. AVT Actions and State Variables 307 14.1 AVT Actions 307 14.1.1 GetCurrentTransportActions() 307 14.1.2 GetDeviceCapabilities() 308 14.1.3 GetMediaInfo() 309 14.1.4 GetPositionInfo() 310 14.1.5 GetTransportInfo() 311 14.1.6 GetTransportSettings() 312 14.1.7 Next() 313 14.1.8 Pause() 313 14.1.9 Play() 314 14.1.10 Previous() 315 14.1.11 Seek() 315 14.1.12 SetAVTransportURI() 316 14.1.13 SetNextAVTransportURI() 317 14.1.14 SetPlayMode() 318 14.1.15 Stop() 319 14.1.16 X_DLNA_GetBytePositionInfo() 319 14.1.17 Other AVT Actions 320 14.2 AVT State Variables 320 14.2.1 AbsoluteCounterPosition 320 14.2.2 AbsoluteTimePosition 321 14.2.3 AVTransportURI 321 14.2.4 AVTransportURIMetaData 321 14.2.5 CurrentMediaDuration 321 14.2.6 CurrentPlayMode 322 14.2.7 CurrentRecordQualityMode 322 14.2.8 CurrentTrack 323 14.2.9 CurrentTrackDuration 323 14.2.10 CurrentTrackMetaData 323 14.2.11 CurrentTrackURI 323 14.2.12 CurrentTransportActions 324 14.2.13 LastChange 324 14.2.14 NextAVTransportURI 324 14.2.15 NextAVTransportURIMetaData 325 14.2.16 NumberOfTracks 325 14.2.17 PlaybackStorageMedium 325 14.2.18 PossiblePlaybackStorageMedia 326 14.2.19 PossibleRecordStorageMedia 326 14.2.20 PossibleRecordQualityModes 326 14.2.21 RecordMediumWriteStatus 326 14.2.22 RecordStorageMedium 327 14.2.23 RelativeCounterPosition 327 14.2.24 RelativeTimePosition 327 14.2.25 TransportPlaySpeed 327 14.2.26 TransportState 328 14.2.27 TransportStatus 328 14.2.28 X_DLNA_AbsoluteBytePosition 329 14.2.29 X_DLNA_CurrentTrackSize 329 14.2.30 X_DLNA_RelativeBytePosition 329 15. CDS Actions and State Variables 331 15.1 CDS Actions 331 15.1.1 Browse() 331 15.1.2 GetSearchCapabilities() 334 15.1.3 GetSortCapabilities() 335 15.1.4 GetSystemUpdateID() 335 15.1.5 Search() 336 15.1.6 Other CDS Actions 339 15.2 CDS State Variables 339 15.2.1 ContainerUpdateIDs 339 15.2.2 SearchCapabilities 340 15.2.3 SortCapabilities 340 15.2.4 SystemUpdateID 340 16. CMS Actions and State Variables 341 16.1 CMS Actions 341 16.1.1 GetCurrentConnectionIDs() 341 16.1.2 GetCurrentConnectionInfo() 342 16.1.3 GetProtocolInfo() 343 16.1.4 Other CMS Actions 344 16.2 CMS State Variables 344 16.2.1 CurrentConnectionIDs 344 16.2.2 SinkProtocolInfo 345 16.2.3 SourceProtocolInfo 345 17. RCS Actions and State Variables 347 17.1 RCS Actions 347 17.1.1 GetBrightness() 347 17.1.2 GetContrast() 348 17.1.3 GetMute() 348 17.1.4 GetSharpness() 349 17.1.5 GetVolume() 350 17.1.6 ListPresets() 350 17.1.7 SelectPreset() 351 17.1.8 SetBrightness() 352 17.1.9 SetContrast() 352 17.1.10 SetMute() 353 17.1.11 SetSharpness() 353 17.1.12 SetVolume() 354 17.1.13 Other RCS Actions 355 17.2 RCS State Variables 355 17.2.1 Brightness 355 17.2.2 Contrast 356 17.2.3 LastChange 356 17.2.4 Mute 356 17.2.5 PresetNameList 357 17.2.6 Sharpness 357 17.2.7 Volume 358 Appendix A: Error Codes 359 A.1 Generic UPnP Error Codes 359 A.2 Error Codes for the Content Directory Service 360 A.3 Error Codes for the Connection Manager Service 361 A.4 Error Codes for the AV Transport Service 361 A.5 Error Codes for the Rendering Control Service 362 Appendix B: Size Limits in Data Structures 363 Glossary 365 References 371 Index 379

為您推薦