qtivdec

The QTI's qtivdec gstreamer element is V4L2 based video decoder that uses QTI's video hardware cores for decoding video. The qtivdec plugin is derived from the GstVideoDecoder gstreamer base class for video decoders. GstVideoDecoder calls start when the element is activated. GstVideoDecoder calls setformat to notify qtivdec of the input configurations. It then hands over the frame to the qtivdec, which then processes and informs the base class that it is done processing the frame. Once all the data has been processed the base class calls stop on qtivdec to inform that processing is stopped. For more information on the GstVideoDecoder class and how the subclasses cooperate, please refer to the official documentation page https://gstreamer.freedesktop.org/documentation/video/gstvideodecoder.html?gi-language=c.

The below sections illustrate the supported input/output parameters and decoder configuration properties supported by this element.

Pad templates

sink (input)

video/x-h264 stream-format: { (string)byte-stream } alignment: { (string)au } video/x-h265 stream-format: { (string)byte-stream } alignment: { (string)au } video/mpeg mpegversion: { (int)1, (int)2, (int)4 } systemstream: false parsed: true

Presencealways

Directionsink

source (output)

video/x-raw format: NV12 width: [ 32, 4096 ] height: [ 32, 4096 ] video/x-raw(memory:GBM) format: NV12 width: [ 32, 4096 ] height: [ 32, 4096 ]

Presencealways

Directionsrc

Properties

name

The name of the object

type: String access: read/write default: "qtivdec0"

silent

Controls the verbose output.

type: Boolean access: read/write default: false

decode-order

Output decode order.

type: Boolean access: read/write default: false

skip-frames

Controls frame skipping. Used in trick play.

type: Boolean access: read/write default: false

perf

Controls performance mode enablement

type: Boolean access: read/write default: false

operating-rate

For trick mode of smaller resolution to control FF/REW with higher operating rate

type: Boolean access: read/write default: false

omxh264enc

The omxh264enc GStreamer element is part of the gst-omx plugin. The gst-omx plugin is an adapter for the available OpenMAX IL components and maps the OpenMAX APIs and states to the Gstreamer APIs and states. The omxh264enc element is an OpenMAX H264 video encoder that provides h/w accelerated H264 video encoding using the OpenMAX component on platforms that support it. QTI has added support for its OpenMAX video encode component in the gst-omx plugin for enabling h/w accelerated video encode on its video core. The omxh264enc element is based on GstVideoEncoder base class for video encoders. For more information on the GstVideoEncoder methods and API call flow refer to https://gstreamer.freedesktop.org/documentation/video/gstvideoencoder.html?gi-language=c.

Pad templates

sink (input)

video/x-raw width: [ 1, 2147483647 ] height: [ 1, 2147483647 ] framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsink

source (output)

video/x-h264 width: [ 16, 4096 ] height: [ 16, 4096 ]

Presencealways

Directionsrc

name

The name of the object

type: String access: read/write default: "omxh264enc-omxh264enc0"

qos

Handle Quality-of-Service events from downstream.

type: Boolean access: read/write default: false

control-rate

Bitrate control method. This property can be updated only in NULL or READY state.

type: Enum "GstOMXVideoEncControlRate" access: read/write default: -1, "default" possible values: (0): disable - Disable (1): variable - Variable (2): constant - Constant (3): variable-skip-frames - Variable Skip Frames (4): constant-skip-frames - Constant Skip Frames (-1): default - Component Default

target-bitrate

Target bitrate in bits per second. This property can be updated in all states.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

quant-i-frames

Quantization parameter for I-frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

quant-p-frames

Quantization parameter for P-frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

quant-b-frames

Quantization parameter for B-frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

periodicity-idr

Periodicity of IDR frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

interval-intraframes

Interval of coding Intra frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

b-frames

Number of B-frames between two consecutive I-frames. This property can be updated only in NULL or READY state.

type: Unsigned Integer access: read/write default: 4294967295 range: 0 - 4294967295

entropy-mode

Entropy mode for encoding process. This property can be updated only in NULL or READY state.

type: Enum "GstOMXH264EncEntropyMode" access: read/write default: -1, "default" possible values: (0): CAVLC - CAVLC entropy mode (1): CABAC - CABAC entropy mode (-1): default - Component Default

constrained-intra-prediction

If enabled, prediction only uses residual data and decoded samples from neighboring coding blocks coded using intra prediction modes. This property can be updated only in NULL or READY state.

type: Boolean access: read/write default: false

loop-filter-mode

Enable or disable the deblocking filter . This property can be updated only in NULL or READY state.

type: Enum "GstOMXH264EncLoopFilter" access: read/write default: -1, "default" possible values: (0): enable - Enable deblocking filter (1): disable - Disable deblocking filter (2): disable-slice-boundary - Disables deblocking filter on slice boundary (-1): default - Component Default