Giter Site home page Giter Site logo

gphoto / libgphoto2 Goto Github PK

View Code? Open in Web Editor NEW
965.0 55.0 309.0 33.48 MB

The libgphoto2 camera access and control library.

License: GNU Lesser General Public License v2.1

C 94.51% Shell 0.38% Perl 0.88% HTML 0.38% C++ 0.01% Makefile 0.59% M4 2.99% Python 0.27%
camera digital access usb canon nikon library sony pentax powershot

libgphoto2's People

Contributors

aamotok avatar akryukov avatar alaunay avatar deater avatar dfandrich avatar elijahparker avatar hfiguiere avatar jerdfelt avatar joedalton2 avatar jwrdegoede avatar kilgota avatar knro avatar lkppo avatar m-g-m avatar mariussteffen avatar msmeissn avatar ndim avatar nowrep avatar patmans avatar peterbud avatar qboosh avatar rheimbuch avatar rreverser avatar sebras avatar sh0 avatar trickv avatar trilader avatar twaugh avatar vnwildman avatar yurchor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libgphoto2's Issues

sony slt dual mode wait-event

--wait-event-and-download in a dual raw+jpg setting does not work, it leaves one image on camera,
which after some tries fills the memory.

use some logic like in sony_capture

Nikon D810 setting the "recordingmedia" config value

Hello,

we've been using libgphoto2 over the last 2 years with great success, however we have recently wanted to change the "recordingmedia" config value on our Nikon D810's and have been unable to do so. This works fine on our Nikon D800E's, which leads us believe that this problem is specific to the D810's.

Heres how we went about trying to set the config value with libgphoto2 2.5.9.

First identify the camera port and config value.

OpenMVS-Shell:/local/bzffacel/tmp$ gphoto2 --auto-detect
Modell                         Port                                            
----------------------------------------------------------
Nikon DSC D810                 usb:002,035     
Nikon DSC D800E                usb:003,103     

OpenMVS-Shell:/local/bzffacel/tmp$ gphoto2 --port usb:002,035 --get-config=recordingmedia
Label: Aufnahmemedium                                                          
Type: RADIO
Current: Speicherkarte
Choice: 0 Speicherkarte
Choice: 1 Kamera SDRAM
Choice: 2 Unbekannter Wert 0002

Then try and set the config and see if it has changed.

OpenMVS-Shell:/local/bzffacel/tmp$ gphoto2 --port usb:002,035 --set-config-value=recordingmedia=Kamera\ SDRAM
OpenMVS-Shell:/local/bzffacel/tmp$ gphoto2 --port usb:002,035 --get-config=recordingmedia
Label: Aufnahmemedium                                                          
Type: RADIO
Current: Speicherkarte
Choice: 0 Speicherkarte
Choice: 1 Kamera SDRAM
Choice: 2 Unbekannter Wert 0002

This same procedure works as expected with the D800E and changing other config values on the D810's hasn't been a problem thus far.

Alternative to gp_camera_get_config to read only specific ptp properties

Hi,

I work on an opensource project to allow remote control of dslr cameras through ptp.
I decided to use gphoto because I hate reinventing the wheel and gphoto2 seems to be perfect for my needs.

I would like to be able to read in real time some ptp properties like aperture, bargraph, iso etc, while showing the liveview frames (real time also).
My problem is that the only method I've found that allow to read the properties is gp_camera_get_config, and it reads all properties.

So if I call this method every 500ms (for example), I miss a lot of liveview frames.

The goal of my project is to use the remote liveview of the camera on an external screen inside an underwater housing, and so we don't want to miss liveview frames because it might be uncomfortable for film (and photography).

I already seen in the code base of libgphoto which kind of method I would have to add, but before doing this I would like to know if this feature already exists ? Or what would be the best way to implement it ?

Thank you.

Regards,

Romain.

Segmentation fault

Hi

When I use the 'gphoto2 -a' command.Receive Segmentation fault!

What can I do?

root@OpenWrt:~# gphoto2 -a

Segmentation fault

root@OpenWrt:~# gphoto2 -v
gphoto2 2.4.11

Copyright (c) 2000-2011 Lutz Mueller and others

gphoto2 comes with NO WARRANTY, to the extent permitted by law. You may
redistribute copies of gphoto2 under the terms of the GNU General Public
License. For more information about these matters, see the files named COPYING.

This version of gphoto2 is using the following software versions and options:
gphoto2 2.4.11 ccache_cc, popt(m), exif, no cdk, no aa, jpeg, readline
libgphoto2 2.4.12 ccache_cc, ltdl, EXIF
libgphoto2_port 0.8.0 ccache_cc, ltdl, USB (libusb1), serial without locking


Status
System
Hostname OpenWrt
Model VoCore
Firmware Version OpenWrt Barrier Breaker 14.07 / LuCI 0.12 Branch (0.12+git-15.143.53098-670e046)
Kernel Version 3.10.49

capture-image-and-download doesn't work 2nd time

Hi Marcus et al,

Unfortunately I am experiencing this issue with the latest gphoto2 v2.5.10. I am using a Canon EOS 1200D usb-connected to a Raspberry Pi. The camera is set in video mode, as capture-image-and-download wouldn't work even the first time with P, A or M modes.

Here is what happens:
pi@raspberrypi ~ $ gphoto2 --capture-image-and-download
ERROR: Could not capture image.
ERROR: Could not capture.

*pi@raspberrypi ~ $ gphoto2 --capture-preview
Error (-110: 'I/O in progress')

*For debugging messages, please use the --debug option.
Debugging messages may help finding a solution to your problem.
If you intend to send any error or debug messages to the gphoto
developer mailing list [email protected], please run
gphoto2 as follows:

env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --capture-preview*

Please make sure there is sufficient quoting around the arguments.*

If I add the --debug flag it works, but not if I set a debug-logfile!

I've attached the logfile and camera configuration.

(Btw, I removed those tethering files:
/usr/share/dbus-1/services/org.gtk.Private.GPhoto2VolumeMonitor.service
/usr/share/gvfs/mounts/gphoto2.mount
/usr/share/gvfs/remote-volume-monitors/gphoto2.monitor
/usr/lib/gvfs/gvfs-gphoto2-volume-monitor)

I am at a loss now as to how to resolve it, and am even considering looking for an alternative product, so any help would be much appreciated.

Regards,
Jam
logfile.txt

cam_config.txt

event queue pruning

if we received an objectadded event and later a objectremoved event, the internal event code could remove the objectadded if it was not yet fetched by the external user of the library.

