ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 Camera Capture on Microsoft Surface systems
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

cpstevenc

USA
116 Posts

Posted - Feb 11 2016 :  16:09:05  Show Profile  Reply
Any of the at least newer Surface machines from microsoft,
all get a "Floating point division by zero" error.

All the capture demos fail with the latest few versions.

xequte

38683 Posts

Posted - Feb 11 2016 :  21:30:24  Show Profile  Reply
I cannot reproduce on a Surface Pro 3 (don't have a Pro 4). Have you tried stepping through the ImageEn code to see where it fails?

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

tizianob

Italy
4 Posts

Posted - Feb 12 2016 :  04:36:23  Show Profile  Reply
Same problem

the error occurs in TIEDirectShow.SetVideoInput method when it call the CreateFilter with "Microsoft Camera Rear" as Friendly Name
Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Feb 12 2016 :  11:00:37  Show Profile  Reply
Delphi not installed on the tablet so can't step through code :(

Plus Surface Pro 4 given back to the person who owns it.
WIll be a week or two before I get another chance to hold it.

Go to Top of Page

lorenzo

1 Posts

Posted - Feb 12 2016 :  11:08:52  Show Profile  Reply
Error occurs in call to BindToObject that raises a Floating point division by zero exception.
Setting the CPU control word to $133F the exception is masked and the capture filter is created and returned without exceptions.
Go to Top of Page

xequte

38683 Posts

Posted - Feb 13 2016 :  03:27:14  Show Profile  Reply
@Lorenzo

To clarify, you are calling Set8087CW($133f); to suppress the floating point error and it works correctly?



Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

xequte

38683 Posts

Posted - Feb 14 2016 :  22:37:24  Show Profile  Reply
Email us if you want the source update to test this fix.

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Feb 19 2016 :  13:48:37  Show Profile  Reply
Didn't seem to work for me. Did the manually removing and recompile, ect.
Go to Top of Page

xequte

38683 Posts

Posted - Feb 19 2016 :  15:49:25  Show Profile  Reply
Try disabling floating point errors at the start of your application:

Set8087CW($133f);

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Feb 19 2016 :  16:19:05  Show Profile  Reply
That did work.
Also did 1920x1080 which is great too.

Now if could get higher than 640x480 on these goofy tablets with the OV8830 and OV2720
I could end up leaving you all alone about it one day :)
Go to Top of Page

xequte

38683 Posts

Posted - Feb 21 2016 :  19:16:53  Show Profile  Reply
You can email for an updated fix for the floating point error.

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Mar 29 2016 :  12:19:44  Show Profile  Reply
Is there an offical fix yet in line with the next release of ImageEN?

Doing Set8087CW($133f); works fine calling it myself ...

The few test code chunks didn't seem to work doing itself.
Go to Top of Page

xequte

38683 Posts

Posted - Mar 29 2016 :  19:31:47  Show Profile  Reply
Hi

Can you try calling Set8087CW before each of your calls to ImageEn, then resetting it straight after to determine which of the calls is causing the failure.

var
  Saved8087CW: Word;
begin
  Saved8087CW := Default8087CW;
  // Disable FPU Exceptions
  Set8087CW($133f); 
  ImageEnView.IO....
  // Reset FPU exceptions
  System.Set8087CW(Saved8087CW);
end;




Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Apr 04 2016 :  11:05:33  Show Profile  Reply
Well interesting thing now...

Apparently for windows 10 there has been an update to cure this problem for the surface pro 4.

People that couldnt get it to work at all, is now working without us releasing any updates.
Will have to keep an eye on it.

Would still love to see OV8830 and OV2720 get supported. I've contacted seven vendors
who make stand alone video capture and all have tried and gave up quickly as they had
"other things to do" ...

Only person to ever get me a working demo is Mitov but he won't be doing a release...
He used the still image capture capabilities to get the 8MP shots (way pass 1920x1080 streaming mode)

Go to Top of Page

tizianob

Italy
4 Posts

Posted - Apr 06 2016 :  05:36:25  Show Profile  Reply
i've made this test on surface pro 4

Windows update to "full updated"

download from imageen.com/demos/index.html of "Directshow frame capture"

--> Same problem

"Floating point division by zero" when selecting "video input" the Source box.

Go to Top of Page

cpstevenc

USA
116 Posts

Posted - Apr 21 2016 :  20:43:27  Show Profile  Reply
Strange.. its been working for us. All the customers that were complaining about it, have stopped and
said everything is working now. And we did zero online updates to the software for it.
Go to Top of Page

LikeMike

Spain
13 Posts

Posted - Jun 07 2016 :  11:01:41  Show Profile  Reply
Hi!
After adding "Set8087CW($133f);" it works. Unfortunately the Surface 4 runs in 200% mode. In this mode the preview video is much too small (in 100% mode it works). How can I adjust the VMR_CameraDemo, so that it show the preview video in the right size?
Regards
Mike
Go to Top of Page

xequte

38683 Posts

Posted - Jun 08 2016 :  21:57:33  Show Profile  Reply
Hi

Have you tried changing the render size in the TForm1.SpeedButton1Click() method?

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

LikeMike

Spain
13 Posts

Posted - Jun 09 2016 :  08:06:53  Show Profile  Reply
Hi
I've didn't change anything except inserting the "Set8087CW($133f);" statement.
The video is displayed only in a little frame in the left upper corner and it show only the upper left part of the video. But when I push "Get Frame", the resulting picture shows the whole area as it should be.
Thanks for replies
Mike

P.S.: I'm using the newest demos from this page.
Go to Top of Page

LikeMike

Spain
13 Posts

Posted - Jun 13 2016 :  09:09:20  Show Profile  Reply
Hi!
I've made some new tests and maybe it helps to solve the problem.

Mode...............................................Problem occurs


Windows scaled by 200 %............................Yes
Windows scaled by 100 %............................No
Windows scaled by 200 % + Running in mode:
"Disable display scaling on high DPI settings".....No


So the cause of the wrong dimension of the video must be the windows scaling.
Any help would be appreciated.

Regards
Mike
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: