# v4l2vp9dec

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

The v4l2vp9dec plugin uses V4L2 APIs for decoding the video stream.

This plugin uses VP9 video decoder to provide hardware accelerated VP9 decoding on
            platforms that support it and is based on [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-70014-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 it would be useful<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 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 | Max consecutive decoder errors before returning flow 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:** [Qualcomm GST plugins](https://docs.qualcomm.com/doc/80-70014-50/topic/qim-sdk-plugins.html)

Last Published: Oct 27, 2025

[Previous Topic
v4l2h265enc](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/v4l2h265enc.md) [Next Topic
pulsesrc](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/pulsesrc.md)