kylemcdonald / ofxEdsdk

Interfacing with Canon cameras from openFrameworks for OSX. An alternative to ofxCanon and CanonCameraWrapper.
Other
112 stars 51 forks source link

Live View performance (EDSDK v3.2) #42

Open smallfly opened 8 years ago

smallfly commented 8 years ago

Hi,

Following are the performances I get running the example on both OS X 10.11.2 and Windows 10 with OF master branch and EDSDK v3.2.

OS X (both 32bit and 64bit) Canon Rebel T6s App 60 fps Cam Live View 29 fps Bandwidth 4.7 MiB/s (Notes: the EDSDK v3.2 crashes really often on OS X with this camera - see #41)

Canon Rebel T1i App 60 fps Cam Live View 29 fps Bandwidth 3.7 MiB/s

Windows (both 32bit and 64bit on two different Windows computers) Canon Rebel T6s App 59 fps Cam Live View 9 fps Bandwidth 0.8 MiB/s

Canon Rebel T1i App 59 fps Cam Live View 10 fps Bandwidth 1.1 MiB/s

Would someone have an idea why there is so much difference between OSX and Windows? Does someone get different results with the same setups?

As already discussed in the issue #27 I tried using libjpeg-turbo via ofxTurboJpeg but this time the performances are quite similar.

Using EOS Utility 3.3.0, I get a Live View at ~30fps on both OS X and Windows and for both cameras. With OF 0.8.4 and EDSDK v2.14, the T1s Live View was around 30 fps and at that time the T5i was ~20fps (on both OS X and Windows).

Thanks

elliotwoods commented 8 years ago

First check: You're building Release not Debug, right?

smallfly commented 8 years ago

Yep. I tried both Debug and Release. Same results.

elliotwoods commented 8 years ago

I'm generally not using live view but can test on my computer here. I know I had to change some of the threading pattern to get ofxEdsdk working well on Windows a while back but I don't think that is related

smallfly commented 8 years ago

I just tried the VS project available here and I get a good frame rate with the T6s. I going to look at the source code and see if I can find something helpful.

smallfly commented 8 years ago

After running some more tests, it seems that what is taking time to execute on Windows (with OF) is the call to DownloadEvfImage() in EdsExamples.cpp at the line 51.

smallfly commented 8 years ago

This does not seems to be an issue in the Canon SDK as the same version of the EDSDK is working fine with the C# project available here.

Quick summary .... The EDSDK v3.2 used with OF is crashing on OS X with the T6s (see #41), and the Live View is really slow on Windows with all the cameras I have at my disposal. On Windows, I have tried building Release and on two different machines.

I don't know what to make of this. What could be the issue? Could it be related to one of the VS project's properties? Could it be an USB issue in OF?

smallfly commented 8 years ago

@elliotwoods ... I just tried your fork and the Live View is working great with it. Why didn't I try this sooner!? Why !? (Well at least now I know my way better in VS :).

I'm going to look at your version more in details, to see what are the differences with @kylemcdonald 's version (I guess the 'threading pattern' ?).

Thanks!

smallfly commented 8 years ago

Thinking about it, maybe this issue should stay open for now.

elliotwoods commented 8 years ago

Interesting. All tests were against EDSDK 3.2?

i think i stripped all my threading patterns out after kyle updated his to work on windows (this was a long time ago).

diff'ing mine vs kyle https://github.com/kylemcdonald/ofxEdsdk/compare/master...elliotwoods:master looks essentially the same (ignoring that i've added the EDSDK, and the extra Visual Studio parts)

smallfly commented 8 years ago

Yes, all the tests were against EDSDK 3.2.

I have not compared the sources yet, but the diff you shared does not show any diff in the ofxEdsdk.cpp file. This is not possible. Am I missing something?

Could it be properties of the ofxEdsdkLib.vcxproj that make EDSDK work better with your version of the add-on?

yty commented 5 years ago

I have this problem too...

live View mode app-fps 55 -> cam-fps 6

windows10 +vs2017 + of10.1 + edsdk 3.61 + canon Eos 70D + release

Does anyone know why this is?

elliotwoods commented 5 years ago

hey - i got a notification so just dropping in perhaps try ofxCanon instead? https://github.com/elliotwoods/ofxCanon It's 'backwards compatible' with ofxEdsdk