Re: FILE_ADDED events getting lost

Marcus Meissner <[email protected]> Thu, 8 Oct 2020 08:41:55 +0200
Newsgroups gmane.comp.multimedia.gphoto.user
Message-ID <[email protected]>
On Tue, Oct 06, 2020 at 12:39:23PM -0700, Dave Taylor wrote:
> On Tue, Oct 6, 2020 at 10:36 AM Marcus Meissner <[email protected]> wrote:
> >
> > On Tue, Oct 06, 2020 at 09:39:37AM -0700, Dave Taylor wrote:
> > > On Mon, Oct 5, 2020 at 10:54 PM Marcus Meissner <[email protected]> wrote:
> > > >
> > > > Hi,
> > > >
> > > > - Is this libgphoto2 using libusb1 or libusb0?
> > > >
> > > >   If you are using libusb0, it is possible to lose USB interrupts if you are not
> > > >   waiting for events actively.
> > >
> > > Not sure how I would find out for the version that came with Debian
> > > buster.  I did an ldd on my executable, and it doesn't appear to be
> > > referencing libusb as a dynamically loaded library.  How would I tell
> > > which version was compiled in?
> >
> > gphoto2 --version
> >
> > will list either libusb0 or libusb1 in its output.
> 
> Thanks!  I'm seeing usb1.

very good.
 
> > > > - just to check, you are polling with gp_camera_wait_for_event until GP_EVENT_TIMEOUT
> > > >   is returned?
> > > >
> > > >   There might be multiple events buffered.
> > >
> > > Yes.  I fetch all the buffered events, and the timeout is always below
> > > 10ms for each call, but the actual elapsed time for some reason can
> > > vary widely.
> >
> > There might be waits of 150ms in the function, so a bit more coarse grained waiting
> > might be better
> 
> So if I have a timeout below the time needed, say 150ms, might it
> abort the event it was preparing?  Or possibly delay it until later?
> 
> I will set the timeouts to 200ms and see if reliability improves.
> Thanks for the idea!


It should not, but it might then wait 150ms, not just 10ms, skewing the timing.


> > > I never pass more than 10ms as a timeout, but it gets really slow
> > > sometimes, on the order of 100ms to 1s.  I haven't correlated why/when
> > > it happens yet, but when it does, I'm definitely not going to get a
> > > GP_EVENT_FILE_ADDED, but this isn't the only time it happens.  It can
> > > respond in normal time and still not return FILE_ADDED.
> > >
> > > Please let me know if there's anything I can do to help isolate the issue.
> >
> > Hmm. weird :/
> 
> Agreed.  I'm guessing it doesn't sound familiar to you, which tells me
> maybe I'm doing something wrong on my end to upset libgphoto2?  Is
> there anything I should be calling besides gp_camera_wait_for_event()
> to keep libgphoto2 in a happy state while waiting for the FILE_ADDED
> event to come in from an external shutter press?

No, this should be sufficient.

The Nikon uses 2 different event get methods, one with usb interrupts
and one over a ptp command, we could probably experiment with forcing
the more reliable command method :/

Ciao, Marcus