Presentation is loading. Please wait.

Presentation is loading. Please wait.

Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why use a class protocol? Core scenarios & functionality.

Similar presentations


Presentation on theme: "Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why use a class protocol? Core scenarios & functionality."— Presentation transcript:

1 Media Transfer Protocol supported

2 2 Session Outline Overview Overview Why use a class protocol? Why use a class protocol? Core scenarios & functionality Core scenarios & functionality Non-goals Non-goals Origins Origins Technical details Technical details Fundamentals Fundamentals Objects, properties, enumeration, references Objects, properties, enumeration, references Implementation details Implementation details USB optimizations & design considerations USB optimizations & design considerations Implementation example Implementation example Development resources Development resources Direct MTP Direct MTP MTP Monitor MTP Monitor MTP Simulator MTP Simulator Summary Summary Additional resources Additional resources Questions & Answers Questions & Answers

3 3 Why Use A Class Protocol? No driver required No driver required No driver development, installation or support costs No driver development, installation or support costs Match communication paradigm to API Match communication paradigm to API MTP mirrors current and future device connectivity API MTP mirrors current and future device connectivity API Better user experience Better user experience “Just works” “Just works” Interoperability Interoperability Future-compatible Future-compatible Device ecosystem development Device ecosystem development

4 4 Core Scenarios Plug and Play experience Plug and Play experience Self-describing protocol Self-describing protocol Device content synchronization Device content synchronization Send and retrieve media on portable players Send and retrieve media on portable players Synchronize contacts/messages/schedules on PIMs Synchronize contacts/messages/schedules on PIMs Acquire images from a digital still camera Acquire images from a digital still camera Device control and management Device control and management Set device clock, volume, display options Set device clock, volume, display options Play, pause, rewind media player Play, pause, rewind media player Remote content browsing Remote content browsing Identify objects by metadata Identify objects by metadata View representative samples of objects View representative samples of objects Metadata-defined abstract objects Metadata-defined abstract objects

5 5 Core Functionality Rich object enumeration Rich object enumeration Does not require a standard acceleration file Does not require a standard acceleration file Retrieve metadata separately from data Retrieve metadata separately from data Representative samples Representative samples Generic object transfer Generic object transfer Abstract, opaque and combination objects Abstract, opaque and combination objects Device description Device description Device capabilities Device capabilities Device metadata Device metadata

6 6 Non-Goals Streaming Streaming Requires and ensures bit-correctness Requires and ensures bit-correctness Has no quality of service guarantees Has no quality of service guarantees Playback from device requires buffering Playback from device requires buffering Device discovery, pairing Device discovery, pairing Relies on underlying transport Relies on underlying transport DRM DRM Enables, but does not define, DRM Enables, but does not define, DRM

7 7 Origins Origins in Picture Transfer Protocol Origins in Picture Transfer Protocol Dominant protocol for digital still cameras Dominant protocol for digital still cameras Used in PictBridge Used in PictBridge MTP = PTP and Extensions MTP = PTP and Extensions Bi-directionally compatible Bi-directionally compatible MTP devices can work with PTP devices MTP devices can work with PTP devices PTP devices will work with MTP devices PTP devices will work with MTP devices MTP Enhanced and Basic MTP Enhanced and Basic Devices designed for Windows should implement MTP Enhanced Devices designed for Windows should implement MTP Enhanced MTP Basic is an OS-neutral subset, proposed for standardization MTP Basic is an OS-neutral subset, proposed for standardization

8 8 Connect, identifies as using MTP Device capability Request device information Request list of contents Request metadata describing content Array of handles to content Send metadata Object exchange Connection Walk-Through

9 9 Fundamentals Binary Binary Actions Actions Operation  Response Operation  Response Events Events Device roles: Initiator-Responder Device roles: Initiator-Responder Initiator can send Operations Initiator can send Operations Responder responds, fires events Responder responds, fires events Device content represented by objects Device content represented by objects Device represented by device properties Device represented by device properties File system, file structure and transport neutral File system, file structure and transport neutral Device UI can remain active Device UI can remain active

10 10 Objects All data is represented by objects All data is represented by objects Audio, Video, Image, File, Album, etc. Audio, Video, Image, File, Album, etc. Objects can be binary, abstract or both Objects can be binary, abstract or both Abstract objects have no binary data, such as albums and playlists Abstract objects have no binary data, such as albums and playlists Objects are identified by 32-bit handles Objects are identified by 32-bit handles Objects are described by properties Objects are described by properties Device-constrained values Device-constrained values Interdependent properties enabled Interdependent properties enabled Data, Properties and References are sent and retrieved independently Data, Properties and References are sent and retrieved independently

11 11 Object Components Array of Object References that refer to other related objects on the device. Set of Object Properties, which define metadata and properties. These values are understood by and restricted by the device. Static and overview set of fundamental information about this object, included for PTP compatibility. Binary Object contents

12 12 Object References File system neutral → objects identified by 32-bit object handles File system neutral → objects identified by 32-bit object handles References used to associate objects References used to associate objects Playlists, Albums, etc. Playlists, Albums, etc. Unidirectional Unidirectional Meaning derived from context Meaning derived from context Reference maintenance performed by device Reference maintenance performed by device

13 13 Object References

14 14 Object enumeration Quickly enumerate interesting content Quickly enumerate interesting content Select by Select by Object format Object format Desired properties Desired properties Folder hierarchy Folder hierarchy Example return sets Example return sets All properties for all objects All properties for all objects Title, Artist and Duration for all WMA files Title, Artist and Duration for all WMA files Optimized for Optimized for Full (or sub-range) enumerations Full (or sub-range) enumerations High bandwidth High bandwidth High transaction cost High transaction cost Processing power imbalance Processing power imbalance

