# v4l2h264dec
Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/v4l2h264dec.html](https://docs.qualcomm.com/doc/80-70015-50/topic/v4l2h264dec.html)
The v4l2h264dec plugin uses the V4L2 APIs to decode the video stream.
- The plugin uses the H264 video decoder to provide hardware accelerated H.264 (MPEG-4
Part 10) decoding on supported platforms.
- The plugin 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 →
v4l2h264dec
The following tables provide information on pad templates and element properties of
v4l2h264dec. 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'
- Availability: Always
- Direction: sink
| video/x-h264 | alignment: | au |
| SINK template: 'sink'
- Availability: Always
- Direction: sink
| video/x-h264 | stream-format: | byte-stream |
| SINK template: 'sink'
- Availability: Always
- Direction: sink
| video/x-h264 | level: | { (string)1, (string)1b, (string)1.1, (string)1.2, (string)1.3,
(string)2, (string)2.1, (string)2.2, (string)3, (string)3.1,
(string)3.2, (string)4, (string)4.1, (string)4.2, (string)5,
(string)5.1 } |
| SINK template: 'sink'
- Availability: Always
- Direction: sink
| video/x-h264 | profile: | { (string)baseline, (string)constrained-baseline, (string)main,
(string)high, (string)constrained-high } |
| SRC template: 'src'
- Availability: Always
- Direction: source
| video/x-raw | format: | { (string)NV12, (string)NV21 } |
| SRC template: 'src'
- Availability: Always
- Direction: source
| video/x-raw | width: | [ 1, 32768 ] |
| SRC template: 'src'
- Availability: Always
- Direction: source
| video/x-raw | height: | [ 1, 32768 ] |
| SRC template: 'src'
- Availability: Always
- Direction: source
| 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, and they are
supported only with **(5): dmabuf-import - GST\_V4L2\_IO\_DMABUF\_IMPORT**
property.
Table : Element properties of v4l2h264dec
| Property | Description |
| --- | --- |
| automatic-request-sync-point-flags: | Flags to use when automatically requesting sync points.
|
| automatic-request-sync-points | Automatically request sync points when required.
- flags: readable, writable
- Boolean. Default: false
|
| capture-io-mode | Capture I/O mode (matches src pad).
- flags: readable, writable
- Enum "GstV4l2IOMode" Default: 0, "auto"
- (0): auto - GST_V4L2_IO_AUTO
- (1): rw - GST_V4L2_IO_RW
- (2): mmap - GST_V4L2_IO_MMAP
- (3): userptr - GST_V4L2_IO_USERPTR
- (4): dmabuf - GST_V4L2_IO_DMABUF
- (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT
|
| device | Device location.
- flags: readable
- String. Default: "/dev/video0"
|
| device-fd | File descriptor of the device.
- flags: readable
- Integer. Range: -1 - 2147483647 Default: -1
|
| device-name | Name of the device.
- flags: readable
- String. Default: null
|
| discard-corrupted-frames | Discard frames marked as corrupted instead of processing them as
the output.
- flags: readable, writable
- Boolean. Default: false
|
| extra-controls | Extra v4l2 controls (CIDs) for the device.
- flags: readable, writable
- Boxed pointer of type "GstStructure"
|
| max-errors | Maximum consecutive decoder errors before returning a flow
error.
- flags: readable, writable
- Integer. Range: -1 - 2147483647 Default: 10
|
| min-force-key-unit-interval | Minimum interval between force-keyunit requests in
nanoseconds.
- flags: readable, writable
- Unsigned Integer64. Range: 0 - 18446744073709551615 Default:
0
|
| name | The name of the object.
- flags: readable, writable, 0x2000
- String. Default: "v4l2h264dec0"
|
| output-io-mode | Output side I/O mode (matches sink pad).
|
| parent | The parent of the object.
- flags: readable, writable, 0x2000
- Object of type "GstObject"
|
| qos | Handle Quality-of-Service events from downstream.
- flags: readable, writable
- Boolean. Default: true
|
**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
qtisocketsrc](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/qtisocketsrc.md) [Next Topic
v4l2h265dec](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/v4l2h265dec.md)