Can't get 60 fps

Hello everyone,

I have some problem.

I want to set camera configurations with 320*240 and 60 fps.

So, I used :

astra::Astra::initialize();

astra::StreamSet streamSet;
astra::StreamReader reader = streamSet.create_reader();

astra::ImageStreamMode colorMode;
colorMode.set_width(320);
colorMode.set_height(240);
colorMode.set_pixelFormat(astra_pixel_formats::ASTRA_PIXEL_FORMAT_RGB888);
colorMode.set_fps(60);

astra::ImageStreamMode depthMode;
depthMode.set_width(320);
depthMode.set_height(240);
depthMode.set_pixelFormat(astra_pixel_formats::ASTRA_PIXEL_FORMAT_DEPTH_MM);
depthMode.set_fps(60);

auto colorStream=reader.streamastra::ColorStream();
auto depthStream = reader.streamastra::DepthStream();
colorStream.set_mode(colorMode);
depthStream.set_mode(depthMode);
colorStream.start();
depthStream.start();

And then, for checking fps, I used listener class and astra_temp_update() function with check_fps() provided by example.

FrameChecker watch;
reader.addListener(watch);
while (true)
{
astra_temp_update();
}

However, this program always returned around 30 fps, not 60 fps, even though I confirmed mode change in console window.
I did nothing in this program, except for the check_fps().

Is this a limitation of astra_temp_update() or a problem of my program?
Please let me know how I can get the fps I want.
Thank you.

1 Like

Apologies, but none of the current Astra cameras support 60 fps. This is a hardware limitation.

1 Like

Hello josh,

Apologies, but none of the current Astra cameras support 60 fps. This is a hardware limitation.

Sound reasonable, but why do C-function astra_imagestream_get_modes_result and C++ member ImageStream::available_modes() return 320x240 60fps mode for depth stream when using with Astra Pro? If hardware doesn’t support some mode, it is obvious that this mode cannot be reported as available. In other case astra_imagestream_get_modes_result and ImageStream::available_modes() are totally useless,

Josh,
The latest cameras, such as the Astra S Embedded, say in the specs that they support 60 FPS depth. However, I can’t get 60 FPS depth in the Unity examples because it appears that the DepthStream.AvailableModes and BodyStream.AvailableModes are returning values that may be hardcoded and don’t have the 60FPS option. My best guess is that the specifications are accurate, but this part of the SDK hasn’t been updated.
If this can be updated or there is a workaround, that would be great because this is critical for my application. Thanks,