> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Explore video sample applications

You can use the video functionality at the native layer by using the [Qualcomm IM SDK](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK) framework or by using the V4L2 interfaces. Qualcomm provides GStreamer and V4L2-based sample applications to run the video sample use cases.

## **GStreamer samples**

The [Qualcomm IM SDK](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK) includes sample GStreamer applications for video playback.

**Note**

For information on sample GStreamer applications supported on different SoCs, see [Multimedia sample applications](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK/sample-application/multimedia-sample-applications).

For information about the prerequisites for the GStreamer applications, see [Run sample applications for video and audio](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/audio-sample-applications.html).

The following table lists the methods and the corresponding sample video test cases:

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Methods to test video use cases
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      display: 'table',
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'fixed',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '35%' }} />

          <col style={{ width: '65%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          boxSizing: 'border-box'
        }}
            >
              Method
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          boxSizing: 'border-box'
        }}
            >
              Use case
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              rowSpan={3}
              style={{
            border: '1px solid #E5E7EB',
            padding: '14px 16px',
            color: '#111827',
            fontWeight: '600',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              Using `gst-launch-1.0`
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', boxSizing: 'border-box' }}>
              [Video playback](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/video-playback-use-cases.html)
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', boxSizing: 'border-box' }}>
              [Audio-video playback](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/audio-video-use-cases.html)
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', boxSizing: 'border-box' }}>
              [Video recording](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/camera-and-video-encode.html)
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          color: '#111827',
          fontWeight: '600',
          boxSizing: 'border-box'
        }}
            >
              Using the GStreamer application
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', boxSizing: 'border-box' }}>
              [Video playback](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/gst-video-playback-example.html)
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

## **V4L2 samples**

