doc: Stop documenting properties from parents
authorThibault Saunier <tsaunier@igalia.com>
Sat, 20 Jun 2020 02:59:39 +0000 (22:59 -0400)
committerThibault Saunier <tsaunier@igalia.com>
Mon, 22 Jun 2020 15:07:06 +0000 (11:07 -0400)
docs/gst_plugins_cache.json

index 167bc56..4d2d631 100644 (file)
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_8svx_fib": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_aac": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "primary"
             },
             "avdec_aac_fixed": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "primary"
             },
             "avdec_aac_latm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_aasc": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_ac3_fixed": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_4xm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_adx": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_afc": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_agm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_aica": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ct": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_adpcm_dtk": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav adpcm_dtk decoder",
-                "hierarchy": [
-                    "avdec_adpcm_dtk",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ADPCM Nintendo Gamecube DTK decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_adpcm_dtk": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav adpcm_dtk decoder",
+                "hierarchy": [
+                    "avdec_adpcm_dtk",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ADPCM Nintendo Gamecube DTK decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
                     "src": {
                         "caps": "audio/x-raw:\n         format: S16LE\n         layout: non-interleaved\n",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea_maxis_xa": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea_r1": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea_r2": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea_r3": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ea_xas": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_amv": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_apc": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_dat4": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_dk3": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_dk4": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_ea_eacs": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_ea_sead": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_iss": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_oki": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_qt": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_rad": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_smjpeg": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_wav": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ima_ws": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_ms": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_mtaf": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_psx": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_sbpro_2": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_sbpro_3": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_sbpro_4": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_swf": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_thp": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_thp_le": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_vima": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_xa": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_adpcm_yamaha": {
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ADPCM Yamaha decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-adpcm:\n         layout: yamaha\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_agm": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav agm decoder",
-                "hierarchy": [
-                    "avdec_agm",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Amuse Graphics Movie decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_aic": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav aic decoder",
-                "hierarchy": [
-                    "avdec_aic",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Apple Intermediate Codec decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-apple-intermediate-codec:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_alac": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav alac decoder",
-                "hierarchy": [
-                    "avdec_alac",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ALAC (Apple Lossless Audio Codec) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-alac:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_alias_pix": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav alias_pix decoder",
-                "hierarchy": [
-                    "avdec_alias_pix",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Alias/Wavefront PIX image decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_als": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav als decoder",
-                "hierarchy": [
-                    "avdec_als",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav MPEG-4 Audio Lossless Coding (ALS) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_amrnb": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav amrnb decoder",
-                "hierarchy": [
-                    "avdec_amrnb",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav AMR-NB (Adaptive Multi-Rate NarrowBand) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/AMR:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_amrwb": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav amrwb decoder",
-                "hierarchy": [
-                    "avdec_amrwb",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav AMR-WB (Adaptive Multi-Rate WideBand) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/AMR-WB:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_amv": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav amv decoder",
-                "hierarchy": [
-                    "avdec_amv",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav AMV Video decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-amv:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_anm": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav anm decoder",
-                "hierarchy": [
-                    "avdec_anm",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Deluxe Paint Animation decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_ansi": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav ansi decoder",
-                "hierarchy": [
-                    "avdec_ansi",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav ASCII/ANSI art decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_ape": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav ape decoder",
-                "hierarchy": [
-                    "avdec_ape",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Monkey's Audio decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-ffmpeg-parsed-ape:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE }\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_apng": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav apng decoder",
-                "hierarchy": [
-                    "avdec_apng",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav APNG (Animated Portable Network Graphics) image decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_aptx": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav aptx decoder",
-                "hierarchy": [
-                    "avdec_aptx",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav aptX (Audio Processing Technology for Bluetooth) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/aptx:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_aptx_hd": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav aptx_hd decoder",
-                "hierarchy": [
-                    "avdec_aptx_hd",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav aptX HD (Audio Processing Technology for Bluetooth) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/aptx-hd:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_arbc": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav arbc decoder",
-                "hierarchy": [
-                    "avdec_arbc",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Gryphon's Anim Compressor decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_asv1": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav asv1 decoder",
-                "hierarchy": [
-                    "avdec_asv1",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav ASUS V1 decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-asus:\n    asusversion: 1\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_asv2": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav asv2 decoder",
-                "hierarchy": [
-                    "avdec_asv2",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav ASUS V2 decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-asus:\n    asusversion: 2\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac1": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac1 decoder",
-                "hierarchy": [
-                    "avdec_atrac1",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC1 (Adaptive TRansform Acoustic Coding) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-vnd.sony.atrac1:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac3": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac3 decoder",
-                "hierarchy": [
-                    "avdec_atrac3",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC3 (Adaptive TRansform Acoustic Coding 3) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-vnd.sony.atrac3:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac3al": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac3al decoder",
-                "hierarchy": [
-                    "avdec_atrac3al",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac3plus": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac3plus decoder",
-                "hierarchy": [
-                    "avdec_atrac3plus",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac3plusal": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac3plusal decoder",
-                "hierarchy": [
-                    "avdec_atrac3plusal",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_atrac9": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav atrac9 decoder",
-                "hierarchy": [
-                    "avdec_atrac9",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATRAC9 (Adaptive TRansform Acoustic Coding 9) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ADPCM Yamaha decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-adpcm:\n         layout: yamaha\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
-            "avdec_aura": {
+            "avdec_agm": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav aura decoder",
+                "description": "libav agm decoder",
                 "hierarchy": [
-                    "avdec_aura",
+                    "avdec_agm",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Auravision AURA decoder",
+                "long-name": "libav Amuse Graphics Movie decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_aura2": {
+            "avdec_aic": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav aura2 decoder",
+                "description": "libav aic decoder",
                 "hierarchy": [
-                    "avdec_aura2",
+                    "avdec_aic",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Auravision Aura 2 decoder",
+                "long-name": "libav Apple Intermediate Codec decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-apple-intermediate-codec:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_avrn": {
+            "avdec_alac": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav avrn decoder",
+                "description": "libav alac decoder",
                 "hierarchy": [
-                    "avdec_avrn",
+                    "avdec_alac",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ALAC (Apple Lossless Audio Codec) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-alac:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_alias_pix": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav alias_pix decoder",
+                "hierarchy": [
+                    "avdec_alias_pix",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Avid AVI Codec decoder",
+                "long-name": "libav Alias/Wavefront PIX image decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_avrp": {
+            "avdec_als": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav avrp decoder",
+                "description": "libav als decoder",
                 "hierarchy": [
-                    "avdec_avrp",
-                    "GstVideoDecoder",
+                    "avdec_als",
+                    "GstAudioDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Avid 1:1 10-bit RGB Packer decoder",
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav MPEG-4 Audio Lossless Coding (ALS) decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_amrnb": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav amrnb decoder",
+                "hierarchy": [
+                    "avdec_amrnb",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav AMR-NB (Adaptive Multi-Rate NarrowBand) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/AMR:\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_amrwb": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav amrwb decoder",
+                "hierarchy": [
+                    "avdec_amrwb",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav AMR-WB (Adaptive Multi-Rate WideBand) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/AMR-WB:\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
-            "avdec_avs": {
+            "avdec_amv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav avs decoder",
+                "description": "libav amv decoder",
                 "hierarchy": [
-                    "avdec_avs",
+                    "avdec_amv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav AVS (Audio Video Standard) video decoder",
+                "long-name": "libav AMV Video decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-gst-av-avs:\n",
+                        "caps": "video/x-amv:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_avui": {
+            "avdec_anm": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav avui decoder",
+                "description": "libav anm decoder",
                 "hierarchy": [
-                    "avdec_avui",
+                    "avdec_anm",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Avid Meridien Uncompressed decoder",
+                "long-name": "libav Deluxe Paint Animation decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bethsoftvid": {
+            "avdec_ansi": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bethsoftvid decoder",
+                "description": "libav ansi decoder",
                 "hierarchy": [
-                    "avdec_bethsoftvid",
+                    "avdec_ansi",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Bethesda VID video decoder",
+                "long-name": "libav ASCII/ANSI art decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bfi": {
+            "avdec_ape": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bfi decoder",
+                "description": "libav ape decoder",
                 "hierarchy": [
-                    "avdec_bfi",
+                    "avdec_ape",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Monkey's Audio decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-ffmpeg-parsed-ape:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE }\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_apng": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav apng decoder",
+                "hierarchy": [
+                    "avdec_apng",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Brute Force & Ignorance decoder",
+                "long-name": "libav APNG (Animated Portable Network Graphics) image decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_binkaudio_dct": {
+            "avdec_aptx": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav binkaudio_dct decoder",
+                "description": "libav aptx decoder",
                 "hierarchy": [
-                    "avdec_binkaudio_dct",
+                    "avdec_aptx",
                     "GstAudioDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Bink Audio (DCT) decoder",
+                "long-name": "libav aptX (Audio Processing Technology for Bluetooth) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "audio/aptx:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_aptx_hd": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav aptx_hd decoder",
+                "hierarchy": [
+                    "avdec_aptx_hd",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav aptX HD (Audio Processing Technology for Bluetooth) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/aptx-hd:\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
-            "avdec_binkaudio_rdft": {
+            "avdec_arbc": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav binkaudio_rdft decoder",
+                "description": "libav arbc decoder",
                 "hierarchy": [
-                    "avdec_binkaudio_rdft",
-                    "GstAudioDecoder",
+                    "avdec_arbc",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Bink Audio (RDFT) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Gryphon's Anim Compressor decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_binkvideo": {
+            "avdec_asv1": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav binkvideo decoder",
+                "description": "libav asv1 decoder",
                 "hierarchy": [
-                    "avdec_binkvideo",
+                    "avdec_asv1",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Bink video decoder",
+                "long-name": "libav ASUS V1 decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-asus:\n    asusversion: 1\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bintext": {
+            "avdec_asv2": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bintext decoder",
+                "description": "libav asv2 decoder",
                 "hierarchy": [
-                    "avdec_bintext",
+                    "avdec_asv2",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Binary text decoder",
+                "long-name": "libav ASUS V2 decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-asus:\n    asusversion: 2\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bitpacked": {
+            "avdec_atrac1": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bitpacked decoder",
+                "description": "libav atrac1 decoder",
                 "hierarchy": [
-                    "avdec_bitpacked",
+                    "avdec_atrac1",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC1 (Adaptive TRansform Acoustic Coding) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-vnd.sony.atrac1:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_atrac3": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav atrac3 decoder",
+                "hierarchy": [
+                    "avdec_atrac3",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC3 (Adaptive TRansform Acoustic Coding 3) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-vnd.sony.atrac3:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_atrac3al": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav atrac3al decoder",
+                "hierarchy": [
+                    "avdec_atrac3al",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_atrac3plus": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav atrac3plus decoder",
+                "hierarchy": [
+                    "avdec_atrac3plus",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_atrac3plusal": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav atrac3plusal decoder",
+                "hierarchy": [
+                    "avdec_atrac3plusal",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_atrac9": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav atrac9 decoder",
+                "hierarchy": [
+                    "avdec_atrac9",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATRAC9 (Adaptive TRansform Acoustic Coding 9) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_aura": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav aura decoder",
+                "hierarchy": [
+                    "avdec_aura",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Bitpacked decoder",
+                "long-name": "libav Auravision AURA decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bmp": {
+            "avdec_aura2": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bmp decoder",
+                "description": "libav aura2 decoder",
                 "hierarchy": [
-                    "avdec_bmp",
+                    "avdec_aura2",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav BMP (Windows and OS/2 bitmap) decoder",
+                "long-name": "libav Auravision Aura 2 decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/bmp:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_bmv_audio": {
+            "avdec_avrn": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bmv_audio decoder",
+                "description": "libav avrn decoder",
                 "hierarchy": [
-                    "avdec_bmv_audio",
-                    "GstAudioDecoder",
+                    "avdec_avrn",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Discworld II BMV audio decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Avid AVI Codec decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_bmv_video": {
+            "avdec_avrp": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav bmv_video decoder",
+                "description": "libav avrp decoder",
                 "hierarchy": [
-                    "avdec_bmv_video",
+                    "avdec_avrp",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Discworld II BMV video decoder",
+                "long-name": "libav Avid 1:1 10-bit RGB Packer decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_brender_pix": {
+            "avdec_avs": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav brender_pix decoder",
+                "description": "libav avs decoder",
                 "hierarchy": [
-                    "avdec_brender_pix",
+                    "avdec_avs",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav BRender PIX image decoder",
+                "long-name": "libav AVS (Audio Video Standard) video decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-gst-av-avs:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_c93": {
+            "avdec_avui": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav c93 decoder",
+                "description": "libav avui decoder",
                 "hierarchy": [
-                    "avdec_c93",
+                    "avdec_avui",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Interplay C93 decoder",
+                "long-name": "libav Avid Meridien Uncompressed decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_camstudio": {
+            "avdec_bethsoftvid": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav camstudio decoder",
+                "description": "libav bethsoftvid decoder",
                 "hierarchy": [
-                    "avdec_camstudio",
+                    "avdec_bethsoftvid",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav CamStudio decoder",
+                "long-name": "libav Bethesda VID video decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-camstudio:\n          depth: [ 8, 32 ]\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_camtasia": {
+            "avdec_bfi": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav camtasia decoder",
+                "description": "libav bfi decoder",
                 "hierarchy": [
-                    "avdec_camtasia",
+                    "avdec_bfi",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav TechSmith Screen Capture Codec decoder",
+                "long-name": "libav Brute Force & Ignorance decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-camtasia:\n          depth: [ 8, 32 ]\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cavs": {
+            "avdec_binkaudio_dct": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cavs decoder",
+                "description": "libav binkaudio_dct decoder",
                 "hierarchy": [
-                    "avdec_cavs",
+                    "avdec_binkaudio_dct",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Bink Audio (DCT) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_binkaudio_rdft": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav binkaudio_rdft decoder",
+                "hierarchy": [
+                    "avdec_binkaudio_rdft",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Bink Audio (RDFT) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_binkvideo": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav binkvideo decoder",
+                "hierarchy": [
+                    "avdec_binkvideo",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) decoder",
+                "long-name": "libav Bink video decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-cavs:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cdxl": {
+            "avdec_bintext": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cdxl decoder",
+                "description": "libav bintext decoder",
                 "hierarchy": [
-                    "avdec_cdxl",
+                    "avdec_bintext",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Commodore CDXL video decoder",
+                "long-name": "libav Binary text decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cfhd": {
+            "avdec_bitpacked": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cfhd decoder",
+                "description": "libav bitpacked decoder",
                 "hierarchy": [
-                    "avdec_cfhd",
+                    "avdec_bitpacked",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Cineform HD decoder",
+                "long-name": "libav Bitpacked decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-cineform:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_cinepak": {
+            "avdec_bmp": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cinepak decoder",
+                "description": "libav bmp decoder",
                 "hierarchy": [
-                    "avdec_cinepak",
+                    "avdec_bmp",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Cinepak decoder",
+                "long-name": "libav BMP (Windows and OS/2 bitmap) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-cinepak:\n",
+                        "caps": "image/bmp:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_clearvideo": {
+            "avdec_bmv_audio": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav clearvideo decoder",
+                "description": "libav bmv_audio decoder",
                 "hierarchy": [
-                    "avdec_clearvideo",
+                    "avdec_bmv_audio",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Discworld II BMV audio decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_bmv_video": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav bmv_video decoder",
+                "hierarchy": [
+                    "avdec_bmv_video",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Iterated Systems ClearVideo decoder",
+                "long-name": "libav Discworld II BMV video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cljr": {
+            "avdec_brender_pix": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cljr decoder",
+                "description": "libav brender_pix decoder",
                 "hierarchy": [
-                    "avdec_cljr",
+                    "avdec_brender_pix",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Cirrus Logic AccuPak decoder",
+                "long-name": "libav BRender PIX image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-cirrus-logic-accupak:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cllc": {
+            "avdec_c93": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cllc decoder",
+                "description": "libav c93 decoder",
                 "hierarchy": [
-                    "avdec_cllc",
+                    "avdec_c93",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Canopus Lossless Codec decoder",
+                "long-name": "libav Interplay C93 decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_comfortnoise": {
+            "avdec_camstudio": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav comfortnoise decoder",
+                "description": "libav camstudio decoder",
                 "hierarchy": [
-                    "avdec_comfortnoise",
-                    "GstAudioDecoder",
+                    "avdec_camstudio",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav RFC 3389 comfort noise generator decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav CamStudio decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-camstudio:\n          depth: [ 8, 32 ]\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_cook": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cook decoder",
-                "hierarchy": [
-                    "avdec_cook",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Cook / Cooker / Gecko (RealAudio G2) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-pn-realaudio:\n      raversion: 8\n",
-                        "direction": "sink",
-                        "presence": "always"
                     },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "Skip nothing (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
-                "rank": "primary"
+                "rank": "marginal"
             },
-            "avdec_cpia": {
+            "avdec_camtasia": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cpia decoder",
+                "description": "libav camtasia decoder",
                 "hierarchy": [
-                    "avdec_cpia",
+                    "avdec_camtasia",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav CPiA video format decoder",
+                "long-name": "libav TechSmith Screen Capture Codec decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-camtasia:\n          depth: [ 8, 32 ]\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_cyuv": {
+            "avdec_cavs": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav cyuv decoder",
+                "description": "libav cavs decoder",
                 "hierarchy": [
-                    "avdec_cyuv",
+                    "avdec_cavs",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Creative YUV (CYUV) decoder",
+                "long-name": "libav Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-compressed-yuv:\n",
+                        "caps": "video/x-cavs:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dca": {
+            "avdec_cdxl": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dca decoder",
+                "description": "libav cdxl decoder",
                 "hierarchy": [
-                    "avdec_dca",
-                    "GstAudioDecoder",
+                    "avdec_cdxl",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DCA (DTS Coherent Acoustics) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Commodore CDXL video decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dts:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { S16LE, S32LE, F32LE }\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dds": {
+            "avdec_cfhd": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dds decoder",
+                "description": "libav cfhd decoder",
                 "hierarchy": [
-                    "avdec_dds",
+                    "avdec_cfhd",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav DirectDraw Surface image decoder decoder",
+                "long-name": "libav Cineform HD decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-cineform:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dfa": {
+            "avdec_cinepak": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dfa decoder",
+                "description": "libav cinepak decoder",
                 "hierarchy": [
-                    "avdec_dfa",
+                    "avdec_cinepak",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Chronomaster DFA decoder",
+                "long-name": "libav Cinepak decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-cinepak:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dirac": {
+            "avdec_clearvideo": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dirac decoder",
+                "description": "libav clearvideo decoder",
                 "hierarchy": [
-                    "avdec_dirac",
+                    "avdec_clearvideo",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav BBC Dirac VC-2 decoder",
+                "long-name": "libav Iterated Systems ClearVideo decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "2147483647",
-                        "min": "0",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_cljr": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav cljr decoder",
+                "hierarchy": [
+                    "avdec_cljr",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Cirrus Logic AccuPak decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-cirrus-logic-accupak:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "Skip nothing (0)",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
+                        "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "auto",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dnxhd": {
+            "avdec_cllc": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dnxhd decoder",
+                "description": "libav cllc decoder",
                 "hierarchy": [
-                    "avdec_dnxhd",
+                    "avdec_cllc",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav VC3/DNxHD decoder",
+                "long-name": "libav Canopus Lossless Codec decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-dnxhd:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dolby_e": {
+            "avdec_comfortnoise": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dolby_e decoder",
+                "description": "libav comfortnoise decoder",
                 "hierarchy": [
-                    "avdec_dolby_e",
+                    "avdec_comfortnoise",
                     "GstAudioDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Dolby E decoder",
+                "long-name": "libav RFC 3389 comfort noise generator decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_cook": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav cook decoder",
+                "hierarchy": [
+                    "avdec_cook",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Cook / Cooker / Gecko (RealAudio G2) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-pn-realaudio:\n      raversion: 8\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
-                "rank": "marginal"
+                "properties": {},
+                "rank": "primary"
             },
-            "avdec_dpx": {
+            "avdec_cpia": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dpx decoder",
+                "description": "libav cpia decoder",
                 "hierarchy": [
-                    "avdec_dpx",
+                    "avdec_cpia",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav DPX (Digital Picture Exchange) image decoder",
+                "long-name": "libav CPiA video format decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dsd_lsbf": {
+            "avdec_cyuv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsd_lsbf decoder",
+                "description": "libav cyuv decoder",
                 "hierarchy": [
-                    "avdec_dsd_lsbf",
-                    "GstAudioDecoder",
+                    "avdec_cyuv",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DSD (Direct Stream Digital), least significant bit first decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Creative YUV (CYUV) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dsd:\n           lsbf: true\n         planar: false\n",
+                        "caps": "video/x-compressed-yuv:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dsd_lsbf_planar": {
+            "avdec_dca": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsd_lsbf_planar decoder",
+                "description": "libav dca decoder",
                 "hierarchy": [
-                    "avdec_dsd_lsbf_planar",
+                    "avdec_dca",
                     "GstAudioDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DSD (Direct Stream Digital), least significant bit first, planar decoder",
+                "long-name": "libav DCA (DTS Coherent Acoustics) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dsd:\n           lsbf: true\n         planar: true\n",
+                        "caps": "audio/x-dts:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "audio/x-raw:\n         format: { S16LE, S32LE, F32LE }\n         layout: non-interleaved\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
-            "avdec_dsd_msbf": {
+            "avdec_dds": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsd_msbf decoder",
+                "description": "libav dds decoder",
                 "hierarchy": [
-                    "avdec_dsd_msbf",
-                    "GstAudioDecoder",
+                    "avdec_dds",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DSD (Direct Stream Digital), most significant bit first decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav DirectDraw Surface image decoder decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dsd:\n           lsbf: false\n         planar: false\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
                         "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_dsd_msbf_planar": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsd_msbf_planar decoder",
-                "hierarchy": [
-                    "avdec_dsd_msbf_planar",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DSD (Direct Stream Digital), most significant bit first, planar decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "audio/x-dsd:\n           lsbf: false\n         planar: true\n",
-                        "direction": "sink",
-                        "presence": "always"
                     },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
                         "default": "0",
-                        "max": "9223372036854775807",
+                        "max": "2147483647",
                         "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gint",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "Skip nothing (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dsicinaudio": {
+            "avdec_dfa": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsicinaudio decoder",
+                "description": "libav dfa decoder",
                 "hierarchy": [
-                    "avdec_dsicinaudio",
-                    "GstAudioDecoder",
+                    "avdec_dfa",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Delphine Software International CIN audio decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Chronomaster DFA decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dsicinvideo": {
+            "avdec_dirac": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dsicinvideo decoder",
+                "description": "libav dirac decoder",
                 "hierarchy": [
-                    "avdec_dsicinvideo",
+                    "avdec_dirac",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Delphine Software International CIN video decoder",
+                "long-name": "libav BBC Dirac VC-2 decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dss_sp": {
+            "avdec_dnxhd": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dss_sp decoder",
+                "description": "libav dnxhd decoder",
                 "hierarchy": [
-                    "avdec_dss_sp",
-                    "GstAudioDecoder",
+                    "avdec_dnxhd",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Digital Speech Standard - Standard Play mode (DSS SP) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav VC3/DNxHD decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-dnxhd:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
                         "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_dst": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dst decoder",
-                "hierarchy": [
-                    "avdec_dst",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DST (Digital Stream Transfer) decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
                     },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
                         "default": "0",
-                        "max": "9223372036854775807",
+                        "max": "2147483647",
                         "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gint",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "Skip nothing (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_dvaudio": {
+            "avdec_dolby_e": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dvaudio decoder",
+                "description": "libav dolby_e decoder",
                 "hierarchy": [
-                    "avdec_dvaudio",
+                    "avdec_dolby_e",
                     "GstAudioDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Ulead DV Audio decoder",
+                "long-name": "libav Dolby E decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dv:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
-            "avdec_dvvideo": {
+            "avdec_dpx": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dvvideo decoder",
+                "description": "libav dpx decoder",
                 "hierarchy": [
-                    "avdec_dvvideo",
+                    "avdec_dpx",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav DV (Digital Video) decoder",
+                "long-name": "libav DPX (Digital Picture Exchange) image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-dv:\n   systemstream: false\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_dsd_lsbf": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dsd_lsbf decoder",
+                "hierarchy": [
+                    "avdec_dsd_lsbf",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DSD (Direct Stream Digital), least significant bit first decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dsd:\n           lsbf: true\n         planar: false\n",
+                        "direction": "sink",
+                        "presence": "always"
                     },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
-                "rank": "secondary"
+                "properties": {},
+                "rank": "marginal"
             },
-            "avdec_dxa": {
+            "avdec_dsd_lsbf_planar": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dxa decoder",
+                "description": "libav dsd_lsbf_planar decoder",
                 "hierarchy": [
-                    "avdec_dxa",
+                    "avdec_dsd_lsbf_planar",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DSD (Direct Stream Digital), least significant bit first, planar decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dsd:\n           lsbf: true\n         planar: true\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dsd_msbf": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dsd_msbf decoder",
+                "hierarchy": [
+                    "avdec_dsd_msbf",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DSD (Direct Stream Digital), most significant bit first decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dsd:\n           lsbf: false\n         planar: false\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dsd_msbf_planar": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dsd_msbf_planar decoder",
+                "hierarchy": [
+                    "avdec_dsd_msbf_planar",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DSD (Direct Stream Digital), most significant bit first, planar decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dsd:\n           lsbf: false\n         planar: true\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dsicinaudio": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dsicinaudio decoder",
+                "hierarchy": [
+                    "avdec_dsicinaudio",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Delphine Software International CIN audio decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dsicinvideo": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dsicinvideo decoder",
+                "hierarchy": [
+                    "avdec_dsicinvideo",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Feeble Files/ScummVM DXA decoder",
+                "long-name": "libav Delphine Software International CIN video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_dxtory": {
+            "avdec_dss_sp": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dxtory decoder",
+                "description": "libav dss_sp decoder",
                 "hierarchy": [
-                    "avdec_dxtory",
+                    "avdec_dss_sp",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Digital Speech Standard - Standard Play mode (DSS SP) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dst": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dst decoder",
+                "hierarchy": [
+                    "avdec_dst",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DST (Digital Stream Transfer) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dvaudio": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dvaudio decoder",
+                "hierarchy": [
+                    "avdec_dvaudio",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Ulead DV Audio decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dv:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_dvvideo": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav dvvideo decoder",
+                "hierarchy": [
+                    "avdec_dvvideo",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Dxtory decoder",
+                "long-name": "libav DV (Digital Video) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-dv:\n   systemstream: false\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
-                "rank": "marginal"
+                "rank": "secondary"
             },
-            "avdec_dxv": {
+            "avdec_dxa": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav dxv decoder",
+                "description": "libav dxa decoder",
                 "hierarchy": [
-                    "avdec_dxv",
+                    "avdec_dxa",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Resolume DXV decoder",
+                "long-name": "libav Feeble Files/ScummVM DXA decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_eac3": {
+            "avdec_dxtory": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eac3 decoder",
+                "description": "libav dxtory decoder",
                 "hierarchy": [
-                    "avdec_eac3",
-                    "GstAudioDecoder",
+                    "avdec_dxtory",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav ATSC A/52B (AC-3, E-AC-3) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Dxtory decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-eac3:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_eacmv": {
+            "avdec_dxv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eacmv decoder",
+                "description": "libav dxv decoder",
                 "hierarchy": [
-                    "avdec_eacmv",
+                    "avdec_dxv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Electronic Arts CMV video decoder",
+                "long-name": "libav Resolume DXV decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_eamad": {
+            "avdec_eac3": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eamad decoder",
+                "description": "libav eac3 decoder",
                 "hierarchy": [
-                    "avdec_eamad",
+                    "avdec_eac3",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav ATSC A/52B (AC-3, E-AC-3) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-eac3:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_eacmv": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav eacmv decoder",
+                "hierarchy": [
+                    "avdec_eacmv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Electronic Arts Madcow Video decoder",
+                "long-name": "libav Electronic Arts CMV video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_eatgq": {
+            "avdec_eamad": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eatgq decoder",
+                "description": "libav eamad decoder",
                 "hierarchy": [
-                    "avdec_eatgq",
+                    "avdec_eamad",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Electronic Arts TGQ video decoder",
+                "long-name": "libav Electronic Arts Madcow Video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_eatgv": {
+            "avdec_eatgq": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eatgv decoder",
+                "description": "libav eatgq decoder",
                 "hierarchy": [
-                    "avdec_eatgv",
+                    "avdec_eatgq",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Electronic Arts TGV video decoder",
+                "long-name": "libav Electronic Arts TGQ video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_eatqi": {
+            "avdec_eatgv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav eatqi decoder",
+                "description": "libav eatgv decoder",
                 "hierarchy": [
-                    "avdec_eatqi",
+                    "avdec_eatgv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Electronic Arts TQI Video decoder",
+                "long-name": "libav Electronic Arts TGV video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_escape124": {
+            "avdec_eatqi": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav escape124 decoder",
+                "description": "libav eatqi decoder",
                 "hierarchy": [
-                    "avdec_escape124",
+                    "avdec_eatqi",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Escape 124 decoder",
+                "long-name": "libav Electronic Arts TQI Video decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_escape130": {
+            "avdec_escape124": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav escape130 decoder",
+                "description": "libav escape124 decoder",
                 "hierarchy": [
-                    "avdec_escape130",
+                    "avdec_escape124",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Escape 130 decoder",
+                "long-name": "libav Escape 124 decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_evrc": {
+            "avdec_escape130": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav evrc decoder",
+                "description": "libav escape130 decoder",
                 "hierarchy": [
-                    "avdec_evrc",
-                    "GstAudioDecoder",
+                    "avdec_escape130",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav EVRC (Enhanced Variable Rate Codec) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Escape 130 decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
                         "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_evrc": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav evrc decoder",
+                "hierarchy": [
+                    "avdec_evrc",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav EVRC (Enhanced Variable Rate Codec) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_exr": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_flashsv": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_g723_1": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_g726": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_g726le": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_g729": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_gdv": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_gsm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_gsm_ms": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_h261": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_hnm4video": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_huffyuv": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav huffyuv decoder",
-                "hierarchy": [
-                    "avdec_huffyuv",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Huffyuv / HuffYUV decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-huffyuv:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_hymt": {
+            "avdec_huffyuv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav hymt decoder",
+                "description": "libav huffyuv decoder",
                 "hierarchy": [
-                    "avdec_hymt",
+                    "avdec_huffyuv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav HuffYUV MT decoder",
+                "long-name": "libav Huffyuv / HuffYUV decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-huffyuv:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_iac": {
+            "avdec_hymt": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav iac decoder",
+                "description": "libav hymt decoder",
                 "hierarchy": [
-                    "avdec_iac",
-                    "GstAudioDecoder",
+                    "avdec_hymt",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav IAC (Indeo Audio Coder) decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav HuffYUV MT decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
                         "default": "0",
-                        "max": "9223372036854775807",
+                        "max": "2147483647",
                         "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_iac": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav iac decoder",
+                "hierarchy": [
+                    "avdec_iac",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav IAC (Indeo Audio Coder) decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_idcinvideo": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_imc": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_imm4": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_interplayacm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_interplayvideo": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_jpegls": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav jpegls decoder",
-                "hierarchy": [
-                    "avdec_jpegls",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav JPEG-LS decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_jv": {
+            "avdec_jpegls": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav jv decoder",
+                "description": "libav jpegls decoder",
                 "hierarchy": [
-                    "avdec_jv",
+                    "avdec_jpegls",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Bitmap Brothers JV video decoder",
+                "long-name": "libav JPEG-LS decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_jv": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav jv decoder",
+                "hierarchy": [
+                    "avdec_jv",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Bitmap Brothers JV video decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mace6": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_magicyuv": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mimic": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mmvideo": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp2float": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3": {
                     "src": {
                         "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\naudio/x-raw:\n         format: S16LE\n         layout: non-interleaved\n",
                         "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3adu": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3adufloat": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3float": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3on4": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mp3on4float": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mpc7": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mpc8": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_mpeg2video": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
-                    }
-                },
-                "rank": "primary"
-            },
-            "avdec_msa1": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav msa1 decoder",
-                "hierarchy": [
-                    "avdec_msa1",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav MS ATC Screen decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_mscc": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav mscc decoder",
-                "hierarchy": [
-                    "avdec_mscc",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Mandsoft Screen Capture Codec decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (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
+                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
+                    }
+                },
+                "rank": "primary"
+            },
+            "avdec_msa1": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav msa1 decoder",
+                "hierarchy": [
+                    "avdec_msa1",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav MS ATC Screen decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_msmpeg4": {
+            "avdec_mscc": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav msmpeg4 decoder",
+                "description": "libav mscc decoder",
                 "hierarchy": [
-                    "avdec_msmpeg4",
+                    "avdec_mscc",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav MPEG-4 part 2 Microsoft variant version 3 decoder",
+                "long-name": "libav Mandsoft Screen Capture Codec decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-msmpeg:\n  msmpegversion: 43\nvideo/x-divx:\n    divxversion: 3\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n         format: I420\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_msmpeg4": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav msmpeg4 decoder",
+                "hierarchy": [
+                    "avdec_msmpeg4",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav MPEG-4 part 2 Microsoft variant version 3 decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-msmpeg:\n  msmpegversion: 43\nvideo/x-divx:\n    divxversion: 3\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: I420\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_nuv": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_opus": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_paf_audio": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_paf_video": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_pcm_lxf": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pcm_lxf decoder",
-                "hierarchy": [
-                    "avdec_pcm_lxf",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav PCM signed 20-bit little-endian planar decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_pcm_vidc": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pcm_vidc decoder",
-                "hierarchy": [
-                    "avdec_pcm_vidc",
-                    "GstAudioDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav PCM Archimedes VIDC decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_pcx": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pcx decoder",
-                "hierarchy": [
-                    "avdec_pcx",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav PC Paintbrush PCX image decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "image/x-pcx:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_pgm": {
+            "avdec_pcm_lxf": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pgm decoder",
+                "description": "libav pcm_lxf decoder",
                 "hierarchy": [
-                    "avdec_pgm",
+                    "avdec_pcm_lxf",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav PCM signed 20-bit little-endian planar decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: S32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_pcm_vidc": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav pcm_vidc decoder",
+                "hierarchy": [
+                    "avdec_pcm_vidc",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav PCM Archimedes VIDC decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: S16LE\n         layout: interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
+            "avdec_pcx": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav pcx decoder",
+                "hierarchy": [
+                    "avdec_pcx",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav PGM (Portable GrayMap) image decoder",
+                "long-name": "libav PC Paintbrush PCX image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/x-portable-graymap:\n",
+                        "caps": "image/x-pcx:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_pgmyuv": {
+            "avdec_pgm": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pgmyuv decoder",
+                "description": "libav pgm decoder",
                 "hierarchy": [
-                    "avdec_pgmyuv",
+                    "avdec_pgm",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav PGMYUV (Portable GrayMap YUV) image decoder",
+                "long-name": "libav PGM (Portable GrayMap) image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-gst-av-pgmyuv:\n",
+                        "caps": "image/x-portable-graymap:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_pictor": {
+            "avdec_pgmyuv": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pictor decoder",
+                "description": "libav pgmyuv decoder",
                 "hierarchy": [
-                    "avdec_pictor",
+                    "avdec_pgmyuv",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Pictor/PC Paint decoder",
+                "long-name": "libav PGMYUV (Portable GrayMap YUV) image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-gst-av-pgmyuv:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_pixlet": {
+            "avdec_pictor": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav pixlet decoder",
+                "description": "libav pictor decoder",
                 "hierarchy": [
-                    "avdec_pixlet",
+                    "avdec_pictor",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Apple Pixlet decoder",
+                "long-name": "libav Pictor/PC Paint decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_png": {
+            "avdec_pixlet": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav png decoder",
+                "description": "libav pixlet decoder",
                 "hierarchy": [
-                    "avdec_png",
+                    "avdec_pixlet",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav PNG (Portable Network Graphics) image decoder",
+                "long-name": "libav Apple Pixlet decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/png:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_ppm": {
+            "avdec_png": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav ppm decoder",
+                "description": "libav png decoder",
                 "hierarchy": [
-                    "avdec_ppm",
+                    "avdec_png",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav PPM (Portable PixelMap) image decoder",
+                "long-name": "libav PNG (Portable Network Graphics) image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/ppm:\n",
+                        "caps": "image/png:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (0 = auto)",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "true",
+                        "default": "0",
+                        "max": "2147483647",
+                        "min": "0",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gboolean",
+                        "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_prores": {
+            "avdec_ppm": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav prores decoder",
+                "description": "libav ppm decoder",
                 "hierarchy": [
-                    "avdec_prores",
+                    "avdec_ppm",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav ProRes (iCodec Pro) decoder",
+                "long-name": "libav PPM (Portable PixelMap) image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-prores:\n",
+                        "caps": "image/ppm:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
-                    "max-threads": {
-                        "blurb": "Maximum number of worker threads to spawn. (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
-                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "readable": true,
                         "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
-                    },
-                    "thread-type": {
-                        "blurb": "Multithreading methods to use",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "auto",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecThreadType",
-                        "writable": true
                     }
                 },
                 "rank": "marginal"
             },
-            "avdec_prosumer": {
+            "avdec_prores": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav prosumer decoder",
+                "description": "libav prores decoder",
                 "hierarchy": [
-                    "avdec_prosumer",
+                    "avdec_prores",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Brooktree ProSumer Video decoder",
+                "long-name": "libav ProRes (iCodec Pro) decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-prores:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                         "type": "GstLibAVVidDecLowres",
                         "writable": true
                     },
+                    "max-threads": {
+                        "blurb": "Maximum number of worker threads to spawn. (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
+                    },
                     "output-corrupt": {
                         "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    },
+                    "thread-type": {
+                        "blurb": "Multithreading methods to use",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "auto",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecThreadType",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_prosumer": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav prosumer decoder",
+                "hierarchy": [
+                    "avdec_prosumer",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Brooktree ProSumer Video decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_qdm2": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_qdmc": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_qdraw": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_rasc": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "primary"
             },
             "avdec_real_288": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "primary"
             },
             "avdec_rl2": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_roqvideo": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_rv10": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav rv10 decoder",
-                "hierarchy": [
-                    "avdec_rv10",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav RealVideo 1.0 decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "video/x-pn-realvideo:\n      rmversion: 1\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: I420\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_rv10": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav rv10 decoder",
+                "hierarchy": [
+                    "avdec_rv10",
+                    "GstVideoDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav RealVideo 1.0 decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-pn-realvideo:\n      rmversion: 1\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/x-raw:\n         format: I420\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "full (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_sanm": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_scpr": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_sgi": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_sipr": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "secondary"
             },
             "avdec_smackaud": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_smackvid": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_snow": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav snow decoder",
-                "hierarchy": [
-                    "avdec_snow",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav Snow decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_sol_dpcm": {
+            "avdec_snow": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav sol_dpcm decoder",
+                "description": "libav snow decoder",
                 "hierarchy": [
-                    "avdec_sol_dpcm",
-                    "GstAudioDecoder",
+                    "avdec_snow",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav DPCM Sol decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Snow decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "audio/x-dpcm:\n         layout: sol\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
                         "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
+                        "writable": true
+                    }
+                },
+                "rank": "marginal"
+            },
+            "avdec_sol_dpcm": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav sol_dpcm decoder",
+                "hierarchy": [
+                    "avdec_sol_dpcm",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav DPCM Sol decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "audio/x-dpcm:\n         layout: sol\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: { U8, S16LE, S32LE, F32LE, F64LE }\n         layout: { (string)interleaved, (string)non-interleaved }\n",
+                        "direction": "src",
+                        "presence": "always"
                     }
                 },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_sonic": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_sp5x": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_targa": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_truemotion1": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_tscc2": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_twinvq": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_txd": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_vmdvideo": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wcmv": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wmapro": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wmav1": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wmav2": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wmavoice": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_wmv1": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_xan_dpcm": {
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_xan_wc3": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "skip-frame": {
-                        "blurb": "Which types of frames to skip during decoding",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "Skip nothing (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecSkipFrame",
-                        "writable": true
-                    }
-                },
-                "rank": "marginal"
-            },
-            "avdec_xbm": {
-                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav xbm decoder",
-                "hierarchy": [
-                    "avdec_xbm",
-                    "GstVideoDecoder",
-                    "GstElement",
-                    "GstObject",
-                    "GInitiallyUnowned",
-                    "GObject"
-                ],
-                "klass": "Codec/Decoder/Video",
-                "long-name": "libav XBM (X BitMap) image decoder",
-                "pad-templates": {
-                    "sink": {
-                        "caps": "unknown/unknown:\n",
-                        "direction": "sink",
-                        "presence": "always"
-                    },
-                    "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
-                        "direction": "src",
-                        "presence": "always"
-                    }
-                },
-                "properties": {
-                    "debug-mv": {
-                        "blurb": "Whether libav should print motion vectors on top of the image",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "direct-rendering": {
-                        "blurb": "Enable direct rendering",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "lowres": {
-                        "blurb": "At which resolution to decode images",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "full (0)",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "GstLibAVVidDecLowres",
-                        "writable": true
-                    },
-                    "output-corrupt": {
-                        "blurb": "Whether libav should output frames even if corrupted",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_xface": {
+            "avdec_xbm": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav xface decoder",
+                "description": "libav xbm decoder",
                 "hierarchy": [
-                    "avdec_xface",
+                    "avdec_xbm",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav X-face image decoder",
+                "long-name": "libav XBM (X BitMap) image decoder",
                 "pad-templates": {
                     "sink": {
                         "caps": "unknown/unknown:\n",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_xl": {
+            "avdec_xface": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav xl decoder",
+                "description": "libav xface decoder",
                 "hierarchy": [
-                    "avdec_xl",
+                    "avdec_xface",
                     "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GObject"
                 ],
                 "klass": "Codec/Decoder/Video",
-                "long-name": "libav Miro VideoXL decoder",
+                "long-name": "libav X-face image decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-gst-av-xl:\n",
+                        "caps": "unknown/unknown:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
+                        "caps": "video/x-raw:\n",
                         "direction": "src",
                         "presence": "always"
                     }
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                 },
                 "rank": "marginal"
             },
-            "avdec_xma1": {
+            "avdec_xl": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
-                "description": "libav xma1 decoder",
+                "description": "libav xl decoder",
                 "hierarchy": [
-                    "avdec_xma1",
-                    "GstAudioDecoder",
+                    "avdec_xl",
+                    "GstVideoDecoder",
                     "GstElement",
                     "GstObject",
                     "GInitiallyUnowned",
                     "GObject"
                 ],
-                "klass": "Codec/Decoder/Audio",
-                "long-name": "libav Xbox Media Audio 1 decoder",
+                "klass": "Codec/Decoder/Video",
+                "long-name": "libav Miro VideoXL decoder",
                 "pad-templates": {
                     "sink": {
-                        "caps": "unknown/unknown:\n",
+                        "caps": "video/x-gst-av-xl:\n",
                         "direction": "sink",
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "caps": "video/x-raw:\n         format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, GBRA, xRGB, RGBx, xBGR, BGRx, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE }\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 },
                 "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
+                    "debug-mv": {
+                        "blurb": "Whether libav should print motion vectors on top of the image",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "false",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "gboolean",
                         "writable": true
                     },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
+                    "direct-rendering": {
+                        "blurb": "Enable direct rendering",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "false",
+                        "default": "true",
                         "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+                    "lowres": {
+                        "blurb": "At which resolution to decode images",
                         "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
+                        "default": "full (0)",
                         "mutable": "null",
                         "readable": true,
-                        "type": "gint64",
+                        "type": "GstLibAVVidDecLowres",
+                        "writable": true
+                    },
+                    "output-corrupt": {
+                        "blurb": "Whether libav should output frames even if corrupted",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "skip-frame": {
+                        "blurb": "Which types of frames to skip during decoding",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "Skip nothing (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstLibAVVidDecSkipFrame",
                         "writable": true
                     }
                 },
                 "rank": "marginal"
             },
+            "avdec_xma1": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "libav xma1 decoder",
+                "hierarchy": [
+                    "avdec_xma1",
+                    "GstAudioDecoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Codec/Decoder/Audio",
+                "long-name": "libav Xbox Media Audio 1 decoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "unknown/unknown:\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "audio/x-raw:\n         format: F32LE\n         layout: non-interleaved\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {},
+                "rank": "marginal"
+            },
             "avdec_xma2": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                 "description": "libav xma2 decoder",
                         "presence": "always"
                     }
                 },
-                "properties": {
-                    "min-latency": {
-                        "blurb": "Aggregate output data to a minimum of latency time (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
-                    "plc": {
-                        "blurb": "Perform packet loss concealment (if supported)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "tolerance": {
-                        "blurb": "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    }
-                },
+                "properties": {},
                 "rank": "marginal"
             },
             "avdec_xpm": {
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "true",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "skip-frame": {
                         "blurb": "Which types of frames to skip during decoding",
                         "conditionally-available": false,
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_aiff": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_ape": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_avs": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_bfstm": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_brstm": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_daud": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_dsf": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_ea": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_film_cpk": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_gif": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_gxf": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_idcin": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_iff": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_ipmovie": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_ivf": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_mm": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_mmf": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_mpc": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_mpc8": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_mxf": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_nsv": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_nut": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_nuv": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_psxstr": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_pva": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_smk": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_sol": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_tta": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_vmd": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_voc": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_wc3movie": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_wsaud": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_wsvqa": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avdemux_yuv4mpegpipe": {
                 "author": "Wim Taymans <wim@fluendo.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>, Edward Hervey <bilboed@bilboed.com>",
                     }
                 },
                 "rank": "marginal",
-                "signals": {
-                    "no-more-pads": {
-                        "args": [],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-added": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    },
-                    "pad-removed": {
-                        "args": [
-                            {
-                                "name": "arg0",
-                                "type": "GstPad"
-                            }
-                        ],
-                        "return-type": "void",
-                        "when": "last"
-                    }
-                }
+                "signals": {}
             },
             "avenc_a64multi": {
                 "author": "Wim Taymans <wim.taymans@gmail.com>, Ronald Bultje <rbultje@ronald.bitfreak.net>",
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "loro-cmixlev": {
                         "blurb": "Lo/Ro Center Mix Level (Private codec option)",
                         "conditionally-available": false,
                         "type": "gfloat",
                         "writable": true
                     },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "room-type": {
                         "blurb": "Room Type (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "loro-cmixlev": {
                         "blurb": "Lo/Ro Center Mix Level (Private codec option)",
                         "conditionally-available": false,
                         "type": "gfloat",
                         "writable": true
                     },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "room-type": {
                         "blurb": "Room Type (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "min-strips": {
                         "blurb": "Enforce min strips/frame, more is worse and faster, must be <= max_strips (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quant-deadzone": {
                         "blurb": "Quantizer dead zone (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "loro-cmixlev": {
                         "blurb": "Lo/Ro Center Mix Level (Private codec option)",
                         "conditionally-available": false,
                         "type": "gfloat",
                         "writable": true
                     },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "room-type": {
                         "blurb": "Room Type (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gfloat",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quant-mat": {
                         "blurb": "quantiser matrix (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quake3-compat": {
                         "blurb": "Whether to respect known limitations in Quake 3 decoder (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "sbc-delay": {
                         "blurb": "set maximum algorithmic latency (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "joint-stereo": {
                         "blurb": " (Private codec option)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gboolean",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "hard-resync": {
-                        "blurb": "Perform clipping and sample flushing upon discontinuity",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
-                    "mark-granule": {
-                        "blurb": "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": false
-                    },
                     "max-pixels": {
                         "blurb": "Maximum number of pixels (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint64",
                         "writable": true
                     },
-                    "perfect-timestamp": {
-                        "blurb": "Favour perfect timestamps over tracking upstream timestamps",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "side-data-only-packets": {
                         "blurb": "(null) (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "tolerance": {
-                        "blurb": "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "40000000",
-                        "max": "9223372036854775807",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gint64",
-                        "writable": true
-                    },
                     "trellis": {
                         "blurb": "rate-distortion optimal quantization (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "qsquish": {
                         "blurb": "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function) (Private codec option)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "min-force-key-unit-interval": {
-                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "0",
-                        "max": "18446744073709551615",
-                        "min": "0",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "guint64",
-                        "writable": true
-                    },
                     "minrate": {
                         "blurb": "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (Generic codec option, might have no effect)",
                         "conditionally-available": false,
                         "type": "gint",
                         "writable": true
                     },
-                    "qos": {
-                        "blurb": "Handle Quality-of-Service events from downstream",
-                        "conditionally-available": false,
-                        "construct": false,
-                        "construct-only": false,
-                        "controllable": false,
-                        "default": "false",
-                        "mutable": "null",
-                        "readable": true,
-                        "type": "gboolean",
-                        "writable": true
-                    },
                     "quantizer": {
                         "blurb": "Constant Quantizer",
                         "conditionally-available": false,