this avoids a ptp chdk issue ( https://gist.github.com/anonymous/8f0ed5effc88173c0ea0 ) where we try to getobjectinfo on a already deleted image, because our event handling is too late.

Support for Pentax K-50

I'm not able shot photo with Pentax K-50:

from gphoto --shell --debug:

gphoto2: {.../gphototest/piggyphoto} /> capture-image
393.856012 gp_camera_init              (2): Initializing camera...
393.856045 gp_port_set_error [gphoto2-port.c:1186](0): The supplied vendor or product id (0x0,0x0) is not valid.
393.856086 gp_libusb1_find_device_by_class_lib(2): Looking for USB device (class 0x6, subclass, 0x1, protocol 0x1)...
393.856099 gp_libusb1_find_device_by_class_lib(2): Found USB class device (class 0x6, subclass, 0x1, protocol 0x1)
393.856109 gp_libusb1_find_device_by_class_lib(2): inep to look for is 81
393.856116 gp_libusb1_find_device_by_class_lib(2): Detected defaults: config 1, interface 0, altsetting 0, idVendor ID 25fb, idProduct 0161, inep 81, outep 02, intep 83
393.856121 gp_camera_init              (2): Loading '/usr/lib/libgphoto2/2.5.8/ptp2'...
393.856443 gp_port_open                (2): Opening USB port...
393.856451 gp_libusb1_open             (2): ()
393.856515 gp_libusb1_open             (2): claiming interface 0
393.860132 camera_init                 (2): maxpacketsize 512
393.860175 gp_port_set_timeout         (2): Setting port timeout to 8000 milliseconds.
393.860248 ptp                         (2): PTP: Opening session
393.860269 ptp_usb_sendreq             (2): Sending PTP_OC 0x1002 / Open session request...
393.860303 gp_port_write               (3): Writing 16 = 0x10 bytes to port...
393.860505 gp_port_write               (3): Wrote   16 = 0x10 bytes to port: (hexdump of 16 bytes)
0000  10 00 00 00 01 00 02 10-00 00 00 00 01 00 00 00  ................

393.860519 ptp_usb_getresp             (2): Reading PTP_OC 0x1002 response...
393.860529 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.860720 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 01 20-00 00 00 00              ....... ....    

393.860734 gp_port_set_timeout         (2): Setting port timeout to 20000 milliseconds.
393.860749 ptp_usb_sendreq             (2): Sending PTP_OC 0x1001 / get device info request...
393.860759 gp_port_write               (3): Writing 12 = 0xc bytes to port...
393.860839 gp_port_write               (3): Wrote   12 = 0xc bytes to port: (hexdump of 12 bytes)
0000  0c 00 00 00 01 00 01 10-01 00 00 00              ............    

393.860877 ptp_usb_getdata             (2): Reading PTP_OC 0x1001 / get device info data...
393.860888 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.861118 gp_port_read                (3): Read    245 = 0xf5 out of 1024 bytes from port: (hexdump of 245 bytes)
0000  f5 00 00 00 02 00 01 10-01 00 00 00 64 00 06 00  ............d...
0010  00 00 64 00 24 6d 00 69-00 63 00 72 00 6f 00 73  ..d.$m.i.c.r.o.s
0020  00 6f 00 66 00 74 00 2e-00 63 00 6f 00 6d 00 2f  .o.f.t...c.o.m./
0030  00 44 00 65 00 76 00 69-00 63 00 65 00 53 00 65  .D.e.v.i.c.e.S.e
0040  00 72 00 76 00 69 00 63-00 65 00 73 00 3a 00 20  .r.v.i.c.e.s.:. 
0050  00 31 00 2e 00 30 00 3b-00 20 00 00 00 00 00 16  .1...0.;. ......
0060  00 00 00 01 10 02 10 03-10 04 10 05 10 06 10 07  ................
0070  10 08 10 09 10 0a 10 0b-10 0c 10 0d 10 0f 10 14  ................
0080  10 15 10 16 10 1b 10 01-98 02 98 03 98 05 98 04  ................
0090  00 00 00 03 40 04 40 05-40 02 40 05 00 00 00 01  ....@.@.@.@.....
00a0  50 11 50 06 d4 07 d4 03-d3 00 00 00 00 07 00 00  P.P.............
00b0  00 01 30 06 30 0a 30 0d-30 01 38 00 38 00 30 07  ..0.0.0.0.8.8.0.
00c0  50 00 45 00 4e 00 54 00-41 00 58 00 00 00 05 4b  P.E.N.T.A.X....K
00d0  00 2d 00 35 00 30 00 00-00 05 31 00 2e 00 30 00  .-.5.0....1...0.
00e0  31 00 00 00 08 36 00 31-00 36 00 39 00 38 00 37  1....6.1.6.9.8.7
00f0  00 33 00 00 00         -                         .3...           

393.861151 ptp_usb_getresp             (2): Reading PTP_OC 0x1001 response...
393.861161 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.861343 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 01 20-01 00 00 00              ....... ....    

393.861372 print_debug_deviceinfo      (2): Device info:
393.861381 print_debug_deviceinfo      (2): Manufacturer: PENTAX
393.861389 print_debug_deviceinfo      (2):   Model: K-50
393.861397 print_debug_deviceinfo      (2):   device version: 1.01
393.861405 print_debug_deviceinfo      (2):   serial number: '6169873'
393.861413 print_debug_deviceinfo      (2): Vendor extension ID: 0x00000006
393.861421 print_debug_deviceinfo      (2): Vendor extension version: 100
393.861429 print_debug_deviceinfo      (2): Vendor extension description: microsoft.com/DeviceServices: 1.0; 
393.861437 print_debug_deviceinfo      (2): Functional Mode: 0x0000
393.861445 print_debug_deviceinfo      (2): PTP Standard Version: 100
393.861452 print_debug_deviceinfo      (2): Supported operations:
393.861463 print_debug_deviceinfo      (2):   0x1001 (get device info)
393.861472 print_debug_deviceinfo      (2):   0x1002 (Open session)
393.861481 print_debug_deviceinfo      (2):   0x1003 (Close session)
393.861490 print_debug_deviceinfo      (2):   0x1004 (Get storage IDs)
393.861499 print_debug_deviceinfo      (2):   0x1005 (Get storage info)
393.861508 print_debug_deviceinfo      (2):   0x1006 (Get number of objects)
393.861518 print_debug_deviceinfo      (2):   0x1007 (Get object handles)
393.861526 print_debug_deviceinfo      (2):   0x1008 (Get object info)
393.861535 print_debug_deviceinfo      (2):   0x1009 (Get object)
393.861544 print_debug_deviceinfo      (2):   0x100a (Get thumbnail)
393.861553 print_debug_deviceinfo      (2):   0x100b (Delete object)
393.861562 print_debug_deviceinfo      (2):   0x100c (Send object info)
393.861571 print_debug_deviceinfo      (2):   0x100d (Send object)
393.861580 print_debug_deviceinfo      (2):   0x100f (Format storage)
393.861590 print_debug_deviceinfo      (2):   0x1014 (Get device property description)
393.861599 print_debug_deviceinfo      (2):   0x1015 (Get device property value)
393.861609 print_debug_deviceinfo      (2):   0x1016 (Set device property value)
393.861618 print_debug_deviceinfo      (2):   0x101b (Get partial object)
393.861627 print_debug_deviceinfo      (2):   0x9801 (Get object properties supported)
393.861637 print_debug_deviceinfo      (2):   0x9802 (Get object property description)
393.861646 print_debug_deviceinfo      (2):   0x9803 (Get object property value)
393.861655 print_debug_deviceinfo      (2):   0x9805 (Get object property list)
393.861662 print_debug_deviceinfo      (2): Events Supported:
393.861671 print_debug_deviceinfo      (2):   0x4003
393.861678 print_debug_deviceinfo      (2):   0x4004
393.861686 print_debug_deviceinfo      (2):   0x4005
393.861693 print_debug_deviceinfo      (2):   0x4002
393.861700 print_debug_deviceinfo      (2): Device Properties Supported:
393.861708 print_debug_deviceinfo      (2):   0x5001
393.861715 print_debug_deviceinfo      (2):   0x5011
393.861722 print_debug_deviceinfo      (2):   0xd406
393.861729 print_debug_deviceinfo      (2):   0xd407
393.861737 print_debug_deviceinfo      (2):   0xd303
393.861745 ptp_list_folder             (2): (storage=0xffffffff, handle=0xffffffff)
393.861753 ptp_list_folder             (2): Listing ... 
393.861763 ptp_usb_sendreq             (2): Sending PTP_OC 0x1007 / Get object handles request...
393.861773 gp_port_write               (3): Writing 24 = 0x18 bytes to port...
393.861839 gp_port_write               (3): Wrote   24 = 0x18 bytes to port: (hexdump of 24 bytes)
0000  18 00 00 00 01 00 07 10-02 00 00 00 ff ff ff ff  ................
0010  00 00 00 00 ff ff ff ff-                         ........        

393.861854 ptp_usb_getdata             (2): Reading PTP_OC 0x1007 / Get object handles data...
393.861863 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.862477 gp_port_read                (3): Read    20 = 0x14 out of 1024 bytes from port: (hexdump of 20 bytes)
0000  14 00 00 00 02 00 07 10-02 00 00 00 01 00 00 00  ................
0010  00 40 00 04            -                         .@..            

393.862496 ptp_usb_getresp             (2): Reading PTP_OC 0x1007 response...
393.862505 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.862589 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 01 20-02 00 00 00              ....... ....    

393.862604 ptp_list_folder             (2): adding new objectid 0x04004000 (nrofobs=0,j=0)
393.862623 ptp_usb_sendreq             (2): Sending PTP_OC 0x1004 / Get storage IDs request...
393.862632 gp_port_write               (3): Writing 12 = 0xc bytes to port...
393.862714 gp_port_write               (3): Wrote   12 = 0xc bytes to port: (hexdump of 12 bytes)
0000  0c 00 00 00 01 00 04 10-03 00 00 00              ............    

393.862727 ptp_usb_getdata             (2): Reading PTP_OC 0x1004 / Get storage IDs data...
393.862736 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.862839 gp_port_read                (3): Read    20 = 0x14 out of 1024 bytes from port: (hexdump of 20 bytes)
0000  14 00 00 00 02 00 04 10-03 00 00 00 01 00 00 00  ................
0010  01 00 01 00            -                         ....            

393.862855 ptp_usb_getresp             (2): Reading PTP_OC 0x1004 response...
393.862864 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.862966 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 01 20-03 00 00 00              ....... ....    

393.862979 ptp_list_folder             (2): (storage=0x00010001, handle=0xffffffff)
393.862987 ptp_list_folder             (2): Listing ... 
393.862998 ptp_usb_sendreq             (2): Sending PTP_OC 0x1007 / Get object handles request...
393.863007 gp_port_write               (3): Writing 24 = 0x18 bytes to port...
393.863088 gp_port_write               (3): Wrote   24 = 0x18 bytes to port: (hexdump of 24 bytes)
0000  18 00 00 00 01 00 07 10-04 00 00 00 01 00 01 00  ................
0010  00 00 00 00 ff ff ff ff-                         ........        

393.863102 ptp_usb_getdata             (2): Reading PTP_OC 0x1007 / Get object handles data...
393.863111 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.863613 gp_port_read                (3): Read    20 = 0x14 out of 1024 bytes from port: (hexdump of 20 bytes)
0000  14 00 00 00 02 00 07 10-04 00 00 00 01 00 00 00  ................
0010  00 40 00 04            -                         .@..            

393.863630 ptp_usb_getresp             (2): Reading PTP_OC 0x1007 response...
393.863636 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
393.863714 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 01 20-04 00 00 00              ....... ....    

393.863724 ptp_list_folder             (2): adding old objectid 0x04004000 (nrofobs=1,j=0)
393.863738 gp_context_error            (0): Sorry, your camera does not support generic capture

*** Error ***              
Sorry, your camera does not support generic capture
393.863759 gp_camera_capture [gphoto2-camera.c:1032](0): 'camera->functions->capture (camera, type, path, context)' failed: -6
ERROR: Could not capture image.
ERROR: Could not capture.
*** Error (-6: 'Unsupported operation') ***

I'm familiar with C++ programming so maybe I'm able to help you with bringing support of this camera to libgphoto2

segmentation fault/corrupted double-linked list on powering down camera

When camera is manually powered down shortly (1-2sec) after it gets connected and while still processing queued events (cam.processEvents) the program intermittently crashes with segfault or "corrupted double-linked list".

Main:
while (1)
{
if ( !cam.isConnected() )
{
if ( !cam.connect() )
sleep(2);
}
if ( cam.isConnected() )
cam.processEvents(500);
}

cam.processEvents:
{
if ( !bConnected )
return;
CameraEventType evttype;
CameraFilePath _path;
void *evtdata = 0;
if (GP_OK != gp_camera_wait_for_event (_camera,timeout_ms, &evttype, &evtdata, context))
{
disconnect();
return;
}
switch (evttype)
{
case GP_EVENT_FILE_ADDED: // did not ask for file, discard it
path = (CameraFilePath
)evtdata;
gp_camera_file_delete(_camera, path->folder, path->name, _context);
break;
default:
break;
}
if ( evtdata )
free (evtdata);
}

cam.disconnect:
{
if ( _context && _camera )
gp_camera_exit(_camera, _context) ;
if ( _camera )
gp_camera_unref(_camera);
if ( _context )
gp_context_unref(_context);
_context = NULL;
_camera = NULL;
}

Debug log:
waiting for events timeout 500 ms
Sending PTP_OC 0x911d / PTP_OC_CANON_EOS_KeepDeviceOn request...
Reading PTP_OC 0x911d response...
Sending PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent request...
Reading PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent data...
Reading PTP_OC 0x9116 response...
entry type 0003
waiting for events timeout 500 ms
Sending PTP_OC 0x911d / PTP_OC_CANON_EOS_KeepDeviceOn request...
Reading PTP_OC 0x911d response...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.inep, (unsigned char_)bytes, size, &curread, port->timeout)' failed: Input/Output Error (-1)
Reading 1024 = 0x400 bytes from port failed: Error reading from the port (-34)
Clearing halt on IN EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.inep, (unsigned char_)bytes, size, &curread, port->timeout)' failed: Input/Output Error (-1)
Reading 1024 = 0x400 bytes from port failed: Error reading from the port (-34)
Clearing halt on IN EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
PTP_OC 0x911d receiving resp failed: PTP I/O Error (0x02ff)
'ptp_canon_eos_keepdeviceon (params)' failed: PTP I/O Error (0x02ff)
'camera->functions->wait_for_event ( camera, timeout, eventtype, eventdata, context)' failed: -7
Exiting camera ('Canon EOS 1200D')...
Sending PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9116 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9116 sending req failed: Error writing to the port (-35)
missed EOS ptp type 3
missed EOS ptp type 3
missed EOS ptp type 3
missed EOS ptp type 3
Unprepare_capture
Sending PTP_OC 0x9160 / PTP_OC_CANON_EOS_AfCancel request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9160 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9160 sending req failed: Error writing to the port (-35)
Card value is 2
Sending PTP_OC 0x9110 / PTP_OC_CANON_EOS_SetDevicePropValueEx request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9110 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9110 sending req failed: Error writing to the port (-35)
'ptp_canon_eos_setdevicepropvalue (params, PTP_DPC_CANON_EOS_CaptureDestination, &ct_val, PTP_DTC_UINT32)' failed: setdevicepropvalue of capturetarget to 0x2 failed (0x02ff: PTP I/O Error)
'camera_canon_eos_update_capture_target(camera, context, 1)' failed: 'I/O problem' (-7)
Sending PTP_OC 0x1003 / Close session request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x1003 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x1003 sending req failed: Error writing to the port (-35)
Closing port...
canceling transfer 0:0x7a20f0 (status 0)
canceling transfer 1:0x7a56f0 (status 0)
canceling transfer 2:0x7a58a8 (status 0)
canceling transfer 3:0x7a5a60 (status 0)
canceling transfer 4:0x7a5c18 (status 0)
canceling transfer 5:0x7a5dd0 (status 0)
canceling transfer 6:0x7a5f88 (status 0)
canceling transfer 7:0x7a6140 (status 0)
canceling transfer 8:0x7a62f8 (status 0)
'libusb_cancel_transfer(port->pl->transfers[i])' failed: No such device (it may have been disconnected) (-4)
canceling transfer 9:0x7a64b0 (status 0)
'libusb_cancel_transfer(port->pl->transfers[i])' failed: No such device (it may have been disconnected) (-4)
checking: transfer 0:0x7a20f0 status 0
checking: transfer 1:0x7a56f0 status 0
checking: transfer 2:0x7a58a8 status 0
checking: transfer 3:0x7a5a60 status 0
checking: transfer 4:0x7a5c18 status 0
checking: transfer 5:0x7a5dd0 status 0
checking: transfer 6:0x7a5f88 status 0
checking: transfer 7:0x7a6140 status 0
0x7a20f0 with status 5
0x7a56f0 with status 5
0x7a58a8 with status 5
0x7a5a60 with status 5
0x7a5c18 with status 5
0x7a5dd0 with status 5
0x7a5f88 with status 5
0x7a6140 with status 5
Segmentation fault (core dumped)

