Skip to main content

An Introduction to the DLNA Architecture: Network Technologies for Media Devices

Hardcover

£86.95

*VAT

An Introduction to the DLNA Architecture: Network Technologies for Media Devices

Edwin A. Heredia

ISBN: 978-0-470-88126-2 May 2011 418 Pages

Download Product Flyer

Download Product Flyer

Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description.

Description

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 <res> 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