setEnableAllIFrameEncode

I was inspecting the following sample code in GitHub: gpu-camera-sample/v4l2encoder.cpp at 8bcf51a8b5378c578d5ceac2e7fe223f2ace6e9f · fastvideo/gpu-camera-sample · GitHub

Here there is a video encoder setting called “setEnableAllIFrameEncode”. I am trying to find out the meaning of this setting. What difference does it make on the resulting encoding if I use setEnableAllIFrameEncode(true) or setEnableAllIFrameEncode(false)?

Unfortunately, the documentation does not appear to provide much useful info, so I wanted to ask here.

Oguz

This is not an Nvidia API, so you need check with the developer on the difference.
If I check the implementation, the lowlayer calls v4l2_ioctl with cmd “V4L2_CID_MPEG_VIDEOENC_ENABLE_ALLIFRAME_ENCODE” which is defined at “Jetson Linux API Reference: V4L2 Video Encoder | NVIDIA Docs” .

The corresponding NVIDIA API call is: “setAlliFramesEncode”

I can access the definition in this link:
https://docs.nvidia.com/jetson/l4t-multimedia/classNvVideoEncoder.html#acc36c1d812693305461fc059ae509cfb

It says that it “Enables/disables all i-frame encode”. But it is not clear to me. Does it convert every frame to an iframe?

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

Hi,
The document is for using jetson_multimedia_api on Jetson platforms(Xavier, Orin series). Not sure which platform you use. After setting it, all input frames to encoder are encoded as I frames and outputted.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.