-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
841 lines (736 loc) · 29.2 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
libptp2 (c)2001-2006 Mariusz Woloszyn <[email protected]>
ptpcam (c)2001-2006 Mariusz Woloszyn <[email protected]>
=====================
*About this software*
=====================
You may find new versions of this software at:
http://libptp.sf.net/
The ./src folder contains following code:
ptp.c - the main libptp2 code
ptp.h - libptp2 header files
ptp-pack.c - this file is included into ptp.c (internal code)
ptpcam.h - ptpcam header file
ptpcam.c - the software to manipulate PTP cameras;
it does things that you can't do with gphoto2
The libptp2 library is under development yet, but is considered to be
functional and quite stable.
It was written to be used with gphoto2, but can be easily used with any other
software.
==============
*Requirements*
==============
Currently this package requires libusb to build ptpcam.
The libptp2 library itself is transport layer independent and does not require
libusb, however no other transport layer has been tested due to lack
of PTP non-USB devices.
You can obtain libusb at http://libusb.sf.net/
BE AWARE THAT libusb-0.1.10 contained bugs that might affect your camera!
Use newer version or libusb-0.1.8 instead.
If you want to build this library (for test purposes) on a box without
libusb pass --disable-ptpcam option to configure script.
A PTP camera seems to be required also to take full advantage of this package.
==================
*What is libptp2?*
==================
libptp2 is a library used to communicate with PTP devices like still
imaging cameras.
At the current stage you may use ptpcam tool boundled with libptp2 to perform
some basic operations like downloading photos or setting camera properties.
For other operations and GUI you might consider using libgphoto2
(which contains forked version of libptp2 code), gphoto2 and gtkam;
see http://www.gphoto.org.
===================
*Supported Cameras*
===================
The list of PTP cameras is constantly growing. Most (if not all) USB still
cameras designed after 2002 are PTP compliant. Below is the list of vendors
implementing PTP in their cameras:
* Kodak
* HP
* Nikon
* Canon
* Panasonic
* Olympus
* Konika
* Minolta
* Fuji
* Ricoh
* Sony
Note that for some HP, Nikon, Canon, Sony and possibly other cameras
you have to switch them to PTP mode as in most cases the camera is dual mode:
PTP and USB Mass Storage or PTP and native.
For some cameras it even changes the Product ID number, so don't panic
just switch the mode.
Don't ask me how to do it. Refer to camera documentation.
Please note that if your camera is supporting PTP it does NOT mean that
it is capable of performing all PTP operations (like triggering capture,
uploading files or tweaking properties). Sony cameras are good example of
poor PTP implementation where the only thing you can do is downloading files.
=============
*Quick Start*
=============
First of all you need kernel USB support. Please refer to your OS
documentation for more info!
For Linux users you need "Preliminary USB device filesystem" and "USB Host
Controller" (the one for your hardware: EHCI, OHCI or UHCI) support in your
kernel.
CAUTION: there was a bug in Linux Kernel 2.4.18 UHCI driver so make sure you
use more recent kernel!
If you got a kernel support, make sure that your usbdevfs is mounted under
/proc/bus/usb. In my case the fstab entry looks like this:
usb /proc/bus/usb usbdevfs defaults,user 0 0
(NO, the entry in fstab isn't enough, you have to type: mount /proc/bus/usb).
If you want to run ptpcam as regular user read this:
http://gphoto.sourceforge.net/doc/manual/permissions-usb.html
although I suggest performing all tests as root unless you're security
paranoid.
If you have a PTP camera connected to your computer it should be detected by
invoking "ptpcam --list-devices".
In my case the output looks like this:
root@emsi(chroot):~# ptpcam --list-devices
Listing devices...
bus/dev vendorID/prodID device model
002/035 0x040A/0x0400 Kodak mc3
002/036 0x040A/0x0500 DX3500 Digital Camera
001/027 0x040A/0x0160 DC4800 Zoom Digital Camera
If you get something like this:
emsi@emsi(chroot):~> ptpcam --list-devices
Listing devices...
bus/dev vendorID/prodID device model
ERROR: Could not open session!
Try to reset the camera.
it means that you did not read carefully what I wrote above about running
ptpcam as regular user or your camera has stalled (needs reset).
If you need some more debug try --verbose or --verbose=2 thus increasing the
verbose level.
What if you get "Found no PTP devices"?
If you're sure that your camera is a PTP camera please check your OS usb
config. In case of Linux make sure that you have usbdevfs mounted under
/proc/bus/usb. If so read the output of 'cat /proc/bus/usb/devices' and check
if your camera is listed there.
It might be that your camera is not in PTP mode. To verify so, issue:
cat /proc/bus/usb/devices | grep "Cls=06"
If you find something like this:
I: If#= 0 Alt= 0 #EPs= 3 Cls=06(still) Sub=01 Prot=01 Driver=(none)
^^^^^^^^^^^^^
that means that your camera is in PTP mode and should be detected.
If there is no interface of Class 6 refer to camera documentation to find
how to switch it into PTP mode.
You may also try to use --force option while listing cameras or talking to
it, but don't use it unless you really know what you are doing!!!
--force forces ptpcam to talk to non PTP devices [which makes sense only in
case of PTP device with interface class other than 6 (PTP), like Kodak DC240
with PTP firmware]. BE AWARE that talking PTPish to non PTP devices may
cause harmful damage!!!
============
*What next?*
============
I guess that you'd like to download images or tweak camera properties? ;)
Use "ptpcam --get-all-files" to download all images from your camera.
By default all images are copied to local folder and filename and creation
time is preserved. By default the download operation skips a file if it
finds one with the same name in local folder. This enables you to do
quick-sync downloading only the newly captured files. Of course you can
request to overwrite existing files passin --overwrite on command line.
You may also download a specific file using --get-file=HANDLE providing object
handle as a parameter (you can find it with --list-files).
If ptpcam detects more than one camera you need to pass --bus=BUS-NUMBER and,
or --dev=DEV-NUMBER arguments otherwise ptpcam tries to talk to first detected
camera. If you specify only bus or dev number ptpcam talks to first matching
camera.
To list all available camera properties use "ptpcam --list-properties"
Unfortunately if you have bought a high-end camera or a very expensive PTP
camera it DOES NOT mean that it supports setting any properties. The problem
is that manufacturers do not specify in documentation what properties or
operations are supported by the given camera. In most cases you never know
until you buy the camera. [I'll try to provide a list of supported camera
properties and operations on libptp.sf.net]
Let's say that you get something like this:
root@emsi(chroot):~# ptpcam --list-properties
Listing properties...
Querying: DX3500 Digital Camera
0x5001 : Battery Level
It means that your camera (in this case DX3500 Digital Camera) supports only
one property, which is "Battery Level" (property number 0x5001). Not much,
but you still can try to list its value:
root@emsi(chroot):~# ptpcam --show-property=5001
Camera: DX3500 Digital Camera
Property 'Battery Level'
Current value is 100
Factory default value is 100
The property is read only, enumerated. Allowed values are:
0
10
100
As you can see --show-property argument does not require 0x, that's for your
convenience. ;)
The output of this command is quite verbose. It tells you about Current value,
Factory default value and the property type. The property type may vary among
different cameras! In this camera 'Battery Level' is read only and
enumerated. Allowed values are 0, 10 and 100 which (more or less) means:
0 - low battery lever (may shut down immediately), 10 - medium battery
level, 100 - full battery level. However for a different camera this
property may be defined as range of 1 to 100 with step of 1.
That's just an example.
Now let's look at the list of properties of another camera:
root@emsi(chroot):~# ptpcam --list-properties
Listing properties...
Querying: DC4800 Zoom Digital Camera
0x5001 : Battery Level
0x5003 : Image Size
0x5004 : Compression Setting
0x5005 : White Balance
0x5006 : RGB Gain
0x5007 : F-Number
0x5008 : Focal Length
0x5009 : Focus Distance
0x500a : Focus Mode
0x500b : Exposure Metering Mode
0x500c : Flash Mode
0x500d : Exposure Time
0x500e : Exposure Program Mode
0x500f : Exposure Index (film speed ISO)
0x5010 : Exposure Bias Compensation
0x5011 : Date Time
0x5013 : Still Capture Mode
0x5015 : Sharpness
0x5016 : Digital Zoom
0x5017 : Effect Mode
0x5018 : Burst Number
0x501c : Focus Metering Mode
0xd001 : EK Color Temperature
0xd002 : EK Date Time Stamp Format
0xd003 : EK Beep Mode
0xd004 : EK Video Out
0xd005 : EK Power Saving
0xd006 : EK UI Language
All properties of numbers starting with 0x50 are standard PTP properties,
although for many of them the type (enumerated or range) and value meaning
are NOT specified by the PTP standard and may vary among different cameras!
The properties starting with 0xd0 are PTP extension (in this case EK means
Eastman Kodak extension) and in most cases are not known to public at all.
Probably you will have to reverse-engineer their meaning (I'm eager to
receive a feedback from you in such case! ;).
==========================
* Setting property values*
==========================
For example if you'd like to change the 'Image Size' property you have to do
that in two steps. First display the property using --show-property switch.
Determine whether the property is settable, what is the type of value
(a number or string) and which values are supported!
Keep in mind that some properties are settable only in certain camera
states or modes. Also the valid values may vary depending on current camera
state!
OK. Let's get back to our example. To display property 'Image Size',
which number is 0x5003 you have to type:
root@emsi(chroot):~# ptpcam --show-property=5003
Camera: DC4800 Zoom Digital Camera
Property 'Image Size'
Data type is 0xffff
Current value is "2160x1440"
Factory default value is "2160x1440"
The property is settable, enumerated. Allowed values are:
"2160x1440"
"1800x1200"
"1536x1024"
"1080x720"
As you can see, this camera supports four different image sizes. The
property value is a string (values are printed within quotation marks).
To change 'Image Size' property pass --val=VALUE option to ptpcam while still
specifying the property with --set-property=PROPERTY_NUMBER.
Note that only certain values are allowed.
In our example let it look like this:
root@emsi(chroot):~# ptpcam --set-property=5003 --val=1080x720
Camera: DC4800 Zoom Digital Camera
Property 'Image Size'
Data type is 0xffff
Current value is "2160x1440"
Factory default value is "2160x1440"
The property is settable, enumerated. Allowed values are:
"2160x1440"
"1800x1200"
"1536x1024"
"1080x720"
Setting property value to '1080x720'
If everything goes OK, no error is displayed. You may verify, of course,
if the property value was set properly.
If you get something like this:
PTP: Invalid Device Prop Value
it indicates that the property value was not set due to invalid values.
Keep in mind that in most cases changing one property may cause another one
property to change! That happens especially in any Automated modes!!!
FIXME: The device should report that another property was changed issuing
DevicePropChanged event! We may catch that and report to user.
=================
*Common problems*
=================
Sometimes it might happen that the device claims to support given property
but does not respond to --show-property request. In most cases it's because of
improper PTP implementation on the camera side.
Sometimes the list of supported properties might vary while changing
camera mode.
Moreover, given property may not have any meaning in a certain camera state.
For example setting or getting 'Focus Distance' property may not be allowed
in automated camera mode! In such case try to switch the camera to manual
mode.
For example my Kodak DC4800 fails over --show-property=5006
(which is "RGB Gain") if RGB Gain is not set. It looks like this:
root@emsi(chroot):~# ptpcam --show-property=5006
Camera: DC4800 Zoom Digital Camera
Property 'RGB Gain'
ERROR: Could not get device property description!
Try to reset the camera.
In such a case you need to issue a --reset request to the camera:
root@emsi(chroot):~# ptpcam --reset
Resetting input pipe!
Device status OK
It's a good practice to verify whether the reset went OK issuing
--list-devices. Sometimes one or two more reset may be needed to properly
reset the camera.
=========================
*Standard PTP Properties*
=========================
Below I am providing a short list of properties and their meaning values
according to PTP specification.
0x5001 : Battery Level
DataType: UINT8
Forms: Enum, Range
PTP standard does not define any special values, however for number
of Kodak devices 0 means no power (alternative power source), 10
means medium battery lever and 100 means full battery.
0x5002 : Functional Mode
DataType: UINT16
Forms: Enum
This property indicates whether the device is in an alternate mode
that provides a different set of capabilities (i.e. supported
operations, properties, events, etc.). If the device supports only
one mode, this value should always be zero.
PTP standard specifies following values:
0x0000 - Standard Mode
0x0001 - Sleep State
All other values with bit 15 set to 0 are Reserved.
All values with bit 15 set to 1 are Vendor Specific.
0x5003 : Image Size
DataType: String
Forms: Enum, Range
"This property describes the height and width of the image that will
be captured in pixels supported by the device." The string is of the
format "WxH" where the W represents the width and the H represents
the height represented as unsigned integers.
0x5004 : Compression Setting
DataType: UINT8
Forms: Enum, Range
Quoted from PTP (PIMA 15740) specs:
"Compression setting is a property intended to be as close as is
possible to being linear with respect to perceived image quality
over a broad range of scene content, and is represented by either a
range or an enumeration of integers. Low integers are used to
represent low quality (i.e. maximum compression) while high
integers are used to represent high quality (i.e. minimum
compression). No attempt is made in this standard (PTP) to assign
specific values of this property with any absolute benchmark, so
any available settings on a device are relative to that device only
and are therefore device-specific."
0x5005 : White Balance
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Manual
0x0002 - Automatic
0x0003 - One-push Automatic
0x0004 - Daylight
0x0005 - Fluorescent
0x0006 - Tungsten
0x0007 - Flash
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
Manual means that white balance is set directly using the RGB Gain
(0x5006) property.
Automatic indicates that the device sets this property using some
kind of automatic mechanism.
One-push Automatic means that the user must press the capture
button while pointing objective at a white field, at which time the
device determines the white balance setting.
Daylight means that the device sets the white balance to a value
that is suitable for daylight use.
Tungsten means that the device sets the white balance to a value
that is suitable for use with a tungsten light source.
Flash means that the white balance is set to a value that is
suitable for flash conditions.
0x5006 : RGB Gain
DataType: String
Forms: Enum, Range
This property takes the form of a string that is parsed as follows:
"R:G:B" where the R represents the red gain, the G represents the
green gain, and the B represents the blue gain. For example, for
an RGB ratio of red=2, green=3 and blue=4, the RGB string could be
"2:3:4" or "200:300:400". Each part of the RGB string is in decimal
form of UINT16 integer.
0x5007 : F-Number
DataType: UINT16
Forms: Enum
This property represents the aperture of the lens. The units are
equal to the F-Number scaled by 100.
Example values are: 280 (2.8), 560 (5.6), 800 (8), etc.
0x5008 : Focal Length
DataType: UINT32
Forms: Enum, Range
This property represents the 35mm equivalent focal length. The
units are equal to focal length in millimeters multiplied by 100.
0x5009 : Focus Distance
DataType: UINT16
Forms: Enum, Range
Value of this property represents the focus distance in
millimeters. A value of 0xFFFF means infinity.
0x500a : Focus Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Manual
0x0002 - Automatic
0x0003 - Automatic Macro (close-up)
All other values with bit 15 set to zero are reserver.
All values with bit 15 set to 1 are vendor-defined.
0x500b : Exposure Metering Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Average
0x0002 - Center-weighted-average
0x0003 - Multi-spot
0x0004 - Center-spot
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x500c : Flash Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Auto flash
0x0002 - Flash off
0x0003 - Fill flash
0x0004 - Red eye auto
0x0005 - Red eye fill
0x0006 - External flash
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x500d : Exposure Time
DataType: UINT32
Forms: Enum, Range
This property represents the shutter speed. It has units of seconds
scaled by 10000.
For example:
40 means 1/250 sec.
80 means 1/125 sec.
160 means 1/62.5 sec. and so on.
0x500e : Exposure Program Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Manual
0x0002 - Automatic
0x0003 - Aperture Priority
0x0004 - Shutter Priority
0x0005 - Program Creative (greater depth of field)
0x0006 - Program Action (faster shutter speed)
0x0007 - Portrait
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x500f : Exposure Index (film speed ISO)
DataType: UINT16
Forms: Enum, Range
Value of this property represents the emulation of film speed
setting. The setting corresponds to the ISO designations. A value of
0xFFFF means automatic ISO setting.
0x5010 : Exposure Bias Compensation
DataType: INT16
Forms: Enum, Range
Value of this property represents the exposure compensation. The
units are in "stops" scaled by 1000. The setting values are in
APEX.
For example the value of -2000 (means 4X less energy on sensor)
two stops less exposure (darker image). The value of 1500 means
one and a half stops more exposure (2.25X more energy on sensors).
0x5011 : Date Time
DataType: String
Forms: none
Value of this property represents the device date and time in ISO
8601 format. It's a string of "YYYYMMDDThhmmss.s", where YYYY
represents the year, MM represents the month (01-12), DD is the day
of the month (01-31), T is a constant character, hh represents the
hour since midnight (00-23), mm is the minutes (00-59) past the
hour and ss.s is the seconds past the minute, with the ".s" being
optional tenth of second past the second. The string can be
optionally appended with Z to indicate UTC, or +/-hhmm to indicate
that time is relative to a time zone.
0x5012 : Pre-Capture Delay
DataType: UINT32
Forms: Enum, Range
Value of this property represents the amount of time delay that
should be inserted between the capture trigger and the initiation
of the data capture. This value shall be interpreted as
milliseconds.
It has nothing to do with the "0x5019 : Burst Interval" and the
"0x501b : Timelapse Interval"!
0x5013 : Still Capture Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Normal
0x0002 - Burst
0x0003 - Timelapse
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x5014 : Contrast
DataType: UINT8
Forms: Enum, Range
Value of this property represents the contrast of a captured image.
The minimum supported value is used to represent the least
contrast, while the maximum value represents the most contrast.
0x5015 : Sharpness
DataType: UINT8
Forms: Enum, Range
Value of this property represents the sharpness of a captured
image. The minimum value is used to represent the least amount of
sharpness, while the maximum value represents highest sharpness.
0x5016 : Digital Zoom
DataType: UINT8
Forms: Enum, Range
Value of this property represents the effective zoom ratio of
digital camera's acquired image scaled by a factor of 10.
No digital zoom (1) represents the value of 10. The minimum value
represents minimum digital zoom (no digital zoom), typically
10, while the maximum value represents the maximum digital zoom.
0x5017 : Effect Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Standard (color)
0x0002 - Black & White
0x0003 - Sepia
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x5018 : Burst Number
DataType: UINT16
Forms: Enum, Range
Value of this property specifies the number of images that the
device will attempt to capture upon initiation of a burst capture.
0x5019 : Burst Interval
Data Type: UINT16
Forms: Enum, Range
Value of this property represents the delay between captures upon
initialization of a burst captures. This value is expressed in
milliseconds.
0x501a : Timelapse Number
DataType: UINT16
Forms: Enum, Range
Value of this property represents the number of images that the
device will attempt to capture upon initiation of a time-lapse
capture.
0x501b : Timelapse Interval
DataType: UINT32
Forms: Enum, Range
Value of this property represents the delay between captures upon
initialization of a time-lapse capture. This value is expressed in
milliseconds
0x501c : Focus Metering Mode
DataType: UINT16
Forms: Enum
PTP standard specifies following values:
0x0000 - Undefined
0x0001 - Center-spot
0x0002 - Multi-spot
All other values with bit 15 set to zero are reserved.
All values with bit 15 set to 1 are vendor-defined.
0x501d : UploadURL
DataType: String
Forms: none
This property describes the URL that the receiver may use to upload
images.
0x501e : Artist
DataType: string
Forms: none
The name of the author of pictures.
This property is intended to populate the Artist field of an EXIF
images.
0x501f : Copyright
DataType: string
Forms: none
Copyright notification.
This property is intended to populate the Copyright field of an
EXIF images.
===================
* Camera abilities*
===================
A couple of random camera abilities:
0.048332 PTP/library.c(2): Device info:
0.048347 PTP/library.c(2): Manufacturer: Nikon Corporation
0.048359 PTP/library.c(2): model: E2500
0.048370 PTP/library.c(2): device version: E2500v1.0
0.048380 PTP/library.c(2): Vendor extension description: Nikon PTP Extensions
0.048391 PTP/library.c(2): Supported operations:
0.048402 PTP/library.c(2): 0x1001
0.048413 PTP/library.c(2): 0x1002
0.048424 PTP/library.c(2): 0x1003
0.048435 PTP/library.c(2): 0x1004
0.048446 PTP/library.c(2): 0x1005
0.048457 PTP/library.c(2): 0x1006
0.048468 PTP/library.c(2): 0x1007
0.048479 PTP/library.c(2): 0x1008
0.048490 PTP/library.c(2): 0x1009
0.048500 PTP/library.c(2): 0x100a
0.048511 PTP/library.c(2): 0x100b
0.048522 PTP/library.c(2): 0x101b
0.309772 PTP/library.c(2): Device info:
0.309976 PTP/library.c(2): Manufacturer: Canon Inc.
0.310211 PTP/library.c(2): model: Canon DIGITAL IXUS 400
0.310427 PTP/library.c(2): device version:
0.310634 PTP/library.c(2): Vendor extension description: (null)
0.310861 PTP/library.c(2): Supported operations:
0.311066 PTP/library.c(2): 0x1001
0.311260 PTP/library.c(2): 0x1002
0.311455 PTP/library.c(2): 0x1003
0.311650 PTP/library.c(2): 0x1004
0.311844 PTP/library.c(2): 0x1005
0.312039 PTP/library.c(2): 0x1006
0.312233 PTP/library.c(2): 0x1007
0.312476 PTP/library.c(2): 0x1008
0.312674 PTP/library.c(2): 0x1009
0.312869 PTP/library.c(2): 0x100a
0.313064 PTP/library.c(2): 0x100b
0.313259 PTP/library.c(2): 0x100c
0.313457 PTP/library.c(2): 0x100d
0.313651 PTP/library.c(2): 0x100e
0.313846 PTP/library.c(2): 0x100f
0.314039 PTP/library.c(2): 0x1012
0.314233 PTP/library.c(2): 0x1014
0.321675 PTP/library.c(2): 0x1015
0.322120 PTP/library.c(2): 0x1016
0.322321 PTP/library.c(2): 0x101b
0.322518 PTP/library.c(2): 0x9001
0.322713 PTP/library.c(2): 0x9002
0.322909 PTP/library.c(2): 0x9003
0.323103 PTP/library.c(2): 0x9006
0.323299 PTP/library.c(2): 0x9008
0.323493 PTP/library.c(2): 0x9009
0.323689 PTP/library.c(2): 0x900a
0.323883 PTP/library.c(2): 0x900b
0.324079 PTP/library.c(2): 0x900c
0.324273 PTP/library.c(2): 0x900d
0.324583 PTP/library.c(2): 0x900e
0.324789 PTP/library.c(2): 0x900f
0.324985 PTP/library.c(2): 0x9010
0.325181 PTP/library.c(2): 0x9011
0.325377 PTP/library.c(2): 0x9012
0.325573 PTP/library.c(2): 0x9013
0.325767 PTP/library.c(2): 0x9014
0.325966 PTP/library.c(2): 0x9015
0.326162 PTP/library.c(2): 0x9018
0.326357 PTP/library.c(2): 0x9019
0.326554 PTP/library.c(2): 0x901a
0.326750 PTP/library.c(2): 0x901b
0.326945 PTP/library.c(2): 0x901c
0.327142 PTP/library.c(2): 0x901d
0.327337 PTP/library.c(2): 0x901e
0.327533 PTP/library.c(2): 0x901f
0.327729 PTP/library.c(2): 0x9020
0.327925 PTP/library.c(2): 0x9021
0.555111 PTP2/library.c(2): Events Supported:
0.555118 PTP2/library.c(2): 0x4001
0.555125 PTP2/library.c(2): 0x4002
0.555132 PTP2/library.c(2): 0x4003
0.555138 PTP2/library.c(2): 0x4004
0.555145 PTP2/library.c(2): 0x4005
0.555152 PTP2/library.c(2): 0x4006
0.555159 PTP2/library.c(2): 0x4008
0.555165 PTP2/library.c(2): 0x400a
0.555172 PTP2/library.c(2): 0x400c
0.555179 PTP2/library.c(2): 0x400d
0.555185 PTP2/library.c(2): 0xc001
0.555192 PTP2/library.c(2): 0xc005
0.555199 PTP2/library.c(2): 0xc006
0.555206 PTP2/library.c(2): 0xc007
0.555212 PTP2/library.c(2): 0xc008
0.555219 PTP2/library.c(2): 0xc009
0.555226 PTP2/library.c(2): 0xc00a
0.555233 PTP2/library.c(2): 0xc00b
0.555239 PTP2/library.c(2): 0xc00c
0.555246 PTP2/library.c(2): 0xc00d
0.555253 PTP2/library.c(2): Device Properties Supported:
0.555260 PTP2/library.c(2): 0xd001
0.555267 PTP2/library.c(2): 0xd002
0.555273 PTP2/library.c(2): 0xd003
0.555280 PTP2/library.c(2): 0xd02c
0.555287 PTP2/library.c(2): 0xd02d
0.555294 PTP2/library.c(2): 0xd02e
0.555300 PTP2/library.c(2): 0xd02f
0.555307 PTP2/library.c(2): 0xd030
0.555314 PTP2/library.c(2): 0xd031
0.555320 PTP2/library.c(2): 0xd032
0.555327 PTP2/library.c(2): 0xd033
0.555334 PTP2/library.c(2): 0xd034
0.555341 PTP2/library.c(2): 0xd045
0.555347 PTP2/library.c(2): 0xd046
0.555354 PTP2/library.c(2): 0xd047
0.555361 PTP2/library.c(2): 0xd048
0.555368 PTP2/library.c(2): 0xd049
0.509050 PTP/library.c(2): Device info:
0.509067 PTP/library.c(2): Manufacturer: Canon Inc.
0.509072 PTP/library.c(2): model: Canon DIGITAL IXUS II
0.509077 PTP/library.c(2): device version:
0.509082 PTP/library.c(2): Vendor extension description: (null)
0.509091 PTP/library.c(2): Supported operations:
0.509096 PTP/library.c(2): 0x1001
0.509101 PTP/library.c(2): 0x1002
0.509106 PTP/library.c(2): 0x1003
0.509110 PTP/library.c(2): 0x1004
0.509114 PTP/library.c(2): 0x1005
0.509119 PTP/library.c(2): 0x1006
0.509142 PTP/library.c(2): 0x1007
0.509147 PTP/library.c(2): 0x1008
0.509152 PTP/library.c(2): 0x1009
0.509156 PTP/library.c(2): 0x100a
0.509160 PTP/library.c(2): 0x100b
0.509165 PTP/library.c(2): 0x100c
0.509169 PTP/library.c(2): 0x100d
0.509173 PTP/library.c(2): 0x100e
0.509178 PTP/library.c(2): 0x100f
0.509182 PTP/library.c(2): 0x1012
0.509186 PTP/library.c(2): 0x1014
0.509191 PTP/library.c(2): 0x1015
0.509195 PTP/library.c(2): 0x1016
0.509199 PTP/library.c(2): 0x101b
0.509203 PTP/library.c(2): 0x9001
0.509208 PTP/library.c(2): 0x9002
0.509212 PTP/library.c(2): 0x9003
0.509216 PTP/library.c(2): 0x9006
0.509221 PTP/library.c(2): 0x9008
0.509225 PTP/library.c(2): 0x9009
0.509229 PTP/library.c(2): 0x900a
0.509234 PTP/library.c(2): 0x900b
0.509238 PTP/library.c(2): 0x900c
0.509242 PTP/library.c(2): 0x900d
0.509247 PTP/library.c(2): 0x900e
0.509251 PTP/library.c(2): 0x900f
0.509255 PTP/library.c(2): 0x9010
0.509259 PTP/library.c(2): 0x9011
0.509264 PTP/library.c(2): 0x9012
0.509268 PTP/library.c(2): 0x9013
0.509272 PTP/library.c(2): 0x9014
0.509277 PTP/library.c(2): 0x9015
0.509281 PTP/library.c(2): 0x9018
0.509285 PTP/library.c(2): 0x9019
0.509290 PTP/library.c(2): 0x901a
0.509294 PTP/library.c(2): 0x901b
0.509298 PTP/library.c(2): 0x901c
0.509303 PTP/library.c(2): 0x901d
0.509307 PTP/library.c(2): 0x901e
0.509311 PTP/library.c(2): 0x901f
0.509316 PTP/library.c(2): 0x9020
0.509320 PTP/library.c(2): 0x9021