Two Sources on Pleora iPORT Analog-Pros

Dear Forum,

The Pleora iPORT allows a user to connect two cameras to one IP Address. By using the feature “SourceSelector”, a user can switch between the two sources.

By default when I bring up a camera using arv_gv_device_new, feature “SourceSelector” is set as “Source1”. This results in the stream being brought up to properly connect to my camera connected to the iPORT on Source1.

Does anyone else have a setup where they have two cameras to one IP Address? If so, what steps did you take to properly stream from them using Aravis?

Another question would be I noticed that when using arv_gv_device_new, it links the device_address with the port ARV_GVCP_PORT (3956). Will I run into issues if I have both streams coming from the same port then since they are both on the same IP Address?


I don’t know how it is implemented in Pleora iPort, but GigEVision standard allows to have several stream channels, whic is exposed in the ArvCamera API:

The proper sequence of operations is something like:

  • arv_camera_new
  • arv_camera_select_stream_channel (0)
  • arv_camera_create_stream
  • arv_camera_select_stream_channel (1)
  • arv_camera_create_stream

But this is a feature I have not tested by myself, as I don’t own a camera with this functionality.
Please keep us informed of the result of your tries.


Thanks for that information @emmanuel

I’ve had some more time to work on this today. I managed to get the camera to display the first port via arv-viewer. My next attempt is trying to view only the camera on the second source. Below is my attempt modifying arv-viewer for an idea on what I will need to do inside of my Qt application.

Inside of arv_viewer_select_camera_cb, right after the check to make sure the camera isn’t NULL after the call to arv_camera_new, I call arv_camera_gv_select_stream_channel(1). However, there is no display when I rebuild and launch arv-viewer. I have asked Pleora for documentation on how they meet the GigE Standard and to see if I need to set any additional features.

Just to double-check, do I need to create a stream on both channel0 and channel1, or should in theory the idea above work?

I got a response from Pleora. They gave me their eBUS Player, from which I was able to get the GenICam XML information as well as test toggling between the channels.

From debugging their setup, I have a good idea on how to switch between the two channels now. It appears that they use GevSCSP, GevSCDA, GevSCPHostPort, and SourceSelector in addition to GevStreamChannelSelector to debug/set values.

By adapting the process from them, I was able to figure out that when I switch between the channels, all the values are being updated correctly except for GevSCDA and GevSCPHostPort. When I read back the value using arv_device_get_integer_feature_value(), I am getting a 0 returned for both. However, using arv-tool-0.4, I get the correct values returned.

I’ll keep digging into this and keep you guys posted.