Make the Direct Show XOP compatible with Igor Pro 8

There is a useful XOP in Igor Pro 6, the DSXOP (DirectShow), that allows to control USB cameras, and to give access to the settings panel of the camera.

This XOP has been replaced by the more generic "NewCamera", "GetCamera" and "ModifyCamera" commands in Igor Pro 8.
However, for some USB cameras, these commands do not allow to modify their settings (exposure time, gain, etc.).

It would be nice if the DSXOP could be (re-)introduced in Igor Pro 8.


I put the DSXOP shortcuts ("DSXOP Help.ihf - Shortcut" & "DSXop.xop - Shortcut") in the Igor Pro 8 "Igor Extensions" folder.

Then I launched Igor Pro 8, and executed the "DSGrabberDemo.pxp" procedure.

I clicked on "Macro", then on "Single Camera Control". The camera control panel popped up.

Everything was fine so far...

But when I clicked on "Initialize Grabber", I got an 'error from "Execute"' panel, as it is shown in the attached picture.

Is it a compatibility issue between IP6 and IP8? Or something else?


DSXOP in IP8.jpg

You need to use the 32-bit Igor Pro 8 application (Igor Pro 8 Folder\IgorBinaries_Win32\Igor.exe) since the XOP is 32-bit only.

That's a big part of why the XOP was removed. I'm not sure if it would even be possible to have created a 64-bit version of the XOP, but if so it would have been a fair amount of work and DirectShow itself is pretty old technology.

Please don't try the DSXOP or any of the other frame grabber XOPs with IP7 and later. 

Prior to IP7 Igor XOPs that supported video acquisition created their own window.  Because of the changes to Igor's architecture this is no longer "practical".  It is possible but very difficult and prone to problems.  As a result, the basic approach to image acquisition XOPs has changed.  Instead of the XOPs using their own window, they now only acquire the video data into standard waves that are displayed in Igor graphs or Gizmo windows.  This has the advantage of better integration with Igor at the cost of having slower refresh rate and less XOP control over the display.  We have worked with a number of developers who were able to obtain satisfactory refresh rate for their video display.

All video acquisition XOPs must be based on having some sdk.  Direct Show was based on an interface defined by Microsoft which is now partially deprecated.  Igor's NewCamera and ModifyCamera are based on Qt and use DirectShow and WMF under the hood.