The `iris_v4l2_test` sample video test application uses Linux V4L2 interfaces to simulate several basic encoder and decoder behaviors. For more information, see [sample V4L2 application](https://github.com/quic/v4l-video-test-app).

Qualcomm Linux supports the following video APIs:

* [GStreamer APIs](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#configure-gstreamer-and-v4l2-apis): The Qualcomm GStreamer plugins are open-source GStreamer framework compliant. For more information about the GStreamer based plugins, see [Qualcomm IM SDK](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK).
* [V4L2 APIs](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#v4l2-apis): The Adreno VPU driver follows a standard V4L2-compliant call flow. The V4L2 APIs section provides information related to V4L2 APIs, commands, controls, and events.

## **Configure GStreamer and V4L2 APIs**

* Qualcomm offers GStreamer-based plugins that you can integrate into your media pipeline. For information on the GStreamer-based plugins, see [Configure Qualcomm GStreamer plugins](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/qim-sdk-plugins.html).
* The Adreno VPU driver uses the V4L2 interface to support video encoding and decoding for all clients that follow the V4L2 guidance.

### **GStreamer APIs**

For information on the GStreamer application development and pipeline creation, see [Building an Application](https://gstreamer.freedesktop.org/documentation/application-development/basics/index.html).

#### **Configure GStreamer APIs**

For information on configuring the GStreamer element property for different features and respective plugins, see [Configure Qualcomm GStreamer plugins](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/qim-sdk-plugins.html).

### **V4L2 APIs**

This section describes V4L2 device nodes, file operations, commands, controls, and events for the decoder and encoder.

#### **VPU driver nodes**

The device registers the VPU driver during the boot-up process and assigns the device node number to the qcom-multimedia-proprietary-image.

* VPU driver node for decoder: `/dev/video32`
* VPU driver node for encoder: `/dev/video33`

<div style={{ borderLeft: '4px solid #3B5BDB', backgroundColor: '#EEF2FF', padding: '12px 16px', borderRadius: '4px', marginTop: '12px', marginBottom: '16px' }}>
  <p style={{ margin: '0 0 6px 0', fontWeight: 'bold', color: '#1E3A8A' }}>Note:</p>
  <p style={{ margin: 0 }}>For `qcom-multimedia-image`, the VPU driver assigns the device node to any of the two device nodes starting from video0 to video27.</p>
</div>

#### **V4L2 file operations**

The Adreno VPU driver supports the following V4L2 file operations:

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: V4L2 file operations
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '22%' }} />

          <col style={{ width: '78%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Operation
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Description
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                open
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              Opens the video device file descriptor (FD) that's used to communicate with the VPU driver using the input/output control <code>ioctl</code> commands
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                close
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              Closes the video device upon the completion of a video use case, and releases all the VPU driver resources related to the video device
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                poll
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              Waits for the events from the VPU driver
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                ioctl
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              Sends commands or controls to the VPU device
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

#### **V4L2 common commands for decoder and encoder**

The VPU driver supports the following `ioctl` commands for the video decoder and encoder use cases:

* `VIDIOC_ENUM_FMT`
* `VIDIOC_TRY_FMT`
* `VIDIOC_G_FMT`
* `VIDIOC_S_FMT`
* `VIDIOC_ENUM_FRAMESIZES`
* `VIDIOC_REQBUFS`
* `VIDIOC_QUERY_BUF`
* `VIDIOC_CREATE_BUF`
* `VIDIOC_PREPARE_BUF`
* `VIDIOC_QBUF`
* `VIDIOC_DQBUF`
* `VIDIOC_STREAMON`
* `VIDIOC_STREAMOFF`
* `VIDIOC_QUERYCAP`
* `VIDIOC_QUERYCTRL`
* `VIDIOC_QUERYMENU`
* `VIDIOC_SUBSCRIBE_EVENT`
* `VIDIOC_UNSUBSCRIBE_EVENT`
* `VIDIOC_G_SELECTION`
* `VIDIOC_G_CTRL`
* `VIDIOC_S_CTRL`

#### **V4L2 video decoder**

This section provides information on the Adreno VPU decoder device nodes, supported controls, commands, and events. For the procedure to open a VPU decoder node, see [VPU driver nodes](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#vpu-driver-nodes).

**V4L2 ioctl commands for decoder**

For descriptions of the standard `ioctl` commands, see [Video for Linux API Function Reference](https://www.kernel.org/doc/html/v4.9/media/uapi/v4l/user-func.html).

Apart from the [common commands](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#v4l2-common-commands-for-decoder-and-encoder), the VPU driver also supports the following `ioctl` commands for the video decoder use cases:

* `VIDIOC_TRY_DECODER_CMD`
* `VIDIOC_DECODER_CMD`

As specified in the [Memory-to-Memory Stateful Video Decoder Interface](https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-decoder.html), the decoder supports all the mandatory commands required for the video decoder use cases.

**V4L2 open-source controls for decoder**

For descriptions of the standard open-source controls, see [Codec Control Reference](https://www.kernel.org/doc/html/v5.5/media/uapi/v4l/ext-ctrls-codec.html).

The VPU driver supports the following open-source controls for the video decoder use cases:

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: V4L2 open-source controls for decoder
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '42%' }} />

          <col style={{ width: '38%' }} />

          <col style={{ width: '20%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Purpose
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Dynamic/Static
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_H264\_PROFILE
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              H.264 decoder profile
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_PROFILE
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              HEVC decoder profile
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_VP9\_PROFILE
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              VP9 decoder profile
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_H264\_LEVEL
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              H.264 decoder level
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_LEVEL
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              HEVC decoder level
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_VP9\_LEVEL
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              VP9 decoder level
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_TIER
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              HEVC decoder tier
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Static
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The decoder supports the following V4L2 open-source events:

* `V4L2_EVENT_EOS`
* `V4L2_EVENT_SOURCE_CHANGE`
* `V4L2_EVENT_CTRL`

The decoder supports the following V4L2 commands:

* `V4L2_DEC_CMD_START`
* `V4L2_DEC_CMD_STOP`

#### **V4L2 video encoder**

This section provides the information on the Adreno VPU encoder device nodes, supported controls, commands, and events. For the procedure to open a VPU encoder node, see [VPU driver nodes](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#vpu-driver-nodes).

**V4L2 ioctl commands for encoder**

For descriptions of the standard `ioctl` commands, see [Function Reference](https://www.kernel.org/doc/html/v4.9/media/uapi/v4l/user-func.html).

Apart from the [common commands](https://dragonwingdocs.qualcomm.com/Technologies/Video/explore-video-sample-applications#v4l2-common-commands-for-decoder-and-encoder), the VPU driver also supports the following `ioctl` commands for the encode use cases:

* `VIDIOC_ENUM_FRAMEINTERVALS`
* `VIDIOC_S_SELECTION`
* `VIDIOC_S_PARM`
* `VIDIOC_G_PARM`
* `VIDIOC_TRY_ENCODER_CMD`
* `VIDIOC_ENCODER_CMD`

As specified in the [Memory-to-Memory Stateful Video Encoder Interface](https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-encoder.html), the encoder supports all the mandatory commands required for the video encoder use cases.

**V4L2 open-source controls for encoder**

For descriptions of the standard open-source controls, see [Codec Control Reference](https://www.kernel.org/doc/html/v5.5/media/uapi/v4l/ext-ctrls-codec.html).

The VPU driver supports the following open-source controls for the video encoder use cases:

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: V4L2 open-source controls for encoder
    </div>

    <div style={{ width: '100%', display: 'block', overflowX: 'auto' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'fixed',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '60%' }} />

          <col style={{ width: '25%' }} />

          <col style={{ width: '15%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          width: '60%',
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID
            </th>

            <th
              style={{
          width: '25%',
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Purpose
            </th>

            <th
              style={{
          width: '15%',
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Dynamic/Static
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_PROFILE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 encoder profile
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_PROFILE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC encoder profile
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_LEVEL
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 encoder level
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_LEVEL
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC encoder level
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_TIER
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 encoder tier
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_HFLIP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Horizontal flip
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_VFLIP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Vertical flip
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_ROTATE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Rotation
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEADER\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Header mode
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_PREPEND\_SPSPPS\_TO\_IDR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              SPS/PPS with Instantaneous Decoder Refresh (IDR) frame
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_FORCE\_KEY\_FRAME
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Request force sync frame
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_BITRATE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Average bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_BITRATE\_PEAK
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Peak bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_BITRATE\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Rate control
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_FRAME\_SKIP\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Frame skip mode
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_FRAME\_RC\_ENABLE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              RC enable/disable
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_GOP\_SIZE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Group-of-pictures size
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_B\_FRAMES
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              B-Frames
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_LTR\_COUNT
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              LTR frame count
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_USE\_LTR\_FRAMES
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Use LTR
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_FRAME\_LTR\_INDEX
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Mark LTR
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_BASELAYER\_PRIORITY\_ID
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Set base layer ID for layer encode
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD\_TYPE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Intra-refresh
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Intra-refresh period
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 minimum Quantization Parameter (QP)
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 I-frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC I-frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 P-Frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC P-Frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 B-Frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_MIN\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC B-Frame minimum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 I-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC I-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 P-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC P-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 B-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_MAX\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC B-Frame maximum QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC I-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 I-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC P-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 P-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC B-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 B-Frame QP
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_TYPE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC Hier coding type
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIERARCHICAL\_CODING\_TYPE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 Hier coding type
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIERARCHICAL\_CODING
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 Hier coding
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_LAYER
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC Hier layer count
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIERARCHICAL\_CODING\_LAYER
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 Hier layer count
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L0\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 0-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L0\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 0-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L1\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 1-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L1\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 1-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L2\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 2-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L2\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 2-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L3\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 3-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L3\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 3-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L4\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 4-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L4\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 4-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_HIER\_CODING\_L5\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 layer 5-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_HIER\_CODING\_L5\_BR
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              HEVC layer 5-bit rate
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Both
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_ENTROPY\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              H.264 entropy mode
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Encode slice mode
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MAX\_BYTES
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Maximum bytes in slice
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'normal', wordBreak: 'break-word', overflowWrap: 'anywhere', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MAX\_MB
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Maximum macroblocks in slice
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Static
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

Set all static configuration options after setting the formats on both the planes and before requesting buffers on either of the plane. Call the dynamic parameters after setting the formats on both planes.

For information on the V4L2 controls for encoder, see [Codec Control Reference](https://www.kernel.org/doc/html/v5.5/media/uapi/v4l/ext-ctrls-codec.html).

The supported open-source events for encoder are:

* `V4L2_EVENT_EOS`
* `V4L2_EVENT_CTRL`

The supported open-source commands for encoder are:

* `V4L2_ENC_CMD_START`
* `V4L2_ENC_CMD_STOP`

#### **Configure V4L2 APIs**

Use the V4L2 control IDs, accepted format, accepted ranges, and sample code information, provided in this section, to configure and manage different video features on your device.

**B-Frame encode**

You can configure the VPU driver to set up B-Frames in an encoder session using the `VIDIOC_S_CTRL` ioctl system call. Set the B-Frame encode configuration before setting the `VIDIOC_STREAMON` on an output plane. The VPU driver supports B-Frame encode only with Hierarchical coding. This feature doesn't support dynamic configuration.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for B-Frame encode
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '38%' }} />

          <col style={{ width: '18%' }} />

          <col style={{ width: '44%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 and HEVC codecs
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_B\_FRAMES
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              Integer
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              <ul style={{ margin: 0, paddingLeft: '20px' }}>
                <li>
                  {'{0, 1}'}
                </li>

                <li>0: Disable B-Frame</li>
                <li>1: Enable single B-Frame</li>
              </ul>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration for a single B-Frame:

```text theme={null}
v4l2_control control;
int ret = 0;
int bframes = 1;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_B_FRAMES;
control.value = bframes;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE;
control.value = 0;// V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER;
control.value = 1;//Enable 1 layer
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

**Encoder initial QP override**

You can configure the VPU driver to override the initial frame quantization parameter (QP) for I-Frames, P-Frames, and B-Frames to an intended value of encoded frames. You can override using the `VIDIOC_S_CTRL` ioctl system call. The QP override provides the flexibility to set the initial frame QP for I-Frame only, or P-Frame only, or B-Frame only, or I-frame and P-Frame only, or P-Frame and B-Frame only, or combinations of these frames. Set the encoder initial QP override configuration before the `VIDIOC_STREAMON` on an output plane and is only applicable to an encoder session.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for encoder initial QP override
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '52%' }} />

          <col style={{ width: '16%' }} />

          <col style={{ width: '32%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 codec
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              QP range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>

            <td rowSpan={3} style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              <div style={{ marginBottom: '8px' }}>Example according to the codec standard:</div>

              <ul style={{ margin: 0, paddingLeft: '20px' }}>
                <li>1 to 51 for 8-bit</li>
                <li>1 to 63 (-12 to 51) for 10-bit</li>
              </ul>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>
          </tr>

          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'left',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for HEVC codec
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'left',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'left',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              QP range
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>

            <td rowSpan={3} style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              <div style={{ marginBottom: '8px' }}>Example according to the codec standard:</div>

              <ul style={{ margin: 0, paddingLeft: '20px' }}>
                <li>1 to 51 for 8-bit</li>
                <li>1 to 63 (-12 to 51) for 10-bit</li>
              </ul>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_QPI
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_QP
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration parameters to set:

* 40 as an initial QP for the I-Frame
* 35 as an initial QP for the P-Frame
* B-Frame for the H.264 session

```text theme={null}
v4l2_control control;
int ret = 0;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP;
control.value = 40;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP;
control.value = 35;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP;
control.value = 35;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

**Slice encode**

You can configure the VPU driver to encode a single frame into many slices using the `VIDIOC_S_CTRL` ioctl system call. The number of bits per slice or the number of macroblocks per slice is a slice boundary. Set the slice-encode configuration before `VIDIOC_STREAMON` on an output plane. The slice-encode feature doesn't support dynamic configuration, and this configuration is applicable only to an encoder session.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for slice encode
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '52%' }} />

          <col style={{ width: '16%' }} />

          <col style={{ width: '32%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 and HEVC codecs
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MODE
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              enum
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              <div style={{ marginBottom: '8px' }}>
                <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827' }}>
                  v4l2\_mpeg\_video\_multi\_slice\_mode
                </code>
              </div>

              <div style={{ marginBottom: '6px' }}>Values according to the codec standard:</div>
              <div style={{ marginBottom: '4px' }}>enum</div>

              <div>
                <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827' }}>
                  v4l2\_mpeg\_video\_multi\_slice\_mode
                </code>
              </div>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MAX\_BYTES
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              <div style={{ marginBottom: '6px' }}>512 - MAX\_BITRATE/8</div>
              <div>Unit: bits/second</div>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_MULTI\_SLICE\_MAX\_MB
              </code>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              1 to 36864<br />Unit: Macroblocks
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration to encode frames with many slices and with the maximum number of macroblocks per slice set to 400:

```text theme={null}
v4l2_control control;
int ret = 0;
v4l2_mpeg_video_multi_slice_mode slicemode = V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
control.value = slicemode;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB;
control.value = 400;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

**Intra-refresh**

You can configure the VPU driver to activate the intra-refresh mode and intra-refresh period using the `VIDIOC_S_CTRL` ioctl system call. Set the intra-refresh configuration before issuing `VIDIOC_STREAMON` on an output plane. You can change the intra-refresh period dynamically during the session, and this feature is applicable only to an encoder session.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for intra-refresh
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '38%' }} />

          <col style={{ width: '22%' }} />

          <col style={{ width: '40%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 and HEVC codecs
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD\_TYPE
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              <div style={{ marginBottom: '8px' }}>enum</div>

              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                v4l2\_mpeg\_video\_intra\_refresh\_period\_type
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              <div style={{ marginBottom: '8px' }}>
                {'{V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC}'}
              </div>

              <div style={{ marginBottom: '4px', fontWeight: '600' }}>Random mode:</div>

              <div style={{ marginBottom: '8px' }}>
                <code
                  style={{
              fontFamily: 'monospace',
              fontSize: '13px',
              backgroundColor: '#F3F4F6',
              padding: '4px 8px',
              borderRadius: '6px',
              color: '#111827',
              whiteSpace: 'normal',
              wordBreak: 'break-word',
              overflowWrap: 'anywhere',
              display: 'inline-block',
              lineHeight: '1.5'
            }}
                >
                  V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD\_TYPE\_RANDOM
                </code>
              </div>

              <div style={{ marginBottom: '4px', fontWeight: '600' }}>Cyclic mode:</div>

              <div>
                <code
                  style={{
              fontFamily: 'monospace',
              fontSize: '13px',
              backgroundColor: '#F3F4F6',
              padding: '4px 8px',
              borderRadius: '6px',
              color: '#111827',
              whiteSpace: 'normal',
              wordBreak: 'break-word',
              overflowWrap: 'anywhere',
              display: 'inline-block',
              lineHeight: '1.5'
            }}
                >
                  V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD\_TYPE\_CYCLIC
                </code>
              </div>
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'normal',
            wordBreak: 'break-word',
            overflowWrap: 'anywhere',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_INTRA\_REFRESH\_PERIOD
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Integer
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              <div style={{ marginBottom: '6px' }}>
                Set the intra-refresh period to be less than an I-frame interval
              </div>

              <div>
                Unit: number of frames
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration to activate the random intra-refresh for every 10 frames:

```text theme={null}
v4l2_control control;
int ret = 0;
v4l2_mpeg_video_intra_refresh_period_type refreshtype = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM;

memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE;
control.value = refreshtype;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD;
control.value = 10;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

**Rotation**

You can configure the VPU driver to rotate the input frame before encoding using the `VIDIOC_S_CTRL` ioctl system call. Set the rotation configuration before the `VIDIOC_STREAMON` on an output plane. The rotation feature doesn't support dynamic configuration and is applicable only to an encoder session.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for rotation
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '42%' }} />

          <col style={{ width: '18%' }} />

          <col style={{ width: '40%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 and HEVC codecs
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'nowrap',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_ROTATE
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Integer
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box',
          wordBreak: 'break-word'
        }}
            >
              <div style={{ marginBottom: '6px' }}>
                {'{90, 180, 270}'}
              </div>

              <div>Unit: degrees</div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration for rotating an input frame to 90 degrees:

```text theme={null}
v4l2_control control;
int ret = 0;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_ROTATE;
control.value = 90;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

**Frame QP range**

You can configure the VPU driver to set the minimum and maximum frame QP range parameters for I-frames, P-frames, and B-Frames to an intended value for encoded frames using the `VIDIOC_S_CTRL` ioctl system call. Set the frame QP range configuration before the `VIDIOC_STREAMON` on an output plane. The values are valid for an entire session. Dynamic configuration isn't supported, and the frame QP feature is applicable only to an encoder session.

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for frame QP range
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '58%' }} />

          <col style={{ width: '14%' }} />

          <col style={{ width: '28%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 codecs
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_MIN\_QP
              </code>
            </td>

            <td rowSpan={12} style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              Integer
            </td>

            <td rowSpan={12} style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box', wordBreak: 'break-word' }}>
              Example according to the codec standard: 1 to 51 for 8-bit
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_I\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_MIN\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_P\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_MIN\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_H264\_B\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_MIN\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_I\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_MIN\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_P\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_MIN\_QP
              </code>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <code style={{ fontFamily: 'monospace', fontSize: '12.5px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', whiteSpace: 'nowrap', display: 'inline-block', lineHeight: '1.5' }}>
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_B\_FRAME\_MAX\_QP
              </code>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

The following code sample shows the static configuration parameter to choose 40 as the maximum QP and 10 as the minimum QP for an I-Frame, P-Frame, and B-Frame in an H.264 session:

```text theme={null}
v4l2_control control;
int ret = 0;
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP;
control.value = 10;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP;
control.value = 10;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP;
control.value = 10;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP;
control.value = 40;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP;
control.value = 40;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
memset(&control, 0, sizeof(control));
control.id = V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP;
control.value = 40;
ret = ioctl(mDriverFd, VIDIOC_S_CTRL, &control);// mDriverFd returned from open() system call
if (ret) {
    return -1;
}
```

You can configure the following controls if you need to have the same minimum and maximum QP value for an I-Frame, P-Frame, and B-Frame:

**Table: Control IDs for H.264 codec**

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for H.264 codec
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '52%' }} />

          <col style={{ width: '16%' }} />

          <col style={{ width: '32%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for H.264 codec
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'nowrap',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_H264\_MIN\_QP
              </code>
            </td>

            <td
              rowSpan={2}
              style={{
            border: '1px solid #E5E7EB',
            padding: '14px 16px',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              Integer
            </td>

            <td
              rowSpan={2}
              style={{
            border: '1px solid #E5E7EB',
            padding: '14px 16px',
            verticalAlign: 'top',
            boxSizing: 'border-box',
            wordBreak: 'break-word'
          }}
            >
              Example according to the code standard: 1 to 51 for 8-bit
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'nowrap',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_H264\_MAX\_QP
              </code>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div style={{ borderRadius: '12px', overflow: 'hidden', border: '2px solid #0050D8', width: '100%' }}>
    <div
      style={{
  background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
  color: 'white',
  padding: '14px',
  textAlign: 'center',
  fontWeight: 'bold'
}}
    >
      Table: Control IDs for HEVC codec
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'auto',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '52%' }} />

          <col style={{ width: '16%' }} />

          <col style={{ width: '32%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Control ID for HEVC codec
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Accepted format
            </th>

            <th
              style={{
          border: '1px solid #E5E7EB',
          padding: '16px',
          textAlign: 'center',
          fontWeight: 'bold',
          color: '#111827',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Range
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'nowrap',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_MIN\_QP
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Integer
            </td>

            <td
              rowSpan={2}
              style={{
            border: '1px solid #E5E7EB',
            padding: '14px 16px',
            verticalAlign: 'top',
            boxSizing: 'border-box',
            wordBreak: 'break-word'
          }}
            >
              Example according to the code standard: 1 to 51 for 8-bit
            </td>
          </tr>

          <tr>
            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              <code
                style={{
            fontFamily: 'monospace',
            fontSize: '13px',
            backgroundColor: '#F3F4F6',
            padding: '4px 8px',
            borderRadius: '6px',
            color: '#111827',
            whiteSpace: 'nowrap',
            display: 'inline-block',
            lineHeight: '1.5'
          }}
              >
                V4L2\_CID\_MPEG\_VIDEO\_HEVC\_MAX\_QP
              </code>
            </td>

            <td
              style={{
          border: '1px solid #E5E7EB',
          padding: '14px 16px',
          verticalAlign: 'top',
          boxSizing: 'border-box'
        }}
            >
              Integer
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

## **Next steps**

* [Troubleshoot video](https://dragonwingdocs.qualcomm.com/Technologies/Video/troubleshoot-video)
* [Video specifications](https://dragonwingdocs.qualcomm.com/Technologies/Video/advanced-video-specifications)
