A unified capture backend - pyuvc

303 views
Skip to first unread message

pupil-discuss

unread,
May 26, 2015, 5:55:20 AM5/26/15
to pupil-...@googlegroups.com
Dear Pupil Community,

During the development of high speed Pupil and Pupil Binocular eye tracking headsets we really started to feel the limitations of our current setup for talking to UVC cameras via the OS supplied driver:
  • For each OS we had to use very distinctly different drivers.
  • On Linux, we needed to patch the UVC kernel module to allow shared video streams on one USB controller. The procedure for patching and building the module was time consuming and would break way too frequently.
  • On Windows, the Media Foundation API posed numerous limitations. For instance, it did not expose raw jpeg buffers. 
  • On Mac OS, the situation was so dire that we considered dropping support for the platform altogether because there was no way to support high speed or Pupil Binocular.
  • The maintenance overhead of supporting three separate and different video backends was unsustainable.

Luckily we discovered libuvc by ktossel, a library to directly access to UVC devices using libusb1.0. After initial testing, we found that we could modify the library for our needs. We then went on to write a Python binding for libuvc (similar to pyvl42) that we call pyuvc. This will give us a new, superior experience with Pupil:
  • One unified backend for all platforms -- Pupil will be the same no matter what platform it runs on.
  • We essentially ship our own driver. This means, no operating system imposed limitations and no need for patching.
  • Unprecedented performance and low level access.

You can imagine that we are super excited about this news as it has some really cool implications for the Pupil project:
  • We can give true support for Windows with its own bundle.
  • Pupil Hardware will soon ship with single usb clips, by default, as they now work everywhere without modifications!
  • Pupil high speed will run on all platforms when we start selling it next month!

This work is currently in the development branch and will be merged after more testing in the next few days. We will make pre-release bundles for you to test out. We will start updating the Wiki accordingly to reflect changes in the next couple of days.

Best regards,
Pupil Dev Team

Rafael Picanço

unread,
May 27, 2015, 9:20:10 AM5/27/15
to pupil-...@googlegroups.com, pupil-...@googlegroups.com
Very good news! Congratulations Pupil Team! Looking forward to test the new stuff.

Jared Rosso

unread,
Mar 23, 2016, 2:14:37 PM3/23/16
to pupil-discuss, pupil-...@googlegroups.com
Hey guys,

Is the ultimately the solution for windows user's having issues displaying/detecting all pupil cameras? I've seen other comments asking users to switch to linux or MacOS, and this solution works in the sort term for me. However, I need a PC solution as my team looks to integrate several methods of biometric data collection concurrently. 

Thanks :) 

Pupil Labs Info

unread,
Mar 24, 2016, 5:12:12 AM3/24/16
to pupil-...@googlegroups.com
Yes. 

libuvc not working on Windows is the only real showstopper for pupil on windows. You can stream data via the network to a windows machine pretty easily using pupil server. Ideal would be if we get libuvc working on windows....

Moritz

--
You received this message because you are subscribed to the Google Groups "pupil-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pupil-discus...@googlegroups.com.
To post to this group, send email to pupil-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pupil-discuss/d7e9feae-794e-4b51-9898-e58ad67278fd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Pupil Labs
research + development + design

Reply all
Reply to author
Forward
0 new messages