Backtrace:
#0 op_clear_transfer_priv (itransfer=0x7a62c0) at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/os/linux_usbfs.c:2193

    transfer = 0x7a62f8
    __FUNCTION__ = "op_clear_transfer_priv"

#1 0x76a1aa38 in usbi_handle_disconnect (handle=handle@entry=0x7a3cd8) at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/io.c:2614

    cur = 0x7a62c0
    to_cancel = 0x7a62c0
    __FUNCTION__ = "usbi_handle_disconnect"

#2 0x76a1de32 in op_handle_events (ctx=0x7a1ed0, fds=, nfds=4, num_ready=0)

at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/os/linux_usbfs.c:2601
    pollfd = 0x7a9468
    handle = 0x7a3cd8
    hpriv = <optimized out>
    r = <optimized out>
    i = 3
    __FUNCTION__ = "op_handle_events"

#3 0x76a19c6c in handle_events (ctx=ctx@entry=0x7a1ed0, tv=tv@entry=0x7ebd4a70) at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/io.c:2089

    r = <optimized out>
    ipollfd = <optimized out>
    nfds = 4
    fds = 0x7a9450
    i = <optimized out>
    timeout_ms = <optimized out>
    special_event = 1
    __FUNCTION__ = "handle_events"

#4 0x76a1a4a0 in libusb_handle_events_timeout_completed (ctx=0x7a1ed0, tv=tv@entry=0x7ebd4a98, completed=completed@entry=0x0)

at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/io.c:2174
    r = 0
    poll_timeout = {tv_sec = 60, tv_usec = 0}
    __FUNCTION__ = "libusb_handle_events_timeout_completed"

#5 0x76a1a544 in libusb_handle_events (ctx=) at /usr/src/debug/libusb1/1.0.19-r0/libusb-1.0.19/libusb/io.c:2250

    tv = {tv_sec = 60, tv_usec = 0}

#6 0x76a28440 in gp_libusb1_close (port=0x7a3800) at /usr/src/debug/libgphoto2/2.5.8-r0/libgphoto2-2.5.8/libgphoto2_port/libusb1/libusb1.c:469

    i = 10
    haveone = <optimized out>
    tv = {tv_sec = 0, tv_usec = 1000}
    __func__ = "gp_libusb1_close"

#7 0x76fd6f34 in gp_port_close (port=0x7a3800) at /usr/src/debug/libgphoto2/2.5.8-r0/libgphoto2-2.5.8/libgphoto2_port/libgphoto2_port/gphoto2-port.c:301

    r = <optimized out>

#8 0x76e5e742 in gp_camera_exit (camera=0x7a0078, context=0x7a0030) at /usr/src/debug/libgphoto2/2.5.8-r0/libgphoto2-2.5.8/libgphoto2/gphoto2-camera.c:292

No locals.
#9 0x0000ff2c in Gphotocam::disconnect (this=0x14d74 ) at ../src/gphotocam.cpp:129

    bRet = true