15 15 Object Enumeration – One At A Time WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favorites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D HandleFormatTitleArtistDurationFileName

16 16 Object Enumeration – Prop By Prop By Format HandleFormatTitleArtistDurationFileName WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favorites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D

17 17 Object Enumeration – All By Format HandleFormatTitleArtistDurationFileName WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favorites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D

18 18 Object Enumeration – All By Property HandleFormatTitleArtistDurationFileName WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favorites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D

19 19 Object Enumeration – All By Group HandleFormatTitleArtistDurationFileName WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favourites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D

20 20 Object Enumeration – All HandleFormatTitleArtistDurationFileName WMA MP3 MP3 MP3 WMA WMA WMA WMA WMA WMV WPL WMV Unknown Title1 Title2 Title3 Title4 Title5 Title6 Title7 Title8 Title9 Title10 Title11 Title12 Title13 Artist1 Artist2 Artist3 Artist2 Artist4 Artist3 Artist1 Artist5 Artist2 Artist4 Artist6 180000 200000 137000 257000 171000 148000 3600000 37000 130000 550000 110000 Song1.wma Song2.mp3 Song3.wma Song4.wma Song5.mp3 Vid1.wmv Song7.wma Favourites Vid2.wmv Song8.mp3 WinHec.ppt Song9.wma Song6.wma 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D

21 21 Optimizations Data aligned with packet boundaries Data aligned with packet boundaries No object size limit No object size limit Property datasets are unordered Property datasets are unordered Property datasets may be piped without pre-compilation Property datasets may be piped without pre-compilation Datasets designed to avoid back-referencing Datasets designed to avoid back-referencing

22 22 Implementation Details – Hardware Considerations Device Storage USB controller Driver Framework USBScan MTP Device CPU Device Storage USB/ ATAPI Bridge PC Device Driver Framework USBStor Portable Media Player CPU Automatic Switch MTP Compatible Mass Storage Optimized not suitable for MTP File Transfer using DMA MSC

23 23 Development Resources Direct MTP Direct MTP Useful for sending MTP operations to the device Useful for sending MTP operations to the device All operation parameters can be fully specified All operation parameters can be fully specified Device responses are displayed in the UI Device responses are displayed in the UI MTP Monitor MTP Monitor Monitors & logs USB bus traffic for MTP exchanges Monitors & logs USB bus traffic for MTP exchanges Parses and interprets MTP operations/responses/events Parses and interprets MTP operations/responses/events MTP Simulator MTP Simulator Software MTP device Software MTP device Requires simulator board to expose as device to the PC Requires simulator board to expose as device to the PC Provides a protocol reference Provides a protocol reference Useful for debugging device behavior with the MTP driver Useful for debugging device behavior with the MTP driver

24 24 Development Resources – Direct MTP

25 25 Development Resources – MTP Monitor Simple bus analyzer Simple bus analyzer Displays and parses MTP traffic Displays and parses MTP traffic Very useful for debugging device implementations Very useful for debugging device implementations

26 26 Summary A class protocol for portable media devices A class protocol for portable media devices Digital Cameras, Portable Media Players, Cellular Phones, etc Digital Cameras, Portable Media Players, Cellular Phones, etc Enable hybrid devices, generic firmware Enable hybrid devices, generic firmware Based on Picture Transfer Protocol (PTP) Based on Picture Transfer Protocol (PTP) Widely used standard for digital still cameras Widely used standard for digital still cameras MTP enables MTP enables Generic object transfer between devices Generic object transfer between devices Rich object description Rich object description Device management and control Device management and control File system, transport, file structure neutral File system, transport, file structure neutral

27 27 Call To Action Use MTP as a connectivity protocol for portable media players Use MTP as a connectivity protocol for portable media players Support shipping in the next Windows Media Player (codenamed Crescent) Support shipping in the next Windows Media Player (codenamed Crescent) Consider MTP as an upgrade path for Digital Still Cameras Consider MTP as an upgrade path for Digital Still Cameras PTP will continue to be fully supported and endorsed PTP will continue to be fully supported and endorsed Consider MTP as an object transfer & control protocol any intelligent portable device with storage Consider MTP as an object transfer & control protocol any intelligent portable device with storage Cellular handsets, hybrid devices Cellular handsets, hybrid devices Supported in Vista Supported in Vista

28 28 Community Resources Community Sites Community Sites http://www.microsoft.com/communities/default.mspx http://www.microsoft.com/communities/default.mspx http://www.microsoft.com/communities/default.mspx List of Newsgroups List of Newsgroups http://communities2.microsoft.com/communities/newsgroups/en- us/default.aspx http://communities2.microsoft.com/communities/newsgroups/en- us/default.aspx http://communities2.microsoft.com/communities/newsgroups/en- us/default.aspx http://communities2.microsoft.com/communities/newsgroups/en- us/default.aspx Attend a free chat or webcast Attend a free chat or webcast http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/seminar/events/webcasts/default.mspx http://www.microsoft.com/seminar/events/webcasts/default.mspx http://www.microsoft.com/seminar/events/webcasts/default.mspx Locate a local user group(s) Locate a local user group(s) http://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/usergroups/default.mspx Non-Microsoft Community Sites Non-Microsoft Community Sites http://www.microsoft.com/communities/related/default.mspx http://www.microsoft.com/communities/related/default.mspx http://www.microsoft.com/communities/related/default.mspx


Download ppt "Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why use a class protocol? Core scenarios & functionality."

Similar presentations


Ads by Google