Coarse Time control doesn't change with nvcamerasrc and autoexposure enabled

Hi all,

I am implementing a camera Driver, I want to know what do I need to implement in order to get nvcamerasrc managing the V4L coarse time control, I already implemented the coarse time control, and gain control. Right now with Nvcamerasrc and auto-exposure enabled, the V4L gain control changes according the light condition but the coarse time is not working. It only works if I set manually a value using v4l2-ctl.

{
        .ops            = &camera_ctrl_ops,
        .id             = TEGRA_CAMERA_CID_COARSE_TIME,
        .name           = "Coarse Time",
        .type           = V4L2_CTRL_TYPE_INTEGER,
        .flags          = V4L2_CTRL_FLAG_SLIDER,
        .min            = CAMERA_COARSE_INT_TIME_MIN,
        .max            = CAMERA_COARSE_INT_TIME_MAX,
        .def            = CAMERA_COARSE_INT_TIME_DEF,
        .step           = 1,
    },

At the first I was seeing the same behavior for the gain, so I added the TEGRA_CAMERA_CID_GROUP_HOLD control to the camera driver and the gain now is working as expected.

I also notice that the values on the gain and exposure-time min-max on the dtb affects the behavior of the controls (min and max control values) when the auto-exposure is enabled running nvcamerasrc.

.			min_gain_val = "1.0";
			max_gain_val = "180";
			min_hdr_ratio = "1";
			max_hdr_ratio = "64";
			min_framerate = "1.462526";
			max_framerate = "60";
			min_exp_time = "4";
			max_exp_time = "165770";

Do you know what else do I need to implement to get the coarse time changing automatically by nvcamerasrc? Is the DTB values could be affecting the coarse time control?

Thanks,
-Adrian

Change the frame rate the coarse time should be changed.
Try use argus_camera to change the frame rate to check.

Do you know which part of nvcamerasrc manages the controls? I mean gain is working properly but coarse_time only changes one time when the capture starts, so what nvcamerasrc needs to do the loopback with coarse_time at same as it is doing with the gain? What needs nvcamerasrc implemented to manage the coarse_time control? I also changed the maximum and minimun values on the coarse_time and frame_length controls but anything changed. I also verified that the control id are the same that the ov5693. I also noticed the value changes to the maximum value of the coarse_time control (default value 450, current value when capturing 672, this is the maximum value of the control)

-Thanks

coarse_time is about the frame rate control. Try below command and check the coarse time in kernel driver.

gst-launch-1.0 nvcamerasrc fpsRange=“15.0 15.0” ! ‘video/x-raw(memory:NVMM)’ ! nvoverlaysink -e