#10 0x0001050e in Gphotocam::processEvents (this=0x14d74 , timeout_ms=500) at ../src/gphotocam.cpp:292

    evttype = GP_EVENT_TIMEOUT
    path = 0x14d74 <cam>
    evtdata = 0x0

#11 0x0000ab5a in main (argc=0, argv=0x7ebd4d98) at ../src/daemon.cpp:277

    daemon = false
    sa = {__sigaction_handler = {sa_handler = 0xa8e1 <sighup(int)>, sa_sigaction = 0xa8e1 <sighup(int)>}, sa_mask = {__val = {1, 0 <repeats 31 times>}}, 
      sa_flags = 0, sa_restorer = 0x2}
    shutterspeed = "\354)\001\000\240)\001\000\000\000\000\000\370\242\000"
    iso = "\310A\001\000\002\000\000\000\313\253\000\000\377\377\000"
    dial = "Manual\000\000\000\000\000\000\000\000\000"
    wb = "\001\000\000\000\030L\275~\337\253\000\000\001\000\000"
    batt = "tM\001\000\bL\275~\200P\271v\002\000\000"

Debug log when crash does not happen:
waiting for events timeout 500 ms
Sending PTP_OC 0x911d / PTP_OC_CANON_EOS_KeepDeviceOn request...
Reading PTP_OC 0x911d response...
Sending PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent request...
Reading PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent data...
Reading PTP_OC 0x9116 response...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.inep, (unsigned char_)bytes, size, &curread, port->timeout)' failed: Input/Output Error (-1)
Reading 1024 = 0x400 bytes from port failed: Error reading from the port (-34)
Clearing halt on IN EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.inep, (unsigned char_)bytes, size, &curread, port->timeout)' failed: Input/Output Error (-1)
Reading 1024 = 0x400 bytes from port failed: Error reading from the port (-34)
Clearing halt on IN EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
PTP_OC 0x9116 receiving resp failed: PTP I/O Error (0x02ff)
'ptp_check_eos_events (params)' failed: Canon EOS Get Changes failed (0x02ff: PTP I/O Error)
Canon EOS Get Changes failed (0x02ff: PTP I/O Error)
'camera->functions->wait_for_event ( camera, timeout, eventtype, eventdata, context)' failed: -7
Exiting camera ('Canon EOS 1200D')...
Sending PTP_OC 0x9116 / PTP_OC_CANON_EOS_GetEvent request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9116 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9116 sending req failed: Error writing to the port (-35)
missed EOS ptp type 3
...
missed EOS ptp type 3
missed EOS ptp type 0
...
missed EOS ptp type 0
missed EOS ptp type 3
...
missed EOS ptp type 3
Unprepare_capture
Sending PTP_OC 0x9160 / PTP_OC_CANON_EOS_AfCancel request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9160 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9160 sending req failed: Error writing to the port (-35)
Card value is 2
Sending PTP_OC 0x9110 / PTP_OC_CANON_EOS_SetDevicePropValueEx request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9110 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x9110 sending req failed: Error writing to the port (-35)
'ptp_canon_eos_setdevicepropvalue (params, PTP_DPC_CANON_EOS_CaptureDestination, &ct_val, PTP_DTC_UINT32)' failed: setdevicepropvalue of capturetarget to 0x2 failed (0x02ff: PTP I/O Error)
'camera_canon_eos_update_capture_target(camera, context, 1)' failed: 'I/O problem' (-7)
Sending PTP_OC 0x1003 / Close session request...
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x1003 sending req failed: Error writing to the port (-35)
Clearing halt on OUT EP and retrying once.
Clear USB halt...
'libusb_clear_halt(port->pl->dh, internal_ep)' failed: Other error (-99)
'libusb_bulk_transfer (port->pl->dh, port->settings.usb.outep, (unsigned char_)bytes, size, &curwritten, port->timeout)' failed: Input/Output Error (-1)
Writing 12 = 0xc bytes to port failed: Error writing to the port (-35)
PTP_OC 0x1003 sending req failed: Error writing to the port (-35)
Closing port...
canceling transfer 0:0x171fd48 (status 0)
canceling transfer 1:0x172a310 (status 0)
canceling transfer 2:0x172a498 (status 0)
canceling transfer 3:0x172a620 (status 0)
canceling transfer 4:0x172a7a8 (status 0)
canceling transfer 5:0x1726e90 (status 0)
canceling transfer 6:0x1727048 (status 0)
canceling transfer 7:0x1727200 (status 0)
canceling transfer 8:0x17273b8 (status 0)
canceling transfer 9:0x1727570 (status 0)
checking: transfer 0:0x171fd48 status 0
checking: transfer 1:0x172a310 status 0
checking: transfer 2:0x172a498 status 0
checking: transfer 3:0x172a620 status 0
checking: transfer 4:0x172a7a8 status 0
checking: transfer 5:0x1726e90 status 0
checking: transfer 6:0x1727048 status 0
checking: transfer 7:0x1727200 status 0
checking: transfer 8:0x17273b8 status 0
checking: transfer 9:0x1727570 status 0
0x171fd48 with status 3
0x172a310 with status 3
0x172a498 with status 3
0x172a620 with status 3
0x172a7a8 with status 3
0x1726e90 with status 3
0x1727048 with status 3
0x1727200 with status 3
0x17273b8 with status 3
0x1727570 with status 3
resetting filesystem
Clearing fscache LRU list...
fscache LRU list already empty
Internally deleting all folders from '/'...
Lookup folder '/'...
Found! / is 0x1721a38
Recurse delete folder 0x1721a38//
disconnected from camera

Moto X incorrectly detected

Hi,

Gphoto2 do not seems to work with Motorola Moto X (2014) with android 6.

First it do not seems to be recognized as Moto X but as Moto G

Possibilités de l'appareil                      : Motorola Moto G (ID2)        
Gestion du port série                           : non
Gestion du port USB                             : oui
Choix d'acquisition                             :
                                                : Acquisition non gérée par ce pilote
Gestion de la configuration                     : non
Effacer les fichiers sélectionnés de l'appareil : oui
Supprimer tous les fichiers de l'appareil       : non
Gestion des vignettes de prévisualisation       : non
Gestion de l'envoi de fichiers                  : oui

and when trying to get all files from devices I get this error :

*** Erreur ***
Identifiant de stockage PTP incorrect
*** Erreur (-1 : « Erreur indéfinie ») ***

It means: PTP storage ID incorrect, Error(-1 : undefined error)

gphoto2         2.5.6          gcc, popt(m), exif, no cdk, no aa, jpeg, readline
libgphoto2      2.5.8          all camlibs, gcc, ltdl, EXIF
libgphoto2_port 0.12.0         gcc, ltdl, no USB, serial lockdev locking

Thanks !

gp_log_add_func can return duplicate ids

The gp_log_add_func function takes its returned id from the log_funcs_count variable. However, if gp_log_remove_func is called then log_funcs_count is decremented. This can result in two different callbacks having the same id. For example:

id_1 = gp_log_add_func(GP_LOG_VERBOSE, callback, NULL);  // id_1 == 1
id_2 = gp_log_add_func(GP_LOG_VERBOSE, callback, NULL);  // id_2 == 2
gp_log_remove_func(id_1);
id_3 = gp_log_add_func(GP_LOG_VERBOSE, callback, NULL);  // id_3 == 2
gp_log_remove_func(id_2);
gp_log_remove_func(id_3);  // returns GP_ERROR_BAD_PARAMETERS

Canon 80D Support

Not sure what all information is needed for requesting a new camera to be added. Please let me know anything I can provide to help out with this process.

I am able to compile and test code if needed, or any debugging you need done.

Thanks.

Where is "--config" on gphoto2 & libgphoto2 2.5.9?

I build gphoto2 and libgphoto2 2.5.9, but not found "--config"? "--list-config" working fine.
What steps have I forgotten?

BTW:
{"Nikon:Coolpix 4100 (PTP mode)", 0x04b0,0x012d, PTP_CAP|0}
fix it:
{"Nikon:Coolpix 4100 (PTP mode)", 0x04b0,0x012d, PTP_CAP|PTP_NO_CAPTURE_COMPLETE}

Libgphoto2-2.5.10 Installation Problem

While attempting to install libgphoto2 version 2.5.10, I noticed that after make install, my library version was still 2.5.8. I have gphoto2 version 2.5.10 so the newly added features such as gp_camera_get_single_config produce a "symbol lookup error". I'm not sure why libgphoto2 is not updating/installing properly. Here's my process

sudo ./configure --prefix=/usr/local
sudo ./make
sudo ./make check
sudo ./make install

Thanks.

Failed to detect camera with GPhoto2 from Solid information

According to the bug 307839 in Digikam, the Solid component seems to fails somehow when trying to get information from camera through Digikam. The only error message output in the console is:

digikam(26035)/digikam (core): Failed to detect camera with GPhoto2 from Solid information

