diff --git a/docs/gst-hotdoc-plugins-scanner.c b/docs/gst-hotdoc-plugins-scanner.c new file mode 100644 index 0000000000..dd754ab838 --- /dev/null +++ b/docs/gst-hotdoc-plugins-scanner.c @@ -0,0 +1,763 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include "gst/gst-i18n-app.h" + +static GRegex *cleanup_caps_field = NULL; + +static gboolean +has_sometimes_template (GstElement * element) +{ + GstElementClass *klass = GST_ELEMENT_GET_CLASS (element); + GList *l; + + for (l = klass->padtemplates; l != NULL; l = l->next) { + if (GST_PAD_TEMPLATE (l->data)->presence == GST_PAD_SOMETIMES) + return TRUE; + } + + return FALSE; +} + +static gchar * +json_strescape (const gchar * str) +{ + const gchar *p; + const gchar *end; + GString *output; + gsize len; + + if (!str) + return g_strdup ("NULL"); + + len = strlen (str); + end = str + len; + output = g_string_sized_new (len); + + for (p = str; p < end; p++) { + if (*p == '\\' || *p == '"') { + g_string_append_c (output, '\\'); + g_string_append_c (output, *p); + } else if (*p == '%') { + g_string_append_c (output, '%'); + g_string_append_c (output, *p); + } else if ((*p > 0 && *p < 0x1f) || *p == 0x7f) { + switch (*p) { + case '\b': + g_string_append (output, "\\b"); + break; + case '\f': + g_string_append (output, "\\f"); + break; + case '\n': + g_string_append (output, "\\n"); + break; + case '\r': + g_string_append (output, "\\r"); + break; + case '\t': + g_string_append (output, "\\t"); + break; + default: + g_string_append_printf (output, "\\u00%02x", (guint) * p); + break; + } + } else { + g_string_append_c (output, *p); + } + } + + return g_string_free (output, FALSE); +} + +static gchar * +flags_to_string (GFlagsValue * values, guint flags) +{ + GString *s = NULL; + guint flags_left, i; + + /* first look for an exact match and count the number of values */ + for (i = 0; values[i].value_name != NULL; ++i) { + if (values[i].value == flags) + return g_strdup (values[i].value_nick); + } + + s = g_string_new (NULL); + + /* we assume the values are sorted from lowest to highest value */ + flags_left = flags; + while (i > 0) { + --i; + if (values[i].value != 0 + && (flags_left & values[i].value) == values[i].value) { + if (s->len > 0) + g_string_append_c (s, '+'); + g_string_append (s, values[i].value_nick); + flags_left -= values[i].value; + if (flags_left == 0) + break; + } + } + + if (s->len == 0) + g_string_assign (s, "(none)"); + + return g_string_free (s, FALSE); +} + + +static void +_serialize_flags (GString * json, const gchar * key_name, GType gtype, + GValue * value) +{ + GFlagsValue *values = G_FLAGS_CLASS (g_type_class_ref (gtype))->values; + + if (value) { + gchar *cur; + + cur = flags_to_string (values, g_value_get_flags (value)); + g_string_append_printf (json, ",\"default\": \"%s\",", cur); + g_free (cur); + } + + g_string_append_printf (json, "\"%s\": [", key_name); + + while (values[0].value_name) { + gchar *value_name = json_strescape (values[0].value_name); + g_string_append_printf (json, "{\"name\": \"%s\"," + "\"value\": \"0x%08x\"," + "\"desc\": \"%s\"}", values[0].value_nick, values[0].value, value_name); + ++values; + + if (values[0].value_name) + g_string_append_c (json, ','); + } + g_string_append_c (json, ']'); +} + +static void +_serialize_enum (GString * json, const gchar * key_name, GType gtype, + GValue * value) +{ + GEnumValue *values; + guint j = 0; + gint enum_value; + const gchar *value_nick = ""; + + values = G_ENUM_CLASS (g_type_class_ref (gtype))->values; + + if (value) { + enum_value = g_value_get_enum (value); + while (values[j].value_name) { + if (values[j].value == enum_value) + value_nick = values[j].value_nick; + j++; + } + g_string_append_printf (json, ",\"default\": \"%s (%d)\"," + "\"enum\": true,", value_nick, enum_value);; + } + + g_string_append_printf (json, "\"%s\": [", key_name); + + j = 0; + while (values[j].value_name) { + gchar *value_name = json_strescape (values[j].value_name); + + g_string_append_printf (json, "{\"name\": \"%s\"," + "\"value\": \"%d\"," + "\"desc\": \"%s\"}", values[j].value_nick, values[j].value, value_name); + j++; + if (values[j].value_name) + g_string_append_c (json, ','); + } + + g_string_append_c (json, ']'); +} + + +static void +_add_element_signals (GString * json, GstElement * element) +{ + gboolean opened = FALSE; + guint *signals; + guint nsignals; + gint i = 0, j, k; + GSignalQuery *query = NULL; + GType type; + GSList *found_signals, *l; + + for (k = 0; k < 2; k++) { + found_signals = NULL; + + /* For elements that have sometimes pads, also list a few useful GstElement + * signals. Put these first, so element-specific ones come later. */ + if (k == 0 && has_sometimes_template (element)) { + query = g_new0 (GSignalQuery, 1); + g_signal_query (g_signal_lookup ("pad-added", GST_TYPE_ELEMENT), query); + found_signals = g_slist_append (found_signals, query); + query = g_new0 (GSignalQuery, 1); + g_signal_query (g_signal_lookup ("pad-removed", GST_TYPE_ELEMENT), query); + found_signals = g_slist_append (found_signals, query); + query = g_new0 (GSignalQuery, 1); + g_signal_query (g_signal_lookup ("no-more-pads", GST_TYPE_ELEMENT), + query); + found_signals = g_slist_append (found_signals, query); + } + + for (type = G_OBJECT_TYPE (element); type; type = g_type_parent (type)) { + if (type == GST_TYPE_ELEMENT || type == GST_TYPE_OBJECT) + break; + + if (type == GST_TYPE_BIN && G_OBJECT_TYPE (element) != GST_TYPE_BIN) + continue; + + signals = g_signal_list_ids (type, &nsignals); + for (i = 0; i < nsignals; i++) { + query = g_new0 (GSignalQuery, 1); + g_signal_query (signals[i], query); + + if ((k == 0 && !(query->signal_flags & G_SIGNAL_ACTION)) || + (k == 1 && (query->signal_flags & G_SIGNAL_ACTION))) + found_signals = g_slist_append (found_signals, query); + else + g_free (query); + } + g_free (signals); + signals = NULL; + } + + if (!found_signals) + continue; + + for (l = found_signals; l; l = l->next) { + query = (GSignalQuery *) l->data; + + g_string_append_printf (json, + "%s\"%s\" : {" + "\"retval\": \"%s\"," + "\"args\": [", + opened ? "," : ",\"signals\": {", + query->signal_name, g_type_name (query->return_type)); + + opened = TRUE; + for (j = 0; j < query->n_params; j++) { + g_string_append_printf (json, "%s\"%s\"", + j ? "," : "", g_type_name (query->param_types[j])); + } + g_string_append_c (json, ']'); + + if (g_type_is_a (query->return_type, G_TYPE_ENUM)) { + g_string_append_c (json, ','); + _serialize_enum (json, "return-values", query->return_type, NULL); + } else if (g_type_is_a (query->return_type, G_TYPE_FLAGS)) { + g_string_append_c (json, ','); + _serialize_flags (json, "return-values", query->return_type, NULL); + } + + g_string_append_c (json, '}'); + } + + g_slist_foreach (found_signals, (GFunc) g_free, NULL); + g_slist_free (found_signals); + opened = TRUE; + } + + if (opened) + g_string_append (json, "}"); +} + +static void +_add_element_properties (GString * json, GstElement * element) +{ + gchar *tmpstr; + guint i, n_props; + gboolean opened = FALSE; + GParamSpec **specs, *spec; + GObjectClass *klass = G_OBJECT_GET_CLASS (element); + + specs = g_object_class_list_properties (klass, &n_props); + + for (i = 0; i < n_props; i++) { + GValue value = { 0, }; + spec = specs[i]; + + g_value_init (&value, spec->value_type); + if (element && ! !(spec->flags & G_PARAM_READABLE) && + !(spec->flags & GST_PARAM_DOC_SHOW_DEFAULT)) { + g_object_get_property (G_OBJECT (element), spec->name, &value); + } else { + /* if we can't read the property value, assume it's set to the default + * (which might not be entirely true for sub-classes, but that's an + * unlikely corner-case anyway) */ + g_param_value_set_default (spec, &value); + } + + if (!opened) + g_string_append (json, ",\"properties\": {"); + + tmpstr = json_strescape (g_param_spec_get_blurb (spec)); + g_string_append_printf (json, + "%s" + "\"%s\": {" + "\"construct-only\": %s," + "\"construct\": %s," + "\"writable\": %s," + "\"blurb\": \"%s\"," + "\"type-name\": \"%s\"", + opened ? "," : "", + spec->name, + spec->flags & G_PARAM_CONSTRUCT_ONLY ? "true" : "false", + spec->flags & G_PARAM_CONSTRUCT ? "true" : "false", + spec->flags & G_PARAM_WRITABLE ? "true" : "false", + tmpstr, g_type_name (G_PARAM_SPEC_VALUE_TYPE (spec))); + g_free (tmpstr); + + switch (G_VALUE_TYPE (&value)) { + case G_TYPE_STRING: + { + const char *string_val = g_value_get_string (&value); + gchar *tmpstr = json_strescape (string_val); + + g_string_append_printf (json, ",\"default\": \"%s\"", tmpstr);; + g_free (tmpstr); + break; + } + case G_TYPE_BOOLEAN: + { + gboolean bool_val = g_value_get_boolean (&value); + + g_string_append_printf (json, ",\"default\": \"%s\"", + bool_val ? "true" : "false"); + break; + } + case G_TYPE_ULONG: + { + GParamSpecULong *pulong = G_PARAM_SPEC_ULONG (spec); + + g_string_append_printf (json, + ",\"default\": \"%lu\"" + ",\"min\": \"%lu\"" + ",\"max\": \"%lu\"", + g_value_get_ulong (&value), pulong->minimum, pulong->maximum); + + GST_ERROR ("%s: property '%s' of type ulong: consider changing to " + "uint/uint64", GST_OBJECT_NAME (element), + g_param_spec_get_name (spec)); + break; + } + case G_TYPE_LONG: + { + GParamSpecLong *plong = G_PARAM_SPEC_LONG (spec); + + g_string_append_printf (json, + ",\"default\": \"%ld\"" + ",\"min\": \"%ld\"" + ",\"max\": \"%ld\"", + g_value_get_long (&value), plong->minimum, plong->maximum); + + GST_ERROR ("%s: property '%s' of type long: consider changing to " + "int/int64", GST_OBJECT_NAME (element), + g_param_spec_get_name (spec)); + break; + } + case G_TYPE_UINT: + { + GParamSpecUInt *puint = G_PARAM_SPEC_UINT (spec); + + g_string_append_printf (json, + ",\"default\": \"%d\"" + ",\"min\": \"%d\"" + ",\"max\": \"%d\"", + g_value_get_uint (&value), puint->minimum, puint->maximum); + break; + } + case G_TYPE_INT: + { + GParamSpecInt *pint = G_PARAM_SPEC_INT (spec); + + g_string_append_printf (json, + ",\"default\": \"%d\"" + ",\"min\": \"%d\"" + ",\"max\": \"%d\"", + g_value_get_int (&value), pint->minimum, pint->maximum); + break; + } + case G_TYPE_UINT64: + { + GParamSpecUInt64 *puint64 = G_PARAM_SPEC_UINT64 (spec); + + g_string_append_printf (json, + ",\"default\": \"%" G_GUINT64_FORMAT + "\",\"min\": \"%" G_GUINT64_FORMAT + "\",\"max\": \"%" G_GUINT64_FORMAT "\"", + g_value_get_uint64 (&value), puint64->minimum, puint64->maximum); + break; + } + case G_TYPE_INT64: + { + GParamSpecInt64 *pint64 = G_PARAM_SPEC_INT64 (spec); + + g_string_append_printf (json, + ",\"default\": \"%" G_GUINT64_FORMAT + "\",\"min\": \"%" G_GINT64_FORMAT + "\",\"max\": \"%" G_GINT64_FORMAT "\"", + g_value_get_int64 (&value), pint64->minimum, pint64->maximum); + break; + } + case G_TYPE_FLOAT: + { + GParamSpecFloat *pfloat = G_PARAM_SPEC_FLOAT (spec); + + g_string_append_printf (json, + ",\"default\": \"%g\"" + ",\"min\": \"%g\"" + ",\"max\": \"%g\"", + g_value_get_float (&value), pfloat->minimum, pfloat->maximum); + break; + } + case G_TYPE_DOUBLE: + { + GParamSpecDouble *pdouble = G_PARAM_SPEC_DOUBLE (spec); + + g_string_append_printf (json, + ",\"default\": \"%g\"" + ",\"min\": \"%g\"" + ",\"max\": \"%g\"", + g_value_get_double (&value), pdouble->minimum, pdouble->maximum); + break; + } + case G_TYPE_CHAR: + case G_TYPE_UCHAR: + GST_ERROR ("%s: property '%s' of type char: consider changing to " + "int/string", GST_OBJECT_NAME (element), + g_param_spec_get_name (spec)); + /* fall through */ + default: + if (spec->value_type == GST_TYPE_CAPS) { + const GstCaps *caps = gst_value_get_caps (&value); + + if (caps) { + gchar *capsstr = gst_caps_to_string (caps); + gchar *tmpcapsstr = json_strescape (capsstr); + + g_string_append_printf (json, ",\"default\": \"%s\"", tmpcapsstr); + g_free (capsstr); + g_free (tmpcapsstr); + } + } else if (G_IS_PARAM_SPEC_ENUM (spec)) { + _serialize_enum (json, "values", spec->value_type, &value); + } else if (G_IS_PARAM_SPEC_FLAGS (spec)) { + _serialize_flags (json, "values", spec->value_type, &value); + } else if (G_IS_PARAM_SPEC_BOXED (spec)) { + if (spec->value_type == GST_TYPE_STRUCTURE) { + const GstStructure *s = gst_value_get_structure (&value); + if (s) { + gchar *str = gst_structure_to_string (s); + gchar *tmpstr = json_strescape (str); + + g_string_append_printf (json, ",\"default\": \"%s\"", tmpstr); + g_free (str); + g_free (tmpstr); + } + } + } else if (GST_IS_PARAM_SPEC_FRACTION (spec)) { + GstParamSpecFraction *pfraction = GST_PARAM_SPEC_FRACTION (spec); + + g_string_append_printf (json, + ",\"default\": \"%d/%d\"" + ",\"min\": \"%d/%d\"" + ",\"max\": \"%d/%d\"", + gst_value_get_fraction_numerator (&value), + gst_value_get_fraction_denominator (&value), + pfraction->min_num, pfraction->min_den, + pfraction->max_num, pfraction->max_den); + } + break; + } + + g_string_append_c (json, '}'); + + + opened = TRUE; + } + + if (opened) + g_string_append (json, "}"); + +} + +static gboolean +print_field (GQuark field, const GValue * value, GString * jcaps) +{ + gchar *tmp, *str = gst_value_serialize (value); + + if (!g_strcmp0 (g_quark_to_string (field), "format") || + !g_strcmp0 (g_quark_to_string (field), "rate")) { + if (!cleanup_caps_field) + cleanup_caps_field = g_regex_new ("\\(string\\)|\\(rate\\)", 0, 0, NULL); + + tmp = str; + str = g_regex_replace (cleanup_caps_field, str, -1, 0, "", 0, NULL);; + g_free (tmp); + } + + g_string_append_printf (jcaps, "%15s: %s\n", g_quark_to_string (field), str); + g_free (str); + return TRUE; +} + +static gchar * +_build_caps (const GstCaps * caps) +{ + guint i; + gchar *res; + GString *jcaps = g_string_new (NULL); + + if (gst_caps_is_any (caps)) { + g_string_append (jcaps, "ANY"); + return g_string_free (jcaps, FALSE); + } + + if (gst_caps_is_empty (caps)) { + g_string_append (jcaps, "EMPTY"); + return g_string_free (jcaps, FALSE); + } + + for (i = 0; i < gst_caps_get_size (caps); i++) { + GstStructure *structure = gst_caps_get_structure (caps, i); + GstCapsFeatures *features = gst_caps_get_features (caps, i); + + if (features && (gst_caps_features_is_any (features) || + !gst_caps_features_is_equal (features, + GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) { + gchar *features_string = gst_caps_features_to_string (features); + + g_string_append_printf (jcaps, "%s%s(%s):\n", + i ? "\n" : "", gst_structure_get_name (structure), features_string); + g_free (features_string); + } else { + g_string_append_printf (jcaps, "%s:\n", + gst_structure_get_name (structure)); + } + gst_structure_foreach (structure, (GstStructureForeachFunc) print_field, + jcaps); + } + + res = json_strescape (jcaps->str); + g_string_free (jcaps, TRUE); + + return res; +} + +static void +_add_element_pad_templates (GString * json, GstElementFactory * factory) +{ + gboolean opened = FALSE; + const GList *pads; + GstStaticPadTemplate *padtemplate; + GRegex *re = g_regex_new ("%", 0, 0, NULL); + + pads = gst_element_factory_get_static_pad_templates (factory); + while (pads) { + gchar *name, *caps; + padtemplate = (GstStaticPadTemplate *) (pads->data); + pads = g_list_next (pads); + + name = g_regex_replace (re, padtemplate->name_template, + -1, 0, "%%", 0, NULL);; + caps = _build_caps (gst_static_caps_get (&padtemplate->static_caps)); + g_string_append_printf (json, "%s" + "\"%s\": {" + "\"caps\": \"%s\"," + "\"direction\": \"%s\"," + "\"presence\": \"%s\"}", + opened ? "," : ",\"pad-templates\": {", + name, caps, + padtemplate->direction == + GST_PAD_SRC ? "src" : padtemplate->direction == + GST_PAD_SINK ? "sink" : "unknown", + padtemplate->presence == + GST_PAD_ALWAYS ? "always" : padtemplate->presence == + GST_PAD_SOMETIMES ? "sometimes" : padtemplate->presence == + GST_PAD_REQUEST ? "request" : "unknown"); + opened = TRUE; + g_free (name); + } + if (opened) + g_string_append (json, "}"); + + g_regex_unref (re); +} + +static const char * +get_rank_name (char *s, gint rank) +{ + static const int ranks[4] = { + GST_RANK_NONE, GST_RANK_MARGINAL, GST_RANK_SECONDARY, GST_RANK_PRIMARY + }; + static const char *rank_names[4] = { "none", "marginal", "secondary", + "primary" + }; + int i; + int best_i; + + best_i = 0; + for (i = 0; i < 4; i++) { + if (rank == ranks[i]) + return rank_names[i]; + if (abs (rank - ranks[i]) < abs (rank - ranks[best_i])) { + best_i = i; + } + } + + sprintf (s, "%s %c %d", rank_names[best_i], + (rank - ranks[best_i] > 0) ? '+' : '-', abs (ranks[best_i] - rank)); + + return s; +} + +static void +_add_factory_details (GString * json, GstElementFactory * factory) +{ + gchar **keys, **k; + gboolean f = TRUE; + + keys = gst_element_factory_get_metadata_keys (factory); + if (keys != NULL) { + for (k = keys; *k != NULL; ++k) { + gchar *val; + gchar *key = *k; + + val = json_strescape (gst_element_factory_get_metadata (factory, key)); + g_string_append_printf (json, "%s\"%s\": \"%s\"", f ? "" : ",", key, val); + f = FALSE; + g_free (val); + } + g_strfreev (keys); + g_string_append (json, ","); + } +} + +static void +_add_element_details (GString * json, GstPluginFeature * feature) +{ + GType type; + GstElement *element = + gst_element_factory_create (GST_ELEMENT_FACTORY (feature), NULL); + char s[20]; + + g_assert (element); + + g_string_append_printf (json, + "\"%s\": {" + "\"rank\":\"%s\",", + GST_OBJECT_NAME (feature), + get_rank_name (s, gst_plugin_feature_get_rank (feature))); + + _add_factory_details (json, GST_ELEMENT_FACTORY (feature)); + + g_string_append (json, "\"hierarchy\": ["); + + for (type = G_OBJECT_TYPE (element);; type = g_type_parent (type)) { + g_string_append_printf (json, "\"%s\"%c", g_type_name (type), + type == G_TYPE_OBJECT ? ' ' : ','); + + if (type == G_TYPE_OBJECT) + break; + } + g_string_append (json, "]"); + _add_element_properties (json, element); + _add_element_signals (json, element); + _add_element_pad_templates (json, GST_ELEMENT_FACTORY (feature)); + + g_string_append (json, "}"); +} + +int +main (int argc, char *argv[]) +{ + gchar *libfile; + GError *error = NULL; + GString *json; + GstPlugin *plugin; + gboolean f = TRUE; + GList *features, *tmp; + gint i; + gboolean first = TRUE; + + g_assert (argc >= 2); + + setlocale (LC_ALL, ""); + setlocale (LC_NUMERIC, "C"); + +#ifdef ENABLE_NLS + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + g_setenv ("GST_REGISTRY_FORK", "no", TRUE); + gst_init (NULL, NULL); + + json = g_string_new ("{"); + for (i = 1; i < argc; i++) { + gchar *basename; + libfile = argv[i]; + plugin = gst_plugin_load_file (libfile, &error); + if (!plugin) { + g_printerr ("%s could not be loaded as a GstPlugin: %s", libfile, + error->message ? error->message : "no known reasons"); + g_clear_error (&error); + + continue; + } + + basename = g_filename_display_basename (libfile); + g_string_append_printf (json, + "%s\"%s\": {" + "\"description\":\"%s\"," + "\"filename\":\"%s\"," + "\"source\":\"%s\"," + "\"package\":\"%s\"," + "\"license\":\"%s\"," + "\"url\":\"%s\"," + "\"elements\":{", + first ? "" : ",", + gst_plugin_get_name (plugin), + gst_plugin_get_description (plugin), + basename, + gst_plugin_get_source (plugin), + gst_plugin_get_package (plugin), + gst_plugin_get_license (plugin), gst_plugin_get_origin (plugin)); + g_free (basename); + first = FALSE; + + features = + gst_registry_get_feature_list_by_plugin (gst_registry_get (), + gst_plugin_get_name (plugin)); + + f = TRUE; + for (tmp = features; tmp; tmp = tmp->next) { + GstPluginFeature *feature = tmp->data; + if (GST_IS_ELEMENT_FACTORY (feature)) { + + if (!f) + g_string_append_printf (json, ","); + f = FALSE; + _add_element_details (json, feature); + } + } + g_string_append (json, "}}"); + } + + g_string_append_c (json, '}'); + g_print ("%s", json->str); + + return 0; +} diff --git a/docs/gst-plugins-doc-cache-generator.py b/docs/gst-plugins-doc-cache-generator.py new file mode 100755 index 0000000000..ca389fee80 --- /dev/null +++ b/docs/gst-plugins-doc-cache-generator.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright © 2018 Thibault Saunier +# +# This library is free software; you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 2.1 of the License, or (at your option) +# any later version. +# +# This library is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library. If not, see . + +import argparse +import json +import os +import sys +import subprocess + +from collections import OrderedDict +try: + from collections.abc import Mapping +except ImportError: # python <3.3 + from collections import Mapping + + +# Marks values in the json file as "unstable" so that they are +# not updated automatically, this aims at making the cache file +# stable and handle corner cases were we can't automatically +# make it happen. For properties, the best way is to use th +# GST_PARAM_DOC_SHOW_DEFAULT flag. +UNSTABLE_VALUE = "unstable-values" + + +def dict_recursive_update(d, u): + unstable_values = d.get(UNSTABLE_VALUE, []) + if not isinstance(unstable_values, list): + unstable_values = [unstable_values] + for k, v in u.items(): + if isinstance(v, Mapping): + r = dict_recursive_update(d.get(k, {}), v) + d[k] = r + elif k not in unstable_values: + d[k] = u[k] + return d + + +def test_unstable_values(): + current_cache = { "v1": "yes", "unstable-values": "v1"} + new_cache = { "v1": "no" } + + assert(dict_recursive_update(current_cache, new_cache) == current_cache) + + new_cache = { "v1": "no", "unstable-values": "v2" } + assert(dict_recursive_update(current_cache, new_cache) == new_cache) + + current_cache = { "v1": "yes", "v2": "yay", "unstable-values": "v1",} + new_cache = { "v1": "no" } + assert(dict_recursive_update(current_cache, new_cache) == current_cache) + + current_cache = { "v1": "yes", "v2": "yay", "unstable-values": "v2"} + new_cache = { "v1": "no", "v2": "unstable" } + assert(dict_recursive_update(current_cache, new_cache) == { "v1": "no", "v2": "yay", "unstable-values": "v2" }) + +if __name__ == "__main__": + cache_filename = sys.argv[1] + output_filename = sys.argv[2] + + subenv = os.environ.copy() + cache = {} + try: + with open(cache_filename) as f: + cache = json.load(f) + except FileNotFoundError: + pass + + cmd = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'gst-hotdoc-plugins-scanner')] + gst_plugins_paths = [] + for plugin_path in sys.argv[3:]: + cmd.append(plugin_path) + gst_plugins_paths.append(os.path.dirname(plugin_path)) + + if subenv.get('GST_REGISTRY_UPDATE') != 'no' and len(cmd) >= 2: + data = subprocess.check_output(cmd, env=subenv) + try: + plugins = json.loads(data.decode(), object_pairs_hook=OrderedDict) + except json.decoder.JSONDecodeError: + print("Could not decode:\n%s" % data.decode(), file=sys.stderr) + raise + + new_cache = dict_recursive_update(cache, plugins) + + with open(output_filename, 'w') as f: + json.dump(cache, f, indent=4, sort_keys=True) + + if new_cache != cache: + with open(cache_filename, 'w') as f: + json.dump(cache, f, indent=4, sort_keys=True) \ No newline at end of file diff --git a/docs/gst/building.md b/docs/gst/building.md new file mode 100644 index 0000000000..c1239e5e70 --- /dev/null +++ b/docs/gst/building.md @@ -0,0 +1,44 @@ +--- +title: Building GStreamer and GStreamer Applications +short-description: How to build the GStreamer framework and applications using it. +... + +# Building GStreamer on UNIX + +On UNIX, GStreamer uses the standard GNU build system, using autoconf +for package configuration and resolving portability issues, automake for +building makefiles that comply with the GNU Coding Standards, and +libtool for building shared libraries on multiple platforms. The normal +sequence for compiling and installing the GStreamer library is thus: +`./configure` `make` `make install` + +The standard options provided by GNU autoconf may be passed to the +`configure` script. Please see the autoconf documentation or run +`./configure --help` for information about the standard options. + +In addition there are several options to activate or deactivate +features. E.g. passing `--disable-gst-debug` to `configure` will turn +the debugging subsystem into a non-functional stub and remove all macro +based invocations from within the library (and anything compiled against +the library afterwards.) + +If library size matters and one builds in a controlled environment, it +is also possible to totally remove subsystem code. This is intentionally +not offered as a configure option as it causes an ABI break. Code built +against a version of GStreamer without these modifications needs to be +recompiled. +`make CFLAGS="-DGST_REMOVE_DEPRECATED -DGST_REMOVE_DISABLED"` + +- `GST_REMOVE_DEPRECATED` - Omit deprecated functions from the + library. + +- `GST_REMOVE_DISABLED` - Omit stubs for disabled subsystems from the + library. + +# Building GStreamer Applications + +Applications and libraries can use `pkg-config` to get all the needed +compiler and linker flags to build against GStreamer. Please note that +GStreamer is split into several libraries itself. +`pkg-config --list-all | grep gstreamer` will list the available +libraries. diff --git a/docs/gst/gi-index.md b/docs/gst/gi-index.md new file mode 100644 index 0000000000..5d0b7e981e --- /dev/null +++ b/docs/gst/gi-index.md @@ -0,0 +1,6 @@ +# Core Library + +libgstreamer-{{ gst_api_version.md }}.so provides all the core GStreamer +services, including initialization, plugin management and types, as well +as the object hierarchy that defines elements and bins, along with some +more specialized elements. diff --git a/docs/gst/index.md b/docs/gst/index.md new file mode 100644 index 0000000000..5d0b7e981e --- /dev/null +++ b/docs/gst/index.md @@ -0,0 +1,6 @@ +# Core Library + +libgstreamer-{{ gst_api_version.md }}.so provides all the core GStreamer +services, including initialization, plugin management and types, as well +as the object hierarchy that defines elements and bins, along with some +more specialized elements. diff --git a/docs/gst/overview.md b/docs/gst/overview.md new file mode 100644 index 0000000000..5db57daaa6 --- /dev/null +++ b/docs/gst/overview.md @@ -0,0 +1,14 @@ +--- +title: GStreamer Overview +short-description: A simple overview of the GStreamer framework +... + +# GStreamer Overview + +GStreamer is a streaming media framework. It uses graphs of elements which operate on data. The functionality to process media is provided by plug-ins which provide features like elements, typefinding, and so on. This allows new functionality to be added simply by installing new plug-ins. + +GStreamer is cross-platform and works on most UNIX-like platforms as well as Windows. It is released under the GNU Library General Public License (GNU LGPL). + +Relation between gstreamer core objects: + +![GStreamer universe](images/gst-universe.svg) \ No newline at end of file diff --git a/docs/gst/running.md b/docs/gst/running.md new file mode 100644 index 0000000000..f057c6e830 --- /dev/null +++ b/docs/gst/running.md @@ -0,0 +1,314 @@ +--- +title: Running GStreamer Applications +short-description: How to run and debug your GStreamer application +... + +# Running and debugging GStreamer Applications + +## Environment variables + +GStreamer inspects a few of environment variables in addition to +standard variables like LANG, PATH or HOME. + +**`GST_PLUGIN_SYSTEM_PATH`, `GST_PLUGIN_SYSTEM_PATH_1_0`.** + +This environment variable can be set to a colon-separated list of paths +(or semicolon-separated list on Windows). If this variable is not set, +GStreamer will fill in this list for you with + +- plug-ins in the user's home directory, or rather the user's "data + home" directory according to the xdg base dir specification. + Usually this will be a directory called `plugins` inside the + `.local/share/gstreamer-GST_API_VERSION` directory in the user's + home directory by default, though this search path may change if the + XDG_DATA_HOME environment variable is set. + +- plug-ins installed system-wide. On this system, they are stored in + ``. + +GStreamer will scan these paths for GStreamer plug-ins. These plug-ins +will be loaded after the plug-ins in the GST_PLUGIN_PATH variable +below. The paths are scanned in the given order. This allows a user to +override system-installed plug-ins with his own versions. + +The GST_PLUGIN_SYSTEM_PATH_1_0 variant is useful if both the old +GStreamer 0.10 version and the new GStreamer 1.0 version need to be +pointed to new plugin paths. The latter will use the _1_0 variant over +the non-versioned one if it is set. + +Setting this variable to an empty string will cause GStreamer not to +scan any system paths at all for plug-ins. This can be useful if you're +running uninstalled (for development purposes) or while running +testsuites. + +**`GST_PLUGIN_PATH`, `GST_PLUGIN_PATH_1_0`.** + +This environment variable can be set to a colon-separated list of paths +(or a semicolon-separated list on Windows). GStreamer will scan these +paths for GStreamer plug-ins. These plug-ins will be loaded in addition +to, and before, the plug-ins in the system paths. + +The GST_PLUGIN_PATH_1_0 variant is useful if both the old GStreamer +0.10 version and the new GStreamer 1.0 version need to be pointed to new +plugin paths. The latter will use the `_1_0` variant over the +non-versioned one if it is set. + +**`GST_DEBUG.`** + +If GStreamer has been configured with `--enable-gst-debug=yes`, this +variable can be set to a list of debug options, which cause GStreamer to +print out different types of debugging information to stderr. + +The variable takes a comma-separated list of `category_name:level` +pairs to set specific levels for the individual categories. The level +value ranges from 0 (nothing) to 9 (MEMDUMP). + +1 - `ERROR` + +: Logs all fatal errors. These are errors that do not allow the core + or elements to perform the requested action. The application can + still recover if programmed to handle the conditions that triggered + the error. + +2 - `WARNING` + +: Logs all warnings. Typically these are non-fatal, but user-visible + problems are expected to happen. + +3 - `FIXME` + +: Logs all fixme messages. Fixme messages are messages that indicate + that something in the executed code path is not fully implemented or + handled yet. The purpose of this message is to make it easier to + spot incomplete/unfinished pieces of code when reading the debug + log. + +4 - `INFO` + +: Logs all informational messages. These are typically used for events + in the system that only happen once, or are important and rare + enough to be logged at this level. + +5 - `DEBUG` + +: Logs all debug messages. These are general debug messages for events + that happen only a limited number of times during an object's + lifetime; these include setup, teardown, change of parameters, ... + +6 - `LOG` + +: Logs all log messages. These are messages for events that happen + repeatedly during an object's lifetime; these include streaming and + steady-state conditions. + +7 - `TRACE` + +: Logs all trace messages. These messages for events that happen + repeatedly during an object's lifetime such as the ref/unref + cycles. + +9 - `MEMDUMP` + +: Log all memory dump messages. Memory dump messages are used to log + (small) chunks of data as memory dumps in the log. They will be + displayed as hexdump with ASCII characters. + +The category_name can contain "`*"` as a wildcard. + +For example, setting `GST_DEBUG` to `GST_AUTOPLUG:6,GST_ELEMENT_*:4`, +will cause the `GST_AUTOPLUG` category to be logged at full `LOG` level, +while all categories starting with `GST_ELEMENT_` will be logged at +`INFO` level. + +To get all possible debug output, set `GST_DEBUG` to `*:9`. For debugging +purposes a `*:6` debug log is usually the most useful, as it contains +all important information, but hides a lot of noise such as refs/unrefs. +For bug reporting purposes, a `*:6` log is also what will be requested +usually. It's often also worth running with `*:3` to see if there are +any non-fatal errors or warnings that might be related to the problem at +hand. + +Since GStreamer 1.2 it is also possible to specify debug levels by name, +e.g. `GST_DEBUG=*:WARNING,*audio*:LOG` + +**`GST_DEBUG_NO_COLOR.*`* + +Set this environment variable to any value ("1" typically) to switch +off colouring in `GST_DEBUG` output. This has the same effect as +specifying the `--gst-debug-no-color` or `--gst-debug-color-mode`=off +command line option to well-behaved GStreamer applications (ie. those +that pass command-line options correctly to GStreamer). This is +particularly useful to reduce the size of debug output and also allows +for the output to be compressed much better than with colours turned on. + +Has the same effect as setting `GST_DEBUG_COLOR_MODE` environment +variable to "off". + +**`GST_DEBUG_COLOR_MODE.`** + +Set this environment variable to change log colouring in `GST_DEBUG` output. +Possible values: + +`on`: Enables debug log output coloring. Uses default coloring method for +current platform. This is the default. + +`off`: Disables debug log output coloring. This has the same effect as +specifying the `--gst-debug-color-mode=off` command line option to well-behaved +GStreamer applications (ie. those that pass command-line options correctly to +GStreamer). This is particularly useful to reduce the size of debug output and +also allows for the output to be compressed much better than with colours turned +on. Has the same effect as setting `GST_DEBUG_NO_COLOR` environment variable to +any value. + +`auto`: Same as `on`. + +`disable`: Same as `off`. + +`unix`: Enables debug log output coloring and forces the use of UNIX termial +codes for coloring, even if this method is not normally used on current +platform. This has the same effect as specifying the +`--gst-debug-color-mode=unix` command line option to well-behaved GStreamer +applications (ie. those that pass command-line options correctly to GStreamer). +This is particularly useful to dump debug output into a file on non-UNIX +platforms to be sent to developers who have viewers that support UNIX terminal +codes. + +**`GST_DEBUG_OPTIONS.`** + +This environment variable can be used to tweak the behaviour of the +debugging system. Currently the only options supported are +"pretty-tags" and "full-tags". In "pretty-tags" mode (the +default), taglists in the debug log will be serialized so that only the +first few and last few bytes of a buffer-type tag will be serialized +into the log, to avoid dumping hundreds of lines of useless output into +the log in case of large image tags and the like. + +**`GST_DEBUG_DUMP_DOT_DIR.`** + +Set this environment variable to a path to turn on all +`GST_DEBUG_BIN_TO_DOT_FILE` or `GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS` calls and +have the dot files in that location. + +This will only work if the application in question makes these calls in +strategic places (like when the pipeline state changes or an error +occurs). `gst-launch-1,0` is one such application. + +When `gst-launch-1.0` changes state through NULL to PLAYING +and back to NULL, a dot file is generated on each state change. To have +`gst-launch-1.0` write a snapshot of the pipeline state, +send a SIGHUP to the `gst-launch-1.0` process. + +These .dot files can then be turned into images using the 'dot' +utility from the graphviz set of tools, like this: +`dot foo.dot -Tsvg -o foo.svg` or `dot foo.dot -Tpng -o foo.png` or +`dot foo.dot -Tjpg -o foo.jpg`. + +There is also a utility called `xdot` which allows you to view the dot +file directly without converting it first. + +**`GST_REGISTRY`, `GST_REGISTRY_1_0`.** + +Set this environment variable to make GStreamer use a different file for +the plugin cache / registry than the default one. This is useful when +operating in a separate environment which should not affect the default +cache in the user's home directory. + +**`GST_REGISTRY_FORK`.** + +Set this environment variable to "no" to prevent GStreamer from +forking on startup in order to update the plugin registry. This is +useful for debugging purposes, but should not be used under normal +circumstances, since it means that plugins may be loaded into memory +even if they are not needed by the application. + +**`GST_REGISTRY_UPDATE`.** + +Set this environment variable to "no" to prevent GStreamer from +updating the plugin registry. This is useful for embedded device which +is not updating the plugins frequently, it will save time when doing +`gst_init()`. + +**GST_TRACE.** + +Enable memory allocation tracing. Most GStreamer objects have support +for tracing the number of unfreed objects and their memory pointers. + +The variable takes a comma-separated list of tracing options to enable. + +live + +: Counts all live objects and dumps an overview of the number of + unfreed objects at program exit. + +mem-live + +: Keep track of the unfreed memory pointers and dump an overview of + all unfreed memory at program exit. Together with a level 9 debug + log this can be used to follow the lifecycle of leaked objects in + order to track down where they are leaked. This can be useful for + debugging memory leaks in situations where tools such as valgrind + are not available, or not an option. + +Use `all` to enable all tracing flags. + +**`GST_DEBUG_FILE`.** + +Set this variable to a file path to redirect all GStreamer debug +messages to this file. If left unset, debug messages with be output unto +the standard error. + +**`ORC_CODE`.** + +Useful Orc environment variable. Set `ORC_CODE=debug` to enable debuggers +such as gdb to create useful backtraces from Orc-generated code. Set +`ORC_CODE=backup` or `ORC_CODE=emulate` if you suspect Orc's SIMD code +generator is producing incorrect code (Quite a few important GStreamer +plugins like videotestsrc, audioconvert or audioresample use Orc). One +can also combine flags like `ORC_CODE=backup,debug`. + +**`G_DEBUG`.** + +Useful GLib environment variable. Set `G_DEBUG=fatal_warnings` to make +GStreamer programs abort when a critical warning such as an assertion +failure occurs. This is useful if you want to find out which part of the +code caused that warning to be triggered and under what circumstances. +Simply set `G_DEBUG` as mentioned above and run the program in gdb (or +let it core dump). Then get a stack trace in the usual way. + +**`G_SLICE`.** + +Useful GLib environment variable. Set `G_SLICE=always-malloc` when +running GStreamer programs in valgrind, or debugging memory leaks with +other tools. See the GLib API reference for more details. + +**`GST_TAG_ENCODING`.** + +Try this character encoding first for tag-related strings where the +encoding is not defined and which are not UTF-8 already. By default the +current locale will be tried (if not UTF-8). + +**`GST_TAG_ID3_ENCODING`.** + +Try this character encoding first for ID3 tag-related strings where the +encoding is not defined and which are not UTF-8 already. By default the +current locale will be tried (if not UTF-8). + +**`GST_TAG_ID3V1_ENCODING`.** + +Try this character encoding first for ID3v1 tag-related strings where +the encoding does not look like UTF-8. + +**`GST_GL_WINDOW`.** + +Influences the window system to use by the GStreamer OpenGL library. +Common values are 'x11', 'wayland', 'win32' or 'cocoa'. + +**`GST_GL_PLATFORM`.** + +Influences the OpenGL platform to use by the GStreamer OpenGL library. +Common values are 'egl', 'glx', 'wgl' or 'cgl'. + +**`GST_GL_API`.** + +Influences the OpenGL API requested by the OpenGL platform. Common +values are 'opengl' or 'gles2'. diff --git a/docs/gst/sitemap.txt b/docs/gst/sitemap.txt new file mode 100644 index 0000000000..39558a3aef --- /dev/null +++ b/docs/gst/sitemap.txt @@ -0,0 +1,3 @@ +gi-index + running.md + gst.h diff --git a/docs/images/gdp-header.png b/docs/images/gdp-header.png new file mode 100644 index 0000000000..d7d08f6e6f Binary files /dev/null and b/docs/images/gdp-header.png differ diff --git a/docs/images/gdp-header.svg b/docs/images/gdp-header.svg deleted file mode 100644 index 9b88231fe8..0000000000 --- a/docs/images/gdp-header.svg +++ /dev/null @@ -1,906 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - Version - - - - - Flags - - - - - - - - - Payload type - - - - - Payload length - - - - - - - - - - Timestamp - - - - - Duration - - - - - - - - - Offset - - - - - Offset end - - - - - - - - - - - - - - - - - Buffer flags - - - - - ABI - - - - - ABI - - - - - ABI - - - - - CRC header - - - - - CRC payload - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GStreamerData Protocol - - diff --git a/docs/images/gst-universe.svg b/docs/images/gst-universe.svg new file mode 100644 index 0000000000..dec85ea358 --- /dev/null +++ b/docs/images/gst-universe.svg @@ -0,0 +1,354 @@ + + + + + + +pipeline + + + +application + +application + + + +bus + + +bus + + + + + +application->bus + + +listen on + + + +event + + +event + + + + + +application->event + + +send + + + +pipeline + + +pipeline + + + + + +application->pipeline + + +has + + + +query + + +query + + + + + +application->query + + +send + + + +bin + + +bin + + + + + +element + + +element + + + + + +bin->element + + +is-a + + + +bin->element + + +has n + + + +message + + +message + + + + + +bus->message + + +receive + + + +buffer + + +buffer + + + + + +caps + + +caps + + + + + +buffer->caps + + +has n + + + +structure + + +structure + + + + + +caps->structure + + +has n + + + +clock + + +clock + + + + + +element->buffer + + +send & receive + + + +element->clock + + +may provide + + + +element_factory + + +element factory + + + + + +element->element_factory + + +is created from + + + +element->event + + +send & receive + + + +element->message + + +send + + + +pad + + +pad + + + + + +element->pad + + +has n + + + +pad_template + + +pad template + + + + + +element->pad_template + + +has n + + + +element->query + + +answers + + + +plugin_feature + + +plugin feature + + + + + +element_factory->plugin_feature + + +is-a + + + +pad->caps + + +has n + + + +pad->pad_template + + +is created from + + + +pad_template->caps + + +has n + + + +pipeline->bin + + +is-a + + + +pipeline->bus + + +has 1 + + + +pipeline->clock + + +has 1 + + + +plugin + + +plugin + + + + + +plugin->plugin_feature + + +has n + + + +registry + + +registry + + + + + +registry->plugin + + +has n + + + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..8240c79029 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,336 @@ +--- +short-description: GStreamer core API reference. +... + +# GStreamer Core + +GStreamer is a streaming media framework. It uses graphs of elements +which operate on data. The functionality to process media is provided by +plug-ins which provide features like elements, typefinding, and so on. +This allows new functionality to be added simply by installing new +plug-ins. + +GStreamer is cross-platform and works on most UNIX-like platforms as +well as Windows. It is released under the GNU Library General Public +License (GNU LGPL). + +![ Relation between gstreamer core objects. ] + + [ Relation between gstreamer core objects. ]: images/gst-universe.svg + +## Building on UNIX + +On UNIX, GStreamer uses the standard GNU build system, using autoconf +for package configuration and resolving portability issues, automake for +building makefiles that comply with the GNU Coding Standards, and +libtool for building shared libraries on multiple platforms. The normal +sequence for compiling and installing the GStreamer library is thus: +`./configure` `make` `make install` + +The standard options provided by GNU autoconf may be passed to the +`configure` script. Please see the autoconf documentation or run +`./configure --help` for information about the standard options. + +In addition there are several options to activate or deactivate +features. E.g. passing `--disable-gst-debug` to `configure` will turn +the debugging subsystem into a non-functional stub and remove all macro +based invocations from within the library (and anything compiled against +the library afterwards.) + +If library size matters and one builds in a controlled environment, it +is also possible to totally remove subsystem code. This is intentionally +not offered as a configure option as it causes an ABI break. Code built +against a version of GStreamer without these modifications needs to be +recompiled. + +`make CFLAGS="-DGST_REMOVE_DEPRECATED -DGST_REMOVE_DISABLED"` + +- `GST_REMOVE_DEPRECATED` - Omit deprecated functions from the + library. + +- `GST_REMOVE_DISABLED` - Omit stubs for disabled subsystems from the + library. + +## Building GStreamer Applications + +Applications and libraries can use `pkg-config` to get all the needed +compiler and linker flags to build against GStreamer. Please note that +GStreamer is split into several libraries itself. +`pkg-config --list-all | grep gstreamer` will list the available +libraries. + +## Running and debugging GStreamer Applications + +### Environment variables + +GStreamer inspects a few of environment variables in addition to +standard variables like LANG, PATH or HOME. + +**GST_PLUGIN_SYSTEM_PATH, GST_PLUGIN_SYSTEM_PATH_1_0.** + +This environment variable can be set to a colon-separated list of paths +(or semicolon-separated list on Windows). If this variable is not set, +GStreamer will fill in this list for you with + +- plug-ins in the user's home directory, or rather the user's "data + home" directory according to the xdg base dir specification. Usually + this will be a directory called `plugins` inside the + `.local/share/gstreamer-GST_API_VERSION` directory in the user's + home directory by default, though this search path may change if the + XDG_DATA_HOME environment variable is set. + +- plug-ins installed system-wide. On this system, they are stored in + `GST_PLUGINS_DIR`. + +GStreamer will scan these paths for GStreamer plug-ins. These plug-ins +will be loaded after the plug-ins in the GST_PLUGIN_PATH variable +below. The paths are scanned in the given order. This allows a user to +override system-installed plug-ins with his own versions. + +The GST_PLUGIN_SYSTEM_PATH_1_0 variant is useful if both the old +GStreamer 0.10 version and the new GStreamer 1.0 version need to be +pointed to new plugin paths. The latter will use the _1_0 variant over +the non-versioned one if it is set. + +Setting this variable to an empty string will cause GStreamer not to +scan any system paths at all for plug-ins. This can be useful if you're +running uninstalled (for development purposes) or while running +testsuites. + +**GST_PLUGIN_PATH, GST_PLUGIN_PATH_1_0.** + +This environment variable can be set to a colon-separated list of paths +(or a semicolon-separated list on Windows). GStreamer will scan these +paths for GStreamer plug-ins. These plug-ins will be loaded in addition +to, and before, the plug-ins in the system paths. + +The GST_PLUGIN_PATH_1_0 variant is useful if both the old GStreamer +0.10 version and the new GStreamer 1.0 version need to be pointed to new +plugin paths. The latter will use the _1_0 variant over the +non-versioned one if it is set. + +**GST_DEBUG.** + +If GStreamer has been configured with `--enable-gst-debug=yes`, this +variable can be set to a list of debug options, which cause GStreamer to +print out different types of debugging information to stderr. + +The variable takes a comma-separated list of "category_name:level" +pairs to set specific levels for the individual categories. The level +value ranges from 0 (nothing) to 9 (MEMDUMP). + +* 1 - `ERROR`: Logs all fatal errors. These are errors that do not allow the core + or elements to perform the requested action. The application can + still recover if programmed to handle the conditions that triggered + the error. +* 2 - `WARNING`: Logs all warnings. Typically these are non-fatal, but user-visible + problems are expected to happen. +* 3 - `FIXME`: Logs all fixme messages. Fixme messages are messages that indicate + that something in the executed code path is not fully implemented or + handled yet. The purpose of this message is to make it easier to + spot incomplete/unfinished pieces of code when reading the debug + log. +* 4 - `INFO`: Logs all informational messages. These are typically used for events + in the system that only happen once, or are important and rare + enough to be logged at this level. +* 5 - `DEBUG`: Logs all debug messages. These are general debug messages for events + that happen only a limited number of times during an object's + lifetime; these include setup, teardown, change of parameters, ... +* 6 - `LOG`: Logs all log messages. These are messages for events that happen + repeatedly during an object's lifetime; these include streaming and + steady-state conditions. +* 7 - `TRACE`: Logs all trace messages. These messages for events that happen + repeatedly during an object's lifetime such as the ref/unref cycles. +* 9 - `MEMDUMP`: Log all memory dump messages. Memory dump messages are used to log + (small) chunks of data as memory dumps in the log. They will be + displayed as hexdump with ASCII characters. + +The category_name can contain "`*"` as a wildcard. + +For example, setting GST_DEBUG to `GST_AUTOPLUG:6,GST_ELEMENT_*:4`, +will cause the `GST_AUTOPLUG` category to be logged at full `LOG` level, +while all categories starting with `GST_ELEMENT_` will be logged at +`INFO` level. + +To get all possible debug output, set GST_DEBUG to `*:9`. For debugging +purposes a `*:6` debug log is usually the most useful, as it contains +all important information, but hides a lot of noise such as refs/unrefs. +For bug reporting purposes, a `*:6` log is also what will be requested +usually. It's often also worth running with `*:3` to see if there are +any non-fatal errors or warnings that might be related to the problem at +hand. + +Since GStreamer 1.2 it is also possible to specify debug levels by name, +e.g. GST_DEBUG=*:WARNING,*audio*:LOG + +**GST_DEBUG_NO_COLOR.** + +Set this environment variable to any value ("1" typically) to switch off +colouring in GST_DEBUG output. This has the same effect as specifying +the `--gst-debug-no-color` or `--gst-debug-color-mode`=off command line +option to well-behaved GStreamer applications (ie. those that pass +command-line options correctly to GStreamer). This is particularly +useful to reduce the size of debug output and also allows for the output +to be compressed much better than with colours turned on. + +Has the same effect as setting GST_DEBUG_COLOR_MODE environment +variable to "off". + +**GST_DEBUG_COLOR_MODE.** + +Set this environment variable to change log colouring in GST_DEBUG +output. Possible values: + +* `on`: Enables debug log output coloring. Uses default coloring method for + current platform. This is the default. +* `off`: Disables debug log output coloring. This has the same effect as + specifying the `--gst-debug-color-mode`=off command line option to + well-behaved GStreamer applications (ie. those that pass + command-line options correctly to GStreamer). This is particularly + useful to reduce the size of debug output and also allows for the + output to be compressed much better than with colours turned on. + + Has the same effect as setting GST_DEBUG_NO_COLOR environment + variable to any value. +* `auto`: Same as `on`. +* `disable`: Same as `off`. +* `unix`: Enables debug log output coloring and forces the use of UNIX termial + codes for coloring, even if this method is not normally used on + current platform. This has the same effect as specifying the + `--gst-debug-color-mode`=unix command line option to well-behaved + GStreamer applications (ie. those that pass command-line options + correctly to GStreamer). This is particularly useful to dump debug + output into a file on non-UNIX platforms to be sent to developers + who have viewers that support UNIX terminal codes. + +**GST_DEBUG_OPTIONS.** + +This environment variable can be used to tweak the behaviour of the +debugging system. Currently the only options supported are "pretty-tags" +and "full-tags". In "pretty-tags" mode (the default), taglists in the +debug log will be serialized so that only the first few and last few +bytes of a buffer-type tag will be serialized into the log, to avoid +dumping hundreds of lines of useless output into the log in case of +large image tags and the like. + +**GST_DEBUG_DUMP_DOT_DIR.** + +Set this environment variable to a path to turn on all +#GST_DEBUG_BIN_TO_DOT_FILE or +#GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS calls and have the dot files +in that location. + +This will only work if the application in question makes these calls in +strategic places (like when the pipeline state changes or an error +occurs). gst-launch-GST_API_VERSION is one such application. + +These .dot files can then be turned into images using the 'dot' utility +from the graphviz set of tools, like this: +`dot foo.dot -Tsvg -o foo.svg` or `dot foo.dot -Tpng -o foo.png` or +`dot foo.dot -Tjpg -o foo.jpg`. + +There is also a utility called `xdot` which allows you to view the dot +file directly without converting it first. + +**GST_REGISTRY, GST_REGISTRY_1_0.** + +Set this environment variable to make GStreamer use a different file for +the plugin cache / registry than the default one. This is useful when +operating in a separate environment which should not affect the default +cache in the user's home directory. + +**GST_REGISTRY_FORK.** + +Set this environment variable to "no" to prevent GStreamer from forking +on startup in order to update the plugin registry. This is useful for +debugging purposes, but should not be used under normal circumstances, +since it means that plugins may be loaded into memory even if they are +not needed by the application. + +**GST_REGISTRY_UPDATE.** + +Set this environment variable to "no" to prevent GStreamer from updating +the plugin registry. This is useful for embedded device which is not +updating the plugins frequently, it will save time when doing +gst_init(). + +**GST_TRACE.** + +Enable memory allocation tracing. Most GStreamer objects have support +for tracing the number of unfreed objects and their memory pointers. + +The variable takes a comma-separated list of tracing options to enable. + +* live: Counts all live objects and dumps an overview of the number of + unfreed objects at program exit. + +* mem-live: Keep track of the unfreed memory pointers and dump an overview of + all unfreed memory at program exit. Together with a level 9 debug + log this can be used to follow the lifecycle of leaked objects in + order to track down where they are leaked. This can be useful for + debugging memory leaks in situations where tools such as valgrind + are not available, or not an option. + +Use `all` to enable all tracing flags. + +**GST_DEBUG_FILE.** + +Set this variable to a file path to redirect all GStreamer debug +messages to this file. If left unset, debug messages with be output unto +the standard error. + +**ORC_CODE.** + +Useful Orc environment variable. Set ORC_CODE=debug to enable debuggers +such as gdb to create useful backtraces from Orc-generated code. Set +ORC_CODE=backup or ORC_CODE=emulate if you suspect Orc's SIMD code +generator is producing incorrect code (Quite a few important GStreamer +plugins like videotestsrc, audioconvert or audioresample use Orc). One +can also combine flags like ORC_CODE=backup,debug. + +**G_DEBUG.** + +Useful GLib environment variable. Set G_DEBUG=fatal_warnings to make +GStreamer programs abort when a critical warning such as an assertion +failure occurs. This is useful if you want to find out which part of the +code caused that warning to be triggered and under what circumstances. +Simply set G_DEBUG as mentioned above and run the program in gdb (or +let it core dump). Then get a stack trace in the usual way. + +**G_SLICE.** + +Useful GLib environment variable. Set G_SLICE=always-malloc when +running GStreamer programs in valgrind, or debugging memory leaks with +other tools. See the GLib API reference for more details. + +**GST_TAG_ENCODING.** + +Try this character encoding first for tag-related strings where the +encoding is not defined and which are not UTF-8 already. By default the +current locale will be tried (if not UTF-8). + +**GST_TAG_ID3_ENCODING.** + +Try this character encoding first for ID3 tag-related strings where the +encoding is not defined and which are not UTF-8 already. By default the +current locale will be tried (if not UTF-8). + +**GST_TAG_ID3V1_ENCODING.** + +Try this character encoding first for ID3v1 tag-related strings where +the encoding does not look like UTF-8. + +**GST_GL_WINDOW.** + +Influences the window system to use by the GStreamer OpenGL library. +Common values are 'x11', 'wayland', 'win32' or 'cocoa'. + +**GST_GL_PLATFORM.** + +Influences the OpenGL platform to use by the GStreamer OpenGL library. +Common values are 'egl', 'glx', 'wgl' or 'cgl'. + +**GST_GL_API.** + +Influences the OpenGL API requested by the OpenGL platform. Common +values are 'opengl' or 'gles2'. diff --git a/docs/libs/base/index.md b/docs/libs/base/index.md new file mode 100644 index 0000000000..055131a317 --- /dev/null +++ b/docs/libs/base/index.md @@ -0,0 +1,3 @@ +# Base and Utility classes + +`gstreamer-base` provides some base classes to be extended by elements and utility classes that are most useful for plugin developers. diff --git a/docs/libs/base/sitemap.txt b/docs/libs/base/sitemap.txt new file mode 100644 index 0000000000..bc77407e1a --- /dev/null +++ b/docs/libs/base/sitemap.txt @@ -0,0 +1,4 @@ +gi-index + gstbitreader.h + gstbytereader.h + gstbytewriter.h diff --git a/docs/libs/check/index.md b/docs/libs/check/index.md new file mode 100644 index 0000000000..ee80e226e1 --- /dev/null +++ b/docs/libs/check/index.md @@ -0,0 +1,3 @@ +# Check Unit Testing + +`gstreamer-check` provides functionality for writing unit tests that use the check framework. diff --git a/docs/libs/check/sitemap.txt b/docs/libs/check/sitemap.txt new file mode 100644 index 0000000000..1aeae9b8f0 --- /dev/null +++ b/docs/libs/check/sitemap.txt @@ -0,0 +1,2 @@ +gi-index + gstcheck.h diff --git a/docs/libs/controller/index.md b/docs/libs/controller/index.md new file mode 100644 index 0000000000..808bcb617c --- /dev/null +++ b/docs/libs/controller/index.md @@ -0,0 +1,3 @@ +# Dynamic Parameter Control + +`gstreamer-controller` provides functionality to animate element properties over time. diff --git a/docs/libs/controller/sitemap.txt b/docs/libs/controller/sitemap.txt new file mode 100644 index 0000000000..4f91fcd8a3 --- /dev/null +++ b/docs/libs/controller/sitemap.txt @@ -0,0 +1 @@ +gi-index diff --git a/docs/libs/index.md b/docs/libs/index.md new file mode 100644 index 0000000000..c51c1e82d6 --- /dev/null +++ b/docs/libs/index.md @@ -0,0 +1 @@ +# GStreamer core libraries API diff --git a/docs/libs/net/index.md b/docs/libs/net/index.md new file mode 100644 index 0000000000..3e1b04e843 --- /dev/null +++ b/docs/libs/net/index.md @@ -0,0 +1,3 @@ +# Network Classes + +`gstreamer-net-1.0` provides network elements and objects. diff --git a/docs/libs/net/sitemap.txt b/docs/libs/net/sitemap.txt new file mode 100644 index 0000000000..4f91fcd8a3 --- /dev/null +++ b/docs/libs/net/sitemap.txt @@ -0,0 +1 @@ +gi-index diff --git a/docs/meson.build b/docs/meson.build new file mode 100644 index 0000000000..971e7dcf74 --- /dev/null +++ b/docs/meson.build @@ -0,0 +1,144 @@ +build_hotdoc = false +if meson.is_cross_build() + if get_option('doc').enabled() + error('Documentation enabled but building the doc while cross building is not supported yet.') + endif + + message('Documentation not built as building it while cross building is not supported yet.') + subdir_done() +endif + +hotdoc_plugin_scanner = executable('gst-hotdoc-plugins-scanner', + 'gst-hotdoc-plugins-scanner.c', + c_args : gst_c_args, + include_directories : [configinc], + dependencies : [gobject_dep, gmodule_dep, glib_dep, gst_dep], + install_dir : helpers_install_dir, + link_with: [printf_lib], + install: true, +) + +configure_file( + input: 'gst-plugins-doc-cache-generator.py', + output: 'gst-plugins-doc-cache-generator', + copy: true, + install_dir : helpers_install_dir, +) + +plugins_cache_generator = find_program(join_paths(meson.current_build_dir(), 'gst-plugins-doc-cache-generator')) +plugins_cache = join_paths(meson.current_source_dir(), 'plugins', 'gst_plugins_cache.json') +plugins_doc_dep = custom_target('build-doc-cache', + build_by_default: true, + command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', '@INPUT@'], + input: plugins, + output: 'gst_plugins_cache.json', + depends: [hotdoc_plugin_scanner], +) + +hotdoc_p = find_program('hotdoc', required: get_option('doc')) +if not hotdoc_p.found() + message('Hotdoc not found, not building the documentation') + subdir_done() +endif + +hotdoc = import('hotdoc') +required_hotdoc_extensions = ['gi-extension', 'gst-extension'] +foreach extension: required_hotdoc_extensions + if not hotdoc.has_extensions(extension) + if get_option('doc').enabled() + error('Documentation enabled but @0@ missing'.format(extension)) + endif + + message('@0@ extension not found, not building documentation'.format(extension)) + subdir_done() + endif +endforeach + + +if not build_gir + if get_option('doc').enabled() + error('Documentation enabled but introspection not built.') + endif + + message('Introspection not built, can\'t build the documentation') + subdir_done() +endif + +all_plugins_paths = [] +foreach l: plugins + all_plugins_paths += l.full_path() +endforeach + +build_hotdoc = true +docconf = configuration_data() +docconf.set('GST_API_VERSION', apiversion) + +version_entities = configure_file(input : 'version.in', + output : 'gst_api_version.md', + configuration : docconf) + +gst_excludes = [] +foreach h: ['gettext.h', 'glib-compat-private.h', 'glib-compat.h', + 'gst-i18n-app.h', 'gst-i18n-lib.h', 'gst_private.h', + 'gstelementdetails.h', 'gstmacros.h', 'gstmarshal.h', + 'math-compat.h', 'parse/grammar.tab.h', + '../libs/gst/base/gstindex.h', + '../libs/gst/base/gstindex.c', + 'parser/grammar.tab.pre.h', 'parse/parse_lex.h', 'types.h', + 'gst-printf.h', 'printf-args.h', 'printf-extension.h', + 'printf-parse.h', 'vasnprintf.h', 'gstregistrybinary.c', + 'gstregistrybinary.h', 'gstpluginloader.h', 'gstpluginloader.c'] + gst_excludes += [join_paths(meson.current_source_dir(), '..', 'gst', h)] +endforeach + +libs_doc = [hotdoc.generate_doc('gstreamer', + project_version: apiversion, + gi_c_sources: '../gst/*.[hc]', + gi_sources: [gst_gir[0].full_path()], + gi_c_source_filters: gst_excludes, + sitemap: 'gst/sitemap.txt', + index: 'gst/index.md', + gi_index: 'gst/gi-index.md', + gi_smart_index: true, + gi_c_source_roots: [join_paths(meson.current_source_dir(), '../gst/'), ], + dependencies: [gst_dep, glib_dep, gobject_dep, gmodule_dep, hotdoc_plugin_scanner], + extra_assets: [join_paths(meson.current_source_dir(), 'images')], +)] + +libs = [ + ['base', gst_base_gir, gst_base_dep], + ['controller', gst_controller_gir, gst_controller_dep,], + ['net', gst_net_gir, gst_net_dep], + ['check', gst_check_gir, gst_check_dep], +] + +foreach lib: libs + name = lib[0] + gir = lib[1] + deps = [lib[2], gir] + libs_doc += [hotdoc.generate_doc('gstreamer-' + name, + project_version: apiversion, + gi_c_sources: ['../libs/gst/' + name + '/*.[hc]'], + gi_c_source_filters: gst_excludes, + gi_sources: gir[0].full_path(), + gi_c_source_roots: [join_paths(meson.current_source_dir(), '../libs/gst/' + name), ], + sitemap: join_paths('libs', name, 'sitemap.txt'), + index: join_paths('libs/', name, 'index.md'), + gi_index: join_paths('libs/', name, 'index.md'), + gi_smart_index: true, + gi_order_generated_subpages: true, + dependencies: deps + [hotdoc_plugin_scanner], + install: false, + )] +endforeach + +plugins_doc = [hotdoc.generate_doc('GStreamer-core-plugins', + project_version: apiversion, + sitemap: 'plugins/sitemap.txt', + index: 'plugins/index.md', + gst_index: 'plugins/index.md', + gst_smart_index: true, + gst_c_sources: ['../plugins/elements/*.c', '../plugins/elements/*.h'], + dependencies: [plugins_doc_dep], + gst_cache_file: plugins_cache, +)] \ No newline at end of file diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am deleted file mode 100644 index 8f41089908..0000000000 --- a/docs/plugins/Makefile.am +++ /dev/null @@ -1,95 +0,0 @@ -GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj - -## Process this file with automake to produce Makefile.in - -# The name of the module, e.g. 'glib'. -#DOC_MODULE=gst-plugins-libs-@GST_API_VERSION@ -MODULE=gstreamer -DOC_MODULE=$(MODULE)-plugins - -# for upload-doc.mak -DOC=$(MODULE)-plugins -FORMATS=html -html: html-build.stamp -include $(top_srcdir)/common/upload-doc.mak - -# Extra environment needed for Core only... -INSPECT_EXTRA_ENVIRONMENT= \ - GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner - -# The top-level SGML file. Change it if you want. -DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml - -# The directory containing the source code. -# gtk-doc will search all .c & .h files beneath here for inline comments -# documenting functions and macros. -DOC_SOURCE_DIR = $(top_srcdir)/plugins/elements $(top_srcdir)/plugins/tracers - -# Extra options to supply to gtkdoc-scan. -SCAN_OPTIONS= - -# Extra options to supply to gtkdoc-mkdb. -MKDB_OPTIONS=--sgml-mode - -# Extra options to supply to gtkdoc-fixref. -FIXXREF_OPTIONS=--extra-dir=$(top_builddir)/docs/gst/html \ - --extra-dir=$(top_builddir)/docs/libs/html \ - --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \ - --extra-dir=$(datadir)/gtk-doc/html - -# Used for dependencies. -HFILE_GLOB=$(top_srcdir)/plugins/elements/*.h $(top_srcdir)/plugins/tracers/*.h -CFILE_GLOB=$(top_srcdir)/plugins/elements/*.c $(top_srcdir)/plugins/tracers/*.c - -# Header files to ignore when scanning. -IGNORE_HFILES = -IGNORE_CFILES = - -# we add all .h files of elements that have signals/args we want -# sadly this also pulls in the private methods - maybe we should -# move those around in the source ? -# also, we should add some stuff here conditionally based on whether -# or not the plugin will actually build -# but I'm not sure about that - it might be this Just Works given that -# the registry won't have the element - -EXTRA_HFILES = \ - $(top_srcdir)/plugins/elements/gstcapsfilter.h \ - $(top_srcdir)/plugins/elements/gstdataurisrc.h \ - $(top_srcdir)/plugins/elements/gstdownloadbuffer.h \ - $(top_srcdir)/plugins/elements/gstfakesrc.h \ - $(top_srcdir)/plugins/elements/gstfakesink.h \ - $(top_srcdir)/plugins/elements/gstfdsink.h \ - $(top_srcdir)/plugins/elements/gstfdsrc.h \ - $(top_srcdir)/plugins/elements/gstfilesrc.h \ - $(top_srcdir)/plugins/elements/gstfilesink.h \ - $(top_srcdir)/plugins/elements/gstidentity.h \ - $(top_srcdir)/plugins/elements/gstinputselector.h \ - $(top_srcdir)/plugins/elements/gstmultiqueue.h \ - $(top_srcdir)/plugins/elements/gstoutputselector.h \ - $(top_srcdir)/plugins/elements/gstqueue.h \ - $(top_srcdir)/plugins/elements/gstqueue2.h \ - $(top_srcdir)/plugins/elements/gsttypefindelement.h \ - $(top_srcdir)/plugins/elements/gsttee.h \ - $(top_srcdir)/plugins/elements/gstvalve.h - -# Images to copy into HTML directory. -HTML_IMAGES = - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). -content_files = - -# Other files to distribute. -extra_files = - -# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib -# contains GtkObjects/GObjects and you want to document signals and properties. -GTKDOC_CFLAGS = $(GST_OBJ_CFLAGS) -I$(top_builddir) -I$(top_builddir)/libs -GTKDOC_LIBS = $(GST_OBJ_LIBS) - -# If you need to override some of the declarations, place them in this file -# and uncomment this line. -#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt -DOC_OVERRIDES = - -include $(top_srcdir)/common/gtk-doc-plugins.mak diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json new file mode 100644 index 0000000000..e0ead00625 --- /dev/null +++ b/docs/plugins/gst_plugins_cache.json @@ -0,0 +1,2916 @@ +{ + "coreelements": { + "description": "GStreamer core elements", + "elements": { + "capsfilter": { + "author": "David Schleef ", + "description": "Pass data without modification, limiting formats", + "hierarchy": [ + "GstCapsFilter", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "CapsFilter", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "caps": { + "blurb": "Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.", + "construct": false, + "construct-only": false, + "default": "ANY", + "type-name": "GstCaps", + "writable": true + }, + "caps-change-mode": { + "blurb": "Filter caps change behaviour", + "construct": false, + "construct-only": false, + "default": "immediate (0)", + "enum": true, + "type-name": "GstCapsFilterCapsChangeMode", + "values": [ + { + "desc": "Only accept the current filter caps", + "name": "immediate", + "value": "0" + }, + { + "desc": "Temporarily accept previous filter caps", + "name": "delayed", + "value": "1" + } + ], + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "qos": { + "blurb": "Handle Quality-of-Service events", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "concat": { + "author": "Sebastian Dr\u00f6ge ", + "description": "Concatenate multiple streams", + "hierarchy": [ + "GstConcat", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Concat", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "active-pad": { + "blurb": "Currently active src pad", + "construct": false, + "construct-only": false, + "type-name": "GstPad", + "writable": false + }, + "adjust-base": { + "blurb": "Adjust the base value of segments to ensure they are adjacent", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + } + }, + "rank": "none" + }, + "dataurisrc": { + "author": "Philippe Normand , Sebastian Dr\u00f6ge ", + "description": "Handles data: uris", + "hierarchy": [ + "GstDataURISrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source", + "long-name": "data: URI source element", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "blocksize": { + "blurb": "Size in bytes to read per buffer (-1 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "do-timestamp": { + "blurb": "Apply current stream time to buffers", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-buffers": { + "blurb": "Number of buffers to output before sending EOS (-1 = unlimited)", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "type-name": "gint", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "typefind": { + "blurb": "Run typefind before negotiating (deprecated, non-functional)", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "uri": { + "blurb": "URI that should be used", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + } + }, + "rank": "primary" + }, + "downloadbuffer": { + "author": "Wim Taymans ", + "description": "Download Buffer element", + "hierarchy": [ + "GstDownloadBuffer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "DownloadBuffer", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "high-percent": { + "blurb": "High threshold for buffering to finish. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "99", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "low-percent": { + "blurb": "Low threshold for buffering to start. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "10", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Max. amount of data to buffer (bytes, 0=disable)", + "construct": false, + "construct-only": false, + "default": "2097152", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Max. amount of data to buffer (in ns, 0=disable)", + "construct": false, + "construct-only": false, + "default": "2000000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "temp-location": { + "blurb": "Location to store temporary files in (Only read this property, use temp-template to configure the name template)", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "temp-remove": { + "blurb": "Remove the temp-location after use", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "temp-template": { + "blurb": "File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled)", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + } + }, + "rank": "none" + }, + "fakesink": { + "author": "Erik Walthinsen , Wim Taymans , Mr. 'frag-me-more' Vanderwingo ", + "description": "Black hole for data", + "hierarchy": [ + "GstFakeSink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink", + "long-name": "Fake Sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "async": { + "blurb": "Go asynchronously to PAUSED", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "blocksize": { + "blurb": "Size in bytes to pull per buffer (0 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "can-activate-pull": { + "blurb": "Can activate in pull mode", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "can-activate-push": { + "blurb": "Can activate in push mode", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "drop-out-of-segment": { + "blurb": "Drop and don't render / hand off out-of-segment buffers", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "dump": { + "blurb": "Dump buffer contents to stdout", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "enable-last-sample": { + "blurb": "Enable the last-sample property", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "last-message": { + "blurb": "The message describing current status", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "last-sample": { + "blurb": "The last sample received in the sink", + "construct": false, + "construct-only": false, + "type-name": "GstSample", + "writable": false + }, + "max-bitrate": { + "blurb": "The maximum bits per second to render (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "max-lateness": { + "blurb": "Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)", + "construct": false, + "construct-only": false, + "default": "18446744073709551615", + "max": "9223372036854775807", + "min": "-1", + "type-name": "gint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-buffers": { + "blurb": "Number of buffers to accept going EOS", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "type-name": "gint", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "processing-deadline": { + "blurb": "Maximum processing deadline in nanoseconds", + "construct": false, + "construct-only": false, + "default": "20000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "qos": { + "blurb": "Generate Quality-of-Service events upstream", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "render-delay": { + "blurb": "Additional render delay of the sink in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "signal-handoffs": { + "blurb": "Send a signal before unreffing the buffer", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "silent": { + "blurb": "Don't produce last_message events", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "state-error": { + "blurb": "Generate a state change error", + "construct": false, + "construct-only": false, + "default": "none (0)", + "enum": true, + "type-name": "GstFakeSinkStateError", + "values": [ + { + "desc": "No state change errors", + "name": "none", + "value": "0" + }, + { + "desc": "Fail state change from NULL to READY", + "name": "null-to-ready", + "value": "1" + }, + { + "desc": "Fail state change from READY to PAUSED", + "name": "ready-to-paused", + "value": "2" + }, + { + "desc": "Fail state change from PAUSED to PLAYING", + "name": "paused-to-playing", + "value": "3" + }, + { + "desc": "Fail state change from PLAYING to PAUSED", + "name": "playing-to-paused", + "value": "4" + }, + { + "desc": "Fail state change from PAUSED to READY", + "name": "paused-to-ready", + "value": "5" + }, + { + "desc": "Fail state change from READY to NULL", + "name": "ready-to-null", + "value": "6" + } + ], + "writable": true + }, + "sync": { + "blurb": "Sync on the clock", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "throttle-time": { + "blurb": "The time to keep between rendered buffers (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "ts-offset": { + "blurb": "Timestamp offset in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "9223372036854775807", + "min": "-9223372036854775808", + "type-name": "gint64", + "writable": true + } + }, + "rank": "none", + "signals": { + "handoff": { + "args": [ + "GstBuffer", + "GstPad" + ], + "retval": "void" + }, + "preroll-handoff": { + "args": [ + "GstBuffer", + "GstPad" + ], + "retval": "void" + } + } + }, + "fakesrc": { + "author": "Erik Walthinsen , Wim Taymans ", + "description": "Push empty (no data) buffers around", + "hierarchy": [ + "GstFakeSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source", + "long-name": "Fake Source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "blocksize": { + "blurb": "Size in bytes to read per buffer (-1 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "can-activate-pull": { + "blurb": "Can activate in pull mode", + "construct": true, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "can-activate-push": { + "blurb": "Can activate in push mode", + "construct": true, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "data": { + "blurb": "Data allocation method", + "construct": false, + "construct-only": false, + "default": "allocate (1)", + "enum": true, + "type-name": "GstFakeSrcDataType", + "values": [ + { + "desc": "Allocate data", + "name": "allocate", + "value": "1" + }, + { + "desc": "Subbuffer data", + "name": "subbuffer", + "value": "2" + } + ], + "writable": true + }, + "datarate": { + "blurb": "Timestamps buffers with number of bytes per second (0 = none)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "do-timestamp": { + "blurb": "Apply current stream time to buffers", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "dump": { + "blurb": "Dump buffer contents to stdout", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "filltype": { + "blurb": "How to fill the buffer, if at all", + "construct": false, + "construct-only": false, + "default": "nothing (1)", + "enum": true, + "type-name": "GstFakeSrcFillType", + "values": [ + { + "desc": "Leave data as malloced", + "name": "nothing", + "value": "1" + }, + { + "desc": "Fill buffers with zeros", + "name": "zero", + "value": "2" + }, + { + "desc": "Fill buffers with random data", + "name": "random", + "value": "3" + }, + { + "desc": "Fill buffers with pattern 0x00 -> 0xff", + "name": "pattern", + "value": "4" + }, + { + "desc": "Fill buffers with pattern 0x00 -> 0xff that spans buffers", + "name": "pattern-span", + "value": "5" + } + ], + "writable": true + }, + "format": { + "blurb": "The format of the segment events", + "construct": false, + "construct-only": false, + "default": "bytes (2)", + "enum": true, + "type-name": "GstFormat", + "values": [ + { + "desc": "GST_FORMAT_UNDEFINED", + "name": "undefined", + "value": "0" + }, + { + "desc": "GST_FORMAT_DEFAULT", + "name": "default", + "value": "1" + }, + { + "desc": "GST_FORMAT_BYTES", + "name": "bytes", + "value": "2" + }, + { + "desc": "GST_FORMAT_TIME", + "name": "time", + "value": "3" + }, + { + "desc": "GST_FORMAT_BUFFERS", + "name": "buffers", + "value": "4" + }, + { + "desc": "GST_FORMAT_PERCENT", + "name": "percent", + "value": "5" + } + ], + "writable": true + }, + "is-live": { + "blurb": "True if the element cannot produce data in PAUSED", + "construct": true, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "last-message": { + "blurb": "The last status message", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-buffers": { + "blurb": "Number of buffers to output before sending EOS (-1 = unlimited)", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "type-name": "gint", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "parentsize": { + "blurb": "Size of parent buffer for sub-buffered allocation", + "construct": false, + "construct-only": false, + "default": "40960", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "pattern": { + "blurb": "Set the pattern (unused)", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "signal-handoffs": { + "blurb": "Send a signal before pushing the buffer", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "silent": { + "blurb": "Don't produce last_message events", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "sizemax": { + "blurb": "Maximum buffer size", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "sizemin": { + "blurb": "Minimum buffer size", + "construct": false, + "construct-only": false, + "default": "0", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "sizetype": { + "blurb": "How to determine buffer sizes", + "construct": false, + "construct-only": false, + "default": "empty (1)", + "enum": true, + "type-name": "GstFakeSrcSizeType", + "values": [ + { + "desc": "Send empty buffers", + "name": "empty", + "value": "1" + }, + { + "desc": "Fixed size buffers (sizemax sized)", + "name": "fixed", + "value": "2" + }, + { + "desc": "Random sized buffers (sizemin <= size <= sizemax)", + "name": "random", + "value": "3" + } + ], + "writable": true + }, + "sync": { + "blurb": "Sync to the clock to the datarate", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "typefind": { + "blurb": "Run typefind before negotiating (deprecated, non-functional)", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none", + "signals": { + "handoff": { + "args": [ + "GstBuffer", + "GstPad" + ], + "retval": "void" + } + } + }, + "fdsink": { + "author": "Erik Walthinsen ", + "description": "Write data to a file descriptor", + "hierarchy": [ + "GstFdSink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink/File", + "long-name": "Filedescriptor Sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "async": { + "blurb": "Go asynchronously to PAUSED", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "blocksize": { + "blurb": "Size in bytes to pull per buffer (0 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "enable-last-sample": { + "blurb": "Enable the last-sample property", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "fd": { + "blurb": "An open file descriptor to write to", + "construct": false, + "construct-only": false, + "default": "1", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "last-sample": { + "blurb": "The last sample received in the sink", + "construct": false, + "construct-only": false, + "type-name": "GstSample", + "writable": false + }, + "max-bitrate": { + "blurb": "The maximum bits per second to render (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "max-lateness": { + "blurb": "Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)", + "construct": false, + "construct-only": false, + "default": "18446744073709551615", + "max": "9223372036854775807", + "min": "-1", + "type-name": "gint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "processing-deadline": { + "blurb": "Maximum processing deadline in nanoseconds", + "construct": false, + "construct-only": false, + "default": "20000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "qos": { + "blurb": "Generate Quality-of-Service events upstream", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "render-delay": { + "blurb": "Additional render delay of the sink in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "sync": { + "blurb": "Sync on the clock", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "throttle-time": { + "blurb": "The time to keep between rendered buffers (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "ts-offset": { + "blurb": "Timestamp offset in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "9223372036854775807", + "min": "-9223372036854775808", + "type-name": "gint64", + "writable": true + } + }, + "rank": "none" + }, + "fdsrc": { + "author": "Erik Walthinsen ", + "description": "Read from a file descriptor", + "hierarchy": [ + "GstFdSrc", + "GstPushSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/File", + "long-name": "Filedescriptor Source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "blocksize": { + "blurb": "Size in bytes to read per buffer (-1 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "do-timestamp": { + "blurb": "Apply current stream time to buffers", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "fd": { + "blurb": "An open file descriptor to read from", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-buffers": { + "blurb": "Number of buffers to output before sending EOS (-1 = unlimited)", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "type-name": "gint", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "timeout": { + "blurb": "Post a message after timeout microseconds (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "typefind": { + "blurb": "Run typefind before negotiating (deprecated, non-functional)", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "filesink": { + "author": "Thomas Vander Stichele ", + "description": "Write stream to a file", + "hierarchy": [ + "GstFileSink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink/File", + "long-name": "File Sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "append": { + "blurb": "Append to an already existing file", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "async": { + "blurb": "Go asynchronously to PAUSED", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "blocksize": { + "blurb": "Size in bytes to pull per buffer (0 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "buffer-mode": { + "blurb": "The buffering mode to use", + "construct": false, + "construct-only": false, + "default": "default (-1)", + "enum": true, + "type-name": "GstFileSinkBufferMode", + "values": [ + { + "desc": "Default buffering", + "name": "default", + "value": "-1" + }, + { + "desc": "Fully buffered", + "name": "full", + "value": "0" + }, + { + "desc": "Line buffered", + "name": "line", + "value": "1" + }, + { + "desc": "Unbuffered", + "name": "unbuffered", + "value": "2" + } + ], + "writable": true + }, + "buffer-size": { + "blurb": "Size of buffer in number of bytes for line or full buffer-mode", + "construct": false, + "construct-only": false, + "default": "65536", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "enable-last-sample": { + "blurb": "Enable the last-sample property", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "last-sample": { + "blurb": "The last sample received in the sink", + "construct": false, + "construct-only": false, + "type-name": "GstSample", + "writable": false + }, + "location": { + "blurb": "Location of the file to write", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "max-bitrate": { + "blurb": "The maximum bits per second to render (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "max-lateness": { + "blurb": "Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)", + "construct": false, + "construct-only": false, + "default": "18446744073709551615", + "max": "9223372036854775807", + "min": "-1", + "type-name": "gint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "processing-deadline": { + "blurb": "Maximum processing deadline in nanoseconds", + "construct": false, + "construct-only": false, + "default": "20000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "qos": { + "blurb": "Generate Quality-of-Service events upstream", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "render-delay": { + "blurb": "Additional render delay of the sink in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "sync": { + "blurb": "Sync on the clock", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "throttle-time": { + "blurb": "The time to keep between rendered buffers (0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "ts-offset": { + "blurb": "Timestamp offset in nanoseconds", + "construct": false, + "construct-only": false, + "default": "0", + "max": "9223372036854775807", + "min": "-9223372036854775808", + "type-name": "gint64", + "writable": true + } + }, + "rank": "primary" + }, + "filesrc": { + "author": "Erik Walthinsen ", + "description": "Read from arbitrary point in a file", + "hierarchy": [ + "GstFileSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/File", + "long-name": "File Source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "blocksize": { + "blurb": "Size in bytes to read per buffer (-1 = default)", + "construct": false, + "construct-only": false, + "default": "4096", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "do-timestamp": { + "blurb": "Apply current stream time to buffers", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "location": { + "blurb": "Location of the file to read", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-buffers": { + "blurb": "Number of buffers to output before sending EOS (-1 = unlimited)", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "type-name": "gint", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "typefind": { + "blurb": "Run typefind before negotiating (deprecated, non-functional)", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "primary" + }, + "funnel": { + "author": "Olivier Crete ", + "description": "N-to-1 pipe fitting", + "hierarchy": [ + "GstFunnel", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Funnel pipe fitting", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "forward-sticky-events": { + "blurb": "Forward sticky events on stream changes", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + } + }, + "rank": "none" + }, + "identity": { + "author": "Erik Walthinsen ", + "description": "Pass data without modification", + "hierarchy": [ + "GstIdentity", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Identity", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "check-imperfect-offset": { + "blurb": "Send element messages if offset and offset_end do not match up", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "check-imperfect-timestamp": { + "blurb": "Send element messages if timestamps and durations do not match up", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "datarate": { + "blurb": "(Re)timestamps buffers with number of bytes per second (0 = inactive)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": true + }, + "drop-allocation": { + "blurb": "Don't forward allocation queries", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "drop-buffer-flags": { + "blurb": "Drop buffers with the given flags", + "construct": false, + "construct-only": false, + "default": "(none)", + "type-name": "GstBufferFlags", + "values": [ + { + "desc": "GST_BUFFER_FLAG_LIVE", + "name": "live", + "value": "0x00000010" + }, + { + "desc": "GST_BUFFER_FLAG_DECODE_ONLY", + "name": "decode-only", + "value": "0x00000020" + }, + { + "desc": "GST_BUFFER_FLAG_DISCONT", + "name": "discont", + "value": "0x00000040" + }, + { + "desc": "GST_BUFFER_FLAG_RESYNC", + "name": "resync", + "value": "0x00000080" + }, + { + "desc": "GST_BUFFER_FLAG_CORRUPTED", + "name": "corrupted", + "value": "0x00000100" + }, + { + "desc": "GST_BUFFER_FLAG_MARKER", + "name": "marker", + "value": "0x00000200" + }, + { + "desc": "GST_BUFFER_FLAG_HEADER", + "name": "header", + "value": "0x00000400" + }, + { + "desc": "GST_BUFFER_FLAG_GAP", + "name": "gap", + "value": "0x00000800" + }, + { + "desc": "GST_BUFFER_FLAG_DROPPABLE", + "name": "droppable", + "value": "0x00001000" + }, + { + "desc": "GST_BUFFER_FLAG_DELTA_UNIT", + "name": "delta-unit", + "value": "0x00002000" + }, + { + "desc": "GST_BUFFER_FLAG_TAG_MEMORY", + "name": "tag-memory", + "value": "0x00004000" + }, + { + "desc": "GST_BUFFER_FLAG_SYNC_AFTER", + "name": "sync-after", + "value": "0x00008000" + }, + { + "desc": "GST_BUFFER_FLAG_NON_DROPPABLE", + "name": "non-droppable", + "value": "0x00010000" + }, + { + "desc": "GST_BUFFER_FLAG_LAST", + "name": "last", + "value": "0x00100000" + } + ], + "writable": true + }, + "drop-probability": { + "blurb": "The Probability a buffer is dropped", + "construct": false, + "construct-only": false, + "default": "0", + "max": "1", + "min": "0", + "type-name": "gfloat", + "writable": true + }, + "dump": { + "blurb": "Dump buffer contents to stdout", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "error-after": { + "blurb": "Error after N buffers", + "construct": false, + "construct-only": false, + "default": "-1", + "max": "2147483647", + "min": "-2147483648", + "type-name": "gint", + "writable": true + }, + "last-message": { + "blurb": "last-message", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "qos": { + "blurb": "Handle Quality-of-Service events", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "signal-handoffs": { + "blurb": "Send a signal before pushing the buffer", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "silent": { + "blurb": "silent", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "single-segment": { + "blurb": "Timestamp buffers and eat segments so as to appear as one segment", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "sleep-time": { + "blurb": "Microseconds to sleep between processing", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "sync": { + "blurb": "Synchronize to pipeline clock", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "ts-offset": { + "blurb": "Timestamp offset in nanoseconds for synchronisation, negative for earlier sync", + "construct": false, + "construct-only": false, + "default": "0", + "max": "9223372036854775807", + "min": "-9223372036854775808", + "type-name": "gint64", + "writable": true + } + }, + "rank": "none", + "signals": { + "handoff": { + "args": [ + "GstBuffer" + ], + "retval": "void" + } + } + }, + "input-selector": { + "author": "Julien Moutte , Jan Schmidt , Wim Taymans ", + "description": "N-to-1 input stream selector", + "hierarchy": [ + "GstInputSelector", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Input selector", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "active-pad": { + "blurb": "The currently active sink pad", + "construct": false, + "construct-only": false, + "type-name": "GstPad", + "writable": true + }, + "cache-buffers": { + "blurb": "Cache buffers for active-pad", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "n-pads": { + "blurb": "The number of sink pads", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": false + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "sync-mode": { + "blurb": "Behavior in sync-streams mode", + "construct": false, + "construct-only": false, + "default": "active-segment (0)", + "enum": true, + "type-name": "GstInputSelectorSyncMode", + "values": [ + { + "desc": "Sync using the current active segment", + "name": "active-segment", + "value": "0" + }, + { + "desc": "Sync using the clock", + "name": "clock", + "value": "1" + } + ], + "writable": true + }, + "sync-streams": { + "blurb": "Synchronize inactive streams to the running time of the active stream or to the current clock", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "multiqueue": { + "author": "Edward Hervey ", + "description": "Multiple data queue", + "hierarchy": [ + "GstMultiQueue", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "MultiQueue", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "extra-size-buffers": { + "blurb": "Amount of buffers the queues can grow if one of them is empty (0=disable) (NOT IMPLEMENTED)", + "construct": false, + "construct-only": false, + "default": "5", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "extra-size-bytes": { + "blurb": "Amount of data the queues can grow if one of them is empty (bytes, 0=disable) (NOT IMPLEMENTED)", + "construct": false, + "construct-only": false, + "default": "10485760", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "extra-size-time": { + "blurb": "Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED)", + "construct": false, + "construct-only": false, + "default": "3000000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "high-percent": { + "blurb": "High threshold for buffering to finish. Only used if use-buffering is True (Deprecated: use high-watermark instead)", + "construct": false, + "construct-only": false, + "default": "99", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "high-watermark": { + "blurb": "High threshold for buffering to finish. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "0.99", + "max": "1", + "min": "0", + "type-name": "gdouble", + "writable": true + }, + "low-percent": { + "blurb": "Low threshold for buffering to start. Only used if use-buffering is True (Deprecated: use low-watermark instead)", + "construct": false, + "construct-only": false, + "default": "1", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "low-watermark": { + "blurb": "Low threshold for buffering to start. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "0.01", + "max": "1", + "min": "0", + "type-name": "gdouble", + "writable": true + }, + "max-size-buffers": { + "blurb": "Max. number of buffers in the queue (0=disable)", + "construct": false, + "construct-only": false, + "default": "5", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Max. amount of data in the queue (bytes, 0=disable)", + "construct": false, + "construct-only": false, + "default": "10485760", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Max. amount of data in the queue (in ns, 0=disable)", + "construct": false, + "construct-only": false, + "default": "2000000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "min-interleave-time": { + "blurb": "Minimum extra buffering for deinterleaving (size of the queues) when use-interleave=true", + "construct": false, + "construct-only": false, + "default": "250000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "sync-by-running-time": { + "blurb": "Synchronize deactivated or not-linked streams by running time", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "unlinked-cache-time": { + "blurb": "Extra buffering in time for unlinked streams (if 'sync-by-running-time')", + "construct": false, + "construct-only": false, + "default": "250000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "use-buffering": { + "blurb": "Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "use-interleave": { + "blurb": "Adjust time limits based on input interleave", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none", + "signals": { + "no-more-pads": { + "args": [], + "retval": "void" + }, + "overrun": { + "args": [], + "retval": "void" + }, + "pad-added": { + "args": [ + "GstPad" + ], + "retval": "void" + }, + "pad-removed": { + "args": [ + "GstPad" + ], + "retval": "void" + }, + "underrun": { + "args": [], + "retval": "void" + } + } + }, + "output-selector": { + "author": "Stefan Kost ", + "description": "1-to-N output stream selector", + "hierarchy": [ + "GstOutputSelector", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Output selector", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "request" + } + }, + "properties": { + "active-pad": { + "blurb": "Currently active src pad", + "construct": false, + "construct-only": false, + "type-name": "GstPad", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "pad-negotiation-mode": { + "blurb": "The mode to be used for pad negotiation", + "construct": false, + "construct-only": false, + "default": "all (1)", + "enum": true, + "type-name": "GstOutputSelectorPadNegotiationMode", + "values": [ + { + "desc": "None", + "name": "none", + "value": "0" + }, + { + "desc": "All", + "name": "all", + "value": "1" + }, + { + "desc": "Active", + "name": "active", + "value": "2" + } + ], + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "resend-latest": { + "blurb": "Resend latest buffer after a switch to a new pad", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "queue": { + "author": "Erik Walthinsen ", + "description": "Simple data queue", + "hierarchy": [ + "GstQueue", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Queue", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "current-level-buffers": { + "blurb": "Current number of buffers in the queue", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": false + }, + "current-level-bytes": { + "blurb": "Current amount of data in the queue (bytes)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": false + }, + "current-level-time": { + "blurb": "Current amount of data in the queue (in ns)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": false + }, + "flush-on-eos": { + "blurb": "Discard all data in the queue when an EOS event is received", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "leaky": { + "blurb": "Where the queue leaks, if at all", + "construct": false, + "construct-only": false, + "default": "no (0)", + "enum": true, + "type-name": "GstQueueLeaky", + "values": [ + { + "desc": "Not Leaky", + "name": "no", + "value": "0" + }, + { + "desc": "Leaky on upstream (new buffers)", + "name": "upstream", + "value": "1" + }, + { + "desc": "Leaky on downstream (old buffers)", + "name": "downstream", + "value": "2" + } + ], + "writable": true + }, + "max-size-buffers": { + "blurb": "Max. number of buffers in the queue (0=disable)", + "construct": false, + "construct-only": false, + "default": "200", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Max. amount of data in the queue (bytes, 0=disable)", + "construct": false, + "construct-only": false, + "default": "10485760", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Max. amount of data in the queue (in ns, 0=disable)", + "construct": false, + "construct-only": false, + "default": "1000000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "min-threshold-buffers": { + "blurb": "Min. number of buffers in the queue to allow reading (0=disable)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "min-threshold-bytes": { + "blurb": "Min. amount of data in the queue to allow reading (bytes, 0=disable)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "min-threshold-time": { + "blurb": "Min. amount of data in the queue to allow reading (in ns, 0=disable)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "silent": { + "blurb": "Don't emit queue signals", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none", + "signals": { + "overrun": { + "args": [], + "retval": "void" + }, + "pushing": { + "args": [], + "retval": "void" + }, + "running": { + "args": [], + "retval": "void" + }, + "underrun": { + "args": [], + "retval": "void" + } + } + }, + "queue2": { + "author": "Erik Walthinsen , Wim Taymans ", + "description": "Simple data queue", + "hierarchy": [ + "GstQueue2", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Queue 2", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "avg-in-rate": { + "blurb": "Average input data rate (bytes/s)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "9223372036854775807", + "min": "0", + "type-name": "gint64", + "writable": false + }, + "bitrate": { + "blurb": "Conversion value between data size and time", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": false + }, + "current-level-buffers": { + "blurb": "Current number of buffers in the queue", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": false + }, + "current-level-bytes": { + "blurb": "Current amount of data in the queue (bytes)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": false + }, + "current-level-time": { + "blurb": "Current amount of data in the queue (in ns)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": false + }, + "high-percent": { + "blurb": "High threshold for buffering to finish. Only used if use-buffering is True (Deprecated: use high-watermark instead)", + "construct": false, + "construct-only": false, + "default": "99", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "high-watermark": { + "blurb": "High threshold for buffering to finish. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "0.99", + "max": "1", + "min": "0", + "type-name": "gdouble", + "writable": true + }, + "low-percent": { + "blurb": "Low threshold for buffering to start. Only used if use-buffering is True (Deprecated: use low-watermark instead)", + "construct": false, + "construct-only": false, + "default": "1", + "max": "100", + "min": "0", + "type-name": "gint", + "writable": true + }, + "low-watermark": { + "blurb": "Low threshold for buffering to start. Only used if use-buffering is True", + "construct": false, + "construct-only": false, + "default": "0.01", + "max": "1", + "min": "0", + "type-name": "gdouble", + "writable": true + }, + "max-size-buffers": { + "blurb": "Max. number of buffers in the queue (0=disable)", + "construct": false, + "construct-only": false, + "default": "100", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Max. amount of data in the queue (bytes, 0=disable)", + "construct": false, + "construct-only": false, + "default": "2097152", + "max": "-1", + "min": "0", + "type-name": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Max. amount of data in the queue (in ns, 0=disable)", + "construct": false, + "construct-only": false, + "default": "2000000000", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "ring-buffer-max-size": { + "blurb": "Max. amount of data in the ring buffer (bytes, 0 = disabled)", + "construct": false, + "construct-only": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "type-name": "guint64", + "writable": true + }, + "temp-location": { + "blurb": "Location to store temporary files in (Only read this property, use temp-template to configure the name template)", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "temp-remove": { + "blurb": "Remove the temp-location after use", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "temp-template": { + "blurb": "File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled)", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "use-bitrate-query": { + "blurb": "Use a bitrate from a downstream query to estimate buffer duration if not provided", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "use-buffering": { + "blurb": "Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "use-rate-estimate": { + "blurb": "Estimate the bitrate of the stream to calculate time level", + "construct": false, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "use-tags-bitrate": { + "blurb": "Use a bitrate from upstream tags to estimate buffer duration if not provided", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "streamiddemux": { + "author": "HoonHee Lee ", + "description": "1-to-N output stream by stream-id", + "hierarchy": [ + "GstStreamidDemux", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Streamid Demux", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "active-pad": { + "blurb": "The currently active src pad", + "construct": false, + "construct-only": false, + "type-name": "GstPad", + "writable": false + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + } + }, + "rank": "primary", + "signals": { + "no-more-pads": { + "args": [], + "retval": "void" + }, + "pad-added": { + "args": [ + "GstPad" + ], + "retval": "void" + }, + "pad-removed": { + "args": [ + "GstPad" + ], + "retval": "void" + } + } + }, + "tee": { + "author": "Erik Walthinsen , Wim Taymans ", + "description": "1-to-N pipe fitting", + "hierarchy": [ + "GstTee", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Tee pipe fitting", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "request" + } + }, + "properties": { + "alloc-pad": { + "blurb": "The pad ALLOCATION queries will be proxied to (DEPRECATED, has no effect)", + "construct": false, + "construct-only": false, + "type-name": "GstPad", + "writable": true + }, + "allow-not-linked": { + "blurb": "Return GST_FLOW_OK even if there are no source pads or they are all unlinked", + "construct": true, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "has-chain": { + "blurb": "If the element can operate in push mode", + "construct": true, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + }, + "last-message": { + "blurb": "The message describing current status", + "construct": false, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": false + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "num-src-pads": { + "blurb": "The number of source pads", + "construct": false, + "construct-only": false, + "default": "0", + "max": "2147483647", + "min": "0", + "type-name": "gint", + "writable": false + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + }, + "pull-mode": { + "blurb": "Behavior of tee in pull mode", + "construct": true, + "construct-only": false, + "default": "never (0)", + "enum": true, + "type-name": "GstTeePullMode", + "values": [ + { + "desc": "Never activate in pull mode", + "name": "never", + "value": "0" + }, + { + "desc": "Only one src pad can be active in pull mode", + "name": "single", + "value": "1" + } + ], + "writable": true + }, + "silent": { + "blurb": "Don't produce last_message events", + "construct": true, + "construct-only": false, + "default": "true", + "type-name": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "typefind": { + "author": "Benjamin Otte ", + "description": "Finds the media type of a stream", + "hierarchy": [ + "GstTypeFindElement", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "TypeFind", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "caps": { + "blurb": "detected capabilities in stream", + "construct": false, + "construct-only": false, + "type-name": "GstCaps", + "writable": false + }, + "force-caps": { + "blurb": "force caps without doing a typefind", + "construct": false, + "construct-only": false, + "type-name": "GstCaps", + "writable": true + }, + "minimum": { + "blurb": "minimum probability required to accept caps", + "construct": false, + "construct-only": false, + "default": "1", + "max": "100", + "min": "1", + "type-name": "guint", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + } + }, + "rank": "none", + "signals": { + "have-type": { + "args": [ + "guint", + "GstCaps" + ], + "retval": "void" + } + } + }, + "valve": { + "author": "Olivier Crete ", + "description": "Drops buffers and events or lets them through", + "hierarchy": [ + "GstValve", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter", + "long-name": "Valve element", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "drop": { + "blurb": "Whether to drop buffers and events or let them through", + "construct": false, + "construct-only": false, + "default": "false", + "type-name": "gboolean", + "writable": true + }, + "name": { + "blurb": "The name of the object", + "construct": true, + "construct-only": false, + "default": "NULL", + "type-name": "gchararray", + "writable": true + }, + "parent": { + "blurb": "The parent of the object", + "construct": false, + "construct-only": false, + "type-name": "GstObject", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "libgstcoreelements.so", + "license": "LGPL", + "package": "GStreamer git", + "source": "gstreamer", + "url": "Unknown package origin" + } +} \ No newline at end of file diff --git a/docs/plugins/gstreamer-plugins-docs.sgml b/docs/plugins/gstreamer-plugins-docs.sgml deleted file mode 100644 index 6d823c9455..0000000000 --- a/docs/plugins/gstreamer-plugins-docs.sgml +++ /dev/null @@ -1,58 +0,0 @@ - - -%version-entities; -]> - - - - GStreamer Core Plugins &GST_API_VERSION; Plugins Reference Manual - - for GStreamer Core Plugins &GST_API_VERSION; (&GST_VERSION;) - The latest version of this documentation can be found on-line at - http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/. - - - - - gstreamer Elements - - - - - - - - - - - - - - - - - - - - - - - - - gstreamer Tracers - - - - - - - - - gstreamer Plugins - - - - - diff --git a/docs/plugins/gstreamer-plugins-sections.txt b/docs/plugins/gstreamer-plugins-sections.txt deleted file mode 100644 index 89d4906895..0000000000 --- a/docs/plugins/gstreamer-plugins-sections.txt +++ /dev/null @@ -1,430 +0,0 @@ -
-element-capsfilter -capsfilter -GstCapsFilter -GstCapsFilterCapsChangeMode - -GstCapsFilterClass -GST_CAPS_FILTER -GST_CAPS_FILTER_CAST -GST_IS_CAPS_FILTER -GST_CAPS_FILTER_CLASS -GST_IS_CAPS_FILTER_CLASS -GST_TYPE_CAPS_FILTER - -gst_caps_filter_get_type -
- -
-element-concat -concat -GstConcat - -GstConcatClass -GST_CONCAT -GST_CONCAT_CAST -GST_IS_CONCAT -GST_CONCAT_CLASS -GST_IS_CONCAT_CLASS -GST_TYPE_CONCAT - -gst_concat_get_type -
- -
-element-dataurisrc -dataurisrc -GstDataURISrc - -GstDataURISrcClass -GST_DATA_URI_SRC -GST_DATA_URI_SRC_CAST -GST_IS_DATA_URI_SRC -GST_DATA_URI_SRC_CLASS -GST_IS_DATA_URI_SRC_CLASS -GST_TYPE_DATA_URI_SRC - -gst_data_uri_src_get_type -
- -
-element-downloadbuffer -downloadbuffer -GstDownloadBuffer - -GstDownloadBufferSize -GstDownloadBufferClass -GST_DOWNLOAD_BUFFER -GST_DOWNLOAD_BUFFER_CAST -GST_IS_DOWNLOAD_BUFFER -GST_DOWNLOAD_BUFFER_CLASS -GST_IS_DOWNLOAD_BUFFER_CLASS -GST_TYPE_DOWNLOAD_BUFFER - -gst_download_buffer_get_type -
- -
-element-fakesink -fakesink -GstFakeSink -GstFakeSinkStateError - -GstFakeSinkClass -GST_FAKE_SINK -GST_FAKE_SINK_CAST -GST_IS_FAKE_SINK -GST_FAKE_SINK_CLASS -GST_IS_FAKE_SINK_CLASS -GST_TYPE_FAKE_SINK - -gst_fake_sink_get_type -
- -
-element-fakesrc -fakesrc -GstFakeSrc -GstFakeSrcDataType -GstFakeSrcFillType -GstFakeSrcOutputType -GstFakeSrcSizeType - -GstFakeSrcClass -GST_FAKE_SRC -GST_IS_FAKE_SRC -GST_FAKE_SRC_CLASS -GST_IS_FAKE_SRC_CLASS -GST_TYPE_FAKE_SRC - -gst_fake_src_get_type -
- -
-element-fdsink -fdsink -GstFdSink - -GstFdSinkClass -GST_FD_SINK -GST_FD_SINK_CAST -GST_IS_FD_SINK -GST_FD_SINK_CLASS -GST_IS_FD_SINK_CLASS -GST_TYPE_FD_SINK - -gst_fd_sink_get_type -
- -
-element-fdsrc -fdsrc -GstFdSrc - -GstFdSrcClass -GST_FD_SRC -GST_IS_FD_SRC -GST_FD_SRC_CLASS -GST_IS_FD_SRC_CLASS -GST_TYPE_FD_SRC - -gst_fd_src_get_type -
- -
-element-filesink -filesink -GstFileSink -GstFileSinkBufferMode - -GstFileSinkClass -GST_FILE_SINK -GST_FILE_SINK_CAST -GST_IS_FILE_SINK -GST_FILE_SINK_CLASS -GST_IS_FILE_SINK_CLASS -GST_TYPE_FILE_SINK -GST_TYPE_FILE_SINK_BUFFER_MODE - -gst_file_sink_get_type -
- -
-element-filesrc -filesrc -GstFileSrc - -GstFileSrcClass -GST_FILE_SRC -GST_FILE_SRC_CAST -GST_IS_FILE_SRC -GST_FILE_SRC_CLASS -GST_IS_FILE_SRC_CLASS -GST_TYPE_FILE_SRC - -gst_file_src_get_type -
- -
-element-funnel -funnel -GstFunnel - -GstFunnelClass -GST_FUNNEL -GST_IS_FUNNEL -GST_FUNNEL_CLASS -GST_IS_FUNNEL_CLASS -GST_TYPE_FUNNEL - -gst_funnel_get_type -
- -
-element-identity -identity -GstIdentity - -GstIdentityClass -GST_IDENTITY -GST_IS_IDENTITY -GST_IDENTITY_CLASS -GST_IS_IDENTITY_CLASS -GST_TYPE_IDENTITY - -gst_identity_get_type -
- -
-element-input-selector -input-selector -GstInputSelector -GstInputSelectorSyncMode - -GstInputSelectorClass -GST_INPUT_SELECTOR -GST_IS_INPUT_SELECTOR -GST_INPUT_SELECTOR_CLASS -GST_IS_INPUT_SELECTOR_CLASS -GST_TYPE_INPUT_SELECTOR -GST_INPUT_SELECTOR_BROADCAST -GST_INPUT_SELECTOR_GET_COND -GST_INPUT_SELECTOR_GET_LOCK -GST_INPUT_SELECTOR_LOCK -GST_INPUT_SELECTOR_UNLOCK -GST_INPUT_SELECTOR_WAIT - -gst_input_selector_get_type -
- -
-element-latencytracer -latencytracer -GstLatencyTracer - -GstLatencyTracerClass -GST_LATENCY_TRACER -GST_LATENCY_TRACER_CAST -GST_IS_LATENCY_TRACER -GST_LATENCY_TRACER_CLASS -GST_IS_LATENCY_TRACER_CLASS -GST_TYPE_LATENCY_TRACER - -gst_latency_tracer_get_type -
- -
-element-leakstracer -leakstracer -GstLeaksTracer - -GstLeaksTracerClass -GST_LEAKS_TRACER -GST_LEAKS_TRACER_CAST -GST_IS_LEAKS_TRACER -GST_LEAKS_TRACER_CLASS -GST_IS_LEAKS_TRACER_CLASS -GST_TYPE_LEAKS_TRACER - -gst_leaks_tracer_get_type -
- -
-element-logtracer -logtracer -GstLogTracer - -GstLogTracerClass -GST_LOG_TRACER -GST_LOG_TRACER_CAST -GST_IS_LOG_TRACER -GST_LOG_TRACER_CLASS -GST_IS_LOG_TRACER_CLASS -GST_TYPE_LOG_TRACER - -gst_log_tracer_get_type -
- -
-element-multiqueue -multiqueue -GstMultiQueue - -GstMultiQueueClass -GST_MULTI_QUEUE -GST_IS_MULTI_QUEUE -GST_MULTI_QUEUE_CLASS -GST_IS_MULTI_QUEUE_CLASS -GST_TYPE_MULTI_QUEUE - -gst_multi_queue_get_type -
- -
-element-output-selector -output-selector -GstOutputSelector -GstOutputSelectorPadNegotiationMode - -GstOutputSelectorClass -GST_OUTPUT_SELECTOR -GST_IS_OUTPUT_SELECTOR -GST_OUTPUT_SELECTOR_CLASS -GST_IS_OUTPUT_SELECTOR_CLASS -GST_TYPE_OUTPUT_SELECTOR - -gst_output_selector_get_type -
- -
-element-queue -queue -GstQueue -GstQueueLeaky - -GstQueueClass -GST_QUEUE -GST_QUEUE_CAST -GST_IS_QUEUE -GST_QUEUE_CLASS -GST_IS_QUEUE_CLASS -GST_TYPE_QUEUE - -GstQueueSize -gst_queue_get_type -GST_QUEUE_CLEAR_LEVEL -
- -
-element-queue2 -queue2 -GstQueue2 - -GstQueue2Class -GST_QUEUE2 -GST_QUEUE2_CAST -GST_IS_QUEUE2 -GST_QUEUE2_CLASS -GST_IS_QUEUE2_CLASS -GST_TYPE_QUEUE2 - -GstQueue2Size -GstQueue2Range -gst_queue2_get_type -
- -
-element-rusagetracer -rusagetracer -GstRUsageTracer - -GstRUsageTracerClass -GST_RUSAGE_TRACER -GST_RUSAGE_TRACER_CAST -GST_IS_RUSAGE_TRACER -GST_RUSAGE_TRACER_CLASS -GST_IS_RUSAGE_TRACER_CLASS -GST_TYPE_RUSAGE_TRACER - -gst_rusage_tracer_get_type -
- -
-element-statstracer -statstracer -GstStatsTracer - -GstStatsTracerClass -GST_STATS_TRACER -GST_STATS_TRACER_CAST -GST_IS_STATS_TRACER -GST_STATS_TRACER_CLASS -GST_IS_STATS_TRACER_CLASS -GST_TYPE_STATS_TRACER - -gst_stats_tracer_get_type -
- -
-element-streamiddemux -streamiddemux -GstStreamidDemux - -GstStreamidDemuxClass -GST_STREAMID_DEMUX -GST_STREAMID_DEMUX_CAST -GST_IS_STREAMID_DEMUX -GST_STREAMID_DEMUX_CLASS -GST_IS_STREAMID_DEMUX_CLASS -GST_TYPE_STREAMID_DEMUX - -gst_streamid_demux_get_type -
- -
-element-tee -tee -GstTee -GstTeePullMode - -GstTeeClass -GST_TEE -GST_TEE_CAST -GST_IS_TEE -GST_TEE_CLASS -GST_IS_TEE_CLASS -GST_TYPE_TEE - -gst_tee_get_type -
- -
-element-typefind -typefind -GstTypeFindElement - -GstTypeFindElementClass -GST_TYPE_FIND_ELEMENT -GST_IS_TYPE_FIND_ELEMENT -GST_TYPE_FIND_ELEMENT_CLASS -GST_IS_TYPE_FIND_ELEMENT_CLASS -GST_TYPE_TYPE_FIND_ELEMENT - -gst_type_find_element_get_type -
- -
-element-valve -valve -GstValve - -GstValveClass -GST_VALVE -GST_IS_VALVE -GST_VALVE_CLASS -GST_IS_VALVE_CLASS -GST_TYPE_VALVE - -gst_valve_get_type -
- diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args deleted file mode 100644 index a52a71da54..0000000000 --- a/docs/plugins/gstreamer-plugins.args +++ /dev/null @@ -1,1300 +0,0 @@ - -GstValve::drop -gboolean - -rw -Drop buffers and events -Whether to drop buffers and events or let them through. -FALSE - - - -GstTypeFindElement::caps -GstCaps* - -r -caps -detected capabilities in stream. - - - - -GstTypeFindElement::force-caps -GstCaps* - -rw -force caps -force caps without doing a typefind. - - - - -GstTypeFindElement::minimum -guint -[1,100] -rw -minimum -minimum probability required to accept caps. -1 - - - -GstTee::alloc-pad -GstPad* - -rw -Allocation Src Pad -The pad ALLOCATION queries will be proxied to (DEPRECATED, has no effect). - - - - -GstTee::has-chain -gboolean - -rwx -Has Chain -If the element can operate in push mode. -TRUE - - - -GstTee::last-message -gchar* - -r -Last Message -The message describing current status. -NULL - - - -GstTee::num-src-pads -gint ->= 0 -r -Num Src Pads -The number of source pads. -0 - - - -GstTee::pull-mode -GstTeePullMode - -rwx -Pull mode -Behavior of tee in pull mode. -Never activate in pull mode - - - -GstTee::silent -gboolean - -rwx -Silent -Don't produce last_message events. -TRUE - - - -GstTee::allow-not-linked -gboolean - -rwx -Allow not linked -Return GST_FLOW_OK even if there are no source pads or they are all unlinked. -FALSE - - - -GstQueue2::current-level-buffers -guint - -r -Current level (buffers) -Current number of buffers in the queue. -0 - - - -GstQueue2::current-level-bytes -guint - -r -Current level (kB) -Current amount of data in the queue (bytes). -0 - - - -GstQueue2::current-level-time -guint64 - -r -Current level (ns) -Current amount of data in the queue (in ns). -0 - - - -GstQueue2::high-percent -gint -[0,100] -rw -High percent -High threshold for buffering to finish. Only used if use-buffering is True (Deprecated: use high-watermark instead). -99 - - - -GstQueue2::low-percent -gint -[0,100] -rw -Low percent -Low threshold for buffering to start. Only used if use-buffering is True (Deprecated: use low-watermark instead). -1 - - - -GstQueue2::max-size-buffers -guint - -rw -Max. size (buffers) -Max. number of buffers in the queue (0=disable). -100 - - - -GstQueue2::max-size-bytes -guint - -rw -Max. size (kB) -Max. amount of data in the queue (bytes, 0=disable). -2097152 - - - -GstQueue2::max-size-time -guint64 - -rw -Max. size (ns) -Max. amount of data in the queue (in ns, 0=disable). -2000000000 - - - -GstQueue2::ring-buffer-max-size -guint64 - -rw -Max. ring buffer size (bytes) -Max. amount of data in the ring buffer (bytes, 0 = disabled). -0 - - - -GstQueue2::temp-location -gchar* - -r -Temporary File Location -Location to store temporary files in (Only read this property, use temp-template to configure the name template). -NULL - - - -GstQueue2::temp-remove -gboolean - -rw -Remove the Temporary File -Remove the temp-location after use. -TRUE - - - -GstQueue2::temp-template -gchar* - -rw -Temporary File Template -File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled). -NULL - - - -GstQueue2::use-buffering -gboolean - -rw -Use buffering -Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds. -FALSE - - - -GstQueue2::use-rate-estimate -gboolean - -rw -Use Rate Estimate -Estimate the bitrate of the stream to calculate time level. -TRUE - - - -GstQueue2::avg-in-rate -gint64 ->= 0 -r -Input data rate (bytes/s) -Average input data rate (bytes/s). -0 - - - -GstQueue2::use-tags-bitrate -gboolean - -rw -Use bitrate from tags -Use a bitrate from upstream tags to estimate buffer duration if not provided. -FALSE - - - -GstQueue2::high-watermark -gdouble -[0,1] -rw -High watermark -High threshold for buffering to finish. Only used if use-buffering is True. -0.99 - - - -GstQueue2::low-watermark -gdouble -[0,1] -rw -Low watermark -Low threshold for buffering to start. Only used if use-buffering is True. -0.01 - - - -GstQueue2::bitrate -guint64 - -r -Bitrate (bits/s) -Conversion value between data size and time. -0 - - - -GstQueue2::use-bitrate-query -gboolean - -rw -Use bitrate from downstream query -Use a bitrate from a downstream query to estimate buffer duration if not provided. -TRUE - - - -GstQueue::current-level-buffers -guint - -r -Current level (buffers) -Current number of buffers in the queue. -0 - - - -GstQueue::current-level-bytes -guint - -r -Current level (kB) -Current amount of data in the queue (bytes). -0 - - - -GstQueue::current-level-time -guint64 - -r -Current level (ns) -Current amount of data in the queue (in ns). -0 - - - -GstQueue::flush-on-eos -gboolean - -rw -Flush on EOS -Discard all data in the queue when an EOS event is received. -FALSE - - - -GstQueue::leaky -GstQueueLeaky - -rw -Leaky -Where the queue leaks, if at all. -Not Leaky - - - -GstQueue::max-size-buffers -guint - -rw -Max. size (buffers) -Max. number of buffers in the queue (0=disable). -200 - - - -GstQueue::max-size-bytes -guint - -rw -Max. size (kB) -Max. amount of data in the queue (bytes, 0=disable). -10485760 - - - -GstQueue::max-size-time -guint64 - -rw -Max. size (ns) -Max. amount of data in the queue (in ns, 0=disable). -1000000000 - - - -GstQueue::min-threshold-buffers -guint - -rw -Min. threshold (buffers) -Min. number of buffers in the queue to allow reading (0=disable). -0 - - - -GstQueue::min-threshold-bytes -guint - -rw -Min. threshold (kB) -Min. amount of data in the queue to allow reading (bytes, 0=disable). -0 - - - -GstQueue::min-threshold-time -guint64 - -rw -Min. threshold (ns) -Min. amount of data in the queue to allow reading (in ns, 0=disable). -0 - - - -GstQueue::silent -gboolean - -rw -Silent -Don't emit queue signals. -FALSE - - - -GstOutputSelector::active-pad -GstPad* - -rw -Active pad -Currently active src pad. - - - - -GstOutputSelector::pad-negotiation-mode -GstOutputSelectorPadNegotiationMode - -rw -Pad negotiation mode -The mode to be used for pad negotiation. -All - - - -GstOutputSelector::resend-latest -gboolean - -rw -Resend latest buffer -Resend latest buffer after a switch to a new pad. -FALSE - - - -GstMultiQueue::extra-size-buffers -guint - -rw -Extra Size (buffers) -Amount of buffers the queues can grow if one of them is empty (0=disable) (NOT IMPLEMENTED). -5 - - - -GstMultiQueue::extra-size-bytes -guint - -rw -Extra Size (kB) -Amount of data the queues can grow if one of them is empty (bytes, 0=disable) (NOT IMPLEMENTED). -10485760 - - - -GstMultiQueue::extra-size-time -guint64 - -rw -Extra Size (ns) -Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED). -3000000000 - - - -GstMultiQueue::high-percent -gint -[0,100] -rw -High percent -High threshold for buffering to finish. Only used if use-buffering is True (Deprecated: use high-watermark instead). -99 - - - -GstMultiQueue::low-percent -gint -[0,100] -rw -Low percent -Low threshold for buffering to start. Only used if use-buffering is True (Deprecated: use low-watermark instead). -1 - - - -GstMultiQueue::max-size-buffers -guint - -rw -Max. size (buffers) -Max. number of buffers in the queue (0=disable). -5 - - - -GstMultiQueue::max-size-bytes -guint - -rw -Max. size (kB) -Max. amount of data in the queue (bytes, 0=disable). -10485760 - - - -GstMultiQueue::max-size-time -guint64 - -rw -Max. size (ns) -Max. amount of data in the queue (in ns, 0=disable). -2000000000 - - - -GstMultiQueue::sync-by-running-time -gboolean - -rw -Sync By Running Time -Synchronize deactivated or not-linked streams by running time. -FALSE - - - -GstMultiQueue::use-buffering -gboolean - -rw -Use buffering -Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds. -FALSE - - - -GstMultiQueue::unlinked-cache-time -guint64 - -rw -Unlinked cache time (ns) -Extra buffering in time for unlinked streams (if 'sync-by-running-time'). -250000000 - - - -GstMultiQueue::use-interleave -gboolean - -rw -Use interleave -Adjust time limits based on input interleave. -FALSE - - - -GstMultiQueue::high-watermark -gdouble -[0,1] -rw -High watermark -High threshold for buffering to finish. Only used if use-buffering is True. -0.99 - - - -GstMultiQueue::low-watermark -gdouble -[0,1] -rw -Low watermark -Low threshold for buffering to start. Only used if use-buffering is True. -0.01 - - - -GstMultiQueue::min-interleave-time -guint64 - -rw -Minimum interleave time -Minimum extra buffering for deinterleaving (size of the queues) when use-interleave=true. -250000000 - - - -GstInputSelector::active-pad -GstPad* - -rw -Active pad -The currently active sink pad. - - - - -GstInputSelector::cache-buffers -gboolean - -rw -Cache Buffers -Cache buffers for active-pad. -FALSE - - - -GstInputSelector::n-pads -guint - -r -Number of Pads -The number of sink pads. -0 - - - -GstInputSelector::sync-mode -GstInputSelectorSyncMode - -rw -Sync mode -Behavior in sync-streams mode. -Sync using the current active segment - - - -GstInputSelector::sync-streams -gboolean - -rw -Sync Streams -Synchronize inactive streams to the running time of the active stream or to the current clock. -TRUE - - - -GstIdentity::check-imperfect-offset -gboolean - -rw -Check for discontiguous offset -Send element messages if offset and offset_end do not match up. -FALSE - - - -GstIdentity::check-imperfect-timestamp -gboolean - -rw -Check for discontiguous timestamps -Send element messages if timestamps and durations do not match up. -FALSE - - - -GstIdentity::datarate -gint ->= 0 -rw -Datarate -(Re)timestamps buffers with number of bytes per second (0 = inactive). -0 - - - -GstIdentity::drop-probability -gfloat -[0,1] -rw -Drop Probability -The Probability a buffer is dropped. -0 - - - -GstIdentity::dump -gboolean - -rw -Dump -Dump buffer contents to stdout. -FALSE - - - -GstIdentity::error-after -gint ->= G_MAXULONG -rw -Error After -Error after N buffers. --1 - - - -GstIdentity::last-message -gchar* - -r -last-message -last-message. -NULL - - - -GstIdentity::signal-handoffs -gboolean - -rw -Signal handoffs -Send a signal before pushing the buffer. -TRUE - - - -GstIdentity::silent -gboolean - -rw -silent -silent. -TRUE - - - -GstIdentity::single-segment -gboolean - -rw -Single Segment -Timestamp buffers and eat segments so as to appear as one segment. -FALSE - - - -GstIdentity::sleep-time -guint - -rw -Sleep time -Microseconds to sleep between processing. -0 - - - -GstIdentity::sync -gboolean - -rw -Synchronize -Synchronize to pipeline clock. -FALSE - - - -GstIdentity::drop-buffer-flags -GstBufferFlags - -rw -Check flags to drop buffers -Drop buffers with the given flags. - - - - -GstIdentity::ts-offset -gint64 - -rw -Timestamp offset for synchronisation -Timestamp offset in nanoseconds for synchronisation, negative for earlier sync. -0 - - - -GstIdentity::drop-allocation -gboolean - -rw -Drop allocation query -Don't forward allocation queries. -FALSE - - - -GstIdentity::eos-after -gint ->= G_MAXULONG -rw -EOS After -EOS after N buffers. --1 - - - -GstFileSrc::location -gchar* - -rw -File Location -Location of the file to read. -NULL - - - -GstFileSink::append -gboolean - -rw -Append -Append to an already existing file. -FALSE - - - -GstFileSink::buffer-mode -GstFileSinkBufferMode - -rw -Buffering mode -The buffering mode to use. -Default buffering - - - -GstFileSink::buffer-size -guint - -rw -Buffering size -Size of buffer in number of bytes for line or full buffer-mode. -65536 - - - -GstFileSink::location -gchar* - -rw -File Location -Location of the file to write. -NULL - - - -GstFdSrc::fd -gint ->= 0 -rw -fd -An open file descriptor to read from. -0 - - - -GstFdSrc::timeout -guint64 - -rw -Timeout -Post a message after timeout microseconds (0 = disabled). -0 - - - -GstFdSink::fd -gint ->= 0 -rw -fd -An open file descriptor to write to. -1 - - - -GstFakeSrc::can-activate-pull -gboolean - -rwx -Can activate pull -Can activate in pull mode. -TRUE - - - -GstFakeSrc::can-activate-push -gboolean - -rwx -Can activate push -Can activate in push mode. -TRUE - - - -GstFakeSrc::data -GstFakeSrcDataType - -rw -data -Data allocation method. -Allocate data - - - -GstFakeSrc::datarate -gint ->= 0 -rw -Datarate -Timestamps buffers with number of bytes per second (0 = none). -0 - - - -GstFakeSrc::dump -gboolean - -rw -Dump -Dump buffer contents to stdout. -FALSE - - - -GstFakeSrc::filltype -GstFakeSrcFillType - -rw -filltype -How to fill the buffer, if at all. -Fill buffers with zeros - - - -GstFakeSrc::format -GstFormat - -rw -Format -The format of the segment events. -GST_FORMAT_BYTES - - - -GstFakeSrc::is-live -gboolean - -rwx -Is this a live source -True if the element cannot produce data in PAUSED. -FALSE - - - -GstFakeSrc::last-message -gchar* - -r -last-message -The last status message. -NULL - - - -GstFakeSrc::parentsize -gint ->= 0 -rw -parentsize -Size of parent buffer for sub-buffered allocation. -40960 - - - -GstFakeSrc::pattern -gchar* - -rw -pattern -Set the pattern (unused). -NULL - - - -GstFakeSrc::signal-handoffs -gboolean - -rw -Signal handoffs -Send a signal before pushing the buffer. -FALSE - - - -GstFakeSrc::silent -gboolean - -rw -Silent -Don't produce last_message events. -TRUE - - - -GstFakeSrc::sizemax -gint ->= 0 -rw -sizemax -Maximum buffer size. -4096 - - - -GstFakeSrc::sizemin -gint ->= 0 -rw -sizemin -Minimum buffer size. -0 - - - -GstFakeSrc::sizetype -GstFakeSrcSizeType - -rw -sizetype -How to determine buffer sizes. -Send empty buffers - - - -GstFakeSrc::sync -gboolean - -rw -Sync -Sync to the clock to the datarate. -FALSE - - - -GstFakeSink::can-activate-pull -gboolean - -rw -Can activate pull -Can activate in pull mode. -FALSE - - - -GstFakeSink::can-activate-push -gboolean - -rw -Can activate push -Can activate in push mode. -TRUE - - - -GstFakeSink::dump -gboolean - -rw -Dump -Dump buffer contents to stdout. -FALSE - - - -GstFakeSink::last-message -gchar* - -r -Last Message -The message describing current status. -NULL - - - -GstFakeSink::num-buffers -gint ->= G_MAXULONG -rw -num-buffers -Number of buffers to accept going EOS. --1 - - - -GstFakeSink::signal-handoffs -gboolean - -rw -Signal handoffs -Send a signal before unreffing the buffer. -FALSE - - - -GstFakeSink::silent -gboolean - -rw -Silent -Don't produce last_message events. -TRUE - - - -GstFakeSink::state-error -GstFakeSinkStateError - -rw -State Error -Generate a state change error. -No state change errors - - - -GstFakeSink::drop-out-of-segment -gboolean - -rw -Drop out-of-segment buffers -Drop and don't render / hand off out-of-segment buffers. -TRUE - - - -GstCapsFilter::caps -GstCaps* - -rw -Filter caps -Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object. - - - - -GstCapsFilter::caps-change-mode -GstCapsFilterCapsChangeMode - -rw -Caps Change Mode -Filter caps change behaviour. -Only accept the current filter caps - - - -GstDownloadBuffer::high-percent -gint -[0,100] -rw -High percent -High threshold for buffering to finish. Only used if use-buffering is True. -99 - - - -GstDownloadBuffer::low-percent -gint -[0,100] -rw -Low percent -Low threshold for buffering to start. Only used if use-buffering is True. -10 - - - -GstDownloadBuffer::max-size-bytes -guint - -rw -Max. size (kB) -Max. amount of data to buffer (bytes, 0=disable). -2097152 - - - -GstDownloadBuffer::max-size-time -guint64 - -rw -Max. size (ns) -Max. amount of data to buffer (in ns, 0=disable). -2000000000 - - - -GstDownloadBuffer::temp-location -gchar* - -r -Temporary File Location -Location to store temporary files in (Only read this property, use temp-template to configure the name template). -NULL - - - -GstDownloadBuffer::temp-remove -gboolean - -rw -Remove the Temporary File -Remove the temp-location after use. -TRUE - - - -GstDownloadBuffer::temp-template -gchar* - -rw -Temporary File Template -File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled). -NULL - - - -GstStreamidDemux::active-pad -GstPad* - -r -Active pad -The currently active src pad. - - - - -GstConcat::active-pad -GstPad* - -r -Active pad -Currently active src pad. - - - - -GstConcat::adjust-base -gboolean - -rw -Adjust segment base -Adjust the base value of segments to ensure they are adjacent. -TRUE - - - -GstFunnel::forward-sticky-events -gboolean - -rw -Forward sticky events -Forward sticky events on stream changes. -TRUE - - - -GstDataURISrc::uri -gchar* - -rw -URI -URI that should be used. -NULL - - diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy deleted file mode 100644 index 4f5311d59e..0000000000 --- a/docs/plugins/gstreamer-plugins.hierarchy +++ /dev/null @@ -1,62 +0,0 @@ -GObject - GInitiallyUnowned - GstObject - GstAllocator - GstAllocatorSysmem - GstBus - GstClock - GstControlBinding - GstControlSource - GstElement - GstBaseSink - GstFakeSink - GstFdSink - GstFileSink - GstBaseSrc - GstDataURISrc - GstFakeSrc - GstFileSrc - GstPushSrc - GstFdSrc - GstBaseTransform - GstCapsFilter - GstIdentity - GstBin - GstPipeline - GstConcat - GstDownloadBuffer - GstFunnel - GstInputSelector - GstMultiQueue - GstOutputSelector - GstQueue - GstQueue2 - GstStreamidDemux - GstTee - GstTypeFindElement - GstValve - GstPad - GstMultiQueuePad - GstSelectorPad - GstPadTemplate - GstPlugin - GstPluginFeature - GstDeviceProviderFactory - GstDynamicTypeFactory - GstElementFactory - GstTracerFactory - GstTypeFindFactory - GstRegistry - GstTask - GstTaskPool - GstTracer - GstLatencyTracer - GstLeaksTracer - GstLogTracer - GstRUsageTracer - GstStatsTracer - GstTracerRecord -GInterface - GTypePlugin - GstChildProxy - GstURIHandler diff --git a/docs/plugins/gstreamer-plugins.interfaces b/docs/plugins/gstreamer-plugins.interfaces deleted file mode 100644 index fde573e368..0000000000 --- a/docs/plugins/gstreamer-plugins.interfaces +++ /dev/null @@ -1,7 +0,0 @@ -GstBin GstChildProxy -GstDataURISrc GstURIHandler -GstFdSink GstURIHandler -GstFdSrc GstURIHandler -GstFileSink GstURIHandler -GstFileSrc GstURIHandler -GstPipeline GstChildProxy diff --git a/docs/plugins/gstreamer-plugins.prerequisites b/docs/plugins/gstreamer-plugins.prerequisites deleted file mode 100644 index a8d518a403..0000000000 --- a/docs/plugins/gstreamer-plugins.prerequisites +++ /dev/null @@ -1 +0,0 @@ -GstChildProxy GObject diff --git a/docs/plugins/gstreamer-plugins.signals b/docs/plugins/gstreamer-plugins.signals deleted file mode 100644 index a0cf06648d..0000000000 --- a/docs/plugins/gstreamer-plugins.signals +++ /dev/null @@ -1,93 +0,0 @@ - -GstTypeFindElement::have-type -void -l -GstTypeFindElement *gsttypefindelement -guint arg1 -GstCaps *arg2 - - - -GstQueue::overrun -void -f -GstQueue *gstqueue - - - -GstQueue::pushing -void -f -GstQueue *gstqueue - - - -GstQueue::running -void -f -GstQueue *gstqueue - - - -GstQueue::underrun -void -f -GstQueue *gstqueue - - - -GstMultiQueue::overrun -void -f -GstMultiQueue *gstmultiqueue - - - -GstMultiQueue::underrun -void -f -GstMultiQueue *gstmultiqueue - - - -GstIdentity::handoff -void -l -GstIdentity *gstidentity -GstBuffer *arg1 - - - -GstFakeSrc::handoff -void -l -GstFakeSrc *gstfakesrc -GstBuffer *arg1 -GstPad *arg2 - - - -GstFakeSink::handoff -void -l -GstFakeSink *gstfakesink -GstBuffer *arg1 -GstPad *arg2 - - - -GstFakeSink::preroll-handoff -void -l -GstFakeSink *gstfakesink -GstBuffer *arg1 -GstPad *arg2 - - - -GstQueue2::overrun -void -f -GstQueue2 *gstqueue2 - - diff --git a/docs/plugins/gstreamer-plugins.types b/docs/plugins/gstreamer-plugins.types deleted file mode 100644 index 9f4950e70d..0000000000 --- a/docs/plugins/gstreamer-plugins.types +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/docs/plugins/index.md b/docs/plugins/index.md new file mode 100644 index 0000000000..7849fd8cbf --- /dev/null +++ b/docs/plugins/index.md @@ -0,0 +1,5 @@ +--- +short-description: GStreamer plugin from GStreamer core +... + +# Core Plugin diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml deleted file mode 100644 index a273904f6d..0000000000 --- a/docs/plugins/inspect/plugin-coreelements.xml +++ /dev/null @@ -1,412 +0,0 @@ - - coreelements - GStreamer core elements - ../../plugins/elements/.libs/libgstcoreelements.so - libgstcoreelements.so - 1.17.0.1 - LGPL - gstreamer - GStreamer git - Unknown package origin - - - capsfilter - CapsFilter - Generic - Pass data without modification, limiting formats - David Schleef <ds@schleef.org> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - concat - Concat - Generic - Concatenate multiple streams - Sebastian Dröge <sebastian@centricular.com> - - - sink_%u - sink - request -
ANY
-
- - src - source - always -
ANY
-
-
-
- - dataurisrc - data: URI source element - Source - Handles data: uris - Philippe Normand <pnormand@igalia.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk> - - - src - source - always -
ANY
-
-
-
- - downloadbuffer - DownloadBuffer - Generic - Download Buffer element - Wim Taymans <wim.taymans@gmail.com> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - fakesink - Fake Sink - Sink - Black hole for data - Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim@fluendo.com>, Mr. 'frag-me-more' Vanderwingo <wingo@fluendo.com> - - - sink - sink - always -
ANY
-
-
-
- - fakesrc - Fake Source - Source - Push empty (no data) buffers around - Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim@fluendo.com> - - - src - source - always -
ANY
-
-
-
- - fdsink - Filedescriptor Sink - Sink/File - Write data to a file descriptor - Erik Walthinsen <omega@cse.ogi.edu> - - - sink - sink - always -
ANY
-
-
-
- - fdsrc - Filedescriptor Source - Source/File - Read from a file descriptor - Erik Walthinsen <omega@cse.ogi.edu> - - - src - source - always -
ANY
-
-
-
- - filesink - File Sink - Sink/File - Write stream to a file - Thomas Vander Stichele <thomas at apestaart dot org> - - - sink - sink - always -
ANY
-
-
-
- - filesrc - File Source - Source/File - Read from arbitrary point in a file - Erik Walthinsen <omega@cse.ogi.edu> - - - src - source - always -
ANY
-
-
-
- - funnel - Funnel pipe fitting - Generic - N-to-1 pipe fitting - Olivier Crete <olivier.crete@collabora.co.uk> - - - sink_%u - sink - request -
ANY
-
- - src - source - always -
ANY
-
-
-
- - identity - Identity - Generic - Pass data without modification - Erik Walthinsen <omega@cse.ogi.edu> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - input-selector - Input selector - Generic - N-to-1 input stream selector - Julien Moutte <julien@moutte.net>, Jan Schmidt <thaytan@mad.scientist.com>, Wim Taymans <wim.taymans@gmail.com> - - - sink_%u - sink - request -
ANY
-
- - src - source - always -
ANY
-
-
-
- - multiqueue - MultiQueue - Generic - Multiple data queue - Edward Hervey <edward@fluendo.com> - - - sink_%u - sink - request -
ANY
-
- - src_%u - source - sometimes -
ANY
-
-
-
- - output-selector - Output selector - Generic - 1-to-N output stream selector - Stefan Kost <stefan.kost@nokia.com> - - - sink - sink - always -
ANY
-
- - src_%u - source - request -
ANY
-
-
-
- - queue - Queue - Generic - Simple data queue - Erik Walthinsen <omega@cse.ogi.edu> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - queue2 - Queue 2 - Generic - Simple data queue - Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim.taymans@gmail.com> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - streamiddemux - Streamid Demux - Generic - 1-to-N output stream by stream-id - HoonHee Lee <hoonhee.lee@lge.com> - - - sink - sink - always -
ANY
-
- - src_%u - source - sometimes -
ANY
-
-
-
- - tee - Tee pipe fitting - Generic - 1-to-N pipe fitting - Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim@fluendo.com> - - - sink - sink - always -
ANY
-
- - src_%u - source - request -
ANY
-
-
-
- - typefind - TypeFind - Generic - Finds the media type of a stream - Benjamin Otte <in7y118@public.uni-hamburg.de> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
- - valve - Valve element - Filter - Drops buffers and events or lets them through - Olivier Crete <olivier.crete@collabora.co.uk> - - - sink - sink - always -
ANY
-
- - src - source - always -
ANY
-
-
-
-
-
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-coretracers.xml b/docs/plugins/inspect/plugin-coretracers.xml deleted file mode 100644 index 04e47ff319..0000000000 --- a/docs/plugins/inspect/plugin-coretracers.xml +++ /dev/null @@ -1,28 +0,0 @@ - - coretracers - GStreamer core tracers - ../../plugins/tracers/.libs/libgstcoretracers.so - libgstcoretracers.so - 1.17.0.1 - LGPL - gstreamer - GStreamer git - Unknown package origin - - - latency - - - leaks - - - log - - - rusage - - - stats - - - \ No newline at end of file diff --git a/docs/plugins/sitemap.txt b/docs/plugins/sitemap.txt new file mode 100644 index 0000000000..058a2713a4 --- /dev/null +++ b/docs/plugins/sitemap.txt @@ -0,0 +1 @@ +gst-index diff --git a/docs/version.in b/docs/version.in new file mode 100644 index 0000000000..efa22cd39b --- /dev/null +++ b/docs/version.in @@ -0,0 +1 @@ +@GST_API_VERSION@ diff --git a/gst/gstelement.c b/gst/gstelement.c index 383cfa79a8..8ccebec78c 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -25,6 +25,13 @@ * @title: GstElement * @short_description: Abstract base class for all pipeline elements * @see_also: #GstElementFactory, #GstPad + * @symbols: + * - GST_ELEMENT_METADATA_LONGNAME + * - GST_ELEMENT_METADATA_KLASS + * - GST_ELEMENT_METADATA_DESCRIPTION + * - GST_ELEMENT_METADATA_AUTHOR + * - GST_ELEMENT_METADATA_DOC_URI + * - GST_ELEMENT_METADATA_ICON_NAME * * GstElement is the abstract base class needed to construct an element that * can be used in a GStreamer pipeline. Please refer to the plugin writers diff --git a/gst/gsterror.c b/gst/gsterror.c index 820b51e0e7..050e1e89aa 100644 --- a/gst/gsterror.c +++ b/gst/gsterror.c @@ -22,6 +22,12 @@ * @title: GstError * @short_description: Categorized error messages * @see_also: #GstMessage + * @symbols: + * - gst_error_get_message + * - gst_stream_error_quark + * - gst_core_error_quark + * - gst_resource_error_quark + * - gst_library_error_quark * * GStreamer elements can throw non-fatal warnings and fatal errors. * Higher-level elements and applications can programmatically filter diff --git a/gst/gstmessage.c b/gst/gstmessage.c index f72bd62c61..8429252d45 100644 --- a/gst/gstmessage.c +++ b/gst/gstmessage.c @@ -3050,8 +3050,8 @@ gst_message_parse_streams_selected (GstMessage * message, * such as bitrate statistics for the given location. * * By default, message recipients should treat entries in the order they are - * stored. The recipient should therefore try entry #0 first, and if this - * entry is not acceptable or working, try entry #1 etc. Senders must make + * stored. The recipient should therefore try entry \#0 first, and if this + * entry is not acceptable or working, try entry \#1 etc. Senders must make * sure that they add entries in this order. However, recipients are free to * ignore the order and pick an entry that is "best" for them. One example * would be a recipient that scans the entries for the one with the highest diff --git a/gst/gstpoll.c b/gst/gstpoll.c index 5e0a668a89..bf5fb8b799 100644 --- a/gst/gstpoll.c +++ b/gst/gstpoll.c @@ -28,7 +28,7 @@ * to wait on them in a cancellable way * * A #GstPoll keeps track of file descriptors much like fd_set (used with - * select()) or a struct pollfd array (used with poll()). Once created with + * select ()) or a struct pollfd array (used with poll ()). Once created with * gst_poll_new(), the set can be used to wait for file descriptors to be * readable and/or writable. It is possible to make this wait be controlled * by specifying %TRUE for the @controllable flag when creating the set (or diff --git a/gst/meson.build b/gst/meson.build index d19689c431..34fc8feeb4 100644 --- a/gst/meson.build +++ b/gst/meson.build @@ -262,7 +262,7 @@ if build_gir endif gst_incdirs += [configinc] - gst_gen_sources += [gnome.generate_gir(libgst, + gst_gir = gnome.generate_gir(libgst, sources : gst_sources + gst_headers + gst_enums + [gst_version_h], namespace : 'Gst', nsversion : apiversion, @@ -272,7 +272,8 @@ if build_gir includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ], install : true, extra_args : gst_gir_extra_args, - )] + ) + gst_gen_sources += gst_gir endif gst_compile_args = [] diff --git a/libs/gst/base/gstbitreader.c b/libs/gst/base/gstbitreader.c index 9df36d1450..db97ad51a2 100644 --- a/libs/gst/base/gstbitreader.c +++ b/libs/gst/base/gstbitreader.c @@ -31,6 +31,17 @@ * SECTION:gstbitreader * @title: GstBitReader * @short_description: Reads any number of bits from a memory buffer + * @symbols: + * - gst_bit_reader_skip_unchecked + * - gst_bit_reader_skip_to_byte_unchecked + * - gst_bit_reader_get_bits_uint8_unchecked + * - gst_bit_reader_peek_bits_uint8_unchecked + * - gst_bit_reader_get_bits_uint16_unchecked + * - gst_bit_reader_peek_bits_uint16_unchecked + * - gst_bit_reader_get_bits_uint32_unchecked + * - gst_bit_reader_peek_bits_uint32_unchecked + * - gst_bit_reader_get_bits_uint64_unchecked + * - gst_bit_reader_peek_bits_uint64_unchecked * * #GstBitReader provides a bit reader that can read any number of bits * from a memory buffer. It provides functions for reading any number of bits diff --git a/libs/gst/base/gstbytereader.c b/libs/gst/base/gstbytereader.c index 72f720a038..e9c2ec0ddd 100644 --- a/libs/gst/base/gstbytereader.c +++ b/libs/gst/base/gstbytereader.c @@ -33,6 +33,47 @@ * @title: GstByteReader * @short_description: Reads different integer, string and floating point * types from a memory buffer + * @symbols: + * - gst_byte_reader_skip_unchecked + * - gst_byte_reader_get_uint8_unchecked + * - gst_byte_reader_peek_uint8_unchecked + * - gst_byte_reader_get_int8_unchecked + * - gst_byte_reader_peek_int8_unchecked + * - gst_byte_reader_get_uint16_le_unchecked + * - gst_byte_reader_get_uint16_be_unchecked + * - gst_byte_reader_peek_uint16_le_unchecked + * - gst_byte_reader_peek_uint16_be_unchecked + * - gst_byte_reader_get_int16_le_unchecked + * - gst_byte_reader_get_int16_be_unchecked + * - gst_byte_reader_peek_int16_le_unchecked + * - gst_byte_reader_peek_int16_be_unchecked + * - gst_byte_reader_get_uint24_le_unchecked + * - gst_byte_reader_get_uint24_be_unchecked + * - gst_byte_reader_peek_uint24_le_unchecked + * - gst_byte_reader_peek_uint24_be_unchecked + * - gst_byte_reader_get_int24_le_unchecked + * - gst_byte_reader_get_int24_be_unchecked + * - gst_byte_reader_peek_int24_le_unchecked + * - gst_byte_reader_peek_int24_be_unchecked + * - gst_byte_reader_get_uint32_le_unchecked + * - gst_byte_reader_get_uint32_be_unchecked + * - gst_byte_reader_peek_uint32_le_unchecked + * - gst_byte_reader_peek_uint32_be_unchecked + * - gst_byte_reader_get_int32_le_unchecked + * - gst_byte_reader_get_int32_be_unchecked + * - gst_byte_reader_peek_int32_le_unchecked + * - gst_byte_reader_peek_int32_be_unchecked + * - gst_byte_reader_get_float32_le_unchecked + * - gst_byte_reader_get_float32_be_unchecked + * - gst_byte_reader_get_float64_le_unchecked + * - gst_byte_reader_get_float64_be_unchecked + * - gst_byte_reader_peek_float32_le_unchecked + * - gst_byte_reader_peek_float32_be_unchecked + * - gst_byte_reader_peek_float64_le_unchecked + * - gst_byte_reader_peek_float64_be_unchecked + * - gst_byte_reader_peek_data_unchecked + * - gst_byte_reader_get_data_unchecked + * - gst_byte_reader_dup_data_unchecked * * #GstByteReader provides a byte reader that can read different integer and * floating point types from a memory buffer. It provides functions for reading diff --git a/libs/gst/base/gstbytewriter.c b/libs/gst/base/gstbytewriter.c index 705a35e48d..335f22f5b8 100644 --- a/libs/gst/base/gstbytewriter.c +++ b/libs/gst/base/gstbytewriter.c @@ -30,6 +30,31 @@ * @title: GstByteWriter * @short_description: Writes different integer, string and floating point * types to a memory buffer and allows reading + * @symbols: + * - gst_byte_writer_put_uint8_unchecked + * - gst_byte_writer_put_uint16_be_unchecked + * - gst_byte_writer_put_uint24_be_unchecked + * - gst_byte_writer_put_uint32_be_unchecked + * - gst_byte_writer_put_uint64_be_unchecked + * - gst_byte_writer_put_uint16_le_unchecked + * - gst_byte_writer_put_uint24_le_unchecked + * - gst_byte_writer_put_uint32_le_unchecked + * - gst_byte_writer_put_uint64_le_unchecked + * - gst_byte_writer_put_int8_unchecked + * - gst_byte_writer_put_int16_be_unchecked + * - gst_byte_writer_put_int24_be_unchecked + * - gst_byte_writer_put_int32_be_unchecked + * - gst_byte_writer_put_int64_be_unchecked + * - gst_byte_writer_put_int16_le_unchecked + * - gst_byte_writer_put_int24_le_unchecked + * - gst_byte_writer_put_int32_le_unchecked + * - gst_byte_writer_put_int64_le_unchecked + * - gst_byte_writer_put_float32_be_unchecked + * - gst_byte_writer_put_float64_be_unchecked + * - gst_byte_writer_put_float32_le_unchecked + * - gst_byte_writer_put_float64_le_unchecked + * - gst_byte_writer_put_data_unchecked + * - gst_byte_writer_fill_unchecked * * #GstByteWriter provides a byte writer and reader that can write/read different * integer and floating point types to/from a memory buffer. It provides functions diff --git a/libs/gst/base/meson.build b/libs/gst/base/meson.build index 4d0c4e9493..5315ecbaf8 100644 --- a/libs/gst/base/meson.build +++ b/libs/gst/base/meson.build @@ -53,7 +53,7 @@ gst_base = library('gstbase-@0@'.format(apiversion), if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/base/base.h' ] - gst_base_gen_sources += [gnome.generate_gir(gst_base, + gst_base_gir = gnome.generate_gir(gst_base, sources : gst_base_sources + gst_base_headers, namespace : 'GstBase', nsversion : apiversion, @@ -65,7 +65,9 @@ if build_gir includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], install : true, extra_args : gst_gir_extra_args, - )] + ) + + gst_base_gen_sources += [gst_base_gir] endif gst_base_dep = declare_dependency(link_with : gst_base, diff --git a/libs/gst/check/meson.build b/libs/gst/check/meson.build index 4211a789cd..2e34ec9800 100644 --- a/libs/gst/check/meson.build +++ b/libs/gst/check/meson.build @@ -53,7 +53,7 @@ gst_check_gen_sources = [] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/check/check.h' ] - gst_check_gen_sources += [gnome.generate_gir(gst_check, + gst_check_gir = gnome.generate_gir(gst_check, sources : gst_check_sources + gst_check_headers, namespace : 'GstCheck', nsversion : apiversion, @@ -65,7 +65,8 @@ if build_gir includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], install : true, extra_args : gst_gir_extra_args, - )] + ) + gst_check_gen_sources += gst_check_gir endif gst_check_dep = declare_dependency(link_with : gst_check, diff --git a/meson.build b/meson.build index 3bf39313d6..ddaa8ebfe5 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gstreamer', 'c', version : '1.17.0.1', - meson_version : '>= 0.47', + meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -521,6 +521,7 @@ endif subdir('pkgconfig') subdir('tests') subdir('data') +subdir('docs') # xgettext is optional (on Windows for instance) if find_program('xgettext', required : get_option('nls')).found() @@ -529,7 +530,5 @@ if find_program('xgettext', required : get_option('nls')).found() endif configure_file(output : 'config.h', configuration : cdata) - run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")') - install_data('gst-element-check-1.0.m4', install_dir : join_paths(get_option('datadir'), 'aclocal')) diff --git a/meson_options.txt b/meson_options.txt index e7ff7ba70c..6f137b0d20 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -44,3 +44,5 @@ option('package-name', type : 'string', yield : true, description : 'package name to use in plugins') option('package-origin', type : 'string', value : 'Unknown package origin', yield : true, description : 'package origin URL to use in plugins') +option('doc', type : 'feature', value : 'auto', yield: true, + description: 'Enable documentation.') diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c index 05d8b6cc76..415c0abcd0 100644 --- a/plugins/elements/gstcapsfilter.c +++ b/plugins/elements/gstcapsfilter.c @@ -22,9 +22,9 @@ /** * SECTION:element-capsfilter * @title: capsfilter + * @short_description: enforce limitations on the data format * - * The element does not modify data as such, but can enforce limitations on the - * data format. + * The element does not modify data as such, but can enforce limitations on the data format. * * ## Example launch line * |[ diff --git a/plugins/elements/gstelements.c b/plugins/elements/gstelements.c index 57f989d3c9..f0324392a0 100644 --- a/plugins/elements/gstelements.c +++ b/plugins/elements/gstelements.c @@ -19,7 +19,11 @@ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301, USA. */ - +/** + * plugin-coreelements: + * + * GStreamer core elements + */ #ifdef HAVE_CONFIG_H # include "config.h" diff --git a/plugins/elements/meson.build b/plugins/elements/meson.build index 6f7cbf56af..bb0bca35b6 100644 --- a/plugins/elements/meson.build +++ b/plugins/elements/meson.build @@ -34,3 +34,5 @@ gst_elements = library('gstcoreelements', install_dir : plugins_install_dir, ) pkgconfig.generate(gst_elements, install_dir : plugins_pkgconfig_install_dir) + +plugins += [gst_elements] diff --git a/plugins/meson.build b/plugins/meson.build index 4725ced8e6..186f041a6b 100644 --- a/plugins/meson.build +++ b/plugins/meson.build @@ -1,3 +1,4 @@ +plugins = [] subdir('elements') if tracer_hooks subdir('tracers') diff --git a/tools/tools.h b/tools/tools.h index 6bed5acf4f..fb24718999 100644 --- a/tools/tools.h +++ b/tools/tools.h @@ -31,7 +31,7 @@ /* * This is a kind of hacky way to make all the tools use the same version code. * If anyone knows a less hacky way to get this done, feel free to implement it. - * + * * It also includes all the files that all the tools require. */