rpicamsrc: flesh out docs and add to plugin docs cache
authorTim-Philipp Müller <tim@centricular.com>
Thu, 9 Jul 2020 19:08:34 +0000 (19:08 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 10 Jul 2020 16:37:28 +0000 (17:37 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>

docs/gst_plugins_cache.json
docs/meson.build
sys/rpicamsrc/gstrpicamsrc.c

index cf09196..f5388f5 100644 (file)
         "tracers": {},
         "url": "Unknown package origin"
     },
+    "rpicamsrc": {
+        "description": "Raspberry Pi Camera Source",
+        "elements": {
+            "rpicamsrc": {
+                "author": "Jan Schmidt <jan@centricular.com>",
+                "description": "Raspberry Pi camera module source",
+                "hierarchy": [
+                    "GstRpiCamSrc",
+                    "GstPushSrc",
+                    "GstBaseSrc",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "interfaces": [
+                    "GstColorBalance",
+                    "GstVideoDirection",
+                    "GstVideoOrientation"
+                ],
+                "klass": "Source/Video",
+                "long-name": "Raspberry Pi Camera Source",
+                "pad-templates": {
+                    "src": {
+                        "caps": "video/x-h264:\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n  stream-format: byte-stream\n      alignment: nal\n        profile: { (string)constrained-baseline, (string)baseline, (string)main, (string)high }\nimage/jpeg:\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n         format: { I420, RGB, BGR, RGBA }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "annotation-mode": {
+                        "blurb": "Flags to control annotation of the output video",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "(none)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcAnnotationMode",
+                        "writable": true
+                    },
+                    "annotation-text": {
+                        "blurb": "Text string to annotate onto video when annotation-mode flags include 'custom-text'",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gchararray",
+                        "writable": true
+                    },
+                    "annotation-text-bg-colour": {
+                        "blurb": "Set the annotation text background colour, as the integer corresponding to a VUY value eg 0x8080FF = 8421631, -1 for default",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "annotation-text-colour": {
+                        "blurb": "Set the annotation text colour, as the integer corresponding to a VUY value eg 0x8080FF = 8421631, -1 for default",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "annotation-text-size": {
+                        "blurb": "Set the size of annotation text (in pixels) (0 = Auto)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "awb-gain-blue": {
+                        "blurb": "Manual AWB Gain for blue channel when awb-mode=off",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "8",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "awb-gain-red": {
+                        "blurb": "Manual AWB Gain for red channel when awb-mode=off",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "8",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "awb-mode": {
+                        "blurb": "White Balance mode",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto (1)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcAWBMode",
+                        "writable": true
+                    },
+                    "bitrate": {
+                        "blurb": "Bitrate for encoding. 0 for VBR using quantisation-parameter",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "17000000",
+                        "max": "25000000",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "brightness": {
+                        "blurb": "Image capture brightness",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "50",
+                        "max": "100",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "camera-number": {
+                        "blurb": "Which camera to use on a multi-camera system - 0 or 1",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "contrast": {
+                        "blurb": "Image capture contrast",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "100",
+                        "min": "-100",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "drc": {
+                        "blurb": "Dynamic Range Control level",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "off (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcDRCLevel",
+                        "writable": true
+                    },
+                    "exposure-compensation": {
+                        "blurb": "Exposure Value compensation",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "10",
+                        "min": "-10",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "exposure-mode": {
+                        "blurb": "Camera exposure mode to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto (1)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcExposureMode",
+                        "writable": true
+                    },
+                    "fullscreen": {
+                        "blurb": "Display preview window full screen",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "hflip": {
+                        "blurb": "Flip capture horizontally",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "image-effect": {
+                        "blurb": "Visual FX to apply to the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "none (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcImageEffect",
+                        "writable": true
+                    },
+                    "inline-headers": {
+                        "blurb": "Set to TRUE to insert SPS/PPS before each IDR packet",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "intra-refresh-type": {
+                        "blurb": "Type of Intra Refresh to use, -1 to disable intra refresh",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "none (-1)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcIntraRefreshType",
+                        "writable": true
+                    },
+                    "iso": {
+                        "blurb": "ISO value to use (0 = Auto)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "3200",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "keyframe-interval": {
+                        "blurb": "Interval (in frames) between I frames. -1 = automatic, 0 = single-keyframe",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "metering-mode": {
+                        "blurb": "Camera exposure metering mode to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "average (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcExposureMeteringMode",
+                        "writable": true
+                    },
+                    "preview": {
+                        "blurb": "Display preview window overlay",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "preview-encoded": {
+                        "blurb": "Display encoder output in the preview",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "preview-h": {
+                        "blurb": "Height of the preview window (in pixels)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "768",
+                        "max": "2048",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "preview-opacity": {
+                        "blurb": "Opacity to use for the preview window",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "255",
+                        "max": "255",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "preview-w": {
+                        "blurb": "Width of the preview window (in pixels)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "1024",
+                        "max": "2048",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "preview-x": {
+                        "blurb": "Start X coordinate of the preview window (in pixels)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "2048",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "preview-y": {
+                        "blurb": "Start Y coordinate of the preview window (in pixels)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "2048",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "quantisation-parameter": {
+                        "blurb": "Set a Quantisation Parameter approx 10-40 with bitrate=0 for VBR encoding. 0 = off",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "roi-h": {
+                        "blurb": "Normalised region-of-interest H coord",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "1",
+                        "max": "1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "roi-w": {
+                        "blurb": "Normalised region-of-interest W coord",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "1",
+                        "max": "1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "roi-x": {
+                        "blurb": "Normalised region-of-interest X coord",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "roi-y": {
+                        "blurb": "Normalised region-of-interest Y coord",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gfloat",
+                        "writable": true
+                    },
+                    "rotation": {
+                        "blurb": "Rotate captured image (0, 90, 180, 270 degrees)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "270",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "saturation": {
+                        "blurb": "Image capture saturation",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "100",
+                        "min": "-100",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "sensor-mode": {
+                        "blurb": "Manually set the camera sensor mode",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "automatic (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstRpiCamSrcSensorMode",
+                        "writable": true
+                    },
+                    "sharpness": {
+                        "blurb": "Image capture sharpness",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "100",
+                        "min": "-100",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "shutter-speed": {
+                        "blurb": "Set a fixed shutter speed, in microseconds. (0 = Auto)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "6000000",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "use-stc": {
+                        "blurb": "Use the camera STC for timestamping buffers",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "vflip": {
+                        "blurb": "Flip capture vertically",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "video-stabilisation": {
+                        "blurb": "Enable or disable video stabilisation",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    }
+                },
+                "rank": "none"
+            }
+        },
+        "filename": "gstrpicamsrc",
+        "license": "LGPL",
+        "other-types": {
+            "GstRpiCamSrcAWBMode": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_OFF",
+                        "name": "off",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_AUTO",
+                        "name": "auto",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_SUNLIGHT",
+                        "name": "sunlight",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_CLOUDY",
+                        "name": "cloudy",
+                        "value": "3"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_SHADE",
+                        "name": "shade",
+                        "value": "4"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_TUNGSTEN",
+                        "name": "tungsten",
+                        "value": "5"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_FLUORESCENT",
+                        "name": "fluorescent",
+                        "value": "6"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_INCANDESCENT",
+                        "name": "incandescent",
+                        "value": "7"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_FLASH",
+                        "name": "flash",
+                        "value": "8"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_AWB_MODE_HORIZON",
+                        "name": "horizon",
+                        "value": "9"
+                    }
+                ]
+            },
+            "GstRpiCamSrcAnnotationMode": {
+                "kind": "flags",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_CUSTOM_TEXT",
+                        "name": "custom-text",
+                        "value": "0x00000001"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_TEXT",
+                        "name": "text",
+                        "value": "0x00000002"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_DATE",
+                        "name": "date",
+                        "value": "0x00000004"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_TIME",
+                        "name": "time",
+                        "value": "0x00000008"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_SHUTTER_SETTINGS",
+                        "name": "shutter-settings",
+                        "value": "0x00000010"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_CAF_SETTINGS",
+                        "name": "caf-settings",
+                        "value": "0x00000020"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_GAIN_SETTINGS",
+                        "name": "gain-settings",
+                        "value": "0x00000040"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_LENS_SETTINGS",
+                        "name": "lens-settings",
+                        "value": "0x00000080"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_MOTION_SETTINGS",
+                        "name": "motion-settings",
+                        "value": "0x00000100"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_FRAME_NUMBER",
+                        "name": "frame-number",
+                        "value": "0x00000200"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_ANNOTATION_MODE_BLACK_BACKGROUND",
+                        "name": "black-background",
+                        "value": "0x00000400"
+                    }
+                ]
+            },
+            "GstRpiCamSrcDRCLevel": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_DRC_LEVEL_OFF",
+                        "name": "off",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_DRC_LEVEL_LOW",
+                        "name": "low",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_DRC_LEVEL_MEDIUM",
+                        "name": "medium",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_DRC_LEVEL_HIGH",
+                        "name": "high",
+                        "value": "3"
+                    }
+                ]
+            },
+            "GstRpiCamSrcExposureMeteringMode": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_METERING_MODE_AVERAGE",
+                        "name": "average",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_METERING_MODE_SPOT",
+                        "name": "spot",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_METERING_MODE_BACKLIST",
+                        "name": "backlist",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_METERING_MODE_MATRIX",
+                        "name": "matrix",
+                        "value": "3"
+                    }
+                ]
+            },
+            "GstRpiCamSrcExposureMode": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_OFF",
+                        "name": "off",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_AUTO",
+                        "name": "auto",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_NIGHT",
+                        "name": "night",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_NIGHTPREVIEW",
+                        "name": "nightpreview",
+                        "value": "3"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_BACKLIGHT",
+                        "name": "backlight",
+                        "value": "4"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_SPOTLIGHT",
+                        "name": "spotlight",
+                        "value": "5"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_SPORTS",
+                        "name": "sports",
+                        "value": "6"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_SNOW",
+                        "name": "snow",
+                        "value": "7"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_BEACH",
+                        "name": "beach",
+                        "value": "8"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_VERYLONG",
+                        "name": "verylong",
+                        "value": "9"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_FIXEDFPS",
+                        "name": "fixedfps",
+                        "value": "10"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_ANTISHAKE",
+                        "name": "antishake",
+                        "value": "11"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_EXPOSURE_MODE_FIREWORKS",
+                        "name": "fireworks",
+                        "value": "12"
+                    }
+                ]
+            },
+            "GstRpiCamSrcImageEffect": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_NONE",
+                        "name": "none",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_NEGATIVE",
+                        "name": "negative",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_SOLARIZE",
+                        "name": "solarize",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_POSTERIZE",
+                        "name": "posterize",
+                        "value": "3"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_WHITEBOARD",
+                        "name": "whiteboard",
+                        "value": "4"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_BLACKBOARD",
+                        "name": "blackboard",
+                        "value": "5"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_SKETCH",
+                        "name": "sketch",
+                        "value": "6"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_DENOISE",
+                        "name": "denoise",
+                        "value": "7"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_EMBOSS",
+                        "name": "emboss",
+                        "value": "8"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_OILPAINT",
+                        "name": "oilpaint",
+                        "value": "9"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_HATCH",
+                        "name": "hatch",
+                        "value": "10"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_GPEN",
+                        "name": "gpen",
+                        "value": "11"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_PASTEL",
+                        "name": "pastel",
+                        "value": "12"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_WATERCOLOUR",
+                        "name": "watercolour",
+                        "value": "13"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_FILM",
+                        "name": "film",
+                        "value": "14"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_BLUR",
+                        "name": "blur",
+                        "value": "15"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_SATURATION",
+                        "name": "saturation",
+                        "value": "16"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_COLOURSWAP",
+                        "name": "colourswap",
+                        "value": "17"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_WASHEDOUT",
+                        "name": "washedout",
+                        "value": "18"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_POSTERISE",
+                        "name": "posterise",
+                        "value": "19"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_COLOURPOINT",
+                        "name": "colourpoint",
+                        "value": "20"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_COLOURBALANCE",
+                        "name": "colourbalance",
+                        "value": "21"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_IMAGEFX_CARTOON",
+                        "name": "cartoon",
+                        "value": "22"
+                    }
+                ]
+            },
+            "GstRpiCamSrcIntraRefreshType": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "GST_RPI_CAM_SRC_INTRA_REFRESH_TYPE_NONE",
+                        "name": "none",
+                        "value": "-1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_INTRA_REFRESH_TYPE_CYCLIC",
+                        "name": "cyclic",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_INTRA_REFRESH_TYPE_ADAPTIVE",
+                        "name": "adaptive",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_INTRA_REFRESH_TYPE_BOTH",
+                        "name": "both",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "GST_RPI_CAM_SRC_INTRA_REFRESH_TYPE_CYCLIC_ROWS",
+                        "name": "cyclic-rows",
+                        "value": "2130706433"
+                    }
+                ]
+            },
+            "GstRpiCamSrcSensorMode": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "Automatic",
+                        "name": "automatic",
+                        "value": "0"
+                    },
+                    {
+                        "desc": "1920x1080 16:9 1-30fps",
+                        "name": "1920x1080",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "2592x1944 4:3 1-15fps / 3240x2464 15fps w/ v.2 board",
+                        "name": "2592x1944-fast",
+                        "value": "2"
+                    },
+                    {
+                        "desc": "2592x1944 4:3 0.1666-1fps / 3240x2464 15fps w/ v.2 board",
+                        "name": "2592x1944-slow",
+                        "value": "3"
+                    },
+                    {
+                        "desc": "1296x972 4:3 1-42fps",
+                        "name": "1296x972",
+                        "value": "4"
+                    },
+                    {
+                        "desc": "1296x730 16:9 1-49fps",
+                        "name": "1296x730",
+                        "value": "5"
+                    },
+                    {
+                        "desc": "640x480 4:3 42.1-60fps",
+                        "name": "640x480-slow",
+                        "value": "6"
+                    },
+                    {
+                        "desc": "640x480 4:3 60.1-90fps",
+                        "name": "640x480-fast",
+                        "value": "7"
+                    }
+                ]
+            }
+        },
+        "package": "GStreamer Good Plug-ins",
+        "source": "gst-plugins-good",
+        "tracers": {},
+        "url": "Unknown package origin"
+    },
     "rtp": {
         "description": "Real-time protocol plugins",
         "elements": {
index 0e6915e..bdfcc4a 100644 (file)
@@ -74,6 +74,8 @@ foreach f: ['gstgdkpixbufplugin.c']
     excludes += [join_paths(meson.current_source_dir(), '..', 'ext/gdk_pixbuf/', f)]
 endforeach
 
+excludes += [join_paths(meson.current_source_dir(), '..', 'sys', 'rpicamsrc', 'Raspi*.[ch]')]
+
 list_plugin_res = run_command(python3, '-c',
 '''
 import sys
index 7c20be2..ffe175f 100644 (file)
 
 /**
  * SECTION:element-rpicamsrc
+ * @title: rpicamsrc
+ * @short_description: Raspberry Pi Camera Source
  *
- * Source element for capturing from the Raspberry Pi camera module
+ * Source element for capturing video from the Raspberry Pi camera module.
+ *
+ * This element works the same way that the `raspivid` command-line utility
+ * does and has a similar feature set.
+ *
+ * The element can output video in form of raw video frames or encoded as
+ * (M)JPEG or H.264 video. You can use the element properties to fine-tune
+ * the capture, image processing and encoding parameters.
+ *
+ * ## Example pipelines
+ * |[
+ * gst-launch-1.0 -v rpicamsrc preview=true ! fakesink
+ * ]|
+ * should show a preview window on the screen.
+ *
+ * |[
+ * gst-launch-1.0 -e rpicamsrc bitrate=1000000 ! h264parse ! matroskamux ! filesink location=test.mkv
+ * ]|
+ * should produce a file called test.mkv containing an H.264 video stream. We
+ * pass -e to gst-launch-1.0 so that the pipeline is finalised properly when
+ * interrupted with Control-C. This makes sure the Matroska file headers are
+ * updated when streaming ends.
  *
- * <refsect2>
- * <title>Example launch line</title>
  * |[
- * gst-launch -v -m rpicamsrc ! fakesink
+ * gst-launch-1.0 -e rpicamsrc bitrate=5000000 num-buffers=500 keyframe-interval=30 ! h264parse ! splitmuxsink location=video%02d.mov max-size-time=10000000000 max-size-bytes=1000000
  * ]|
- * </refsect2>
+ * Records a video stream captured from the Raspberry Pi camera module and
+ * muxes it into ISO mp4 files, splitting as needed to limit size/duration to
+ * 10 seconds and 1MB maximum size.
+ *
+ * gst-launch-1.0 -e rpicamsrc ! image/jpeg,framerate=1/1 ! multifilesink location=image-%05d.jpg
+ * ]|
+ * Captures a stream of JPEG images from the Raspberry Pi camera module at
+ * a rate of 1 frame per second and writes each frame into a new file in the
+ * current directory, starting with image-00000.jpg, then image-00001.jpg etc.
+ *
+ * Since: 1.18
  */
 
 #ifdef HAVE_CONFIG_H
@@ -235,6 +266,7 @@ G_DEFINE_TYPE_WITH_CODE (GstRpiCamSrc, gst_rpi_cam_src,
 
 #define C_ENUM(v) ((gint) v)
 
+#define GST_RPI_CAM_SRC_TYPE_SENSOR_MODE gst_rpi_cam_src_sensor_mode_get_type()
 static GType gst_rpi_cam_src_sensor_mode_get_type (void);
 
 static GType
@@ -503,6 +535,16 @@ gst_rpi_cam_src_class_init (GstRpiCamSrcClass * klass)
   gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_rpi_cam_src_send_event);
   pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_rpi_cam_src_create);
   raspicapture_init ();
+
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_SENSOR_MODE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_EXPOSURE_MODE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_EXPOSURE_METERING_MODE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_AWB_MODE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_IMAGE_EFFECT, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_FLICKER_AVOIDANCE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_DRC_LEVEL, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_ANNOTATION_MODE, 0);
+  gst_type_mark_as_plugin_api (GST_RPI_CAM_SRC_TYPE_INTRA_REFRESH_TYPE, 0);
 }
 
 static void
@@ -1461,6 +1503,11 @@ gst_rpi_cam_src_create (GstPushSrc * parent, GstBuffer ** buf)
   return ret;
 }
 
+/**
+ * plugin-rpicamsrc:
+ *
+ * Since: 1.18
+ */
 static gboolean
 plugin_init (GstPlugin * plugin)
 {