I could confirm this bug with both a Nikon D5500 and a Nikon Coolpix P610.

Is there any more information I could provide to help find the root cause?

Unable to compile, configure file has gone

Hi, I'm the owner of https://github.com/gonzalo/gphoto2-updater, a script to automatically compile the last version of gphoto/libgphoto over ubuntu/debian/raspian.
I'm trying to update my code to the new gphoto2 github repository but I've observed that some files have changed. Configure file has gone and "autoreconf --install --symlink" gets an "error: couldn't open directory 'm4m'".

So, do you have any suggestions to compile it over Ubuntu?

Host->Camera ptpip transfers hang on Nikon due to ptp_ptpip_sendreq() wrong phase

Hi,

I wanted to bring to your attention a bug that causes Nikon cameras to stop responding after completing a PTPIP MTP request that involves a Host->Camera transfer, for example a "--set-config datetime=now". I'm new to github and not familiar enough with the libgphoto2 codebase to make the necessary change but here's what needs to be altered:

ptp_ptpip_sendreq() needs to use a "ptpip_cmd_dataphase" parameter of 2 for Host->Camera transfers. It presently always sets the dataphase to 1, irrespective of the command's data direction. Existing code:

ptp_ptpip_sendreq (PTPParams* params, PTPContainer* req)
{
       int     ret;
       int     len = 18+req->Nparam*4;
    unsigned char   *request = malloc(len);

    ptp_ptpip_check_event (params);

    htod32a(&request[ptpip_type],PTPIP_CMD_REQUEST);
    htod32a(&request[ptpip_len],len);
    **Dhtod32a(&request[ptpip_cmd_dataphase],1);   /* FIXME: dataphase handling */**

The correct dataphase values for each data direction should be:
Camera->Host or No Data: 1
Host->Camera: 2

With the incorrect data phase, here's what the trace looks like for a SetDevicePropValue:DateTime request from gphoto:

0.307724 camera_set_config           (2): Setting property 'Camera Date and Time' / 0x5011
0.307834 ptp_ptpip_sendreq           (3): ptpip/oprequest data: (hexdump of 22 bytes)
0000  16 00 00 00 06 00 00 00-01 00 00 00 16 10 35 00  ..............5.
0010  00 00 11 50 00 00      -                         ...P..          

0.307893 ptp_ptpip_senddata          (3): ptpip/senddata header: (hexdump of 20 bytes)
0000  14 00 00 00 09 00 00 00-35 00 00 00 21 00 00 00  ........5...!...
0010  00 00 00 00            -                         ....            

0.307987 ptp_ptpip_senddata          (3): ptpip/senddata data: (hexdump of 45 bytes)
0000  2d 00 00 00 0c 00 00 00-35 00 00 00 10 32 00 30  -.......5....2.0
0010  00 31 00 35 00 30 00 39-00 30 00 34 00 54 00 30  .1.5.0.9.0.4.T.0
0020  00 32 00 31 00 32 00 31-00 36 00 00 00           .2.1.2.1.6...   

0.312794 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (hexdump of 8 bytes)
0000  0e 00 00 00 07 00 00 00-                         ........        

0.312817 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (hexdump of 6 bytes)
0000  01 20 35 00 00 00      -                         . 5...          

0.314384 gp_camera_free              (2): Freeing camera...
0.314398 gp_camera_exit              (2): Exiting camera ('PTP/IP Camera')...
0.314482 ptp_ptpip_sendreq           (3): ptpip/oprequest data: (hexdump of 18 bytes)
0000  12 00 00 00 06 00 00 00-01 00 00 00 c7 90 36 00  ..............6.
0010  00 00                  -                         ..              

30.350267 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (empty hexdump of empty buffer)
30.350309 ptp_ptpip_generic_read [ptpip.c:155](0): End of stream after reading 0 bytes of ptpipheader
30.350334 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (empty hexdump of empty buffer)
30.350345 ptp_ptpip_generic_read [ptpip.c:155](0): End of stream after reading 0 bytes of ptpipheader
30.350357 ptp_ptpip_sendreq           (3): ptpip/oprequest data: (hexdump of 18 bytes)
0000  12 00 00 00 06 00 00 00-01 00 00 00 03 10 37 00  ..............7.
0010  00 00                  -                         ..              

30.350409 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (empty hexdump of empty buffer)
30.350418 ptp_ptpip_generic_read [ptpip.c:155](0): End of stream after reading 0 bytes of ptpipheader
30.350425 ptp_ptpip_generic_read      (3): ptpip/generic_read data: (empty hexdump of empty buffer)
30.350431 ptp_ptpip_generic_read [ptpip.c:155](0): End of stream after reading 0 bytes of ptpipheader
30.350546 gp_port_close               (2): Closing port...

Building libgphoto2 on Visual Studio 2015

Before someone shuts me off, I am aware of this disclaimer on the main page:

Platforms
libgphoto2 should compile and run on pretty much all Unix-like platforms.
libgphoto2 has not (yet?) been ported to any operating system from MicroSoft.

Having said that, I embarked on porting libgphoto2 for Visual Studio. It is a wonderful tool and my primary motivation was to provide access to SLR camera's using a port of libgphoto2 for Micromanager.

I have been successful to a very large extent. However, I am facing issues with something that I am not well versed with; loading dynamic libraries using ltdl !! If this problem is solved, then, I think we can indeed get a port of libgphoto2 on windows. Here are screenshots of my build and the exact problem that I am facing
Summary of my problem:

a.) I am trying to detect my Lenovo K3-Note camera (a model supported by libgphoto2 and verified on a linux machine)
b.) libusb is detecting the device
c.) ptp2.dll is being loaded by ltdl (as seen in the screenshots)
d.) The camera is not being initialized after lt_dlsym (screenshots attached).

The only dependencies that I had to build were:
a.) libusb (built as a static library using VS2015)
b.) libtools (for ltdl ; Used Msys/MinGW - gcc 5.2.1 and exported the symbols using dumpbin and created a VS2015 import library using lib)
c.) pthread (built as a static library using VS2015)

The iolibs are stored in <path_of_executable>/iolibs
The camlibs are stored in <path_of_executable>/camlibs

I have provided global paths for iolibs and camlibs as environment variables in Windows.

My fork (along with changes that I had to make) can be found
https://github.com/skn123/libgphoto2

pic0
pic1
pic2

Please comment on any aspect of the code so that I can share with the community a CMake version of libgphoto2!

copying images from a camera gives -1: 'Unspecified error', second attempt succeeds (regression from 2.5.7)

When I try to copy pictures from my camera, I get error getting file: -1: unspecified error in Nautilus for every single picture. The pictures are copied over, but it shows this error for every single one of them. Using gphoto2, it looks like this:

$ gphoto2 --debug --debug-logfile=gphoto2-debug.log --get-file 2 

*** Error ***              
PTP Invalid Object Handle
*** Error (-1: 'Unspecified error') ***       

Again, second attempt for the same image succeeds every time (even after disconnecting and reconnecting the device, that image can be copied without issues).

I have reported the issues initially against gvfs, please see the full bug report here:
https://bugzilla.gnome.org/show_bug.cgi?id=760162

There is gphoto2 debug log attached here:
https://bugzilla.gnome.org/attachment.cgi?id=318316

Copying works correctly with libgphoto2-2.5.7-4.fc23.x86_64, but is broken with libgphoto2-2.5.8-1.fc23.x86_64 (Fedora 23).

Thanks for looking into this.

Sony ptpip feature request

This isn't an issue but rather a future feature request. I'm hoping one day gphoto2 will be able to tell the Sony cameras when it is transferring files and when it is done. You don't need to do this but I wanted to at least bring to your attention what I've figured out so far.

Basically I started up a mini project and I'm hoping to get other Sony users to try it out to verify it works. Please check it out if you have a chance:
https://github.com/falk0069/sony-pm-alt

It is quite a hack job I did to the ptpip.c code. I basically inject 29 data packets in order to tell the Sony camera this info. Also the transactionIDs are all over the board, but the camera doesn't seem to care.

