Hi,

I'm using a simple pipeline to capture MJPEG-encoded still frames like this:

q_ctrl = device.getInputQueue(name="control", maxSize=4, blocking=False)

ctrl_capture = dai.CameraControl().setCaptureStill(True)
q_ctrl.send(ctrl_capture)

There is a CameraControl.CaptureIntent class, which makes it possible to e.g. set STILL_CAPTURE as intent. I tried to run this together with the capture command like this:

q_ctrl = device.getInputQueue(name="control", maxSize=4, blocking=False)

ctrl_intent = dai.CameraControl().setCaptureIntent(dai.CameraControl.CaptureIntent.STILL_CAPTURE)
ctrl_capture = dai.CameraControl().setCaptureStill(True)
q_ctrl.send(ctrl_intent)
q_ctrl.send(ctrl_capture)

However, this approach freezes the pipeline quickly. Setting the CaptureIntent only once before starting the frame recording works, but I'm not sure if something is actually happing.

I couldn't find any information about this CaptureIntent control. What exactly is it doing and what is the recommended way to use it?

Thanks!

    Hi maxsitt

    Here's what I could find:

    enum class CaptureIntent : uint8_t {
            /**
             * The goal of this request doesn't fall into the other categories. The camera device will default to preview-like behavior.
             */
            CUSTOM = 0,
            /**
             * This request is for a preview-like use case.
             */
            PREVIEW,
            /**
             * This request is for a still capture-type use case.
             */
            STILL_CAPTURE,
            /**
             * This request is for a video recording use case.
             */
            VIDEO_RECORD,
            /**
             * This request is for a video snapshot (still image while recording video) use case.
             * The camera device should take the highest-quality image possible (given the other settings)
             * without disrupting the frame rate of video recording.
             */
            VIDEO_SNAPSHOT,
            /**
             * This request is for a ZSL usecase; the application will stream full-resolution images and reprocess one or several later for a final capture.
             */
            ZERO_SHUTTER_LAG,
        };

    Not really sure if anything meaningful is set by the intent control. Honestly probably doesn't make a difference.

    Thanks,
    Jaka

      Hi jakaskerl

      Okay, thanks for checking! I will test a little bit more and report back if I can find any effect of using the CaptureIntent mode STILL_CAPTURE.

      Best,
      Max