Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1201)

Side by Side Diff: README

Issue 11358153: Update libmtp from pre 1.1.4 git to 1.1.5 release. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libmtp/
Patch Set: disable mptz Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | aclocal.m4 » ('j') | config.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Building and Installing 1 Building and Installing
2 ----------------------- 2 -----------------------
3 3
4 See the "INSTALL" file. 4 See the "INSTALL" file.
5 5
6 6
7 Initiator and Responder 7 Initiator and Responder
8 ----------------------- 8 -----------------------
9 9
10 libmtp implements an MTP initiator, which means it initiate 10 libmtp implements an MTP initiator, which means it initiate
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 as soon as it's plugged in. Some distributions are configured that 146 as soon as it's plugged in. Some distributions are configured that
147 way. Counter it like this: 147 way. Counter it like this:
148 148
149 gvfs-mount -s gphoto2 149 gvfs-mount -s gphoto2
150 150
151 Then re-attach the device. 151 Then re-attach the device.
152 152
153 Sometimes the "gvfs-gphoto2-volume-monitor" is running on the 153 Sometimes the "gvfs-gphoto2-volume-monitor" is running on the
154 system and hogging the device, try something like: 154 system and hogging the device, try something like:
155 155
156 pkill gfvs-gphoto2-volume-monitor && mtp-detect 156 pkill gfvs-gphoto2-volume-monitor
157 157
158 to figure out if this may be the case. 158 Then plug in the device and issue "mtp-detect" to figure out if
159 this may be the case.
159 160
160 * Generic MTP/PTP disconnect misbehaviour: we have noticed that 161 * Generic MTP/PTP disconnect misbehaviour: we have noticed that
161 Windows Media Player apparently never close the session to an MTP 162 Windows Media Player apparently never close the session to an MTP
162 device. There is a daemon in Windows that "hooks" the device 163 device. There is a daemon in Windows that "hooks" the device
163 by opening a PTP session to any MTP device, whenever it is 164 by opening a PTP session to any MTP device, whenever it is
164 plugged in. This daemon proxies any subsequent transactions 165 plugged in. This daemon proxies any subsequent transactions
165 to/from the device and will never close the session, thus 166 to/from the device and will never close the session, thus
166 Windows simply does not close sessions at all. 167 Windows simply does not close sessions at all.
167 168
168 For example this means that a device may work the first time 169 For example this means that a device may work the first time
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 ------------------------------------ 754 ------------------------------------
754 755
755 PTP/MTP devices does not actually contain "files", they contain 756 PTP/MTP devices does not actually contain "files", they contain
756 objects. These objects have file names, but that is actually 757 objects. These objects have file names, but that is actually
757 just a name tag on the object. 758 just a name tag on the object.
758 759
759 Folders/directories aren't really such entities: they are just 760 Folders/directories aren't really such entities: they are just
760 objects too, albeit objects that can act as parent to other 761 objects too, albeit objects that can act as parent to other
761 objects. They are called "associations" and are created in atomic 762 objects. They are called "associations" and are created in atomic
762 fashion and even though there is an MTP command to get all the 763 fashion and even though there is an MTP command to get all the
763 associations of a certain association, this command is optional 764 associations of a certain object, this command is optional
764 so it is perfectly possible (and most common, actually) to create 765 so it is perfectly possible (and most common, actually) to create
765 devices where the "folders" (which are actually associations) have 766 devices where the "folders" (which are actually associations) have
766 no idea whatsoever of what files they are associated as parents to 767 no idea whatsoever of what files they are associated as parents to
767 (i.e. which files they contain). This is very easy for device 768 (i.e. which files they contain). This is very easy for device
768 manufacturers to implement, all the association (i.e. finding out 769 manufacturers to implement, all the association (i.e. finding out
769 which files are in a certain folder) has to be done by the MTP 770 which files are in a certain folder) has to be done by the MTP
770 Initiator / host computer. 771 Initiator / host computer.
771 772
772 Moving a file to a new folder is for example very simple in a 773 Moving a file to a new folder is for example very simple in a
773 "real" file system. In PTP/MTP devices it is often not even possible, 774 "real" file system. In PTP/MTP devices it is often not even possible,
774 some devices *may* be able to do that. But actually the only 775 some devices *may* be able to do that, if they support command
775 reliable way of doing that is to upload the file to the host, 776 0x1019 "Move Object", but actually the only reliable way of executing
776 download it with the new parent, then delete the old file. 777 file movement is to upload the file to the host, download it with
777 We have played with the idea of implementing this time consuming 778 the new parent, then delete the old file. We have played with the
778 function, perhaps we will. 779 idea of implementing this time consuming function as a fallback
780 in case the device does not support command 0x1019, perhaps one day
781 we will do that. (Some devices also support command 0x101a
782 "Copy Object".)
779 783
780 Then the issue that in PTP/MTP it is legal for two files to have 784 Then the issue that in PTP/MTP it is legal for two files to have
781 exactly the same path as long as their object IDs differ. A 785 exactly the same path as long as their object IDs differ. A
782 folder/association can contain two files with the exact same name. 786 folder/association can contain two files with the exact same name.
783 (And on the Creative devices this even works, too, though most devices 787 (And on the Creative devices this even works, too, though most devices
784 implicitly fail at this.) Perhaps one could add some custom hook for 788 implicitly fail at this.) Perhaps one could add some custom hook for
785 handling that, so they become /Foo.mp3 and /Foo.mp3(1) or something 789 handling that, so they become /Foo.mp3 and /Foo.mp3(1) or something
786 similar, but it's really a bit kludgy. 790 similar, but it's really a bit kludgy.
787 791
788 Playlists and albums aren't really files, thinking about 792 Playlists and albums aren't really files, thinking about
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 G_CALLBACK(uevent_cb), 990 G_CALLBACK(uevent_cb),
987 NULL, 0); 991 NULL, 0);
988 992
989 SKETCH OF AN OVERVIEW 993 SKETCH OF AN OVERVIEW
990 --------------------- 994 ---------------------
991 995
992 Draft agenda for a talk on MTP devices submitted for the Android 996 Draft agenda for a talk on MTP devices submitted for the Android
993 builders summit, might come to recycle this: 997 builders summit, might come to recycle this:
994 998
995 - Protocol overview 999 - Protocol overview
1000 - Transactional filesystem - no corruption due to unplugged cables!
996 - libmtp interface 1001 - libmtp interface
997 - relation to libgphoto2 1002 - relation to libgphoto2
1003 - User expectations fall short:
1004 - Not really a mountable filesystem.
1005 - Streaming does not work. (Size needs to be known beforehand due to
1006 transactional nature.)
998 - Device sins 1007 - Device sins
999 - Android bugs 1008 - Android bugs
1000 - Samsungs special Android MTP stack 1009 - Samsungs special Android MTP stack
1001 - SonyEricsson Aricent stack for Xperia Androids pre 4.0, broken headers! 1010 - SonyEricsson Aricent stack for Xperia Androids pre 4.0, broken headers!
1011 - Flat access model vs hierarchical, how Android uses MTP as an hierachical
1012 file system while it was previously a flat database.
1002 - Detecting from vendor extension, can fix in newer extensions! 1013 - Detecting from vendor extension, can fix in newer extensions!
1003 - Autoprobing on Linux 1014 - Autoprobing on Linux
1004 - Color devices do not like autoprobing 1015 - Color devices do not like autoprobing
1016 - Devices need different PIDs for every alternative interface due to
1017 the Windows USB stack.
1018 - Multimode USB - one PID for each mode due to Windows limitations not
1019 applicable to Linux, SONY devices have ~5 different PIDs for a single
1020 device.
1021 - Mode switch devices?
1022 - MTPZ
1005 - Ideas?? 1023 - Ideas??
1006 - Mode switch devices? 1024
1007 - MTPZ
OLDNEW
« no previous file with comments | « no previous file | aclocal.m4 » ('j') | config.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698