Lastly, You'll notice I created a 500 byte sonyrequest buffer. I only should have needed to defined it as 26 bytes but when I made it smaller I occasionally got a variety of segmentation fault issues. I couldn't figure out where the issue was but I believe it might be the same issue that alik55 reported (#15). I feel that it might be in the logging code since this is where the core dumps generally blew up. Of course I might be doing something completely brain dead with my packet injections. By making the buffer large enough I seemed to avoid any illegal memory boundary writes.

I'm hoping you might entertain this idea and you don't find it upsetting. Please let me know what you think.

Thanks!

Problem after first capture image and download canon 1200D

Hi,

I seem to have the exact same problem as http://sourceforge.net/p/gphoto/support-requests/129/
Iam using the exact same hardware Raspberry PI 2 model B..

Sometimes I get "You need to specify a folder starting with /store_xxxxxxxxx/" and but most of the time it just seem to hang for a while and then reporting

ERROR: Could not capture image.
ERROR: Could not capture

You can find the debug file here:
https://gist.github.com/petha/674dfe311c25ec20501b

Capturing with Canon EOS M3

It seems that capturing images with the Canon EOS M3 is not possible though it is listed with
gphoto2 --list-cameras:

gphoto2 --list-cameras | grep -i "canon eos m3"
"Canon EOS M3"

Neither the option --capture-image nor --caption-tethered works.

capture-eos-m3.txt
capture-tethered.txt

This is rather unfortunate since I specially bought this model based on this.
Is there any way around this limitation or is full support for this model planned in the near future?

External flash configuration on EOS 1200D

Hello !

I am using libgphoto2 on a Raspberry Pi to control my Canon EOS 1200D.
I would like to configure an external flash (420 EX II) from libgphoto2 but there is no such configuration option, although it is possible to configure it from the camera.
I have copy pasted the list of configuration available below.
Do you think it will be possible to configure the external flash ?

Best

/main/actions/syncdatetime                                                     
/main/actions/syncdatetime
/main/actions/uilock
/main/actions/autofocusdrive
/main/actions/manualfocusdrive
/main/actions/cancelautofocus
/main/actions/eoszoom
/main/actions/eoszoomposition
/main/actions/viewfinder
/main/actions/eosremoterelease
/main/settings/datetime
/main/settings/datetime
/main/settings/reviewtime
/main/settings/output
/main/settings/movierecordtarget
/main/settings/evfmode
/main/settings/ownername
/main/settings/artist
/main/settings/copyright
/main/settings/customfuncex
/main/settings/focusinfo
/main/settings/autopoweroff
/main/settings/depthoffield
/main/settings/capturetarget
/main/settings/capture
/main/status/serialnumber
/main/status/manufacturer
/main/status/cameramodel
/main/status/deviceversion
/main/status/vendorextension
/main/status/model
/main/status/ptpversion
/main/status/batterylevel
/main/status/lensname
/main/status/eosserialnumber
/main/status/shuttercounter
/main/status/availableshots
/main/imgsettings/imageformat
/main/imgsettings/imageformatsd
/main/imgsettings/iso
/main/imgsettings/whitebalance
/main/imgsettings/whitebalanceadjusta
/main/imgsettings/whitebalanceadjustb
/main/imgsettings/whitebalancexa
/main/imgsettings/whitebalancexb
/main/imgsettings/colorspace
/main/capturesettings/focusmode
/main/capturesettings/autoexposuremode
/main/capturesettings/drivemode
/main/capturesettings/picturestyle
/main/capturesettings/aperture
/main/capturesettings/shutterspeed
/main/capturesettings/meteringmode
/main/capturesettings/bracketmode
/main/capturesettings/aeb
/main/other/d402
/main/other/d407
/main/other/d406
/main/other/d303
/main/other/5001

Capturing not possible for Nikon P330

Hello, I bought a Nikon P330 do create time-lapse movies. It is listed in the list of supported cameras:

Nikon Coolpix P330 (PTP mode) Image Capture, Configuration

Unfortunately it doesn't work :(
Please find attached the logs:

pi@ZeitrafferBox`
~ $ gphoto2 --summary
Camera summary:
Manufacturer: Nikon Corporation
Model: P330
Version: V1.00
Serial Number: 40003182
Vendor Extension ID: 0xa (1.0)
Vendor Extension Description: microsoft.com: 1.0; Nikon PTP Extensions

Capture Formats:
Display Formats: JPEG, Association/Directory, DPOF, MS Wave, Apple Quicktime, Unknown(b111), Undefined Type

Device Capabilities:
File Download, File Deletion, File Upload
No Image Capture, No Open Capture, No vendor specific capture

Storage Devices Summary:
store_00010001:
StorageDescription: None
VolumeLabel: None
Storage Type: Removable RAM (memory card)
Filesystemtype: Digital Camera Layout (DCIM)
Access Capability: Read-Write
Maximum Capability: 3956801536 (3773 MB)
Free Space (Bytes): 3721658368 (3549 MB)
Free Space (Images): 1051

Device Property Summary:
Battery Level(0x5001):(read only) (type=0x2) Range [0 - 100, step 1] value: 100% (100)
Date & Time(0x5011):(readwrite) (type=0xffff) '20160205T174159'
Property 0xd280:(read only) (type=0x2) 3
Property 0xd303:(read only) (type=0x2) 1
Property 0xd406:(readwrite) (type=0xffff) ''
Property 0xd407:(read only) (type=0x6) 1

pi@ZeitrafferBox ~ $ gphoto2 --capture-image

*** Error ***
Sorry, your camera does not support generic capture
ERROR: Could not capture image.
ERROR: Could not capture.
*** Error (-6: 'Unsupported operation') ***

I am using the following gphoto2 version:

pi@ZeitrafferBox ~ $ gphoto2 --version
gphoto2 2.5.6

Copyright (c) 2000-2014 Lutz Mueller and others

gphoto2 comes with NO WARRANTY, to the extent permitted by law. You may
redistribute copies of gphoto2 under the terms of the GNU General Public
License. For more information about these matters, see the files named COPYING.

This version of gphoto2 is using the following software versions and options:
gphoto2 2.5.6 gcc, popt(m), exif, no cdk, no aa, no jpeg, no readline
libgphoto2 2.5.7 all camlibs, gcc, ltdl, EXIF
libgphoto2_port 0.12.0 gcc, ltdl, USB, serial without locking`

Thanks for your help
Torsten

PTP Device Busy on second capture and download for EOS 1200D #2 + slow Jessie

Hi.
I know this error has been seen before, but what exactly is the fix for it?.
#13
Do I have to manually edit a file? sry, not an expert..... Where do I find the file?
I tried both the 2.5.8 and 2.5.9 (also 2.5.9.1) gphoto2 version. Because I thought the fix might have been implemented since then.

Moreover, I have one Raspberry Pi with an Raspbian wheezy image and one Pi with an Raspbian Jessie image. What I see is that on the Whezzy image it takes about 200ms from the time the command "gphoto2 --capture-image-and-download" is executed to the time the camera reacts. That is a fast respond. BUT on the Jessie image the same command takes about 1500ms until the camera reacts. What is going on there? Anyidea?

Thanks in advance,
Ben

Lags on v2.5.9

Hi!

Version 2.5.9 introduced lag between call to take_picture and actual effect.
This didn't happen in previous versions.

Any idea what can be done with it?
We wouldn't like to lock ourselves on 2.5.8 as the last working version...

Tested on Debian and Mac OS with Canon 550D.

Focus manipulation during live streaming video

Hi,

I can stream live image from my EOS camera with the following command :
gphoto2 --capture-movie --stdout | ffmpeg -i pipe:0 http://localhost:8080/feed1.ffm

Also I can do focus manipulation with the following command :
gphoto2 --set-config-index manualfocusdrive=6

Is it technically possible to do these both at the same time in Python or C by using gphoto2?

Thanks!
mfk

generic ptp opcode emitting

have a generic ptp opcode emitting function

opcode = 0x9999,0xparam1,0xparam2 ... HEX DATA

returns the data somehow

Capturing not possible for Sony DSC-T900

Dear all,

I have configured my Sony DSC-T900 in PTP/MTP mode.
I am able to download a picture within camera memory stick.

My issue is that I am not able to capture a picture.
I get (T900 camera seems to be detected as model W130!):

MacPro:~ Yohann$ env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --abilities
Abilities for camera : Sony DSC-W130 (PTP mode)
Serial port support : no
USB support : yes
Capture choices :
: Capture not supported by the driver
Configuration support : no
Delete selected files on camera : yes
Delete all files on camera : no
File preview (thumbnail) support : yes
File upload support : yes

and:

MacPro:~ Yohann$ gphoto2 --capture-image

env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --capture-image

*** Error ***
An error occurred in the io-library ('Could not claim the USB device'): Could not claim interface 0 (No such file or directory). Make sure no other program (MacOS PTPCamera service) or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.
ERROR: Could not capture image.
ERROR: Could not capture.
*** Error (-53: 'Could not claim the USB device') ***

Thanks you so much in advance for your help :):)

Kind regards,
Yohann

my-logfile.txt

gtkam compile problem when HAVE_GP_PORT_INFO_GET_NAME not set

I've been having a compile-time failure for gtkam-master/src/gtkam-chooser.c when HAVE_GP_PORT_INFO_GET_NAME is not set.

The problem stems from the fact that GPPortInfo is type-defined to a pointer to an incomplete type (e.g. "struct _GPPortInfo; typedef struct _GPPortInfo *GPPortInfo;"), but the functions on_port_added(), gtkam_chooser_set_camera(), and gtkam_chooser_set_port_mask() are treating GPPortInfo as a concrete type, e.g.:

name = g_strdup_printf ("%s (%s)", info.name, info.path);

instead of

name = g_strdup_printf ("%s (%s)", info->name, info->path);

I'm attaching a very hacky patch that fixes this set of bugs for me (though it's possible I need to figure out how to set HAVE_GP_PORT_INFO_GET_NAME in my config). The biggest problem in this patch is getting GPPortInfo type-defined to a concrete type, where I've directly included a local file.

gtkam-chooser.patch.txt

Live view and video recording

Hi!
I am developing an application used for tethered capture. And one of the things that I want to do is support both image and video capture. I have no issues with image capture but I do have some problems with video. The issue seems to be present in gphoto2 and third party libgphoto2 python bindings.

I am using the Canon EOS 5D Mark 2 and gphoto2/libgphoto2 version 2.5.8. If I trigger video recording via the command line with:

gphoto2 --set-config viewfinder=1 --set-config movierecordtarget=Card --wait-event=10s --set-config movierecordtarget=None --wait-event=2s

then the video gets recorded on to the memory card as I want.

But If I capture a preview image before that using:

gphoto2 --capture-preview

then the video will not get captured. Both of the times I will get an output error message saying that property moviecapturetarget was not set. But it will still work in the case I wasn't using preview before that.

One thing that I've noticed is this: When I have the camera in manual mode I have to enable movie recording in my camera menu (live view function settings -> stills + movie) if I want the movie to be recorded. But when I use the capture preview option that menu option gets reset back to stills only.

Is this a camera specific issue or something that can be solved?

Nikon CoolPix S2700 borken w/ 2.5.9

I've been wondering why my wife's CoolPix S2700 stopped working properly (one could run gphoto for instance with --list-folders, but not with --summary) with libgphoto2-2.5.9, so I snooped around a bit. It'd seem to come down to: 929df71. Namely:

