I am using csi , imx415 camera with Tx2 j . I am getting frames without problem but I want to take photo with flash light sync way. Do you have any suggestion how to achieve this?
I run the command below without problem for getting image from sensor.
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=3
! ‘video/x-raw(memory:NVMM), width=3840, height=2160, format=(string)NV12, framerate=(fraction)30/1’
! nvvidconv
! ‘video/x-raw(memory:NVMM), width=3840, height=2160’
! nvjpegenc quality=85 ! multifilesink location=“test%d.jpg”
I write c++ applications which simulates this pipeline. And when input came from user, I just write the latest available frame to the file. To use flash light, first I activate flash then get the latest frame, the whole frame was not enlightened yet. I think the camera should not be on continues acqusition, only on request it should get 1 frame (in fastest way)
I also tried
sudo service nvargus-daemon stop
sudo enableCamInfiniteTimeout=1 nvargus-daemon
and
nvgstcapture-1.0 -J 1 -m 1 --image-res=8
when I want to capture 10 image with j:10 , the image write rate is 2 per second, while the first pipeline ı wrote can write at 30 fps.
I am not sure which way is correct. How should I approach the problem?
I don’t know what torch mode is. Is it in nvarguscamerasrc or nvgstcapture ? Is it possible that can you show me any documentation , sample code about it?
Actually, I already done that but there is delay when working like that.
What would be the reason when gst-launch command has 30 fps image write speed but nvgstcapture has only 2 . Are there any way to speed it up? I also tried 09_camera_jpeg_capture this sample. I can write images without problem but it has 2 fps image write speed as well.
It has been a while, I was working on gstnvarguscamerasrc.cpp and tegra_multimedia_api/samples/09_camera_jpeg_capture.
I have been struggling with framerate issue.
While arguscamerasrc works okay with this command.
requestSourceSettings->setSensorMode(modes[3]);
GST_ARGUS_PRINT("Range Before min %lu max %lu.\n", requestSourceSettings->getFrameDurationRange().min(), requestSourceSettings->getFrameDurationRange().max());
auto range = Range<uint64_t>(1e9 / frameRate);
requestSourceSettings->setFrameDurationRange(range);
GST_ARGUS_PRINT("Range After min %lu max %lu.\n", requestSourceSettings->getFrameDurationRange().min(), requestSourceSettings->getFrameDurationRange().max());
output is that
GST_ARGUS: Range Before min 33333334 max 83333336.
GST_ARGUS: Range After min 11111111 max 11111111.
And it just works in 90 fps.
When i tried same thing without gstreamer library
I see these result,And I have no idea why this is happening.
GST_ARGUS: Range Before min 4294967295 max 549592791744.
GST_ARGUS: Range After min 4131945848 max 549592791744.