Why do I get 0fps on first/second channel when running the C++ MultiSource sample code ?

When connecting an FS camera and running the C++ sample MultiSource, the frame rate of Source0 is always 0fps, while frame rate of Source1 is correct.
This is due to a bug that the original code was trying to read a parameter which JAI cameras don't have:
PvResult lResult = mDevice->GetParameters()->GetIntegerValue( "SourceStreamChannel", lSourceChannel );
Then the value of lSourceChannel is always 0 (default value).

If you are using a Dual sensor FS camera, you should force lSourceChannel=1 at second channel.

And if you are using a Triple sensor FS camera, you should force lSourceChannel=1 at second channel, and lSourceChannel=2 at third channel.

In order to fix this you could replace the line:
int64_t lSourceChannel = 0;
with

//returns the last character of the string ('0' from "Source0"  and '1' from "Source1")

int64_t lSourceChannel = (static_cast<string>(mSource)).back();

//substract 48 because that is the ASCII value for char 0

lSourceChannel -= 48;

Then all channels should get correct right frame rate.

 

NOTE:

The versions of the eBUS SDK affected by this bug in the C++ MultiSource sample code are: up to 6.2.8.

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.