1 / 28

Media Transfer Protocol supported

Media Transfer Protocol supported . Session Outline. Overview Why use a class protocol? Core scenarios & functionality Non-goals Origins Technical details Fundamentals Objects, properties, enumeration, references Implementation details USB optimizations & design considerations

kolton
Download Presentation

Media Transfer Protocol supported

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Media Transfer Protocolsupported

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

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

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

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

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

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

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

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

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

  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. Object References • File system neutral → objects identified by 32-bit object handles • References used to associate objects • Playlists, Albums, etc. • Unidirectional • Meaning derived from context • Reference maintenance performedby device

  13. Object References

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

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

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

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

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

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

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

  21. Optimizations • Data aligned with packet boundaries • No object size limit • Property datasets are unordered • Property datasets may be pipedwithout pre-compilation • Datasets designed to avoidback-referencing

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

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

  24. Development Resources – Direct MTP

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

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

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

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

More Related