docs: Add nvcomp plugin docs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
This commit is contained in:
Seungha Yang 2025-01-20 02:55:03 +09:00 committed by GStreamer Marge Bot
parent 03942ff5b4
commit 06afe8aa8f
3 changed files with 307 additions and 0 deletions

View file

@ -235016,6 +235016,299 @@
"tracers": {},
"url": "Unknown package origin"
},
"nvcomp": {
"description": "GStreamer nvCOMP plugin",
"elements": {
"nvcompvideodec": {
"author": "Seungha Yang <seungha@centricular.com>",
"description": "Decompress a video stream using nvCOMP library",
"hierarchy": [
"GstNvCompVideoDec",
"GstVideoDecoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Decoder/Video/Hardware",
"pad-templates": {
"sink": {
"caps": "video/x-nvcomp:\nvideo/x-nvcomp-lz4:\nvideo/x-nvcomp-snappy:\nvideo/x-nvcomp-gdeflate:\nvideo/x-nvcomp-deflate:\nvideo/x-nvcomp-zstd:\nvideo/x-nvcomp-cascaded:\nvideo/x-nvcomp-bitcomp:\nvideo/x-nvcomp-ans:\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "video/x-raw(memory:CUDAMemory):\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory):\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "src",
"presence": "always"
}
},
"rank": "none"
},
"nvcompvideoenc": {
"author": "Seungha Yang <seungha@centricular.com>",
"description": "Lossless video compression element based on nvCOMP library",
"hierarchy": [
"GstNvCompVideoEnc",
"GstVideoEncoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"interfaces": [
"GstPreset"
],
"klass": "Encoder/Video/Hardware",
"pad-templates": {
"sink": {
"caps": "video/x-raw(memory:CUDAMemory):\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory):\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "video/x-nvcomp:\nvideo/x-nvcomp-lz4:\nvideo/x-nvcomp-snappy:\nvideo/x-nvcomp-gdeflate:\nvideo/x-nvcomp-deflate:\nvideo/x-nvcomp-zstd:\nvideo/x-nvcomp-cascaded:\nvideo/x-nvcomp-bitcomp:\nvideo/x-nvcomp-ans:\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"async-depth": {
"blurb": "Internal resource pool size for threaded encoding",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "2",
"max": "4",
"min": "1",
"mutable": "ready",
"readable": true,
"type": "guint",
"writable": true
},
"batched": {
"blurb": "Use low-level C API for batched operation",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "true",
"mutable": "ready",
"readable": true,
"type": "gboolean",
"writable": true
},
"bitcomp-algo": {
"blurb": "Algorithm to use for bitcomp method",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "sparse (1)",
"mutable": "null",
"readable": true,
"type": "GstNvCompBitcompAlgo",
"writable": true
},
"chunk-size": {
"blurb": "Uncompressed chunk size for batched compression (0 = default)",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "0",
"max": "2147483647",
"min": "0",
"mutable": "ready",
"readable": true,
"type": "guint",
"writable": true
},
"data-type": {
"blurb": "Compression data type",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "default (-1)",
"mutable": "null",
"readable": true,
"type": "GstNvCompDataType",
"writable": true
},
"deflate-algo": {
"blurb": "Algorithm to use for deflate and gdeflate methods",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "high-throughput (0)",
"mutable": "null",
"readable": true,
"type": "GstNvCompDeflateAlgo",
"writable": true
},
"method": {
"blurb": "Compression method",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "bitcomp (6)",
"mutable": "null",
"readable": true,
"type": "GstNvCompMethod",
"writable": true
}
},
"rank": "none"
}
},
"filename": "gstnvcomp",
"license": "LGPL",
"other-types": {
"GstNvCompBitcompAlgo": {
"kind": "enum",
"values": [
{
"desc": "Default",
"name": "default",
"value": "0"
},
{
"desc": "Sparse",
"name": "sparse",
"value": "1"
}
]
},
"GstNvCompDataType": {
"kind": "enum",
"values": [
{
"desc": "Default",
"name": "default",
"value": "-1"
},
{
"desc": "CHAR",
"name": "char",
"value": "0"
},
{
"desc": "UCHAR",
"name": "uchar",
"value": "1"
},
{
"desc": "SHORT",
"name": "short",
"value": "2"
},
{
"desc": "USHORT",
"name": "ushort",
"value": "3"
},
{
"desc": "INT",
"name": "int",
"value": "4"
},
{
"desc": "UINT",
"name": "uint",
"value": "5"
},
{
"desc": "LONGLONG",
"name": "longlong",
"value": "6"
},
{
"desc": "ULONGLONG",
"name": "ulonglong",
"value": "7"
},
{
"desc": "BITS",
"name": "bits",
"value": "255"
}
]
},
"GstNvCompDeflateAlgo": {
"kind": "enum",
"values": [
{
"desc": "High throughput, low compression ratio",
"name": "high-throughput",
"value": "0"
},
{
"desc": "Low throughput, high compression ratio",
"name": "low-throughput",
"value": "1"
},
{
"desc": "Highest throughput, entropy-only compression",
"name": "highest-throughput",
"value": "2"
}
]
},
"GstNvCompMethod": {
"kind": "enum",
"values": [
{
"desc": "LZ4",
"name": "lz4",
"value": "0"
},
{
"desc": "SNAPPY",
"name": "snappy",
"value": "1"
},
{
"desc": "GDEFLATE",
"name": "gdeflate",
"value": "2"
},
{
"desc": "DEFLATE",
"name": "deflate",
"value": "3"
},
{
"desc": "ZSTD",
"name": "zstd",
"value": "4"
},
{
"desc": "CASCADED",
"name": "cascaded",
"value": "5"
},
{
"desc": "BITCOMP",
"name": "bitcomp",
"value": "6"
},
{
"desc": "ANS",
"name": "ans",
"value": "7"
}
]
}
},
"package": "GStreamer Bad Plug-ins",
"source": "gst-plugins-bad",
"tracers": {},
"url": "Unknown package origin"
},
"openal": {
"description": "OpenAL plugin library",
"elements": {

View file

@ -481,6 +481,14 @@ gst_nv_comp_video_enc_class_init (GstNvCompVideoEncClass * klass)
encoder_class->handle_frame =
GST_DEBUG_FUNCPTR (gst_nv_comp_video_enc_handle_frame);
gst_type_mark_as_plugin_api (GST_TYPE_NV_COMP_METHOD, (GstPluginAPIFlags) 0);
gst_type_mark_as_plugin_api (GST_TYPE_NV_COMP_DEFLATE_ALGO,
(GstPluginAPIFlags) 0);
gst_type_mark_as_plugin_api (GST_TYPE_NV_COMP_BITCOMP_ALGO,
(GstPluginAPIFlags) 0);
gst_type_mark_as_plugin_api (GST_TYPE_NV_COMP_DATA_TYPE,
(GstPluginAPIFlags) 0);
GST_DEBUG_CATEGORY_INIT (gst_nv_comp_video_enc_debug,
"nvcompvideoenc", 0, "nvcompvideoenc");
}

View file

@ -17,6 +17,12 @@
* Boston, MA 02110-1301, USA.
*/
/**
* plugin-nvcomp:
*
* Since: 1.26
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif