doc: Update nvdec documentation
authorThibault Saunier <tsaunier@igalia.com>
Thu, 4 Nov 2021 19:06:22 +0000 (19:06 +0000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 5 Nov 2021 13:26:33 +0000 (13:26 +0000)
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/870

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1309>

subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json
subprojects/gst-plugins-bad/sys/nvcodec/gstcudabasefilter.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudabasetransform.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudaconvert.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudadownload.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudascale.c
subprojects/gst-plugins-bad/sys/nvcodec/gstcudaupload.c
subprojects/gst-plugins-bad/sys/nvcodec/gstnvdec.c

index 8e5adb3..cc3269a 100644 (file)
     "nvcodec": {
         "description": "GStreamer NVCODEC plugin",
         "elements": {
+            "cudaconvert": {
+                "author": "Seungha Yang <seungha.yang@navercorp.com>",
+                "description": "Converts video from one colorspace to another using CUDA",
+                "hierarchy": [
+                    "GstCudaConvert",
+                    "GstCudaBaseFilter",
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Converter/Video/Hardware",
+                "long-name": "CUDA Colorspace converter",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\n         format: { I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\n         format: { I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "none"
+            },
+            "cudadownload": {
+                "author": "Seungha Yang <seungha.yang@navercorp.com>",
+                "description": "Downloads data from NVIDA GPU via CUDA APIs",
+                "hierarchy": [
+                    "GstCudaDownload",
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Video",
+                "long-name": "CUDA downloader",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\nvideo/x-raw:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "none"
+            },
+            "cudascale": {
+                "author": "Seungha Yang <seungha.yang@navercorp.com>",
+                "description": "Resizes Video using CUDA",
+                "hierarchy": [
+                    "GstCudaScale",
+                    "GstCudaBaseFilter",
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Converter/Video/Scaler/Hardware",
+                "long-name": "CUDA Video scaler",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\n         format: { I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\n         format: { I420, YV12, NV12, NV21, P010_10LE, P016_LE, I420_10LE, Y444, Y444_16LE, BGRA, RGBA, RGBx, BGRx, ARGB, ABGR, RGB, BGR, BGR10A2_LE, RGB10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "none"
+            },
+            "cudaupload": {
+                "author": "Seungha Yang <seungha.yang@navercorp.com>",
+                "description": "Uploads data into NVIDA GPU via CUDA APIs",
+                "hierarchy": [
+                    "GstCudaUpload",
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Video",
+                "long-name": "CUDA uploader",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-raw:\n\nvideo/x-raw(memory:CUDAMemory):\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw(memory:CUDAMemory):\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "none"
+            },
             "nvh264dec": {
                 "author": "Ericsson AB, http://www.ericsson.com, Seungha Yang <seungha.yang@navercorp.com>",
                 "description": "NVDEC video decoder",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 "long-name": "NVENC H.264 Video Encoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-raw:\n         format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }\n          width: [ 145, 4096 ]\n         height: [ 49, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: { (string)progressive }\n\nvideo/x-raw(memory:GLMemory):\n         format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }\n          width: [ 145, 4096 ]\n         height: [ 49, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: { (string)progressive }\n",
+                        "caps": "video/x-raw:\n         format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }\n          width: [ 145, 4096 ]\n         height: [ 49, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: { (string)progressive }\n\nvideo/x-raw(memory:GLMemory):\n         format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }\n          width: [ 145, 4096 ]\n         height: [ 49, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: { (string)progressive }\n\nvideo/x-raw(memory:CUDAMemory):\n         format: { NV12, YV12, I420, BGRA, RGBA, Y444, VUYA }\n          width: [ 145, 4096 ]\n         height: [ 49, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: { (string)progressive }\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n",
+                        "caps": "video/x-raw:\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 "long-name": "NVENC HEVC Video Encoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-raw:\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory):\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "caps": "video/x-raw:\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory):\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:CUDAMemory):\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n",
+                        "caps": "video/x-raw:\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 144, 8192 ]\n         height: [ 144, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE, Y444, Y444_16LE, Y444_16LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 64, 32768 ]\n         height: [ 64, 16384 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 64, 32768 ]\n         height: [ 64, 16384 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 64, 32768 ]\n         height: [ 64, 16384 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 64, 32768 ]\n         height: [ 64, 16384 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 64, 32768 ]\n         height: [ 64, 16384 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 2032 ]\n         height: [ 16, 2032 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 2032 ]\n         height: [ 16, 2032 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 2032 ]\n         height: [ 16, 2032 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 2032 ]\n         height: [ 16, 2032 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 2032 ]\n         height: [ 16, 2032 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4080 ]\n         height: [ 16, 4080 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "rank": "primary"
             },
+            "nvvp8sldec": {
+                "author": "Seungha Yang <seungha@centricular.com>",
+                "description": "NVIDIA VP8 video decoder",
+                "hierarchy": [
+                    "GstNvVP8StatelessDec",
+                    "GstNvVp8Dec",
+                    "GstVp8Decoder",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video/Hardware",
+                "long-name": "NVDEC VP8 Stateless Decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-vp8:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 48, 4096 ]\n         height: [ 16, 4096 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12 }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "secondary"
+            },
             "nvvp9dec": {
                 "author": "Ericsson AB, http://www.ericsson.com, Seungha Yang <seungha.yang@navercorp.com>",
                 "description": "NVDEC video decoder",
                 "long-name": "NVDEC vp9 Video Decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-vp9:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n",
+                        "caps": "video/x-vp9:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n        profile: { (string)0, (string)2 }\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n",
+                        "caps": "video/x-raw:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "rank": "primary"
+            },
+            "nvvp9sldec": {
+                "author": "Seungha Yang <seungha@centricular.com>",
+                "description": "NVIDIA VP9 video decoder",
+                "hierarchy": [
+                    "GstNvVP9StatelessDec",
+                    "GstNvVp9Dec",
+                    "GstVp9Decoder",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video/Hardware",
+                "long-name": "NVDEC VP9 Stateless Decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-vp9:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n        profile: { (string)0, (string)2 }\n      alignment: frame\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n\nvideo/x-raw(memory:GLMemory):\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n\nvideo/x-raw(memory:CUDAMemory):\n          width: [ 128, 8192 ]\n         height: [ 128, 8192 ]\n      framerate: [ 0/1, 2147483647/1 ]\n         format: { NV12, P010_10LE, P016_LE }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "rank": "secondary"
             }
         },
         "filename": "gstnvcodec",
         "license": "LGPL",
         "other-types": {
+            "GstCudaBaseFilter": {
+                "hierarchy": [
+                    "GstCudaBaseFilter",
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "kind": "object"
+            },
+            "GstCudaBaseTransform": {
+                "hierarchy": [
+                    "GstCudaBaseTransform",
+                    "GstBaseTransform",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "kind": "object",
+                "properties": {
+                    "cuda-device-id": {
+                        "blurb": "Set the GPU device to use for operations (-1 = auto)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "mutable": "ready",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    }
+                }
+            },
             "GstNvBaseEnc": {
                 "hierarchy": [
                     "GstNvBaseEnc",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "kind": "object"
+                "kind": "object",
+                "properties": {
+                    "max-display-delay": {
+                        "blurb": "Improves pipelining of decode with display, 0 means no delay (auto = -1)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    }
+                }
             },
             "GstNvDevice0H264Enc": {
                 "hierarchy": [
                         "value": "7"
                     }
                 ]
+            },
+            "GstNvVp8Dec": {
+                "hierarchy": [
+                    "GstNvVp8Dec",
+                    "GstVp8Decoder",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "kind": "object"
+            },
+            "GstNvVp9Dec": {
+                "hierarchy": [
+                    "GstNvVp9Dec",
+                    "GstVp9Decoder",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "kind": "object"
             }
         },
         "package": "GStreamer Bad Plug-ins",
index e9bff46..b12ad35 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+/**
+ * GstCudaBaseFilter:
+ *
+ * Base class for CUDA filters
+ *
+ * Since: 1.20
+ */
+
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
index a1923c3..17750c4 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+/**
+ * GstCudaBaseTransform:
+ *
+ * Base class for CUDA transformers
+ *
+ * Since: 1.20
+ */
+
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
index 03c7837..6b857de 100644 (file)
@@ -34,6 +34,7 @@
  * cudaconvert will automatically convert the video to a format understood
  * by the video sink.
  *
+ * Since: 1.20
  */
 
 #ifdef HAVE_CONFIG_H
@@ -245,6 +246,8 @@ gst_cuda_convert_class_init (GstCudaConvertClass * klass)
 
   GST_DEBUG_CATEGORY_INIT (gst_cuda_convert_debug,
       "cudaconvert", 0, "Video ColorSpace convert using CUDA");
+
+  gst_type_mark_as_plugin_api (GST_TYPE_CUDA_BASE_FILTER, 0);
 }
 
 static void
index 32a1580..4b0b867 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+/**
+ * element-cudadownload:
+ *
+ * Downloads data from NVIDA GPU via CUDA APIs
+ *
+ * Since: 1.20
+ */
+
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
index dd4687f..6291488 100644 (file)
@@ -43,6 +43,7 @@
  * ]|
  *  Decode an mp4/h264 and display the video with a width of 100.
  *
+ * Since: 1.20
  */
 
 #ifdef HAVE_CONFIG_H
index 34c9f24..8d2c653 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+/**
+ * element-cudaupload:
+ *
+ * Uploads data to NVIDA GPU via CUDA APIs
+ *
+ * Since: 1.20
+ */
+
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
@@ -64,6 +72,7 @@ gst_cuda_upload_class_init (GstCudaUploadClass * klass)
   trans_class->transform_caps =
       GST_DEBUG_FUNCPTR (gst_cuda_upload_transform_caps);
 
+  gst_type_mark_as_plugin_api (GST_TYPE_CUDA_BASE_TRANSFORM, 0);
   GST_DEBUG_CATEGORY_INIT (gst_cuda_upload_debug,
       "cudaupload", 0, "cudaupload Element");
 }
index cdb0169..450528b 100644 (file)
@@ -234,6 +234,11 @@ gst_nvdec_class_init (GstNvDecClass * klass)
   element_class->set_context = GST_DEBUG_FUNCPTR (gst_nvdec_set_context);
   gst_type_mark_as_plugin_api (GST_TYPE_NVDEC, 0);
 
+  /**
+   * GstNvDec:max-display-delay:
+   *
+   * Since: 1.20
+   */
   g_object_class_install_property (gobject_class, PROP_MAX_DISPLAY_DELAY,
       g_param_spec_int ("max-display-delay", "Max Display Delay",
           "Improves pipelining of decode with display, 0 means no delay "