PDA

View Full Version : ICImagingControl V3.0.7 :Unexpected DShowLibException



acanicio
December 17, 2009, 00:21:04
Hello,

Here I am with another issue...

I just received a DBK41AG02.AS. (Gigabit ethernet version) The camera is installed and works correctly with ICCapture.

Now when I start up the camera in my application, using the TICImagingControl.LiveStart method, I immediately get the following error :

EOleException, message : An unexpected DShowLibException occured: Error= Failed to start the graph. Due to : Error not specified.
In file ".\FilterGraph.cpp" at line : 308.

Wow... Is the ocx in cause here ?

Right after, I try with my DMK31AF03.AS, and with my DMK21AU04.AS, and I have no problem with them.

Thank you
Sincerely
Axel

acanicio
December 18, 2009, 11:10:40
Here is some more information,

Last night I tried the following :
1 - I run my application in debug mode (in the IDE)
2 - put a break where the "livestart" method is called
3 - I run step-by-step on the "livestart" line
4 - I go back into "run" mode

Result : The error does not happen, and the module delivers images normally.

So if I run in "step-by-step" mode I get no error.
If I run in normal mode, I get the error.

I think it may be some kind of timing issue. My program runs too fast ? :tongue:
So I tried adding a "sleep (500)" instruction (it waits 500ms), before AND after the livestart call, but the error still happens.

Best regards
Axel Canicio

Stefan Geissler
December 18, 2009, 13:53:51
Axel,

what programming language do you use?

acanicio
December 18, 2009, 15:28:49
Delphi 5 :embarrassed:

Stefan Geissler
December 18, 2009, 15:41:00
Axel,

well, you know, we ended the devlopment of the ActiveX component? We will do bug fixes, but no more development.

Can you please post the source code of your camera initialization?

acanicio
December 18, 2009, 17:58:19
Axel,

well, you know, we ended the devlopment of the ActiveX component? We will do bug fixes, but no more development.


Yes, I know. I'm trying to obtain an upgrade to Delphi 2010 which is full .NET compatible, in order to use the .NET components instead of the ocx.



Can you please post the source code of your camera initialization?


The camera management is embedded in a home made plugin management module.

I'll try to extract the initialization routines and post them.

Axel

acanicio
December 19, 2009, 10:57:17
Hello Stefan,

I did again some more tests.
It seems that the driver of this camera does not like being "livestopped" and "livestarted" too often, the problem seems to be there.

In my plugin management module, each device property (framerate,width, height, temperature, video format, codec etc) is considered as an object (that I call DeviceProperty), which does a "livestart" and "livestop" if the camera property needs it before being set.

It's the case for the following properties :
- ICImagingControl.DeviceFramerate
- VCDID_Exposure

When starting the camera, the plugin first sets all the properties of the camera, reading them from an "ini" file that contains ALL the properties that were saved the last time the camera was run.

When comes the turn of ICImagingControl.DeviceFramerate, it first does a livestop, sets the value and then does a livestart.

The same happens for VCDID_Exposure, it first does a livestop, sets the value and then does a livestart.

So I modified the behaviour of my "deviceproperty" object so it does a livestop and a livestart ONLY if the ICImagingControl.LivevideoRunning property is true.

The result is that now it does not crash anymore. :good:

It's strange that the DMK31AF and DMK21AU accepted this to happen, but not the DMK41AG. :question:

Thank you for your patience.:sweat:
Best regards
Axel

Stefan Geissler
December 21, 2009, 12:23:28
Hi Axel,

The GigE cameras behave different from the USB / FireWire cameras. The interface implementation is different. However, we did many start/stop tests, 20 for each video format / frame rate combination and the camera worked fine in these tests. May be the stop start sequences are too fast, as you wrote in your first posts.
For setting the properties a exposure, gain, brightness etc, it is not necessary to stop the camera. If the frame rate is to be set, then the camera must be stopped, the frame rate be set and then the camera must be started again.

If your properties are implemented as single objects, I suggest to change it only of the the frame rate setting to stop and start the camera. For all other properties you should not stop and start the camera.