Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why...
-
Upload
aliyah-holyoak -
Category
Documents
-
view
215 -
download
0
Transcript of Media Transfer Protocol supported. 2 Session Outline Overview Overview Why use a class protocol? Why...
Media Transfer ProtocolMedia Transfer Protocolsupported supported
22
Session OutlineSession Outline OverviewOverview
Why use a class protocol?Why use a class protocol? Core scenarios & functionalityCore scenarios & functionality Non-goalsNon-goals OriginsOrigins
Technical detailsTechnical details FundamentalsFundamentals Objects, properties, enumeration, referencesObjects, properties, enumeration, references
Implementation detailsImplementation details USB optimizations & design considerationsUSB optimizations & design considerations Implementation exampleImplementation example
Development resourcesDevelopment resources Direct MTPDirect MTP MTP MonitorMTP Monitor MTP SimulatorMTP Simulator
SummarySummary Additional resourcesAdditional resources Questions & AnswersQuestions & Answers
33
Why Use A Class Protocol?Why Use A Class Protocol?
No driver requiredNo driver required No driver development, installation or support costsNo driver development, installation or support costs
Match communication paradigm to APIMatch communication paradigm to API MTP mirrors current and future device connectivity APIMTP mirrors current and future device connectivity API
Better user experienceBetter user experience ““Just works”Just works”
InteroperabilityInteroperability Future-compatibleFuture-compatible Device ecosystem developmentDevice ecosystem development
44
Core ScenariosCore Scenarios
Plug and Play experiencePlug and Play experience Self-describing protocolSelf-describing protocol
Device content synchronizationDevice content synchronization Send and retrieve media on portable playersSend and retrieve media on portable players Synchronize contacts/messages/schedules on PIMsSynchronize contacts/messages/schedules on PIMs Acquire images from a digital still cameraAcquire images from a digital still camera
Device control and managementDevice control and management Set device clock, volume, display optionsSet device clock, volume, display options Play, pause, rewind media playerPlay, pause, rewind media player
Remote content browsingRemote content browsing Identify objects by metadataIdentify objects by metadata View representative samples of objectsView representative samples of objects Metadata-defined abstract objectsMetadata-defined abstract objects
55
Core FunctionalityCore Functionality
Rich object enumerationRich object enumeration Does not require a standard acceleration fileDoes not require a standard acceleration file Retrieve metadata separately from dataRetrieve metadata separately from data Representative samplesRepresentative samples
Generic object transferGeneric object transfer Abstract, opaque and combination objectsAbstract, opaque and combination objects
Device descriptionDevice description Device capabilitiesDevice capabilities Device metadataDevice metadata
66
Non-GoalsNon-Goals
StreamingStreaming Requires and ensures bit-correctnessRequires and ensures bit-correctness Has no quality of service guaranteesHas no quality of service guarantees Playback from device requires bufferingPlayback from device requires buffering
Device discovery, pairingDevice discovery, pairing Relies on underlying transportRelies on underlying transport
DRMDRM Enables, but does not define, DRMEnables, but does not define, DRM
77
OriginsOrigins
Origins in Picture Transfer ProtocolOrigins in Picture Transfer Protocol Dominant protocol for digital still camerasDominant protocol for digital still cameras Used in PictBridgeUsed in PictBridge MTP = PTP and ExtensionsMTP = PTP and Extensions
Bi-directionally compatibleBi-directionally compatible MTP devices can work with PTP devicesMTP devices can work with PTP devices PTP devices will work with MTP devicesPTP devices will work with MTP devices
MTP Enhanced and BasicMTP Enhanced and Basic Devices designed for Windows should implement MTP EnhancedDevices designed for Windows should implement MTP Enhanced MTP Basic is an OS-neutral subset, proposed for standardizationMTP Basic is an OS-neutral subset, proposed for standardization
88
Connect, identifies as using MTPConnect, identifies as using MTP
Device capabilityDevice capability
Request device informationRequest device information
Request list of contentsRequest list of contents
Request metadata describing contentRequest metadata describing content
Array of handles to contentArray of handles to content
Send metadataSend metadata
Object exchangeObject exchange
Connection Walk-ThroughConnection Walk-Through
99
FundamentalsFundamentals
BinaryBinary ActionsActions
Operation Operation Response Response EventsEvents
Device roles: Initiator-ResponderDevice roles: Initiator-Responder Initiator can send OperationsInitiator can send Operations Responder responds, fires eventsResponder responds, fires events
Device content represented by objectsDevice content represented by objects Device represented by device propertiesDevice represented by device properties File system, file structure and transport neutralFile system, file structure and transport neutral Device UI can remain activeDevice UI can remain active
1010
ObjectsObjects
All data is represented by objectsAll data is represented by objects Audio, Video, Image, File, Album, etc.Audio, Video, Image, File, Album, etc.
Objects can be binary, abstract or bothObjects can be binary, abstract or both Abstract objects have no binary data, such as albums Abstract objects have no binary data, such as albums
and playlistsand playlists
Objects are identified by 32-bit handlesObjects are identified by 32-bit handles Objects are described by propertiesObjects are described by properties
Device-constrained valuesDevice-constrained values Interdependent properties enabledInterdependent properties enabled
Data, Properties and References are sent and Data, Properties and References are sent and retrieved independentlyretrieved independently
1111
Object ComponentsObject Components
Array of Object References that refer to other Array of Object References that refer to other related objects on the device.related objects on the device.
Set of Object Properties, which define metadata and Set of Object Properties, which define metadata and properties. These values are understood by and properties. These values are understood by and restricted by the device.restricted by the device.
Static and overview set of fundamental information Static and overview set of fundamental information about this object, included for PTP compatibility.about this object, included for PTP compatibility.
Binary Object contentsBinary Object contents
1212
Object ReferencesObject References
File system neutral → objects identified by File system neutral → objects identified by 32-bit object handles32-bit object handles
References used to associate objectsReferences used to associate objects Playlists, Albums, etc.Playlists, Albums, etc.
UnidirectionalUnidirectional Meaning derived from contextMeaning derived from context Reference maintenance performedReference maintenance performed
by deviceby device
1313
Object ReferencesObject References
1414
Object enumerationObject enumeration
Quickly enumerate interesting contentQuickly enumerate interesting content Select bySelect by
Object formatObject format Desired propertiesDesired properties Folder hierarchyFolder hierarchy
Example return setsExample return sets All properties for all objectsAll properties for all objects Title, Artist and Duration for all WMA filesTitle, Artist and Duration for all WMA files
Optimized forOptimized for Full (or sub-range) enumerationsFull (or sub-range) enumerations High bandwidthHigh bandwidth High transaction costHigh transaction cost Processing power imbalanceProcessing power imbalance
1515
Object Enumeration – One At A TimeObject Enumeration – One At A Time
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavoritesFavorites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
HandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
1616
Object Enumeration – Prop By Prop By FormatObject Enumeration – Prop By Prop By Format
HandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavoritesFavorites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
1717
Object Enumeration – All By FormatObject Enumeration – All By Format
HandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavoritesFavorites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
1818
Object Enumeration – All By PropertyObject Enumeration – All By Property
HandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavoritesFavorites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
1919
Object Enumeration – All By GroupObject Enumeration – All By Group
HandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavouritesFavourites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
2020
Object Enumeration – AllObject Enumeration – AllHandleHandle FormatFormat TitleTitle ArtistArtist DurationDuration FileNameFileName
WMAWMA
MP3MP3
MP3MP3
MP3MP3
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMAWMA
WMVWMV
WPLWPL
WMVWMV
UnknownUnknown
Title1Title1
Title2Title2
Title3Title3
Title4Title4
Title5Title5
Title6Title6
Title7Title7
Title8Title8
Title9Title9
Title10Title10
Title11Title11
Title12Title12
Title13Title13
Artist1Artist1
Artist2Artist2
Artist3Artist3
Artist2Artist2
Artist4Artist4
Artist3Artist3
Artist1Artist1
Artist5Artist5
Artist2Artist2
Artist4Artist4
Artist6Artist6
180000180000
200000200000
137000137000
257000257000
171000171000
148000148000
36000003600000
3700037000
130000130000
550000550000
110000110000
Song1.wmaSong1.wma
Song2.mp3Song2.mp3
Song3.wmaSong3.wma
Song4.wmaSong4.wma
Song5.mp3Song5.mp3
Vid1.wmvVid1.wmv
Song7.wmaSong7.wma
FavouritesFavourites
Vid2.wmvVid2.wmv
Song8.mp3Song8.mp3
WinHec.pptWinHec.ppt
Song9.wmaSong9.wma
Song6.wmaSong6.wma
0x000000010x00000001
0x000000020x00000002
0x000000030x00000003
0x000000040x00000004
0x000000050x00000005
0x000000060x00000006
0x000000070x00000007
0x000000080x00000008
0x000000090x00000009
0x0000000A0x0000000A
0x0000000B0x0000000B
0x0000000C0x0000000C
0x0000000D0x0000000D
2121
OptimizationsOptimizations
Data aligned with packet boundariesData aligned with packet boundaries No object size limitNo object size limit Property datasets are unorderedProperty datasets are unordered Property datasets may be pipedProperty datasets may be piped
without pre-compilationwithout pre-compilation Datasets designed to avoidDatasets designed to avoid
back-referencingback-referencing
2222
Implementation Details – Implementation Details – Hardware ConsiderationsHardware Considerations
Device StorageDevice Storage
USB controllerUSB controller
Driver FrameworkDriver Framework
USBScanUSBScan
MTPMTP
Device CPUDevice CPU
Device StorageDevice Storage
USBUSB //ATAPI BridgeATAPI Bridge
PCPC
DeviceDevice
Driver FrameworkDriver Framework
USBStorUSBStor
Portable Media PlayerPortable Media PlayerCPUCPU
AutomaticAutomaticSwitchSwitch
MTP CompatibleMTP Compatible Mass Storage OptimizedMass Storage Optimizednot suitable for MTPnot suitable for MTP
File File Transfer Transfer
using using DMA DMA
MSCMSC
2323
Development ResourcesDevelopment Resources
Direct MTPDirect MTP Useful for sending MTP operations to the deviceUseful for sending MTP operations to the device All operation parameters can be fully specifiedAll operation parameters can be fully specified Device responses are displayed in the UIDevice responses are displayed in the UI
MTP MonitorMTP Monitor Monitors & logs USB bus traffic for MTP exchangesMonitors & logs USB bus traffic for MTP exchanges Parses and interprets MTP operations/responses/eventsParses and interprets MTP operations/responses/events
MTP SimulatorMTP Simulator Software MTP deviceSoftware MTP device Requires simulator board to expose as device to the PCRequires simulator board to expose as device to the PC Provides a protocol referenceProvides a protocol reference Useful for debugging device behavior with the MTP driverUseful for debugging device behavior with the MTP driver
2424
Development Resources – Development Resources – Direct MTPDirect MTP
2525
Development Resources – Development Resources – MTP MonitorMTP Monitor Simple bus analyzerSimple bus analyzer Displays and parses Displays and parses
MTP trafficMTP traffic Very useful for Very useful for
debugging device debugging device implementationsimplementations
2626
SummarySummary
A class protocol for portable media devicesA class protocol for portable media devices Digital Cameras, Portable Media Players, Cellular Digital Cameras, Portable Media Players, Cellular
Phones, etcPhones, etc Enable hybrid devices, generic firmwareEnable hybrid devices, generic firmware
Based on Picture Transfer Protocol (PTP)Based on Picture Transfer Protocol (PTP) Widely used standard for digital still camerasWidely used standard for digital still cameras
MTP enablesMTP enables Generic object transfer between devicesGeneric object transfer between devices Rich object descriptionRich object description Device management and controlDevice management and control
File system, transport, file structure neutralFile system, transport, file structure neutral
2727
Call To ActionCall To Action
Use MTP as a connectivity protocol for portable Use MTP as a connectivity protocol for portable media playersmedia players Support shipping in the next Windows Media Player Support shipping in the next Windows Media Player
(codenamed Crescent)(codenamed Crescent)
Consider MTP as an upgrade path for Digital Still Consider MTP as an upgrade path for Digital Still CamerasCameras PTP will continue to be fully supported and endorsedPTP will continue to be fully supported and endorsed
Consider MTP as an object transfer & control Consider MTP as an object transfer & control protocol any intelligent portable device with storageprotocol any intelligent portable device with storage Cellular handsets, hybrid devicesCellular handsets, hybrid devices Supported in VistaSupported in Vista
2828
Community ResourcesCommunity Resources
Community SitesCommunity Sites http://www.microsoft.com/communities/default.mspxhttp://www.microsoft.com/communities/default.mspx
List of NewsgroupsList of Newsgroups http://communities2.microsoft.com/communities/newsgroups/en-uhttp://communities2.microsoft.com/communities/newsgroups/en-u
s/default.aspxs/default.aspx
Attend a free chat or webcastAttend a free chat or webcast http://www.microsoft.com/communities/chats/default.mspxhttp://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/seminar/events/webcasts/default.mspxhttp://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.mspxhttp://www.microsoft.com/communities/usergroups/default.mspx
Non-Microsoft Community SitesNon-Microsoft Community Sites http://www.microsoft.com/communities/related/default.mspxhttp://www.microsoft.com/communities/related/default.mspx