Csi camera(imx415) Take Photo with Flash (Synchronization)

Hello ,

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?

Current camera framework not support flash light. Suggest torch mode.

Hello ShaneCCC thank you for answer,

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?

Torch mode means turn on the flash light until the capture done.

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.

You can download the source of the nvarguscamerasrc for reference if gst-launch without problem.

I couldn’t find the source files of nvarguscamerasrc , is it possible for you to share a link ?

Have below command to install it. And below link https://developer.nvidia.com/embedded/L4T/r32_Release_v4.4/r32_Release_v4.4-GMC3/Sources/T186/public_sources.tbz2

sudo apt list -a nvidia-l4t-jetson-multimedia-api
sudo apt install nvidia-l4t-jetson-multimedia-api=32.4.xxxxx

Hello ,

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.

Sorry, Not really don’t understand your question.
I would suggest to run the argus_camera to adjust the setting from the GUI to confirm it.