1 / 18

Media Transfer Protocol Implementation Details

Media Transfer Protocol Implementation Details. Donby Mathieu Program Manager DMD Deployment Microsoft Corporation. Blake Manders Program Manager Windows Portable Devices Microsoft Corporation. Session Outline. Session Outline Background What is MTP? MTP Fundamentals

edda
Download Presentation

Media Transfer Protocol Implementation Details

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 Protocol Implementation Details Donby Mathieu Program Manager DMD Deployment Microsoft Corporation Blake Manders Program Manager Windows Portable Devices Microsoft Corporation

  2. Session Outline • Session Outline • Background • What is MTP? • MTP Fundamentals • Implementation Details • Suggested Schedule • Hardware Requirements • Resources Available • Identifying Device Capabilities • Using MTP with Windows Media Player • Using MTP with Image Acquisition • Designing for success - Gotchas • Future directions

  3. Background – What is MTP? • A protocol for intelligent storage devices • Based on and compatible with Picture Transfer Protocol (PTP) • Enables: • Metadata-based enumeration • Object transfer • Command & control • Eventing • Optimized for: • Very large storages • Multifunction devices • High-power initiators, low-power responders • A key part of WMDRM10-PD and PlaysForSure

  4. Background – MTP Fundamentals • Binary protocol • Initiator-responder model • Initiator initiates, responder must respond • Initiator builds model of responder contents • Transport-independent • Implemented over USB, IP • Multi-session aware • Device UI is a session • Extensible

  5. Background – MTP Fundamentals (con’t) • Device contents exposed as objects • Identified by session-based 32-bit object handles • Device described by device properties • Provide description & control • Objects described by object properties • Provide description & constraints • Device-initiated events • Multi-session support

  6. Implementation – Suggested Schedule • Phase 1: Installation • Install, setup & respond to GetDeviceInfo • Phase 2: Browsing • Add support for storage(s) • Object enumeration using GetObjectInfo • Phase 3: Object Transfer • SendObject, GetObject • DeleteObject • Phase 4: Object Properties • GetObjectPropDesc, GetObjectPropValue, SetObjectPropValue • Phase 5: Round out support • Miscellaneous remaining operations • Phase 6: Optimize • Enable optimized enumeration (GetObjectPropList, SendObjectPropList) • Enable transport optimizations

  7. Implementation – Suggested Schedule • In parallel: • Set up a simulation system: • MTP Simulator • MTP Monitor • DirectMTP • Develop device-side metadata store • Database recommended • Optimize for MTP row retrieval • Optimize database use and data transformations • Transform on the fly where possible • No buffering of responses

  8. Implementation – Hardware Requirements Mass Storage Optimized MTP Compatible not suitable for MTP With MSC, content storage is managed by the PC Driver Framework Driver Framework MTP MSC USBStor USBScan PC Device USB controller USB/ATAPI Bridge File Transfer using DMA Automatic Switch Device CPU Device Storage Device Player CPU With MTP, the Device CPU actively manages content storage Device Storage

  9. Implementation – Available Resources • MTP Specification • MTP Porting Kit: • DirectMTP • MTPMon • MTP Simulator • MTP sample ANSI-C implementation • PlaysForSure test kit

  10. Identifying Device Capabilities • Basic device format support in DeviceInfo • Device playback capabilities exposed indirectly through Object Properties • Object Properties are not only descriptive metadata, they are also functional • To get device capabilities, call GetObjectPropDesc • Property Description dataset contains constraints on allowed property values in FORM section • Allowed property values imply encoding parameters • Some parameters are interdependent • GetInterdependentPropDesc

  11. Using MTP With Windows Media Player • There is a Windows Media Player-specified MTP extension • Windows Media Player puts an XML file in root directory • Windows Media Player arranges content in an Artist -> Album -> Title file path hierarchy • Windows Media Player will leverage the device friendly name device property • Use MTPMon to profile Windows Media Player interaction with expected device setup (storage size, format support, etc.) and optimize accordingly

  12. Using MTP for Image Acquisition • PTP compatibility • No MTP-specific USB optimizations • Don’t limit functionality to enhanced operations • Implement SendObjectInfo as well as SendObjectPropList • Implement GetObjectInfo as well as GetObjectPropList • Refer to PIMA 15740 for complete specification • Support thumbnails • For dedicated imaging device, identify as USB PTP camera.

  13. Designing for Success – Gotchas • Architect for your system • Architect per the MTP specification, using MTP Porting Kit as a reference. • Identify high risk performance issues early. • Hashing algorithms? • Memory management? • Minimizing storage access? • Run PlaysForSure test kit early and often • Even if PlaysForSure isn’t a goal, it provides valuable feedback on performance and MTP conformance. • Read the documentation • A majority of answers to MTP questions can be found in the documentation • In the MTP specification • In the “Overview Of Portable Device Design” help file • In the “Portable Device Installation Considerations” document

  14. Future direction • Support for IP connected devices • Support more object types • More media types • Personal Information Management (PIM) data • Property definitions • Enhanced abstract object support • Additional functions • Media playback control • Auxiliary display • Sync primitives

  15. Community Resources • Windows Hardware & Driver Central (WHDC) • www.microsoft.com/whdc/default.mspx • Technical Communities • www.microsoft.com/communities/products/default.mspx • Non-Microsoft Community Sites • www.microsoft.com/communities/related/default.mspx • Microsoft Public Newsgroups • www.microsoft.com/communities/newsgroups • Technical Chats and Webcasts • www.microsoft.com/communities/chats/default.mspx • www.microsoft.com/webcasts • Microsoft Blogs • www.microsoft.com/communities/blogs

  16. Additional Resources • MTPInfo @ microsoft.com • Web Resources: • MTP Specification available at http://download.microsoft.com • MTP Porting Kit available at http://download.microsoft.com • Plays For Sure test kit available at http://www.microsoft.com/windows/windowsmedia/consumerelectronics/p4skit/p4s_why.aspx • Related Sessions • PlaysForSure: A Key Asset for Your Device and Windows PC • Cellular Phone connectivity in Longhorn • Auxillary Display Platform for Longhorn

  17. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

More Related