# v4l2vp9dec

Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/v4l2vp9dec.html](https://docs.qualcomm.com/doc/80-70015-50/topic/v4l2vp9dec.html)

The v4l2vp9dec plugin uses the V4L2 APIs to decode the video stream.

This plugin uses the VP9 video decoder to provide hardware accelerated VP9 decoding on
            platforms that support it. It is based on the [GstVideoDecoder](https://gstreamer.freedesktop.org/documentation/video/gstvideodecoder.html) base class.

## Inheritance chain

[GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstVideoDecoder](https://gstreamer.freedesktop.org/documentation/video/gstvideodecoder.html) → GstV4l2VideoDec →
                v4l2vp9dec

The following tables provide information on pad templates and element properties of
                v4l2vp9dec. For use cases, see [Video playback use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/video-playback-use-cases.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_tvf_gs4_vzb"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-vp9 |  |  |
| SRC template: 'src'<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_uvf_gs4_vzb"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | format: | { (string)NV12, (string)NV21 } |
| SRC template: 'src'<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_uvf_gs4_vzb"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | width: | [ 1, 32768 ] |
| SRC template: 'src'<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_uvf_gs4_vzb"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | height: | [ 1, 32768 ] |
| SRC template: 'src'<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_uvf_gs4_vzb"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | framerate: | [ 0/1, 2147483647/1 ] |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

## Element configuration

Note: For the current release, in the read-write properties, only
                    **capture-io-mode** and **output-io-mode** are supported with **(5):                    dmabuf-import - GST\_V4L2\_IO\_DMABUF\_IMPORT** property.

Table : Element properties of v4l2vp9dec

| Property | Description |
| --- | --- |
| automatic-request-sync-point-flags: | Flags to use when automatically requesting sync points.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_yw5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li"><br>                                        <p class="p">Flags "GstVideoDecoderRequestSyncPointFlags" Default:<br>                                            0x00000003, "corrupt-output+discard-input"</p><br><br>                                        <ul class="ul" id="v4l2vp9dec__ul_sl3_ls4_vzb"><br>                                            <li class="li"> (0x00000001): discard-input -<br>                                                GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT</li><br><br>                                            <li class="li"> (0x00000002): corrupt-output -<br>                                                GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT</li><br><br>                                        </ul><br><br>                                    </li><br><br>                                </ul> |
| automatic-request-sync-points | Automatically request sync points when required.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_zw5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| capture-io-mode | Capture I/O mode (matches src pad).<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_ax5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Enum "GstV4l2IOMode" Default: 0, "auto"<ul class="ul" id="v4l2vp9dec__ul_ktz_js4_vzb"><br>                                            <li class="li"> (0): auto - GST_V4L2_IO_AUTO</li><br><br>                                            <li class="li"> (1): rw - GST_V4L2_IO_RW</li><br><br>                                            <li class="li"> (2): mmap - GST_V4L2_IO_MMAP</li><br><br>                                            <li class="li"> (3): userptr - GST_V4L2_IO_USERPTR</li><br><br>                                            <li class="li"> (4): dmabuf - GST_V4L2_IO_DMABUF</li><br><br>                                            <li class="li"> (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| device | Device location.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_bx5_3s4_vzb"><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">String. Default: "/dev/video0"</li><br><br>                                </ul> |
| device-fd | File descriptor of the device.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_cx5_3s4_vzb"><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">Integer. Range: -1 - 2147483647 Default: -1</li><br><br>                                </ul> |
| device-name | Name of the device.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_dx5_3s4_vzb"><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| discard-corrupted-frames | Discard frames marked as corrupted instead of outputting<br>                                    them.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_ex5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| extra-controls | Extra v4l2 controls (CIDs) for the device.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_fx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boxed pointer of type "GstStructure"</li><br><br>                                </ul> |
| max-errors | Maximum consecutive decoder errors before returning flow<br>                                    error.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_gx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer. Range: -1 - 2147483647 Default: 10</li><br><br>                                </ul> |
| min-force-key-unit-interval | Minimum interval between force-keyunit requests in<br>                                    nanoseconds.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_hx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| name | The name of the object.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_ix5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable, 0x2000</li><br><br>                                    <li class="li">String. Default: "v4l2vp9dec0"</li><br><br>                                </ul> |
| output-io-mode | Output side I/O mode (matches sink pad).<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_jx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li"><br>                                        <p class="p">Enum "GstV4l2IOMode" Default: 0, "auto"</p><br><br>                                        <ul class="ul" id="v4l2vp9dec__ul_pwr_ks4_vzb"><br>                                            <li class="li"> (0): auto - GST_V4L2_IO_AUTO</li><br><br>                                            <li class="li"> (1): rw - GST_V4L2_IO_RW</li><br><br>                                            <li class="li"> (2): mmap - GST_V4L2_IO_MMAP</li><br><br>                                            <li class="li"> (3): userptr - GST_V4L2_IO_USERPTR</li><br><br>                                            <li class="li"> (4): dmabuf - GST_V4L2_IO_DMABUF</li><br><br>                                            <li class="li"> (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT</li><br><br>                                        </ul><br><br>                                    </li><br><br>                                </ul> |
| parent | The parent of the object.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_kx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable, 0x2000</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| qos | Handle Quality-of-Service events from downstream.<br><br><br>                                <ul class="ul" id="v4l2vp9dec__ul_lx5_3s4_vzb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |

**Parent Topic:** [Display, camera, encode and decode plugins](https://docs.qualcomm.com/doc/80-70015-50/topic/display-plugins.html)

Last Published: Oct 27, 2025

[Previous Topic
v4l2h265enc](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/v4l2h265enc.md) [Next Topic
Audio plugins](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/audio-plugins.md)