About getting a high-resolution single image

I Set the width and height of the image to get a single image.

  	camera = arv_camera_new (argc > 1 ? argv[1] : NULL, NULL);
arv_camera_set_region (camera, 0, 0, 5000, 3000, NULL);
    buffer = arv_camera_acquisition (camera, 0, NULL);
if (ARV_IS_BUFFER (buffer) && arv_buffer_get_status (buffer) == ARV_BUFFER_STATUS_SUCCESS)
{
	printf ("Image successfully acquired\n");
}
else
	printf ("Failed to acquire a single image\n");

This keeps failing. Is this interface not able to set such a high image size.

Hi @songwenping ,

Thanks for your interest in Aravis.

There is no hard limit on how big an image can be. The only limit is the capability of your camera.

May be there is some trouble during the transfer. Is your camera an GigEVision or a USB3Vision device ?

Did you try to set ARV_DEBUG=all before running your program ? What is the console output when debug is enabled ?

Hi Emmanuel,
Thanks for your response! I’ve used ‘./arv-camera-test-0.8 -d stream’ with the image size of 1000x900.Fortunately everything works.

   vendor name = Daheng Imaging
   model name = MER-2000-5GM
  device serial number = LT0190111093
  image width = 1000
 image height = 900
 exposure = 4500 µs
 gain = 0 dB
 payload = 900032 bytes
 gv n_stream channels = 1
gv current channel = 0
gv packet delay = 0 ns

[15:47:45.327] 🅸 stream> [GvStream::finalize] n_completed_buffers = 66
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_failures = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_underruns = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_timeouts = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_aborteds = 0

[15:47:45.328] 🅸 stream> [GvStream::finalize] n_missing_frames = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_received_packets = 40722
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_missing_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_error_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_ignored_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resend_requests = 94
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resent_packets = 94
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_resend_disabled = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_transferred_bytes = 59729208
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_ignored_bytes = 0
[15:47:45.329] 🅸 stream> [Stream::finalize] Flush 50 buffer[s] in input queue
[15:47:45.329] 🅸 stream> [Stream::finalize] Flush 0 buffer[s] in output queue

But if Change the size of the image to 5000 X 3000,it gets bad。

vendor name = Daheng Imaging
model name = MER-2000-5GM
device serial number = LT0190111093
image width = 5000
image height = 3000
exposure = 4500 µs
gain = 0 dB
payload = 15000032 bytes
gv n_stream channels = 1
gv current channel = 0
gv packet delay = 0 ns

[16:09:03.180] 🅸 stream> [GvStream::finalize] n_completed_buffers = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_failures = 28
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_underruns = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_timeouts = 28
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_aborteds = 1
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_missing_frames = 2
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_received_packets = 15053
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_missing_packets = 285449
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_error_packets = 2
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_ignored_packets = 30
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_requests = 1685409
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resent_packets = 7611
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 16
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_disabled = 2
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 147
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_transferred_bytes = 22081772
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_ignored_bytes = 240
[16:09:03.181] 🅸 stream> [Stream::finalize] Flush 49 buffer[s] in input queue
[16:09:03.181] 🅸 stream> [Stream::finalize] Flush 1 buffer[s] in output queue

I found that if the image size is larger than 4K resolution。There will be a lot of dropped frames。Can you give some advice to solve this。

Even at lower resolution there are resent packages. In the higher it seems even worse clogging up the system.
Is it possibly a cable or network issue?

@songwenping , on what machine are you running Aravis ?

Did you try to limit the framerate ?

I’m using Centos6.Yes,I’ve also changed the framerate.But It doesn’t seems to work.