452                 if (camera->pl->params.device_flags & PTP_NIKON_1) {
...

In case of said CoolPix S2700 camera, we end up with 0x240000 & 0x200000 and hence add extra 0xfxxx devicepropcodes which then in turn make the camera unhappy and the communications appear to hang (I haven't double checked, it could just be timing out on each extra reported property -> taking very long to eventually fail). I have however removed the above mentioned snipped and the resulting SW warked again with that Nikon. I am by no means well versed in matters camera related SW, so I hope this is of at least some use. Let me know if further information or tests should be of assistance.

I suppose other Nikon cameras can be affected as well. But basically grouping in that check seems a bit too broad.

Segmentation violation near exit of gphoto2 under libusb_handle_events_timeout_completed

Arch Linux, gphoto2 2.5.9-1. Ran gphoto2 -l -L, it produced the output I expected, and then SEGV'd. Core dump backtrace from coredumpctl(1).

Stack trace of thread 2484:
#0  0x00007f8607876eca n/a (libusb-1.0.so.0)
#1  0x00007f86078712b9 n/a (libusb-1.0.so.0)
#2  0x00007f86078721c3 libusb_handle_events_timeout_completed (libusb-1.0.so.0)
#3  0x00007f86078722af libusb_handle_events (libusb-1.0.so.0)
#4  0x00007f8607a82ba8 n/a (usb1.so)
#5  0x00007f8607a82d05 n/a (usb1.so)
#6  0x00007f8609448478 gp_port_close (libgphoto2_port.so.12)
#7  0x00007f8609658be7 gp_camera_exit (libgphoto2.so.6)
#8  0x00007f8609658d7c gp_camera_free (libgphoto2.so.6)
#9  0x00007f8609658f65 gp_camera_unref (libgphoto2.so.6)
#10 0x000000000040e738 n/a (gphoto2)
#11 0x00000000004074be n/a (gphoto2)
#12 0x00007f860880b710 __libc_start_main (libc.so.6)
#13 0x0000000000407a09 n/a (gphoto2)

Stack trace of thread 2487:
#0  0x00007f86088c9c3d poll (libc.so.6)
#1  0x00007f8607877cbc n/a (libusb-1.0.so.0)
#2  0x00007f860922e424 start_thread (libpthread.so.0)
#3  0x00007f86088d2cbd __clone (libc.so.6)

I had a similar failure a couple of weeks ago, but that time was on deleting with -DR. Again, it was after the work was done, and a following "list" showed the deleting had finished.

Hard to reproduce, perhaps it is timing dependent.

Error setting property "movie" on Nikon D5200

I'm using Nikon D5200 to capture video. It provides toggle property "movie" to start/stop capturing video. I'm able to capture video using gphoto2 command line tool to capture video. But when I'm trying to toggle this property using libgphoto2 from my code, it always returns me error code -1. I'm using libgphoto2 2.5.9 and gphoto2 2.5.9. I tried other version too but same result. I've used gphoto's set_config_value_action() as my reference code to set the camera parameters. I'm able to set all other parameters like shutterspeed, iso, aperture, whitebalance except this particular.

Calculating time incorrectly for Canon 700D

I noticed with my camera that the timestamp on files downloaded by gphoto2 or shown in gphotofs are incorrect. The time calculated seems to be the UTC time with the time zone delta applied twice. For example, if the picture was taken at 15:00 UTC and the time zone is set for New York (Eastern), both within the camera settings, the time on the file will be 05:00. I suspect some quirk(s) need to be added to the library to support this camera.

To make it a tad more interesting, the time returned by the command-line tool is off too depending upon how I access the configuration.

This is off an hour. Possibly, this is EDT. See the next example for why I suspect that.

# gphoto2 --get-config /main/settings/datetime
Label: Camera Date and Time                                                    
Type: DATE
Current: 1449436133
Printable: Sun Dec  6 16:08:53 2015

If I list everything, I see two datetime settings returned. The bottom one is correct.

# gphoto2 --list-all-config
...
/main/settings/datetime
Label: Camera Date and Time
Type: DATE
Current: 1449436107
Printable: Sun Dec  6 16:08:27 2015

/main/settings/datetime
Label: Camera Date and Time
Type: DATE
Current: 1449439707
Printable: Sun Dec  6 17:08:27 2015
...

Details:

  • gphoto2 v2.5.8
  • libgphoto2 v2.5.8
  • Camera is a Canon EOS 700D/Rebel T5i.
  • OS is FreeBSD 10.2 amd64.

Can't build libgphoto2 2.5.9.1 on OSX, libltdl error

On OSX w/ homebrew and xcode.

I acquired the source as follows:

git clone https://github.com/gphoto/libgphoto2

I run autoreconf then ./configure and get the following error:

checking that we can compile and link with libltdl... no
configure: error: cannot compile and link against libltdl
libgphoto2 requires libltdl (the libtool dl* library),
but cannot compile and link against it.
Aborting.

I'm able to repeat this on two different macs. I'm able to compile fine on Ubuntu.

Every second capture-image fails on Nikon D750 in v2.5.9

I'm using libgphoto2 2.5.9 with a Nikon D750 on Mac OS 10.11.1 with homebrew binaries. If I go to the gphoto2 --shell mode, the first time I run capture-image, it works, but the second time I get an error. If I run capture-image again, it works, then the next time, an error, etc. libgphoto2 2.5.8 doesn't have this problem.

Here is me running gphoto2 on 2.5.9:

$ gphoto2 --shell --debug --debug-loglevel=all --debug-logfile=debug-2.5.9.txt
gphoto2: {/Users/insitu} /> capture-image
New file is in location /capt0000.jpg on the camera
gphoto2: {/Users/insitu} /> capture-image
ERROR: Could not capture image.
ERROR: Could not capture.

and now the same on 2.5.8:

$ gphoto2 --shell --debug --debug-loglevel=all --debug-logfile=debug-2.5.8.txt
gphoto2: {/Users/insitu} /> capture-image
New file is in location /capt0000.jpg on the camera
gphoto2: {/Users/insitu} /> capture-image
New file is in location /capt0001.jpg on the camera

I noticed these lines in the 2.5.9 debug log, not sure if they're related:


164.001645 ptp_usb_getresp [usb.c:428] (0): PTP_OC 0x100b receiving resp failed: PTP Invalid Object Handle (0x2009)
164.001660 camera_nikon_capture [library.c:2998](0): deleteobject(2b000001) failed: 2009
164.001667 ptp_usb_sendreq             (2): Sending PTP_OC 0x90c3 (PTP_OC_NIKON_DelImageSDRAM) request...
164.001673 gp_port_write               (3): Writing 16 = 0x10 bytes to port...
164.001799 gp_port_write               (3): Wrote   16 = 0x10 bytes to port: (hexdump of 16 bytes)
0000  10 00 00 00 01 00 c3 90-16 00 00 00 01 00 00 2b  ...............+

164.001806 ptp_usb_getresp             (2): Reading PTP_OC 0x90c3 (PTP_OC_NIKON_DelImageSDRAM) response...
164.001810 gp_port_read                (3): Reading 1024 = 0x400 bytes from port...
164.004015 gp_port_read                (3): Read    12 = 0xc out of 1024 bytes from port: (hexdump of 12 bytes)
0000  0c 00 00 00 03 00 09 20-16 00 00 00              ....... ....

164.004039 ptp_usb_getresp [usb.c:428] (0): PTP_OC 0x90c3 receiving resp failed: PTP Invalid Object Handle (0x2009)
164.004044 camera_nikon_capture [library.c:3001](0): deleteobjectinsdram(2b000001) failed too: 2009
164.004049 ptp_usb_sendreq             (2): Sending PTP_OC 0x90c7 (PTP_OC_NIKON_CheckEvent) request...
164.004053 gp_port_write               (3): Writing 12 = 0xc bytes to port...
164.004197 gp_port_write               (3): Wrote   12 = 0xc bytes to port: (hexdump of 12 bytes)
0000  0c 00 00 00 01 00 c7 90-17 00 00 00              ............

I attached the debug log files in compressed format:

debug-logs.zip

Tethering doesn't work on the Sony A77M2

I've tried using gphoto2 2.5.9 to do tethered capture with a A77M2. I'm running the ubuntu xenial packages on ubuntu trusty so it's possible there's something wonky with my install.

The camera gets detected apparently fine:

$ gphoto2 --auto-detect
Model                          Port                                            
----------------------------------------------------------
Sony Alpha-A77 M2 (Control)    usb:001,009     
pedrocr@hyde:~/Projects/RawspeedFormatSupport/full/test_tethering$ gphoto2 --port usb: --abilities
Abilities for camera             : Sony Alpha-A77 M2 (Control)                 
Serial port support              : no
USB support                      : yes
Capture choices                  :
                                 : Image
Configuration support            : yes
Delete selected files on camera  : yes
Delete all files on camera       : no
File preview (thumbnail) support : yes
File upload support              : yes

However when I try --capture-image-and-download the camera seems to try and focus and then do nothing. When I do --capture-tethered nothing seems to happen even after I press the camera shutter. I've ran the following command as suggested by the program:

env LANG=C gphoto2 --debug --debug-logfile=a77m2-logfile.txt --port usb: --capture-tethered

and here's the output: a77m2-logfile.txt

PTP Device Busy on second capture and download for EOS 1200D

Consecutive calls to "gphoto2 --capture-image-and-download" fails after the first one succeeds.

Unfortunately this does not happen with --debug flag on
The shutter is not triggered

*** Error ***
Canon EOS Full-Press failed (0x2019: PTP Device Busy)
ERROR: Could not capture image.
ERROR: Could not capture.

SEGV when trying to access Pentax K100D

Hello,

i wanted to try entangle which is based on gphoto2 with my Pentax K100D.

I use entangle and gphoto2 on Linux Mint Debian Edition2, which is based on Debian Jessy:

chris@lm-joe ~ $ dpkg -l | grep gphoto
ii  gphoto2                                      2.5.4-1+b1                           amd64        digital camera command-line client
ii  libgphoto2-6:amd64                           2.5.4-1.1+b2                         amd64        gphoto2 digital camera library
ii  libgphoto2-port10:amd64                      2.5.4-1.1+b2                         amd64        gphoto2 digital camera port library
chris@lm-joe ~ $ uname -a
Linux lm-joe 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt7-1 (2015-03-01) x86_64 GNU/Linux
chris@lm-joe ~ $

The camera is detected by gphoto2:

chris@lm-joe ~ $ gphoto2 --auto-detect
Modell                         Port                                            
----------------------------------------------------------
Pentax K100D                   usbscsi:/dev/sg2

But when trying to access it gphoto crashes:

chris@lm-joe ~ $ gphoto2 --config
pentax/pslr.c:265:ipslr_status(p, statusbuf) failed: 4                         
Segmentation fault   
chris@lm-joe ~ $

Same, but called with strace to get some detail infos about the crash:

chris@lm-joe ~ $ strace gphoto2 --config 2> strace-out-crash.txt
Segmentation fault                                                             
chris@lm-joe ~ $

I also started gphoto2 as recommended when it crashes:

chris@lm-joe ~ $ env LANG=C gphoto2 --debug --debug-logfile=gphoto-debug.txt --config
pentax/pslr.c:265:ipslr_status(p, statusbuf) failed: 4                         
Segmentation fault
chris@lm-joe ~ $

See the following full logs for details:
strace-out-crash.txt
gphoto-debug.txt

Support for Fuji x-t10

I was just wondering if there are any plans for supporting image capturing with Fuji x-t10?
File download seems to be supported, but if image capturing could be supported it would be great.

C++ programming is a bit out of my scope, but if you need any info/testing/debug dumps from an x-t10 I'll be glad to help.

Thanks!

A7S ISO change down goes up when cam is at 25600 or higher, then gets stuck

When the camera is at ISO 25600 or higher and you try to set something lower, it will climb to 64000 then flap between 51200 and 64000. Also, 51200 specifically cannot be set, so this may be a contributor.

'gphoto2 --set-config iso=3200'

I think there is more going on here but haven't had a chance to test all of it.

Support for exFAT

I have a 64GB card that gets formatted to exFAT automatically by my camera. This gets mounted in /etc/mtab as fuseblk when automatically mounting through the GUI. I am under the impression the only exFAT driver is FUSE. It appears as though this line prevents it from getting a port name of disk:/media/path/. As expected, if I edit /etc/mtab after I mount the card, and change 'fuseblk' to just 'fusblk' - this card will get the proper port name (disk:/media/path/) . See below for the specific commands I ran and for the edits I made to /etc/mtab.

Note: I'm specifically using this for Darktable and doing this modification lets me see my card (and import from) appropriately.

OS: Ubuntu 14.04

/etc/mtab:

/dev/sdd1 /media/james/NIKON\040D3300 fuseblk rw,nosuid,nodev,allow_other,blksize=4096 0 0
~  gphoto2 --auto-detect
Model                          Port                                            
----------------------------------------------------------

Again - if I change 'fuseblk' to 'fusblk' it will avoid the if statement linked here:

/etc/mtab:

/dev/sdd1 /media/james/NIKON\040D3300 fusblk rw,nosuid,nodev,allow_other,blksize=4096 0 0
~  gphoto2 --auto-detect
Model                          Port                                            
----------------------------------------------------------
Mass Storage Camera            disk:/media/james/NIKON D3300

I would be more than willing to submit a PR removing this line (and possibly the 3 others in the similar if statements), but it appears as FUSE has been explicitly ignored via this commit although the reason is not stated. Unfortunately, the link in the commit message is dead (which might have contained relevant discussion).

I should note that I would not have been able to accomplish any of this without the help of @jfly. He sat on hangouts with me for hours while we ran down a very deep rabbit hole :)

locale and menu values

Hi,
I'm not sure if this is related to my camera (canon eos 350d).

When I try to get a widget configuration, with my LC_ALL set to it_IT, I get values translated in my language:

LC_ALL=it_IT.UTF8 gphoto2 --get-config=imageformat
Individuata una "Canon:EOS 350D (normal mode)".                                
Label: Formato immagine
Type: MENU
Current: RAW
Choice: 0 RAW
Choice: 1 RAW 2
Choice: 2 JPEG Normale piccola
Choice: 3 JPEG Fine piccola

But if I try to set it to any of the found values, it just fails:

LC_ALL=it_IT.UTF8 gphoto2 --set-config imageformat='JPEG Fine larga'
Individuata una "Canon:EOS 350D (normal mode)".                                
Impostazione del formato immagine non valida

If I set the value to the appropriate english translation, it works fine:

LC_ALL=C gphoto2 --set-config imageformat='Large Fine JPEG'
Detected a 'Canon:EOS 350D (normal mode)'.                                     
Image format changed

(Note: even if I changed LC_ALL on set-config, it seems completely irrelevant).

I actually noticed this bug not via the gphoto2 app, but trying to change settings via C++ api.
A workaround is to call setlocale(LC_ALL, "C") just before connecting my camera.

--new does not work with EOS 6D

Hi!

I try to transfer only the images taken since the last transfer, but i always get a transfer of all images.
Example Workflow:
A: Take some Pictures
B: gphoto2 --new -P => all images transferred
C: process and delete images on host
D: take more Pictures
E: gphoto2 --new -P => all (old and new) images transferred

I am running gphoto2/libgphoto2 build from git.
I can provide traces if they are useful.

Greetings,
Arne

multiple Canon 1200D's are giving randomly "Canon EOS Full-Press failed" error

Hi,

I also commented on issue #30 because i think we are having the same problem.

So the error is as following:

Canon EOS Full-Press failed (0x2019: PTP Device Busy)
ERROR: Could not capture image.
ERROR: Could not capture.

I get this error quite random, sometimes after taking 3 pictures successfully, sometimes after 1 and sometimes after 10.
We are having manny 1200D and they all give this problem.

The command i use is the following "gphoto2 --capture-image-and-download"
Also i tried all the "eosremoterelease" options, but with no results.
My application don't need auto focus, so all tests are done with manual focus.

The log file you can find here
The version i am using is 2.5.10.1

Thanks!
Ben

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.