In an effort to improve the code performance we did a lot of weeding out stuff from the DigitalSuper8 cartridge C++ code. We simplified the code quite a bit and also used Mutexes to prevent multiple threads from trying to alter or test certain variables at the same time. Seems that errors have lessened but more testing is required.
New: Color monitoring while filming
Importantly we managed to ‘upgrade’ functionality with color image monitoring while shooting raw images. It used to be B&W for performance purposes.
Safer multi threading and queuing
Also we are using the Qt framework which is a C++ library framework with added functionality such as threadsafe communications between objects. We changed the code so as to send ‘Mat’ arrays that contain the captured images (using OpenCV libraries for that) from one thread to another, that way achieving a safer queuing mechanism as well.
As further Information: the Digitalsuper8 cartridge runs it’s own webserver and WiFi accesspoint so that a user can fully control the functions and settings of the cartridge and can monitor the captured frames in real-time through a browser on a smartphone or iPhone.
How this real-time monitoring works:
Next to capturing and storing RAW images from the Ximea subminiature camera and sensor in the cartridge, the cartridge sends image file names for each captured and written frame to the browser via server sent events. The browser uses that file name info to load the image and display it on the smartphone. So the videostreaming solution is actually a frame by frame retrieving of images at 18 fps by the browser, triggered by server sent events