mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 08:17:01 +00:00
common: Stop using GQuark-based GstStructure field name API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>
This commit is contained in:
parent
2df9c4739e
commit
6233eb0ff3
68 changed files with 1072 additions and 1119 deletions
|
@ -148,9 +148,10 @@ typedef struct
|
|||
} StructureValues;
|
||||
|
||||
static gboolean
|
||||
structure_set_fields (GQuark field_id, GValue * value, StructureValues * data)
|
||||
structure_set_fields (const GstIdStr * fieldname, GValue * value,
|
||||
StructureValues * data)
|
||||
{
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (data->ignored_fields
|
||||
&& g_strv_contains ((const gchar **) data->ignored_fields, field))
|
||||
|
@ -176,8 +177,8 @@ validate_flow_structure_cleanup (const GstStructure * structure,
|
|||
.ignored_fields = ignored_fields,
|
||||
};
|
||||
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) structure_set_fields, &d);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) structure_set_fields, &d);
|
||||
d.fields = g_list_sort (d.fields, (GCompareFunc) g_ascii_strcasecmp);
|
||||
nstructure = gst_structure_new_empty (gst_structure_get_name (structure));
|
||||
for (GList * tmp = d.fields; tmp; tmp = tmp->next) {
|
||||
|
|
|
@ -301,12 +301,12 @@ _incompatible_fields_info_set_found (StructureIncompatibleFieldsInfo * info)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_find_structure_incompatible_fields (GQuark field_id, const GValue * value,
|
||||
StructureIncompatibleFieldsInfo * info)
|
||||
_find_structure_incompatible_fields (const GstIdStr * fieldname,
|
||||
const GValue * value, StructureIncompatibleFieldsInfo * info)
|
||||
{
|
||||
gchar *value_str, *filter_str;
|
||||
const GValue *filter_value = gst_structure_id_get_value (info->filter,
|
||||
field_id);
|
||||
const GValue *filter_value = gst_structure_id_str_get_value (info->filter,
|
||||
fieldname);
|
||||
|
||||
if (!filter_value)
|
||||
return TRUE;
|
||||
|
@ -319,7 +319,7 @@ _find_structure_incompatible_fields (GQuark field_id, const GValue * value,
|
|||
g_string_append_printf (info->str,
|
||||
"\n -> Field '%s' downstream value from structure %d '(%s)%s' can't intersect with"
|
||||
" filter value from structure number %d '(%s)%s' because of their types.",
|
||||
g_quark_to_string (field_id), info->caps_struct_num,
|
||||
gst_id_str_as_str (fieldname), info->caps_struct_num,
|
||||
G_VALUE_TYPE_NAME (value), value_str, info->filter_caps_struct_num,
|
||||
G_VALUE_TYPE_NAME (filter_value), filter_str);
|
||||
|
||||
|
@ -337,7 +337,7 @@ _find_structure_incompatible_fields (GQuark field_id, const GValue * value,
|
|||
g_string_append_printf (info->str,
|
||||
"\n -> Field '%s' downstream value from structure %d '(%s)%s' can't intersect with"
|
||||
" filter value from structure number %d '(%s)%s'",
|
||||
g_quark_to_string (field_id), info->caps_struct_num,
|
||||
gst_id_str_as_str (fieldname), info->caps_struct_num,
|
||||
G_VALUE_TYPE_NAME (value), value_str, info->filter_caps_struct_num,
|
||||
G_VALUE_TYPE_NAME (filter_value), filter_str);
|
||||
|
||||
|
@ -411,8 +411,9 @@ _append_query_caps_failure_details (GstValidatePadMonitor * monitor,
|
|||
continue;
|
||||
}
|
||||
|
||||
gst_structure_foreach (possible_struct,
|
||||
(GstStructureForeachFunc) _find_structure_incompatible_fields, &info);
|
||||
gst_structure_foreach_id_str (possible_struct,
|
||||
(GstStructureForeachIdStrFunc) _find_structure_incompatible_fields,
|
||||
&info);
|
||||
|
||||
if (info.found)
|
||||
found = TRUE;
|
||||
|
@ -481,8 +482,9 @@ _append_accept_caps_failure_details (GstValidatePadMonitor * monitor,
|
|||
continue;
|
||||
}
|
||||
|
||||
gst_structure_foreach (refused_struct,
|
||||
(GstStructureForeachFunc) _find_structure_incompatible_fields, &info);
|
||||
gst_structure_foreach_id_str (refused_struct,
|
||||
(GstStructureForeachIdStrFunc) _find_structure_incompatible_fields,
|
||||
&info);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -962,10 +962,11 @@ typedef struct
|
|||
} PrintActionFieldData;
|
||||
|
||||
static gboolean
|
||||
_append_value (GQuark field_id, const GValue * value, PrintActionFieldData * d)
|
||||
_append_value (const GstIdStr * field, const GValue * value,
|
||||
PrintActionFieldData * d)
|
||||
{
|
||||
gchar *val_str = NULL;
|
||||
const gchar *fieldname = g_quark_to_string (field_id);
|
||||
const gchar *fieldname = gst_id_str_as_str (field);
|
||||
|
||||
if (g_str_has_prefix (fieldname, "__") && g_str_has_suffix (fieldname, "__"))
|
||||
return TRUE;
|
||||
|
@ -1021,8 +1022,8 @@ gst_validate_print_action (GstValidateAction * action, const gchar * message)
|
|||
GST_VALIDATE_ACTION_N_REPEATS (action));
|
||||
|
||||
g_string_append (string, " ( ");
|
||||
gst_structure_foreach (action->structure,
|
||||
(GstStructureForeachFunc) _append_value, &d);
|
||||
gst_structure_foreach_id_str (action->structure,
|
||||
(GstStructureForeachIdStrFunc) _append_value, &d);
|
||||
if (d.printed)
|
||||
g_string_append_printf (string, "\n%*c)\n", indent, ' ');
|
||||
else
|
||||
|
|
|
@ -1265,9 +1265,10 @@ _pause_action_restore_playing (GstValidateScenario * scenario)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_const_func (GQuark field_id, const GValue * value, GstStructure * consts)
|
||||
_set_const_func (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * consts)
|
||||
{
|
||||
gst_structure_id_set_value (consts, field_id, value);
|
||||
gst_structure_id_str_set_value (consts, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1276,14 +1277,14 @@ static GstValidateExecuteActionReturn
|
|||
_execute_define_vars (GstValidateScenario * scenario,
|
||||
GstValidateAction * action)
|
||||
{
|
||||
gst_structure_foreach (action->structure,
|
||||
(GstStructureForeachFunc) _set_const_func, scenario->priv->vars);
|
||||
gst_structure_foreach_id_str (action->structure,
|
||||
(GstStructureForeachIdStrFunc) _set_const_func, scenario->priv->vars);
|
||||
|
||||
return GST_VALIDATE_EXECUTE_ACTION_OK;
|
||||
}
|
||||
|
||||
static GstValidateExecuteActionReturn
|
||||
_set_timed_value (GQuark field_id, const GValue * gvalue,
|
||||
_set_timed_value (const GstIdStr * fieldname, const GValue * gvalue,
|
||||
GstStructure * structure)
|
||||
{
|
||||
GstValidateExecuteActionReturn res = GST_VALIDATE_EXECUTE_ACTION_OK;
|
||||
|
@ -1295,7 +1296,7 @@ _set_timed_value (GQuark field_id, const GValue * gvalue,
|
|||
GstValidateAction *action;
|
||||
GstObject *obj = NULL;
|
||||
GParamSpec *paramspec = NULL;
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
const gchar *unused_fields[] =
|
||||
{ "binding-type", "source-type", "interpolation-mode",
|
||||
"timestamp", "__scenario__", "__action__", "__res__", "repeat",
|
||||
|
@ -1408,8 +1409,8 @@ _set_timed_value_property (GstValidateScenario * scenario,
|
|||
gst_structure_set (action->structure, "__action__", G_TYPE_POINTER,
|
||||
action, "__scenario__", G_TYPE_POINTER, scenario, NULL);
|
||||
|
||||
gst_structure_foreach (action->structure,
|
||||
(GstStructureForeachFunc) _set_timed_value, action->structure);
|
||||
gst_structure_foreach_id_str (action->structure,
|
||||
(GstStructureForeachIdStrFunc) _set_timed_value, action->structure);
|
||||
gst_structure_get_int (action->structure, "__res__", &res);
|
||||
gst_structure_remove_fields (action->structure, "__action__", "__scenario__",
|
||||
"__res__", NULL);
|
||||
|
@ -1455,7 +1456,7 @@ _check_property (GstValidateScenario * scenario, GstValidateAction * action,
|
|||
}
|
||||
|
||||
static GstValidateExecuteActionReturn
|
||||
_set_or_check_properties (GQuark field_id, const GValue * value,
|
||||
_set_or_check_properties (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * structure)
|
||||
{
|
||||
GstValidateExecuteActionReturn res = GST_VALIDATE_EXECUTE_ACTION_OK;
|
||||
|
@ -1465,7 +1466,7 @@ _set_or_check_properties (GQuark field_id, const GValue * value,
|
|||
GParamSpec *paramspec = NULL;
|
||||
gboolean no_value_check = FALSE;
|
||||
GstValidateObjectSetPropertyFlags flags = 0;
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
const gchar *unused_fields[] = { "__scenario__", "__action__", "__res__",
|
||||
"playback-time", "repeat", "no-value-check", NULL
|
||||
};
|
||||
|
@ -1513,8 +1514,9 @@ _execute_set_or_check_properties (GstValidateScenario * scenario,
|
|||
gst_structure_set (action->structure, "__action__", G_TYPE_POINTER,
|
||||
action, "__scenario__", G_TYPE_POINTER, scenario, NULL);
|
||||
|
||||
gst_structure_foreach (action->structure,
|
||||
(GstStructureForeachFunc) _set_or_check_properties, action->structure);
|
||||
gst_structure_foreach_id_str (action->structure,
|
||||
(GstStructureForeachIdStrFunc) _set_or_check_properties,
|
||||
action->structure);
|
||||
gst_structure_get_int (action->structure, "__res__", &res);
|
||||
gst_structure_remove_fields (action->structure, "__action__", "__scenario__",
|
||||
"__res__", NULL);
|
||||
|
@ -2663,10 +2665,10 @@ gst_validate_parse_next_action_playback_time (GstValidateScenario * self)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_foreach_find_iterator (GQuark field_id, GValue * value,
|
||||
_foreach_find_iterator (const GstIdStr * fieldname, GValue * value,
|
||||
GstValidateAction * action)
|
||||
{
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (!g_strcmp0 (field, "actions"))
|
||||
return TRUE;
|
||||
|
@ -3720,10 +3722,10 @@ done:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
set_env_var (GQuark field_id, GValue * value,
|
||||
set_env_var (const GstIdStr * fieldname, GValue * value,
|
||||
GSubprocessLauncher * subproc_launcher)
|
||||
{
|
||||
g_subprocess_launcher_setenv (subproc_launcher, g_quark_to_string (field_id),
|
||||
g_subprocess_launcher_setenv (subproc_launcher, gst_id_str_as_str (fieldname),
|
||||
g_value_get_string (value), TRUE);
|
||||
|
||||
return TRUE;
|
||||
|
@ -3754,8 +3756,8 @@ _run_command (GstValidateScenario * scenario, GstValidateAction * action)
|
|||
"The `env` parameter should be a GstStructure, got %s",
|
||||
G_VALUE_TYPE_NAME (env));
|
||||
if (env) {
|
||||
gst_structure_foreach (gst_value_get_structure (env),
|
||||
(GstStructureForeachFunc) set_env_var, subproc_launcher);
|
||||
gst_structure_foreach_id_str (gst_value_get_structure (env),
|
||||
(GstStructureForeachIdStrFunc) set_env_var, subproc_launcher);
|
||||
}
|
||||
|
||||
REPORT_UNLESS (
|
||||
|
@ -4720,8 +4722,8 @@ gst_validate_foreach_prepare (GstValidateAction * action)
|
|||
|
||||
g_free (GST_VALIDATE_ACTION_RANGE_NAME (action));
|
||||
GST_VALIDATE_ACTION_RANGE_NAME (action) = NULL;
|
||||
gst_structure_foreach (action->structure,
|
||||
(GstStructureForeachFunc) _foreach_find_iterator, action);
|
||||
gst_structure_foreach_id_str (action->structure,
|
||||
(GstStructureForeachIdStrFunc) _foreach_find_iterator, action);
|
||||
|
||||
/* Allow using the repeat field here too */
|
||||
if (!GST_VALIDATE_ACTION_RANGE_NAME (action)
|
||||
|
@ -4792,10 +4794,10 @@ gst_validate_foreach_prepare (GstValidateAction * action)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_check_structure_has_expected_value (GQuark field_id, const GValue * value,
|
||||
GstStructure * message_struct)
|
||||
_check_structure_has_expected_value (const GstIdStr * fieldname,
|
||||
const GValue * value, GstStructure * message_struct)
|
||||
{
|
||||
const GValue *v = gst_structure_id_get_value (message_struct, field_id);
|
||||
const GValue *v = gst_structure_id_str_get_value (message_struct, fieldname);
|
||||
|
||||
if (!v) {
|
||||
gst_structure_set (message_struct, "__validate_has_expected_values",
|
||||
|
@ -4855,8 +4857,8 @@ _check_waiting_for_message (GstValidateScenario * scenario,
|
|||
|
||||
gst_structure_set (message_struct, "__validate_has_expected_values",
|
||||
G_TYPE_BOOLEAN, FALSE, NULL);
|
||||
gst_structure_foreach (expected_values,
|
||||
(GstStructureForeachFunc) _check_structure_has_expected_value,
|
||||
gst_structure_foreach_id_str (expected_values,
|
||||
(GstStructureForeachIdStrFunc) _check_structure_has_expected_value,
|
||||
message_struct);
|
||||
|
||||
if (!gst_structure_get_boolean (message_struct,
|
||||
|
@ -6078,13 +6080,14 @@ gst_validate_scenario_factory_create (GstValidateRunner *
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_add_description (GQuark field_id, const GValue * value, KeyFileGroupName * kfg)
|
||||
_add_description (const GstIdStr * fieldname, const GValue * value,
|
||||
KeyFileGroupName * kfg)
|
||||
{
|
||||
gchar *tmp = gst_value_serialize (value);
|
||||
gchar *tmpcompress = g_strcompress (tmp);
|
||||
|
||||
g_key_file_set_string (kfg->kf, kfg->group_name,
|
||||
g_quark_to_string (field_id), tmpcompress);
|
||||
gst_id_str_as_str (fieldname), tmpcompress);
|
||||
|
||||
g_free (tmpcompress);
|
||||
g_free (tmp);
|
||||
|
@ -6154,8 +6157,8 @@ _parse_scenario (GFile * f, GKeyFile * kf)
|
|||
|
||||
gst_structure_remove_fields (meta, "__lineno__", "__filename__",
|
||||
"__debug__", NULL);
|
||||
gst_structure_foreach (meta,
|
||||
(GstStructureForeachFunc) _add_description, &kfg);
|
||||
gst_structure_foreach_id_str (meta,
|
||||
(GstStructureForeachIdStrFunc) _add_description, &kfg);
|
||||
gst_structure_free (meta);
|
||||
g_free (kfg.group_name);
|
||||
} else {
|
||||
|
|
|
@ -50,10 +50,6 @@
|
|||
static GRegex *_variables_regex = NULL;
|
||||
static GstStructure *global_vars = NULL;
|
||||
|
||||
static GQuark debug_quark = 0;
|
||||
static GQuark lineno_quark = 0;
|
||||
static GQuark filename_quark = 0;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const gchar *str;
|
||||
|
@ -563,17 +559,6 @@ skip_spaces (gchar * c)
|
|||
return c;
|
||||
}
|
||||
|
||||
static void
|
||||
setup_quarks (void)
|
||||
{
|
||||
if (filename_quark)
|
||||
return;
|
||||
|
||||
filename_quark = g_quark_from_static_string ("__filename__");
|
||||
lineno_quark = g_quark_from_static_string ("__lineno__");
|
||||
debug_quark = g_quark_from_static_string ("__debug__");
|
||||
}
|
||||
|
||||
gboolean
|
||||
gst_validate_has_colored_output (void)
|
||||
{
|
||||
|
@ -809,11 +794,10 @@ _file_get_structures (GFile * file, gchar ** err,
|
|||
}
|
||||
gst_structure_free (structure);
|
||||
} else {
|
||||
setup_quarks ();
|
||||
gst_structure_id_set (structure,
|
||||
lineno_quark, G_TYPE_INT, current_lineno,
|
||||
filename_quark, G_TYPE_STRING, filename,
|
||||
debug_quark, G_TYPE_STRING, debug_line->str, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
"__lineno__", G_TYPE_INT, current_lineno,
|
||||
"__filename__", G_TYPE_STRING, filename,
|
||||
"__debug__", G_TYPE_STRING, debug_line->str, NULL);
|
||||
structures = g_list_append (structures, structure);
|
||||
}
|
||||
}
|
||||
|
@ -1356,10 +1340,17 @@ done:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_structure_set_variables (GQuark field_id, GValue * value, ReplaceData * data)
|
||||
_structure_set_variables (const GstIdStr * fieldname, GValue * value,
|
||||
ReplaceData * data)
|
||||
{
|
||||
if (field_id == filename_quark || field_id == debug_quark
|
||||
|| field_id == debug_quark)
|
||||
static const gchar *skip_fields[] = {
|
||||
"__filename__",
|
||||
"__lineno__",
|
||||
"__debug__",
|
||||
NULL,
|
||||
};
|
||||
|
||||
if (fieldname && g_strv_contains (skip_fields, gst_id_str_as_str (fieldname)))
|
||||
return TRUE;
|
||||
|
||||
if (GST_VALUE_HOLDS_LIST (value)) {
|
||||
|
@ -1415,14 +1406,15 @@ gst_validate_structure_resolve_variables (gpointer source,
|
|||
{
|
||||
ReplaceData d = { source ? source : structure, local_variables, flags };
|
||||
|
||||
gst_structure_filter_and_map_in_place (structure,
|
||||
(GstStructureFilterMapFunc) _structure_set_variables, &d);
|
||||
gst_structure_filter_and_map_in_place_id_str (structure,
|
||||
(GstStructureFilterMapIdStrFunc) _structure_set_variables, &d);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_set_vars_func (GQuark field_id, const GValue * value, GstStructure * vars)
|
||||
_set_vars_func (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * vars)
|
||||
{
|
||||
gst_structure_id_set_value (vars, field_id, value);
|
||||
gst_structure_id_str_set_value (vars, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1462,8 +1454,8 @@ gst_validate_set_globals (GstStructure * structure)
|
|||
if (!structure)
|
||||
return;
|
||||
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) _set_vars_func, global_vars);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) _set_vars_func, global_vars);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -138,9 +138,10 @@ gst_structure_validate_name (const gchar * name)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_vars_func (GQuark field_id, const GValue * value, GstStructure * vars)
|
||||
_set_vars_func (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * vars)
|
||||
{
|
||||
gst_structure_id_set_value (vars, field_id, value);
|
||||
gst_structure_id_str_set_value (vars, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -199,8 +200,8 @@ create_config (const gchar * config)
|
|||
|
||||
if (gst_structure_has_field (structure, "set-vars")) {
|
||||
gst_structure_remove_field (structure, "set-vars");
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) _set_vars_func, local_vars);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) _set_vars_func, local_vars);
|
||||
gst_structure_free (structure);
|
||||
} else if (!loaded_globals
|
||||
&& gst_structure_has_name (structure, "set-globals")) {
|
||||
|
|
|
@ -722,10 +722,11 @@ _handle_event (GstValidateOverride * override,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_map_confg (GQuark field_id, GValue * value, GstStructure * structure)
|
||||
_map_confg (const GstIdStr * fieldname, GValue * value,
|
||||
GstStructure * structure)
|
||||
{
|
||||
if (!gst_structure_id_has_field (structure, field_id))
|
||||
gst_structure_id_set_value (structure, field_id, value);
|
||||
if (!gst_structure_id_str_has_field (structure, fieldname))
|
||||
gst_structure_id_str_set_value (structure, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -760,8 +761,8 @@ gst_validate_ssim_init (GstPlugin * plugin)
|
|||
continue;
|
||||
|
||||
if (config_structure) {
|
||||
gst_structure_map_in_place (config_structure,
|
||||
(GstStructureMapFunc) _map_confg, tmp->data);
|
||||
gst_structure_map_in_place_id_str (config_structure,
|
||||
(GstStructureMapIdStrFunc) _map_confg, tmp->data);
|
||||
}
|
||||
if ((name || target_element_classification)) {
|
||||
GstValidateOverride *override =
|
||||
|
|
|
@ -546,7 +546,7 @@ _loading_done_cb (GESFormatter * self)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_child_property (GQuark field_id, const GValue * value,
|
||||
_set_child_property (const GstIdStr * fieldname, const GValue * value,
|
||||
GESTimelineElement * tlelement)
|
||||
{
|
||||
GParamSpec *pspec;
|
||||
|
@ -554,11 +554,11 @@ _set_child_property (GQuark field_id, const GValue * value,
|
|||
|
||||
/* FIXME: error handling? */
|
||||
if (!ges_timeline_element_lookup_child (tlelement,
|
||||
g_quark_to_string (field_id), &object, &pspec)) {
|
||||
gst_id_str_as_str (fieldname), &object, &pspec)) {
|
||||
#ifndef GST_DISABLE_GST_DEBUG
|
||||
gchar *tmp = gst_value_serialize (value);
|
||||
GST_ERROR_OBJECT (tlelement, "Could not set %s=%s",
|
||||
g_quark_to_string (field_id), tmp);
|
||||
gst_id_str_as_str (fieldname), tmp);
|
||||
g_free (tmp);
|
||||
#endif
|
||||
return TRUE;
|
||||
|
@ -571,9 +571,10 @@ _set_child_property (GQuark field_id, const GValue * value,
|
|||
}
|
||||
|
||||
gboolean
|
||||
set_property_foreach (GQuark field_id, const GValue * value, GObject * object)
|
||||
set_property_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
GObject * object)
|
||||
{
|
||||
g_object_set_property (object, g_quark_to_string (field_id), value);
|
||||
g_object_set_property (object, gst_id_str_as_str (fieldname), value);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -602,12 +603,12 @@ _add_object_to_layer (GESBaseXmlFormatterPrivate * priv, const gchar * id,
|
|||
metadatas);
|
||||
|
||||
if (properties)
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, clip);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, clip);
|
||||
|
||||
if (children_properties)
|
||||
gst_structure_foreach (children_properties,
|
||||
(GstStructureForeachFunc) _set_child_property, clip);
|
||||
gst_structure_foreach_id_str (children_properties,
|
||||
(GstStructureForeachIdStrFunc) _set_child_property, clip);
|
||||
|
||||
g_hash_table_insert (priv->containers, g_strdup (id), gst_object_ref (clip));
|
||||
return clip;
|
||||
|
@ -635,8 +636,8 @@ _add_track_element (GESFormatter * self, GESClip * clip,
|
|||
GES_TIMELINE_ELEMENT (trackelement)))
|
||||
GST_ERROR ("%" GES_FORMAT " could not add child %p while"
|
||||
" reloading, this should never happen", GES_ARGS (clip), trackelement);
|
||||
gst_structure_foreach (children_properties,
|
||||
(GstStructureForeachFunc) _set_child_property, trackelement);
|
||||
gst_structure_foreach_id_str (children_properties,
|
||||
(GstStructureForeachIdStrFunc) _set_child_property, trackelement);
|
||||
|
||||
if (properties) {
|
||||
gboolean has_internal_source;
|
||||
|
@ -649,8 +650,8 @@ _add_track_element (GESFormatter * self, GESClip * clip,
|
|||
&has_internal_source) && has_internal_source)
|
||||
g_object_set (trackelement, "has-internal-source", has_internal_source,
|
||||
NULL);
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, trackelement);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, trackelement);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -686,8 +687,8 @@ new_asset_cb (GESAsset * source, GAsyncResult * res, PendingAsset * passet)
|
|||
ges_meta_container_add_metas_from_string (GES_META_CONTAINER (source),
|
||||
passet->metadatas);
|
||||
if (passet->properties)
|
||||
gst_structure_foreach (passet->properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, source);
|
||||
gst_structure_foreach_id_str (passet->properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, source);
|
||||
|
||||
possible_id = ges_project_try_updating_id (GES_FORMATTER (self)->project,
|
||||
source, error);
|
||||
|
@ -922,8 +923,8 @@ ges_base_xml_formatter_set_timeline_properties (GESBaseXmlFormatter * self,
|
|||
&auto_transition))
|
||||
gst_structure_remove_field (props, "auto-transition");
|
||||
|
||||
gst_structure_foreach (props,
|
||||
(GstStructureForeachFunc) set_property_foreach, timeline);
|
||||
gst_structure_foreach_id_str (props,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, timeline);
|
||||
gst_structure_free (props);
|
||||
}
|
||||
}
|
||||
|
@ -977,8 +978,8 @@ ges_base_xml_formatter_add_layer (GESBaseXmlFormatter * self,
|
|||
&auto_transition))
|
||||
gst_structure_remove_field (properties, "auto-transition");
|
||||
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, layer);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, layer);
|
||||
}
|
||||
|
||||
if (metadatas)
|
||||
|
@ -1047,8 +1048,8 @@ ges_base_xml_formatter_add_track (GESBaseXmlFormatter * self,
|
|||
}
|
||||
gst_structure_remove_fields (properties, "restriction-caps", "caps",
|
||||
"message-forward", NULL);
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, track);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, track);
|
||||
g_free (restriction);
|
||||
}
|
||||
|
||||
|
@ -1133,12 +1134,12 @@ ges_base_xml_formatter_add_source (GESBaseXmlFormatter * self,
|
|||
}
|
||||
|
||||
if (properties)
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) set_property_foreach, element);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) set_property_foreach, element);
|
||||
|
||||
if (children_properties)
|
||||
gst_structure_foreach (children_properties,
|
||||
(GstStructureForeachFunc) _set_child_property, element);
|
||||
gst_structure_foreach_id_str (children_properties,
|
||||
(GstStructureForeachIdStrFunc) _set_child_property, element);
|
||||
|
||||
if (metadatas)
|
||||
ges_meta_container_add_metas_from_string (GES_META_CONTAINER
|
||||
|
|
|
@ -401,7 +401,7 @@ G_GNUC_INTERNAL void ges_base_xml_formatter_end_current_clip (GESBaseXmlFo
|
|||
|
||||
G_GNUC_INTERNAL void ges_xml_formatter_deinit (void);
|
||||
|
||||
G_GNUC_INTERNAL gboolean set_property_foreach (GQuark field_id,
|
||||
G_GNUC_INTERNAL gboolean set_property_foreach (const GstIdStr *fieldname,
|
||||
const GValue * value,
|
||||
GObject * object);
|
||||
|
||||
|
|
|
@ -152,19 +152,21 @@ typedef struct
|
|||
} MetadataForeachData;
|
||||
|
||||
static gboolean
|
||||
structure_foreach_wrapper (GQuark field_id, const GValue * value,
|
||||
structure_foreach_wrapper (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
MetadataForeachData *data = (MetadataForeachData *) user_data;
|
||||
|
||||
data->func (data->container, g_quark_to_string (field_id), value, data->data);
|
||||
data->func (data->container, gst_id_str_as_str (fieldname), value,
|
||||
data->data);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_append_foreach (GQuark field_id, const GValue * value, GESMetaContainer * self)
|
||||
_append_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
GESMetaContainer * self)
|
||||
{
|
||||
ges_meta_container_set_meta (self, g_quark_to_string (field_id), value);
|
||||
ges_meta_container_set_meta (self, gst_id_str_as_str (fieldname), value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -195,8 +197,8 @@ ges_meta_container_foreach (GESMetaContainer * container,
|
|||
foreach_data.container = container;
|
||||
foreach_data.data = user_data;
|
||||
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) structure_foreach_wrapper, &foreach_data);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) structure_foreach_wrapper, &foreach_data);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -563,8 +565,8 @@ ges_meta_container_add_metas_from_string (GESMetaContainer * container,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
gst_structure_foreach (n_structure, (GstStructureForeachFunc) _append_foreach,
|
||||
container);
|
||||
gst_structure_foreach_id_str (n_structure,
|
||||
(GstStructureForeachIdStrFunc) _append_foreach, container);
|
||||
|
||||
gst_structure_free (n_structure);
|
||||
return TRUE;
|
||||
|
|
|
@ -156,18 +156,17 @@ enum_from_str (GType type, const gchar * str_enum, guint * enum_value)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_check_field (GQuark field_id, const GValue * value, FieldsError * fields_error)
|
||||
_check_field (const GstIdStr * fieldname, const GValue * value,
|
||||
FieldsError * fields_error)
|
||||
{
|
||||
guint i;
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
|
||||
for (i = 0; fields_error->fields[i]; i++) {
|
||||
if (g_strcmp0 (fields_error->fields[i], field) == 0) {
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (g_strv_contains (fields_error->fields, gst_id_str_as_str (fieldname)))
|
||||
return TRUE;
|
||||
|
||||
// The pointers to the field names are only valid for as long as the structure
|
||||
// is, but they're only used in the direct caller while the structure lives
|
||||
// longer.
|
||||
fields_error->invalid_fields =
|
||||
g_list_append (fields_error->invalid_fields, (gpointer) field);
|
||||
|
||||
|
@ -178,8 +177,8 @@ static gboolean
|
|||
_check_fields (GstStructure * structure, FieldsError fields_error,
|
||||
GError ** error)
|
||||
{
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) _check_field, &fields_error);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) _check_field, &fields_error);
|
||||
|
||||
if (fields_error.invalid_fields) {
|
||||
GList *tmp;
|
||||
|
@ -199,6 +198,7 @@ _check_fields (GstStructure * structure, FieldsError fields_error,
|
|||
|
||||
g_list_free (fields_error.invalid_fields);
|
||||
g_string_free (msg, TRUE);
|
||||
g_list_free (fields_error.invalid_fields);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -351,24 +351,21 @@ value_to_double (const GValue * v)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
un_set_keyframes_foreach (GQuark field_id, const GValue * value,
|
||||
un_set_keyframes_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
SetKeyframesData * d)
|
||||
{
|
||||
GError **error = &d->error;
|
||||
gchar *tmp;
|
||||
gint i;
|
||||
const gchar *valid_fields[] = {
|
||||
"element-name", "property-name", "value", "timestamp", "project-uri",
|
||||
"binding-type", "source-type", "interpolation-mode", "interpolation-mode",
|
||||
NULL
|
||||
};
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
gdouble ts;
|
||||
|
||||
for (i = 0; valid_fields[i]; i++) {
|
||||
if (g_quark_from_string (valid_fields[i]) == field_id)
|
||||
return TRUE;
|
||||
}
|
||||
if (g_strv_contains (valid_fields, gst_id_str_as_str (fieldname)))
|
||||
return TRUE;
|
||||
|
||||
errno = 0;
|
||||
ts = g_strtod (field, &tmp);
|
||||
|
@ -456,8 +453,8 @@ _ges_add_remove_keyframe_from_struct (GESTimeline * timeline,
|
|||
SetKeyframesData d = {
|
||||
source, structure, NULL, property_name, TRUE,
|
||||
};
|
||||
gst_structure_foreach (structure,
|
||||
(GstStructureForeachFunc) un_set_keyframes_foreach, &d);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) un_set_keyframes_foreach, &d);
|
||||
if (!d.res)
|
||||
g_propagate_error (error, d.error);
|
||||
|
||||
|
|
|
@ -305,9 +305,10 @@ track_resort_and_fill_gaps (GESTrack * track)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
update_field (GQuark field_id, const GValue * value, GstStructure * original)
|
||||
update_field (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * original)
|
||||
{
|
||||
gst_structure_id_set_value (original, field_id, value);
|
||||
gst_structure_id_str_set_value (original, fieldname, value);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1094,8 +1095,8 @@ ges_track_update_restriction_caps (GESTrack * self, const GstCaps * caps)
|
|||
|
||||
if (gst_caps_get_size (new_restriction_caps) > i) {
|
||||
GstStructure *original = gst_caps_get_structure (new_restriction_caps, i);
|
||||
gst_structure_foreach (new, (GstStructureForeachFunc) update_field,
|
||||
original);
|
||||
gst_structure_foreach_id_str (new,
|
||||
(GstStructureForeachIdStrFunc) update_field, original);
|
||||
} else
|
||||
gst_caps_append_structure (new_restriction_caps,
|
||||
gst_structure_copy (new));
|
||||
|
|
|
@ -534,11 +534,12 @@ typedef struct
|
|||
} PropertyData;
|
||||
|
||||
static gboolean
|
||||
check_property (GQuark field_id, GValue * expected_value, PropertyData * data)
|
||||
check_property (const GstIdStr * fieldname, GValue * expected_value,
|
||||
PropertyData * data)
|
||||
{
|
||||
GValue cvalue = G_VALUE_INIT, *tvalue = NULL, comparable_value = G_VALUE_INIT,
|
||||
*observed_value;
|
||||
const gchar *property = g_quark_to_string (field_id);
|
||||
const gchar *property = gst_id_str_as_str (fieldname);
|
||||
GstControlBinding *binding = NULL;
|
||||
|
||||
if (!data->on_children) {
|
||||
|
@ -665,9 +666,10 @@ compare:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
set_property (GQuark field_id, const GValue * value, PropertyData * data)
|
||||
set_property (const GstIdStr * fieldname, const GValue * value,
|
||||
PropertyData * data)
|
||||
{
|
||||
const gchar *property = g_quark_to_string (field_id);
|
||||
const gchar *property = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (data->on_children) {
|
||||
if (!ges_timeline_element_set_child_property (data->element, property,
|
||||
|
@ -729,9 +731,9 @@ GES_START_VALIDATE_ACTION (set_or_check_properties)
|
|||
data.element = element;
|
||||
gst_structure_remove_fields (structure, "element-name", "at-time",
|
||||
"project-uri", NULL);
|
||||
gst_structure_foreach (structure,
|
||||
is_setting ? (GstStructureForeachFunc) set_property
|
||||
: (GstStructureForeachFunc) check_property, &data);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
is_setting ? (GstStructureForeachIdStrFunc) set_property
|
||||
: (GstStructureForeachIdStrFunc) check_property, &data);
|
||||
gst_object_unref (element);
|
||||
|
||||
local_done:
|
||||
|
|
|
@ -380,14 +380,15 @@ on_ice_gathering_state_notify (GstElement * webrtcbin, GParamSpec * pspec,
|
|||
static gboolean webrtcbin_get_stats (GstElement * webrtcbin);
|
||||
|
||||
static gboolean
|
||||
on_webrtcbin_stat (GQuark field_id, const GValue * value, gpointer unused)
|
||||
on_webrtcbin_stat (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer unused)
|
||||
{
|
||||
if (GST_VALUE_HOLDS_STRUCTURE (value)) {
|
||||
GST_DEBUG ("stat: \'%s\': %" GST_PTR_FORMAT, g_quark_to_string (field_id),
|
||||
GST_DEBUG ("stat: \'%s\': %" GST_PTR_FORMAT, gst_id_str_as_str (fieldname),
|
||||
gst_value_get_structure (value));
|
||||
} else {
|
||||
GST_FIXME ("unknown field \'%s\' value type: \'%s\'",
|
||||
g_quark_to_string (field_id), g_type_name (G_VALUE_TYPE (value)));
|
||||
gst_id_str_as_str (fieldname), g_type_name (G_VALUE_TYPE (value)));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -401,7 +402,7 @@ on_webrtcbin_get_stats (GstPromise * promise, GstElement * webrtcbin)
|
|||
g_return_if_fail (gst_promise_wait (promise) == GST_PROMISE_RESULT_REPLIED);
|
||||
|
||||
stats = gst_promise_get_reply (promise);
|
||||
gst_structure_foreach (stats, on_webrtcbin_stat, NULL);
|
||||
gst_structure_foreach_id_str (stats, on_webrtcbin_stat, NULL);
|
||||
|
||||
g_timeout_add (100, (GSourceFunc) webrtcbin_get_stats, webrtcbin);
|
||||
}
|
||||
|
|
|
@ -1056,12 +1056,13 @@ escape:
|
|||
* understand.
|
||||
*/
|
||||
static gboolean
|
||||
_headers_to_curl_slist (GQuark field_id, const GValue * value, gpointer ptr)
|
||||
_headers_to_curl_slist (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer ptr)
|
||||
{
|
||||
gchar *field;
|
||||
struct curl_slist **p_slist = ptr;
|
||||
|
||||
field = g_strdup_printf ("%s: %s", g_quark_to_string (field_id),
|
||||
field = g_strdup_printf ("%s: %s", gst_id_str_as_str (fieldname),
|
||||
g_value_get_string (value));
|
||||
|
||||
*p_slist = curl_slist_append (*p_slist, field);
|
||||
|
@ -1124,7 +1125,7 @@ gst_curl_http_src_create_easy_handle (GstCurlHttpSrc * s)
|
|||
|
||||
/* curl_slist_append dynamically allocates memory, but I need to free it */
|
||||
if (s->request_headers != NULL) {
|
||||
gst_structure_foreach (s->request_headers, _headers_to_curl_slist,
|
||||
gst_structure_foreach_id_str (s->request_headers, _headers_to_curl_slist,
|
||||
&s->slist);
|
||||
if (curl_easy_setopt (handle, CURLOPT_HTTPHEADER, s->slist) != CURLE_OK) {
|
||||
GST_WARNING_OBJECT (s, "Failed to set HTTP headers!");
|
||||
|
|
|
@ -3088,13 +3088,13 @@ done:
|
|||
|
||||
/* https://tools.ietf.org/html/rfc5576#section-4.2 */
|
||||
static gboolean
|
||||
_media_add_rtx_ssrc_group (GQuark field_id, const GValue * value,
|
||||
_media_add_rtx_ssrc_group (const GstIdStr * fieldname, const GValue * value,
|
||||
GstSDPMedia * media)
|
||||
{
|
||||
gchar *str;
|
||||
|
||||
str =
|
||||
g_strdup_printf ("FID %s %u", g_quark_to_string (field_id),
|
||||
g_strdup_printf ("FID %s %u", gst_id_str_as_str (fieldname),
|
||||
g_value_get_uint (value));
|
||||
gst_sdp_media_add_attribute (media, "ssrc-group", str);
|
||||
|
||||
|
@ -3111,7 +3111,8 @@ typedef struct
|
|||
} RtxSsrcData;
|
||||
|
||||
static gboolean
|
||||
_media_add_rtx_ssrc (GQuark field_id, const GValue * value, RtxSsrcData * data)
|
||||
_media_add_rtx_ssrc (const GstIdStr * fieldname, const GValue * value,
|
||||
RtxSsrcData * data)
|
||||
{
|
||||
gchar *str;
|
||||
GstStructure *sdes;
|
||||
|
@ -3164,8 +3165,8 @@ _media_add_ssrcs (GstSDPMedia * media, GstCaps * caps, GstWebRTCBin * webrtc,
|
|||
cname = gst_structure_get_string (sdes, "cname");
|
||||
|
||||
if (trans->local_rtx_ssrc_map)
|
||||
gst_structure_foreach (trans->local_rtx_ssrc_map,
|
||||
(GstStructureForeachFunc) _media_add_rtx_ssrc_group, media);
|
||||
gst_structure_foreach_id_str (trans->local_rtx_ssrc_map,
|
||||
(GstStructureForeachIdStrFunc) _media_add_rtx_ssrc_group, media);
|
||||
|
||||
for (i = 0; i < gst_caps_get_size (caps); i++) {
|
||||
const GstStructure *s = gst_caps_get_structure (caps, i);
|
||||
|
@ -3204,8 +3205,8 @@ _media_add_ssrcs (GstSDPMedia * media, GstCaps * caps, GstWebRTCBin * webrtc,
|
|||
gst_structure_free (sdes);
|
||||
|
||||
if (trans->local_rtx_ssrc_map)
|
||||
gst_structure_foreach (trans->local_rtx_ssrc_map,
|
||||
(GstStructureForeachFunc) _media_add_rtx_ssrc, &data);
|
||||
gst_structure_foreach_id_str (trans->local_rtx_ssrc_map,
|
||||
(GstStructureForeachIdStrFunc) _media_add_rtx_ssrc, &data);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -3229,7 +3230,8 @@ _add_fingerprint_to_media (GstWebRTCDTLSTransport * transport,
|
|||
}
|
||||
|
||||
static gchar *
|
||||
_parse_extmap (GQuark field_id, const GValue * value, GError ** error)
|
||||
_parse_extmap (const GstIdStr * fieldname, const GValue * value,
|
||||
GError ** error)
|
||||
{
|
||||
gchar *ret = NULL;
|
||||
|
||||
|
@ -3271,7 +3273,7 @@ _parse_extmap (GQuark field_id, const GValue * value, GError ** error)
|
|||
|
||||
g_set_error (error, GST_WEBRTC_ERROR,
|
||||
GST_WEBRTC_ERROR_INTERNAL_FAILURE,
|
||||
"Invalid value for %s: %s", g_quark_to_string (field_id), val_str);
|
||||
"Invalid value for %s: %s", gst_id_str_as_str (fieldname), val_str);
|
||||
g_free (val_str);
|
||||
}
|
||||
|
||||
|
@ -3287,37 +3289,38 @@ typedef struct
|
|||
} ExtmapData;
|
||||
|
||||
static gboolean
|
||||
_dedup_extmap_field (GQuark field_id, const GValue * value, ExtmapData * data)
|
||||
_dedup_extmap_field (const GstIdStr * fieldname, const GValue * value,
|
||||
ExtmapData * data)
|
||||
{
|
||||
gboolean is_extmap =
|
||||
g_str_has_prefix (g_quark_to_string (field_id), "extmap-");
|
||||
g_str_has_prefix (gst_id_str_as_str (fieldname), "extmap-");
|
||||
|
||||
if (!data->ret)
|
||||
goto done;
|
||||
|
||||
if (is_extmap) {
|
||||
gchar *new_value = _parse_extmap (field_id, value, data->error);
|
||||
gchar *new_value = _parse_extmap (fieldname, value, data->error);
|
||||
|
||||
if (!new_value) {
|
||||
data->ret = FALSE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (gst_structure_id_has_field (data->extmap, field_id)) {
|
||||
gchar *old_value =
|
||||
_parse_extmap (field_id, gst_structure_id_get_value (data->extmap,
|
||||
field_id), NULL);
|
||||
if (gst_structure_id_str_has_field (data->extmap, fieldname)) {
|
||||
gchar *old_value = _parse_extmap (fieldname,
|
||||
gst_structure_id_str_get_value (data->extmap,
|
||||
fieldname), NULL);
|
||||
|
||||
g_assert (old_value);
|
||||
|
||||
if (g_strcmp0 (new_value, old_value)) {
|
||||
GST_ERROR
|
||||
("extmap contains different values for id %s (%s != %s)",
|
||||
g_quark_to_string (field_id), old_value, new_value);
|
||||
gst_id_str_as_str (fieldname), old_value, new_value);
|
||||
g_set_error (data->error, GST_WEBRTC_ERROR,
|
||||
GST_WEBRTC_ERROR_INTERNAL_FAILURE,
|
||||
"extmap contains different values for id %s (%s != %s)",
|
||||
g_quark_to_string (field_id), old_value, new_value);
|
||||
gst_id_str_as_str (fieldname), old_value, new_value);
|
||||
data->ret = FALSE;
|
||||
}
|
||||
|
||||
|
@ -3326,7 +3329,7 @@ _dedup_extmap_field (GQuark field_id, const GValue * value, ExtmapData * data)
|
|||
}
|
||||
|
||||
if (data->ret) {
|
||||
gst_structure_id_set_value (data->extmap, field_id, value);
|
||||
gst_structure_id_str_set_value (data->extmap, fieldname, value);
|
||||
}
|
||||
|
||||
g_free (new_value);
|
||||
|
@ -3348,8 +3351,8 @@ _gather_extmap (GstCaps * caps, GError ** error)
|
|||
for (i = 0; i < n; i++) {
|
||||
GstStructure *s = gst_caps_get_structure (caps, i);
|
||||
|
||||
gst_structure_filter_and_map_in_place (s,
|
||||
(GstStructureFilterMapFunc) _dedup_extmap_field, &edata);
|
||||
gst_structure_filter_and_map_in_place_id_str (s,
|
||||
(GstStructureFilterMapIdStrFunc) _dedup_extmap_field, &edata);
|
||||
|
||||
if (!edata.ret) {
|
||||
gst_clear_structure (&edata.extmap);
|
||||
|
@ -3367,11 +3370,11 @@ struct hdrext_id
|
|||
};
|
||||
|
||||
static gboolean
|
||||
structure_value_get_rtphdrext_id (GQuark field_id, const GValue * value,
|
||||
gpointer user_data)
|
||||
structure_value_get_rtphdrext_id (const GstIdStr * fieldname,
|
||||
const GValue * value, gpointer user_data)
|
||||
{
|
||||
struct hdrext_id *rtphdrext = user_data;
|
||||
const char *field_name = g_quark_to_string (field_id);
|
||||
const char *field_name = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (g_str_has_prefix (field_name, "extmap-")) {
|
||||
const char *val = NULL;
|
||||
|
@ -3408,7 +3411,7 @@ caps_get_rtp_header_extension_id (const GstCaps * caps,
|
|||
const GstStructure *s = gst_caps_get_structure (caps, i);
|
||||
struct hdrext_id data = { rtphdrext_uri, -1 };
|
||||
|
||||
gst_structure_foreach (s, structure_value_get_rtphdrext_id, &data);
|
||||
gst_structure_foreach_id_str (s, structure_value_get_rtphdrext_id, &data);
|
||||
|
||||
if (data.ext_id != -1)
|
||||
return data.ext_id;
|
||||
|
@ -3425,9 +3428,9 @@ caps_contain_rtp_header_extension (const GstCaps * caps,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_copy_field (GQuark field_id, const GValue * value, GstStructure * s)
|
||||
_copy_field (const GstIdStr * fieldname, const GValue * value, GstStructure * s)
|
||||
{
|
||||
gst_structure_id_set_value (s, field_id, value);
|
||||
gst_structure_id_str_set_value (s, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -3595,7 +3598,8 @@ sdp_media_from_transceiver (GstWebRTCBin * webrtc, GstSDPMedia * media,
|
|||
GstStructure *s = gst_structure_copy (gst_caps_get_structure (caps, i));
|
||||
|
||||
if (i == 0) {
|
||||
gst_structure_foreach (extmap, (GstStructureForeachFunc) _copy_field, s);
|
||||
gst_structure_foreach_id_str (extmap,
|
||||
(GstStructureForeachIdStrFunc) _copy_field, s);
|
||||
}
|
||||
|
||||
gst_caps_append_structure (format, s);
|
||||
|
@ -4992,11 +4996,12 @@ _build_fec_encoder (GstWebRTCBin * webrtc, WebRTCTransceiver * trans)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_merge_structure (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
_merge_structure (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *s = user_data;
|
||||
|
||||
gst_structure_id_set_value (s, field_id, value);
|
||||
gst_structure_id_str_set_value (s, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -5147,7 +5152,7 @@ _set_internal_rtpbin_element_props_from_stream (GstWebRTCBin * webrtc,
|
|||
}
|
||||
|
||||
if (trans->local_rtx_ssrc_map) {
|
||||
gst_structure_foreach (trans->local_rtx_ssrc_map,
|
||||
gst_structure_foreach_id_str (trans->local_rtx_ssrc_map,
|
||||
_merge_structure, merged_local_rtx_ssrc_map);
|
||||
}
|
||||
}
|
||||
|
@ -5452,11 +5457,11 @@ _add_end_of_candidate_to_sdp (GstWebRTCBin * webrtc,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_filter_sdp_fields (GQuark field_id, const GValue * value,
|
||||
_filter_sdp_fields (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * new_structure)
|
||||
{
|
||||
if (!g_str_has_prefix (g_quark_to_string (field_id), "a-")) {
|
||||
gst_structure_id_set_value (new_structure, field_id, value);
|
||||
if (!g_str_has_prefix (gst_id_str_as_str (fieldname), "a-")) {
|
||||
gst_structure_id_str_set_value (new_structure, fieldname, value);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -5621,8 +5626,8 @@ _update_transport_ptmap_from_media (GstWebRTCBin * webrtc,
|
|||
GstStructure *filtered =
|
||||
gst_structure_new_empty (gst_structure_get_name (s));
|
||||
|
||||
gst_structure_foreach (s,
|
||||
(GstStructureForeachFunc) _filter_sdp_fields, filtered);
|
||||
gst_structure_foreach_id_str (s,
|
||||
(GstStructureForeachIdStrFunc) _filter_sdp_fields, filtered);
|
||||
gst_caps_append_structure (item.caps, filtered);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,28 +85,6 @@ gst_player_error_quark (void)
|
|||
return g_quark_from_static_string ("gst-player-error-quark");
|
||||
}
|
||||
|
||||
static GQuark QUARK_CONFIG;
|
||||
|
||||
/* Keep ConfigQuarkId and _config_quark_strings ordered and synced */
|
||||
typedef enum
|
||||
{
|
||||
CONFIG_QUARK_USER_AGENT = 0,
|
||||
CONFIG_QUARK_POSITION_INTERVAL_UPDATE,
|
||||
CONFIG_QUARK_ACCURATE_SEEK,
|
||||
|
||||
CONFIG_QUARK_MAX
|
||||
} ConfigQuarkId;
|
||||
|
||||
static const gchar *_config_quark_strings[] = {
|
||||
"user-agent",
|
||||
"position-interval-update",
|
||||
"accurate-seek",
|
||||
};
|
||||
|
||||
static GQuark _config_quark_table[CONFIG_QUARK_MAX];
|
||||
|
||||
#define CONFIG_QUARK(q) _config_quark_table[CONFIG_QUARK_##q]
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
|
@ -185,23 +163,6 @@ gst_player_init (GstPlayer * self)
|
|||
self->play = gst_play_new (NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
config_quark_initialize (void)
|
||||
{
|
||||
gint i;
|
||||
|
||||
QUARK_CONFIG = g_quark_from_static_string ("player-config");
|
||||
|
||||
if (G_N_ELEMENTS (_config_quark_strings) != CONFIG_QUARK_MAX)
|
||||
g_warning ("the quark table is not consistent! %d != %d",
|
||||
(int) G_N_ELEMENTS (_config_quark_strings), CONFIG_QUARK_MAX);
|
||||
|
||||
for (i = 0; i < CONFIG_QUARK_MAX; i++) {
|
||||
_config_quark_table[i] =
|
||||
g_quark_from_static_string (_config_quark_strings[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_player_class_init (GstPlayerClass * klass)
|
||||
{
|
||||
|
@ -371,8 +332,6 @@ gst_player_class_init (GstPlayerClass * klass)
|
|||
g_signal_new ("seek-done", G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, 0, NULL,
|
||||
NULL, NULL, G_TYPE_NONE, 1, GST_TYPE_CLOCK_TIME);
|
||||
|
||||
config_quark_initialize ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1632,8 +1591,8 @@ gst_player_config_set_user_agent (GstStructure * config, const gchar * agent)
|
|||
g_return_if_fail (config != NULL);
|
||||
g_return_if_fail (agent != NULL);
|
||||
|
||||
gst_structure_id_set (config,
|
||||
CONFIG_QUARK (USER_AGENT), G_TYPE_STRING, agent, NULL);
|
||||
gst_structure_set_static_str (config,
|
||||
"user-agent", G_TYPE_STRING, agent, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1654,8 +1613,7 @@ gst_player_config_get_user_agent (const GstStructure * config)
|
|||
|
||||
g_return_val_if_fail (config != NULL, NULL);
|
||||
|
||||
gst_structure_id_get (config,
|
||||
CONFIG_QUARK (USER_AGENT), G_TYPE_STRING, &agent, NULL);
|
||||
gst_structure_get (config, "user-agent", G_TYPE_STRING, &agent, NULL);
|
||||
|
||||
return agent;
|
||||
}
|
||||
|
@ -1677,8 +1635,8 @@ gst_player_config_set_position_update_interval (GstStructure * config,
|
|||
g_return_if_fail (config != NULL);
|
||||
g_return_if_fail (interval <= 10000);
|
||||
|
||||
gst_structure_id_set (config,
|
||||
CONFIG_QUARK (POSITION_INTERVAL_UPDATE), G_TYPE_UINT, interval, NULL);
|
||||
gst_structure_set_static_str (config,
|
||||
"position-interval-update", G_TYPE_UINT, interval, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1696,8 +1654,8 @@ gst_player_config_get_position_update_interval (const GstStructure * config)
|
|||
|
||||
g_return_val_if_fail (config != NULL, DEFAULT_POSITION_UPDATE_INTERVAL_MS);
|
||||
|
||||
gst_structure_id_get (config,
|
||||
CONFIG_QUARK (POSITION_INTERVAL_UPDATE), G_TYPE_UINT, &interval, NULL);
|
||||
gst_structure_get (config,
|
||||
"position-interval-update", G_TYPE_UINT, &interval, NULL);
|
||||
|
||||
return interval;
|
||||
}
|
||||
|
@ -1724,8 +1682,8 @@ gst_player_config_set_seek_accurate (GstStructure * config, gboolean accurate)
|
|||
{
|
||||
g_return_if_fail (config != NULL);
|
||||
|
||||
gst_structure_id_set (config,
|
||||
CONFIG_QUARK (ACCURATE_SEEK), G_TYPE_BOOLEAN, accurate, NULL);
|
||||
gst_structure_set_static_str (config,
|
||||
"accurate-seek", G_TYPE_BOOLEAN, accurate, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1743,8 +1701,7 @@ gst_player_config_get_seek_accurate (const GstStructure * config)
|
|||
|
||||
g_return_val_if_fail (config != NULL, FALSE);
|
||||
|
||||
gst_structure_id_get (config,
|
||||
CONFIG_QUARK (ACCURATE_SEEK), G_TYPE_BOOLEAN, &accurate, NULL);
|
||||
gst_structure_get (config, "accurate-seek", G_TYPE_BOOLEAN, &accurate, NULL);
|
||||
|
||||
return accurate;
|
||||
}
|
||||
|
|
|
@ -235,20 +235,20 @@ gst_test_src_bin_chain (GstPad * pad, GstObject * object, GstBuffer * buffer)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_test_src_bin_set_element_property (GQuark property_id, const GValue * value,
|
||||
GObject * element)
|
||||
gst_test_src_bin_set_element_property (const GstIdStr * property,
|
||||
const GValue * value, GObject * element)
|
||||
{
|
||||
if (property_id == g_quark_from_static_string ("__streamobj__"))
|
||||
if (gst_id_str_is_equal_to_str (property, "__streamobj__"))
|
||||
return TRUE;
|
||||
|
||||
if (property_id == g_quark_from_static_string ("caps"))
|
||||
if (gst_id_str_is_equal_to_str (property, "caps"))
|
||||
return TRUE;
|
||||
|
||||
if (G_VALUE_HOLDS_STRING (value))
|
||||
gst_util_set_object_arg (element, g_quark_to_string (property_id),
|
||||
gst_util_set_object_arg (element, gst_id_str_as_str (property),
|
||||
g_value_get_string (value));
|
||||
else
|
||||
g_object_set_property (element, g_quark_to_string (property_id), value);
|
||||
g_object_set_property (element, gst_id_str_as_str (property), value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -352,8 +352,9 @@ gst_test_src_bin_setup_src (GstTestSrcBin * self, const gchar * srcfactory,
|
|||
(*n_stream == 0) ? GST_STREAM_FLAG_SELECT : GST_STREAM_FLAG_UNSELECT);
|
||||
stream_start = gst_event_new_stream_start (gst_stream_get_stream_id (stream));
|
||||
|
||||
gst_structure_foreach (props,
|
||||
(GstStructureForeachFunc) gst_test_src_bin_set_element_property, src);
|
||||
gst_structure_foreach_id_str (props,
|
||||
(GstStructureForeachIdStrFunc) gst_test_src_bin_set_element_property,
|
||||
src);
|
||||
|
||||
gst_event_set_stream (stream_start, stream);
|
||||
gst_event_set_group_id (stream_start, self->group_id);
|
||||
|
|
|
@ -1680,11 +1680,11 @@ gst_ipc_pipeline_comm_cancel (GstIpcPipelineComm * comm, gboolean cleanup)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
set_field (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
set_field (const GstIdStr * fieldname, const GValue * value, gpointer user_data)
|
||||
{
|
||||
GstStructure *structure = user_data;
|
||||
|
||||
gst_structure_id_set_value (structure, field_id, value);
|
||||
gst_structure_id_str_set_value (structure, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1711,7 +1711,7 @@ gst_ipc_pipeline_comm_reply_request (GstIpcPipelineComm * comm, guint32 id,
|
|||
will expect the object to be the same */
|
||||
GstStructure *structure = gst_query_writable_structure (req->query);
|
||||
gst_structure_remove_all_fields (structure);
|
||||
gst_structure_foreach (gst_query_get_structure (query), set_field,
|
||||
gst_structure_foreach_id_str (gst_query_get_structure (query), set_field,
|
||||
structure);
|
||||
} else {
|
||||
GST_WARNING_OBJECT (comm->element,
|
||||
|
|
|
@ -931,14 +931,15 @@ typedef struct
|
|||
} SetPropsIter;
|
||||
|
||||
static gboolean
|
||||
set_obj_prop (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
set_obj_prop (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
SetPropsIter *iter = user_data;
|
||||
GstKMSSink *self = iter->self;
|
||||
const gchar *name;
|
||||
guint64 v;
|
||||
|
||||
name = g_quark_to_string (field_id);
|
||||
name = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (G_VALUE_HOLDS (value, G_TYPE_INT))
|
||||
v = g_value_get_int (value);
|
||||
|
@ -976,7 +977,7 @@ gst_kms_sink_update_properties (SetPropsIter * iter, GstStructure * props)
|
|||
iter->properties = drmModeObjectGetProperties (self->fd, iter->obj_id,
|
||||
iter->obj_type);
|
||||
|
||||
gst_structure_foreach (props, set_obj_prop, iter);
|
||||
gst_structure_foreach_id_str (props, set_obj_prop, iter);
|
||||
|
||||
drmModeFreeObjectProperties (iter->properties);
|
||||
}
|
||||
|
|
|
@ -2207,11 +2207,12 @@ error:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
copy_config (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstCudaConverter *self = (GstCudaConverter *) user_data;
|
||||
|
||||
gst_structure_id_set_value (self->priv->config, field_id, value);
|
||||
gst_structure_id_str_set_value (self->priv->config, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -2219,7 +2220,7 @@ copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
static void
|
||||
gst_cuda_converter_set_config (GstCudaConverter * self, GstStructure * config)
|
||||
{
|
||||
gst_structure_foreach (config, copy_config, self);
|
||||
gst_structure_foreach_id_str (config, copy_config, self);
|
||||
gst_structure_free (config);
|
||||
}
|
||||
|
||||
|
|
|
@ -1790,13 +1790,13 @@ struct stats_check_state
|
|||
};
|
||||
|
||||
static gboolean
|
||||
validate_stats_foreach (GQuark field_id, const GValue * value,
|
||||
validate_stats_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
struct stats_check_state *state = (struct stats_check_state *) (user_data);
|
||||
const GstStructure *stats = state->stats;
|
||||
|
||||
const gchar *field = g_quark_to_string (field_id);
|
||||
const gchar *field = gst_id_str_as_str (fieldname);
|
||||
GstWebRTCStatsType type;
|
||||
|
||||
fail_unless (GST_VALUE_HOLDS_STRUCTURE (value));
|
||||
|
@ -1843,8 +1843,8 @@ validate_stats_foreach (GQuark field_id, const GValue * value,
|
|||
static void
|
||||
validate_stats (struct stats_check_state *state)
|
||||
{
|
||||
gst_structure_foreach (state->stats,
|
||||
(GstStructureForeachFunc) validate_stats_foreach, (gpointer) state);
|
||||
gst_structure_foreach_id_str (state->stats,
|
||||
(GstStructureForeachIdStrFunc) validate_stats_foreach, (gpointer) state);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -51,11 +51,12 @@ g_value_to_string (const GValue * val)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
insert_field (GQuark field_id, const GValue * val, gpointer user_data)
|
||||
insert_field (const GstIdStr * fieldname, const GValue * val,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkTreeIter *parent_iter = user_data;
|
||||
GtkTreeIter iter;
|
||||
const gchar *f = g_quark_to_string (field_id);
|
||||
const gchar *f = gst_id_str_as_str (fieldname);
|
||||
|
||||
gtk_tree_store_append (treestore, &iter, parent_iter);
|
||||
|
||||
|
@ -77,7 +78,7 @@ insert_field (GQuark field_id, const GValue * val, gpointer user_data)
|
|||
gtk_tree_store_set (treestore, &child_iter, 0,
|
||||
gst_structure_get_name (s), -1);
|
||||
|
||||
gst_structure_foreach (s, insert_field, &child_iter);
|
||||
gst_structure_foreach_id_str (s, insert_field, &child_iter);
|
||||
} else {
|
||||
gchar *v = g_value_to_string (ve);
|
||||
|
||||
|
@ -94,7 +95,7 @@ insert_field (GQuark field_id, const GValue * val, gpointer user_data)
|
|||
|
||||
g_free (entry);
|
||||
|
||||
gst_structure_foreach (s, insert_field, &iter);
|
||||
gst_structure_foreach_id_str (s, insert_field, &iter);
|
||||
} else {
|
||||
gchar *v = g_value_to_string (val);
|
||||
gchar *entry = g_strdup_printf ("%s: %s", f, v);
|
||||
|
@ -115,7 +116,7 @@ insert_structure (const GstStructure * s, GtkTreeIter * iter)
|
|||
|
||||
gtk_tree_store_set (treestore, iter, 0, name, -1);
|
||||
|
||||
gst_structure_foreach (s, insert_field, iter);
|
||||
gst_structure_foreach_id_str (s, insert_field, iter);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
@ -352,10 +352,11 @@ gst_gl_filtershader_filter_texture (GstGLFilter * filter, GstGLMemory * in_tex,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_uniform (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
_set_uniform (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstGLShader *shader = user_data;
|
||||
const gchar *field_name = g_quark_to_string (field_id);
|
||||
const gchar *field_name = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) {
|
||||
gst_gl_shader_set_uniform_1i (shader, field_name, g_value_get_int (value));
|
||||
|
@ -404,8 +405,8 @@ _update_uniforms (GstGLFilterShader * filtershader)
|
|||
if (filtershader->new_uniforms && filtershader->uniforms) {
|
||||
gst_gl_shader_use (filtershader->shader);
|
||||
|
||||
gst_structure_foreach (filtershader->uniforms,
|
||||
(GstStructureForeachFunc) _set_uniform, filtershader->shader);
|
||||
gst_structure_foreach_id_str (filtershader->uniforms,
|
||||
(GstStructureForeachIdStrFunc) _set_uniform, filtershader->shader);
|
||||
filtershader->new_uniforms = FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -311,11 +311,12 @@ get_opt_value (GstAudioConverter * convert, const gchar * opt)
|
|||
GST_AUDIO_CONVERTER_OPT_MIX_MATRIX)
|
||||
|
||||
static gboolean
|
||||
copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
copy_config (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstAudioConverter *convert = user_data;
|
||||
|
||||
gst_structure_id_set_value (convert->config, field_id, value);
|
||||
gst_structure_id_str_set_value (convert->config, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -366,7 +367,7 @@ gst_audio_converter_update_config (GstAudioConverter * convert,
|
|||
gst_audio_resampler_update (convert->resampler, in_rate, out_rate, config);
|
||||
|
||||
if (config) {
|
||||
gst_structure_foreach (config, copy_config, convert);
|
||||
gst_structure_foreach_id_str (config, copy_config, convert);
|
||||
gst_structure_free (config);
|
||||
}
|
||||
|
||||
|
|
|
@ -60,14 +60,6 @@ GST_DEBUG_CATEGORY_STATIC (discoverer_debug);
|
|||
#define GST_CAT_DEFAULT discoverer_debug
|
||||
#define CACHE_DIRNAME "discoverer"
|
||||
|
||||
static GQuark _CAPS_QUARK;
|
||||
static GQuark _TAGS_QUARK;
|
||||
static GQuark _ELEMENT_SRCPAD_QUARK;
|
||||
static GQuark _TOC_QUARK;
|
||||
static GQuark _STREAM_ID_QUARK;
|
||||
static GQuark _TOPOLOGY_PAD_QUARK;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GstDiscoverer *dc;
|
||||
|
@ -150,13 +142,6 @@ static void
|
|||
_do_init (void)
|
||||
{
|
||||
GST_DEBUG_CATEGORY_INIT (discoverer_debug, "discoverer", 0, "Discoverer");
|
||||
|
||||
_CAPS_QUARK = g_quark_from_static_string ("caps");
|
||||
_ELEMENT_SRCPAD_QUARK = g_quark_from_static_string ("element-srcpad");
|
||||
_TAGS_QUARK = g_quark_from_static_string ("tags");
|
||||
_TOC_QUARK = g_quark_from_static_string ("toc");
|
||||
_STREAM_ID_QUARK = g_quark_from_static_string ("stream-id");
|
||||
_TOPOLOGY_PAD_QUARK = g_quark_from_static_string ("pad");
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_EXTENDED (GstDiscoverer, gst_discoverer, G_TYPE_OBJECT, 0,
|
||||
|
@ -849,15 +834,16 @@ collect_stream_information (GstDiscoverer * dc, PrivateStream * ps, guint idx)
|
|||
}
|
||||
if (caps) {
|
||||
GST_DEBUG ("stream-%02d, got caps %" GST_PTR_FORMAT, idx, caps);
|
||||
gst_structure_id_set (st, _CAPS_QUARK, GST_TYPE_CAPS, caps, NULL);
|
||||
gst_structure_set_static_str (st, "caps", GST_TYPE_CAPS, caps, NULL);
|
||||
gst_caps_unref (caps);
|
||||
}
|
||||
if (ps->tags)
|
||||
gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, ps->tags, NULL);
|
||||
gst_structure_set_static_str (st, "tags", GST_TYPE_TAG_LIST, ps->tags,
|
||||
NULL);
|
||||
if (ps->toc)
|
||||
gst_structure_id_set (st, _TOC_QUARK, GST_TYPE_TOC, ps->toc, NULL);
|
||||
gst_structure_set_static_str (st, "toc", GST_TYPE_TOC, ps->toc, NULL);
|
||||
if (ps->stream_id)
|
||||
gst_structure_id_set (st, _STREAM_ID_QUARK, G_TYPE_STRING, ps->stream_id,
|
||||
gst_structure_set_static_str (st, "stream-id", G_TYPE_STRING, ps->stream_id,
|
||||
NULL);
|
||||
|
||||
return st;
|
||||
|
@ -884,13 +870,12 @@ static void
|
|||
collect_common_information (GstDiscovererStreamInfo * info,
|
||||
const GstStructure * st)
|
||||
{
|
||||
if (gst_structure_id_has_field (st, _TOC_QUARK)) {
|
||||
gst_structure_id_get (st, _TOC_QUARK, GST_TYPE_TOC, &info->toc, NULL);
|
||||
if (gst_structure_has_field (st, "toc")) {
|
||||
gst_structure_get (st, "toc", GST_TYPE_TOC, &info->toc, NULL);
|
||||
}
|
||||
|
||||
if (gst_structure_id_has_field (st, _STREAM_ID_QUARK)) {
|
||||
gst_structure_id_get (st, _STREAM_ID_QUARK, G_TYPE_STRING, &info->stream_id,
|
||||
NULL);
|
||||
if (gst_structure_has_field (st, "stream-id")) {
|
||||
gst_structure_get (st, "stream-id", G_TYPE_STRING, &info->stream_id, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -924,19 +909,18 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
|
|||
gint tmp, tmp2;
|
||||
guint utmp;
|
||||
|
||||
if (!st || (!gst_structure_id_has_field (st, _CAPS_QUARK)
|
||||
&& !gst_structure_id_has_field (st, _ELEMENT_SRCPAD_QUARK))) {
|
||||
if (!st || (!gst_structure_has_field (st, "caps")
|
||||
&& !gst_structure_has_field (st, "element-srcpad"))) {
|
||||
GST_WARNING ("Couldn't find caps !");
|
||||
return make_info (parent, GST_TYPE_DISCOVERER_STREAM_INFO, NULL);
|
||||
}
|
||||
|
||||
if (gst_structure_id_get (st, _ELEMENT_SRCPAD_QUARK, GST_TYPE_PAD, &srcpad,
|
||||
NULL)) {
|
||||
if (gst_structure_get (st, "element-srcpad", GST_TYPE_PAD, &srcpad, NULL)) {
|
||||
caps = gst_pad_get_current_caps (srcpad);
|
||||
gst_object_unref (srcpad);
|
||||
}
|
||||
if (!caps) {
|
||||
gst_structure_id_get (st, _CAPS_QUARK, GST_TYPE_CAPS, &caps, NULL);
|
||||
gst_structure_get (st, "caps", GST_TYPE_CAPS, &caps, NULL);
|
||||
}
|
||||
|
||||
if (!caps || gst_caps_is_empty (caps) || gst_caps_is_any (caps)) {
|
||||
|
@ -983,8 +967,8 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
|
|||
info->depth = GST_AUDIO_FORMAT_INFO_DEPTH (finfo);
|
||||
}
|
||||
|
||||
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
|
||||
gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
if (gst_structure_has_field (st, "tags")) {
|
||||
gst_structure_get (st, "tags", GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
if (gst_tag_list_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
|
||||
gst_tag_list_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
|
||||
info->bitrate = utmp;
|
||||
|
@ -1057,8 +1041,8 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
|
|||
else
|
||||
info->interlaced = TRUE;
|
||||
|
||||
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
|
||||
gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
if (gst_structure_has_field (st, "tags")) {
|
||||
gst_structure_get (st, "tags", GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
if (gst_tag_list_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
|
||||
gst_tag_list_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
|
||||
info->bitrate = utmp;
|
||||
|
@ -1081,10 +1065,10 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
|
|||
info = (GstDiscovererSubtitleInfo *) make_info (parent,
|
||||
GST_TYPE_DISCOVERER_SUBTITLE_INFO, caps);
|
||||
|
||||
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
|
||||
if (gst_structure_has_field (st, "tags")) {
|
||||
const gchar *language;
|
||||
|
||||
gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
gst_structure_get (st, "tags", GST_TYPE_TAG_LIST, &tags_st, NULL);
|
||||
|
||||
language = gst_structure_get_string (caps_st, GST_TAG_LANGUAGE_CODE);
|
||||
if (language)
|
||||
|
@ -1113,8 +1097,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
|
|||
|
||||
info = make_info (parent, GST_TYPE_DISCOVERER_STREAM_INFO, caps);
|
||||
|
||||
if (gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st,
|
||||
NULL)) {
|
||||
if (gst_structure_get (st, "tags", GST_TYPE_TAG_LIST, &tags_st, NULL)) {
|
||||
gst_discoverer_merge_and_replace_tags (&info->tags, tags_st);
|
||||
}
|
||||
|
||||
|
@ -1140,13 +1123,12 @@ find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (!gst_structure_id_has_field (topology, _TOPOLOGY_PAD_QUARK)) {
|
||||
if (!gst_structure_has_field (topology, "pad")) {
|
||||
GST_DEBUG ("Could not find pad for node %" GST_PTR_FORMAT, topology);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gst_structure_id_get (topology, _TOPOLOGY_PAD_QUARK,
|
||||
GST_TYPE_PAD, &pad, NULL);
|
||||
gst_structure_get (topology, "pad", GST_TYPE_PAD, &pad, NULL);
|
||||
|
||||
for (i = 0, tmp = dc->priv->streams; tmp; tmp = tmp->next, i++) {
|
||||
ps = (PrivateStream *) tmp->data;
|
||||
|
@ -1263,13 +1245,12 @@ parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology,
|
|||
if (!parent)
|
||||
parent = res;
|
||||
|
||||
if (gst_structure_id_get (st, _ELEMENT_SRCPAD_QUARK, GST_TYPE_PAD,
|
||||
&srcpad, NULL)) {
|
||||
if (gst_structure_get (st, "element-srcpad", GST_TYPE_PAD, &srcpad, NULL)) {
|
||||
caps = gst_pad_get_current_caps (srcpad);
|
||||
gst_object_unref (srcpad);
|
||||
}
|
||||
if (!caps) {
|
||||
gst_structure_id_get (st, _CAPS_QUARK, GST_TYPE_CAPS, &caps, NULL);
|
||||
gst_structure_get (st, "caps", GST_TYPE_CAPS, &caps, NULL);
|
||||
}
|
||||
|
||||
if (caps) {
|
||||
|
@ -1308,13 +1289,13 @@ parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology,
|
|||
GstDiscovererContainerInfo *cont;
|
||||
GstPad *srcpad;
|
||||
|
||||
if (gst_structure_id_get (topology, _ELEMENT_SRCPAD_QUARK, GST_TYPE_PAD,
|
||||
if (gst_structure_get (topology, "element-srcpad", GST_TYPE_PAD,
|
||||
&srcpad, NULL)) {
|
||||
caps = gst_pad_get_current_caps (srcpad);
|
||||
gst_object_unref (srcpad);
|
||||
}
|
||||
if (!caps) {
|
||||
gst_structure_id_get (topology, _CAPS_QUARK, GST_TYPE_CAPS, &caps, NULL);
|
||||
gst_structure_get (topology, "caps", GST_TYPE_CAPS, &caps, NULL);
|
||||
}
|
||||
|
||||
if (!caps)
|
||||
|
|
|
@ -965,10 +965,11 @@ gst_rtp_base_payload_set_options (GstRTPBasePayload * payload,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
copy_fixed (GQuark field_id, const GValue * value, GstStructure * dest)
|
||||
copy_fixed (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * dest)
|
||||
{
|
||||
if (gst_value_is_fixed (value)) {
|
||||
gst_structure_id_set_value (dest, field_id, value);
|
||||
gst_structure_id_str_set_value (dest, fieldname, value);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -989,9 +990,9 @@ update_max_ptime (GstRTPBasePayload * rtpbasepayload)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_caps (GQuark field_id, const GValue * value, GstCaps * caps)
|
||||
_set_caps (const GstIdStr * fieldname, const GValue * value, GstCaps * caps)
|
||||
{
|
||||
gst_caps_set_value (caps, g_quark_to_string (field_id), value);
|
||||
gst_caps_set_value (caps, gst_id_str_as_str (fieldname), value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1022,7 +1023,8 @@ gst_rtp_base_payload_set_outcaps_structure (GstRTPBasePayload * payload,
|
|||
GST_DEBUG_OBJECT (payload, "defaults: %" GST_PTR_FORMAT, srccaps);
|
||||
|
||||
if (s && gst_structure_n_fields (s) > 0) {
|
||||
gst_structure_foreach (s, (GstStructureForeachFunc) _set_caps, srccaps);
|
||||
gst_structure_foreach_id_str (s, (GstStructureForeachIdStrFunc) _set_caps,
|
||||
srccaps);
|
||||
|
||||
GST_DEBUG_OBJECT (payload, "custom added: %" GST_PTR_FORMAT, srccaps);
|
||||
}
|
||||
|
@ -1349,7 +1351,8 @@ gst_rtp_base_payload_negotiate (GstRTPBasePayload * payload)
|
|||
srccaps = gst_caps_new_empty_simple (gst_structure_get_name (s));
|
||||
d = gst_caps_get_structure (srccaps, 0);
|
||||
|
||||
gst_structure_foreach (s, (GstStructureForeachFunc) copy_fixed, d);
|
||||
gst_structure_foreach_id_str (s, (GstStructureForeachIdStrFunc) copy_fixed,
|
||||
d);
|
||||
|
||||
gst_caps_unref (temp);
|
||||
|
||||
|
|
|
@ -2689,11 +2689,12 @@ gst_video_converter_free (GstVideoConverter * convert)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
copy_config (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstVideoConverter *convert = user_data;
|
||||
|
||||
gst_structure_id_set_value (convert->config, field_id, value);
|
||||
gst_structure_id_str_set_value (convert->config, fieldname, value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -2723,7 +2724,7 @@ gst_video_converter_set_config (GstVideoConverter * convert,
|
|||
g_return_val_if_fail (convert != NULL, FALSE);
|
||||
g_return_val_if_fail (config != NULL, FALSE);
|
||||
|
||||
gst_structure_foreach (config, copy_config, convert);
|
||||
gst_structure_foreach_id_str (config, copy_config, convert);
|
||||
gst_structure_free (config);
|
||||
|
||||
gst_video_converter_init_from_config (convert);
|
||||
|
|
|
@ -883,10 +883,11 @@ beach:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_properties (GQuark property_id, const GValue * value, GObject * element)
|
||||
_set_properties (const GstIdStr * property, const GValue * value,
|
||||
GObject * element)
|
||||
{
|
||||
GST_DEBUG_OBJECT (element, "Setting %s", g_quark_to_string (property_id));
|
||||
g_object_set_property (element, g_quark_to_string (property_id), value);
|
||||
GST_DEBUG_OBJECT (element, "Setting %s", gst_id_str_as_str (property));
|
||||
g_object_set_property (element, gst_id_str_as_str (property), value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -905,8 +906,8 @@ set_element_properties_from_encoding_profile (GstEncodingProfile * profile,
|
|||
return;
|
||||
|
||||
if (!gst_structure_has_name (properties, "element-properties-map")) {
|
||||
gst_structure_foreach (properties,
|
||||
(GstStructureForeachFunc) _set_properties, element);
|
||||
gst_structure_foreach_id_str (properties,
|
||||
(GstStructureForeachIdStrFunc) _set_properties, element);
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -938,8 +939,8 @@ set_element_properties_from_encoding_profile (GstEncodingProfile * profile,
|
|||
GST_DEBUG_OBJECT (GST_OBJECT_PARENT (element),
|
||||
"Setting %" GST_PTR_FORMAT " on %" GST_PTR_FORMAT, tmp_properties,
|
||||
element);
|
||||
gst_structure_foreach (tmp_properties,
|
||||
(GstStructureForeachFunc) _set_properties, element);
|
||||
gst_structure_foreach_id_str (tmp_properties,
|
||||
(GstStructureForeachIdStrFunc) _set_properties, element);
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -2029,10 +2030,12 @@ cleanup:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_gst_caps_match_foreach (GQuark field_id, const GValue * value, gpointer data)
|
||||
_gst_caps_match_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer data)
|
||||
{
|
||||
GstStructure *structure = data;
|
||||
const GValue *other_value = gst_structure_id_get_value (structure, field_id);
|
||||
const GValue *other_value =
|
||||
gst_structure_id_str_get_value (structure, fieldname);
|
||||
|
||||
if (G_UNLIKELY (other_value == NULL))
|
||||
return FALSE;
|
||||
|
@ -2058,7 +2061,7 @@ _gst_caps_match (const GstCaps * caps_a, const GstCaps * caps_b)
|
|||
for (j = 0; j < gst_caps_get_size (caps_b); j++) {
|
||||
GstStructure *structure_b = gst_caps_get_structure (caps_b, j);
|
||||
|
||||
res = gst_structure_foreach (structure_a, _gst_caps_match_foreach,
|
||||
res = gst_structure_foreach_id_str (structure_a, _gst_caps_match_foreach,
|
||||
structure_b);
|
||||
if (res)
|
||||
goto end;
|
||||
|
|
|
@ -402,7 +402,7 @@ static void update_text_offset (GstPlaySink * playsink);
|
|||
|
||||
static gboolean gst_play_sink_do_reconfigure (GstPlaySink * playsink);
|
||||
|
||||
static GQuark _playsink_reset_segment_event_marker_id = 0;
|
||||
#define PLAYSINK_RESET_SEGMENT_EVENT_MARKER "gst-playsink-reset-segment-event-marker"
|
||||
|
||||
/* static guint gst_play_sink_signals[LAST_SIGNAL] = { 0 }; */
|
||||
|
||||
|
@ -671,9 +671,6 @@ gst_play_sink_class_init (GstPlaySinkClass * klass)
|
|||
klass->reconfigure = GST_DEBUG_FUNCPTR (gst_play_sink_reconfigure);
|
||||
klass->convert_sample = GST_DEBUG_FUNCPTR (gst_play_sink_convert_sample);
|
||||
|
||||
_playsink_reset_segment_event_marker_id =
|
||||
g_quark_from_static_string ("gst-playsink-reset-segment-event-marker");
|
||||
|
||||
g_type_class_ref (GST_TYPE_STREAM_SYNCHRONIZER);
|
||||
g_type_class_ref (GST_TYPE_COLOR_BALANCE_CHANNEL);
|
||||
|
||||
|
@ -2248,8 +2245,8 @@ gst_play_sink_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer,
|
|||
if (segment_event)
|
||||
gst_event_set_seqnum (event, gst_event_get_seqnum (segment_event));
|
||||
structure = gst_event_writable_structure (event);
|
||||
gst_structure_id_set (structure,
|
||||
_playsink_reset_segment_event_marker_id, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
PLAYSINK_RESET_SEGMENT_EVENT_MARKER, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
|
||||
GST_DEBUG_OBJECT (pad,
|
||||
"Pushing %s flush-start event with reset segment marker set: %"
|
||||
|
@ -2262,8 +2259,8 @@ gst_play_sink_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer,
|
|||
if (segment_event)
|
||||
gst_event_set_seqnum (event, gst_event_get_seqnum (segment_event));
|
||||
structure = gst_event_writable_structure (event);
|
||||
gst_structure_id_set (structure,
|
||||
_playsink_reset_segment_event_marker_id, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
PLAYSINK_RESET_SEGMENT_EVENT_MARKER, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
|
||||
GST_DEBUG_OBJECT (pad,
|
||||
"Pushing %s flush-stop event with reset segment marker set: %"
|
||||
|
@ -2275,8 +2272,8 @@ gst_play_sink_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer,
|
|||
if (segment_event) {
|
||||
event = gst_event_copy (segment_event);
|
||||
structure = gst_event_writable_structure (event);
|
||||
gst_structure_id_set (structure,
|
||||
_playsink_reset_segment_event_marker_id, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
PLAYSINK_RESET_SEGMENT_EVENT_MARKER, G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
|
||||
GST_DEBUG_OBJECT (playsink,
|
||||
"Pushing segment event with reset "
|
||||
|
@ -2424,8 +2421,8 @@ gst_play_sink_text_src_event (GstPad * pad, GstObject * parent,
|
|||
structure = gst_event_get_structure (event);
|
||||
|
||||
if (structure &&
|
||||
gst_structure_id_has_field (structure,
|
||||
_playsink_reset_segment_event_marker_id)) {
|
||||
gst_structure_has_field (structure,
|
||||
PLAYSINK_RESET_SEGMENT_EVENT_MARKER)) {
|
||||
/* the events marked with a reset segment marker
|
||||
* are sent internally to reset the queue and
|
||||
* must be dropped here */
|
||||
|
|
|
@ -88,12 +88,11 @@ enum
|
|||
#define gst_subtitle_overlay_parent_class parent_class
|
||||
G_DEFINE_TYPE (GstSubtitleOverlay, gst_subtitle_overlay, GST_TYPE_BIN);
|
||||
|
||||
static GQuark _subtitle_overlay_event_marker_id = 0;
|
||||
#define SUBTITLE_OVERLAY_EVENT_MARKER "gst-subtitle-overlay-event-marker"
|
||||
|
||||
#define _do_init \
|
||||
GST_DEBUG_CATEGORY_INIT (subtitle_overlay_debug, "subtitleoverlay", 0, "Subtitle Overlay"); \
|
||||
playback_element_init (plugin); \
|
||||
_subtitle_overlay_event_marker_id = g_quark_from_static_string ("gst-subtitle-overlay-event-marker")
|
||||
playback_element_init (plugin);
|
||||
GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (subtitleoverlay, "subtitleoverlay",
|
||||
GST_RANK_NONE, GST_TYPE_SUBTITLE_OVERLAY, _do_init);
|
||||
|
||||
|
@ -1710,7 +1709,7 @@ gst_subtitle_overlay_src_proxy_event (GstPad * proxypad, GstObject * parent,
|
|||
goto out;
|
||||
|
||||
s = gst_event_get_structure (event);
|
||||
if (s && gst_structure_id_has_field (s, _subtitle_overlay_event_marker_id)) {
|
||||
if (s && gst_structure_has_field (s, SUBTITLE_OVERLAY_EVENT_MARKER)) {
|
||||
GST_DEBUG_OBJECT (ghostpad,
|
||||
"Dropping event with marker: %" GST_PTR_FORMAT,
|
||||
gst_event_get_structure (event));
|
||||
|
@ -2189,7 +2188,7 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstObject * parent,
|
|||
event = GST_EVENT_CAST (gst_event_make_writable (event));
|
||||
structure = gst_event_writable_structure (event);
|
||||
|
||||
gst_structure_id_set (structure, _subtitle_overlay_event_marker_id,
|
||||
gst_structure_set_static_str (structure, SUBTITLE_OVERLAY_EVENT_MARKER,
|
||||
G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -24,14 +24,15 @@
|
|||
*/
|
||||
|
||||
static gboolean
|
||||
remove_range_foreach (GQuark field_id, const GValue * value, GstStructure * st)
|
||||
remove_range_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
GstStructure * st)
|
||||
{
|
||||
GType ftype = G_VALUE_TYPE (value);
|
||||
/* const gchar *fname; */
|
||||
|
||||
if (ftype == GST_TYPE_INT_RANGE || ftype == GST_TYPE_DOUBLE_RANGE ||
|
||||
ftype == GST_TYPE_FRACTION_RANGE) {
|
||||
gst_structure_remove_field (st, g_quark_to_string (field_id));
|
||||
gst_structure_remove_field (st, gst_id_str_as_str (fieldname));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -61,8 +62,8 @@ clear_caps (GstCaps * caps, GstCaps * rescaps)
|
|||
st = gst_caps_get_structure (res, i - 1);
|
||||
|
||||
/* Remove range fields */
|
||||
while (!gst_structure_foreach (st,
|
||||
(GstStructureForeachFunc) remove_range_foreach, st));
|
||||
while (!gst_structure_foreach_id_str (st,
|
||||
(GstStructureForeachIdStrFunc) remove_range_foreach, st));
|
||||
}
|
||||
|
||||
GST_DEBUG ("stripped %" GST_PTR_FORMAT, res);
|
||||
|
|
|
@ -140,7 +140,7 @@ get_launch_line (GstDevice * device)
|
|||
|
||||
|
||||
static gboolean
|
||||
print_structure_field (GQuark field_id, const GValue * value,
|
||||
print_structure_field (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gchar *val;
|
||||
|
@ -155,10 +155,10 @@ print_structure_field (GQuark field_id, const GValue * value,
|
|||
}
|
||||
|
||||
if (val != NULL)
|
||||
g_print ("\n\t\t%s = %s", g_quark_to_string (field_id), val);
|
||||
g_print ("\n\t\t%s = %s", gst_id_str_as_str (fieldname), val);
|
||||
else
|
||||
g_print ("\n\t\t%s - could not serialise field of type %s",
|
||||
g_quark_to_string (field_id), G_VALUE_TYPE_NAME (value));
|
||||
gst_id_str_as_str (fieldname), G_VALUE_TYPE_NAME (value));
|
||||
|
||||
g_free (val);
|
||||
|
||||
|
@ -166,11 +166,11 @@ print_structure_field (GQuark field_id, const GValue * value,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
print_field (GQuark field, const GValue * value, gpointer unused)
|
||||
print_field (const GstIdStr * fieldname, const GValue * value, gpointer unused)
|
||||
{
|
||||
gchar *str = gst_value_serialize (value);
|
||||
|
||||
g_print (", %s=%s", g_quark_to_string (field), str);
|
||||
g_print (", %s=%s", gst_id_str_as_str (fieldname), str);
|
||||
g_free (str);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -208,12 +208,12 @@ print_device (GstDevice * device, gboolean modified)
|
|||
g_print ("(%s)", features_string);
|
||||
g_free (features_string);
|
||||
}
|
||||
gst_structure_foreach (s, print_field, NULL);
|
||||
gst_structure_foreach_id_str (s, print_field, NULL);
|
||||
g_print ("\n");
|
||||
}
|
||||
if (props) {
|
||||
g_print ("\tproperties:");
|
||||
gst_structure_foreach (props, print_structure_field, NULL);
|
||||
gst_structure_foreach_id_str (props, print_structure_field, NULL);
|
||||
gst_structure_free (props);
|
||||
g_print ("\n");
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ typedef struct
|
|||
} PrivStruct;
|
||||
|
||||
static gboolean
|
||||
structure_remove_buffers_ip (GQuark field_id, GValue * value,
|
||||
structure_remove_buffers_ip (const GstIdStr * fieldname, GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (G_VALUE_HOLDS (value, GST_TYPE_BUFFER))
|
||||
|
@ -75,7 +75,7 @@ static gboolean
|
|||
caps_remove_buffers_ip (GstCapsFeatures * features, GstStructure * structure,
|
||||
gpointer user_data)
|
||||
{
|
||||
gst_structure_filter_and_map_in_place (structure,
|
||||
gst_structure_filter_and_map_in_place_id_str (structure,
|
||||
structure_remove_buffers_ip, NULL);
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -1107,12 +1107,12 @@ struct http_headers_collector
|
|||
};
|
||||
|
||||
static gboolean
|
||||
gst_adaptive_demux_handle_upstream_http_header (GQuark field_id,
|
||||
gst_adaptive_demux_handle_upstream_http_header (const GstIdStr * fieldname,
|
||||
const GValue * value, gpointer userdata)
|
||||
{
|
||||
struct http_headers_collector *hdr_data = userdata;
|
||||
GstAdaptiveDemux *demux = hdr_data->demux;
|
||||
const gchar *field_name = g_quark_to_string (field_id);
|
||||
const gchar *field_name = gst_id_str_as_str (fieldname);
|
||||
|
||||
if (G_UNLIKELY (value == NULL))
|
||||
return TRUE; /* This should not happen */
|
||||
|
@ -1137,7 +1137,7 @@ gst_adaptive_demux_handle_upstream_http_header (GQuark field_id,
|
|||
cookies = (gchar **) g_malloc0 ((total_len + 1) * sizeof (gchar *));
|
||||
|
||||
for (i = 0; i < gst_value_array_get_size (value); i++) {
|
||||
GST_INFO_OBJECT (demux, "%s : %s", g_quark_to_string (field_id),
|
||||
GST_INFO_OBJECT (demux, "%s : %s", gst_id_str_as_str (fieldname),
|
||||
g_value_get_string (gst_value_array_get_value (value, i)));
|
||||
cookies[i] = g_value_dup_string (gst_value_array_get_value (value, i));
|
||||
}
|
||||
|
@ -1145,12 +1145,12 @@ gst_adaptive_demux_handle_upstream_http_header (GQuark field_id,
|
|||
total_len = 1 + prev_len;
|
||||
cookies = (gchar **) g_malloc0 ((total_len + 1) * sizeof (gchar *));
|
||||
|
||||
GST_INFO_OBJECT (demux, "%s : %s", g_quark_to_string (field_id),
|
||||
GST_INFO_OBJECT (demux, "%s : %s", gst_id_str_as_str (fieldname),
|
||||
g_value_get_string (value));
|
||||
cookies[0] = g_value_dup_string (value);
|
||||
} else {
|
||||
GST_WARNING_OBJECT (demux, "%s field is not string or array",
|
||||
g_quark_to_string (field_id));
|
||||
gst_id_str_as_str (fieldname));
|
||||
}
|
||||
|
||||
if (cookies) {
|
||||
|
@ -1260,7 +1260,7 @@ gst_adaptive_demux_sink_event (GstPad * pad, GstObject * parent,
|
|||
gst_structure_get (structure, "request-headers", GST_TYPE_STRUCTURE,
|
||||
&req_headers, NULL);
|
||||
if (req_headers) {
|
||||
gst_structure_foreach (req_headers,
|
||||
gst_structure_foreach_id_str (req_headers,
|
||||
gst_adaptive_demux_handle_upstream_http_header, &c);
|
||||
gst_structure_free (req_headers);
|
||||
}
|
||||
|
@ -1270,7 +1270,7 @@ gst_adaptive_demux_sink_event (GstPad * pad, GstObject * parent,
|
|||
gst_structure_get (structure, "response-headers", GST_TYPE_STRUCTURE,
|
||||
&res_headers, NULL);
|
||||
if (res_headers) {
|
||||
gst_structure_foreach (res_headers,
|
||||
gst_structure_foreach_id_str (res_headers,
|
||||
gst_adaptive_demux_handle_upstream_http_header, &c);
|
||||
gst_structure_free (res_headers);
|
||||
}
|
||||
|
|
|
@ -2597,7 +2597,7 @@ gst_hls_media_playlist_recommended_buffering_threshold (GstHLSMediaPlaylist *
|
|||
3 * (playlist->duration / playlist->segments->len) / 2;
|
||||
|
||||
if (GST_HLS_MEDIA_PLAYLIST_IS_LIVE (playlist)) {
|
||||
/* For live playlists, reduce the recommended buffering threshold
|
||||
/* For live playlists, reduce the recommended buffering threshold
|
||||
* to match the starting hold back distance if needed, otherwise
|
||||
* we'll hit the live edge and have to wait before we hit 100% */
|
||||
if (GST_CLOCK_TIME_IS_VALID (playlist->hold_back)
|
||||
|
@ -3375,12 +3375,12 @@ hls_master_playlist_get_variant_for_bitrate (GstHLSMasterPlaylist *
|
|||
}
|
||||
|
||||
static gboolean
|
||||
remove_uncommon (GQuark field_id, GValue * value, GstStructure * st2)
|
||||
remove_uncommon (const GstIdStr * fieldname, GValue * value, GstStructure * st2)
|
||||
{
|
||||
const GValue *other;
|
||||
GValue dest = G_VALUE_INIT;
|
||||
|
||||
other = gst_structure_id_get_value (st2, field_id);
|
||||
other = gst_structure_id_str_get_value (st2, fieldname);
|
||||
|
||||
if (other == NULL || (G_VALUE_TYPE (value) != G_VALUE_TYPE (other)))
|
||||
return FALSE;
|
||||
|
@ -3414,8 +3414,8 @@ gst_caps_merge_common (GstCaps * caps1, GstCaps * caps2)
|
|||
if (gst_structure_has_name (st2, name1)) {
|
||||
if (merged == NULL)
|
||||
merged = gst_structure_copy (st1);
|
||||
gst_structure_filter_and_map_in_place (merged,
|
||||
(GstStructureFilterMapFunc) remove_uncommon, st2);
|
||||
gst_structure_filter_and_map_in_place_id_str (merged,
|
||||
(GstStructureFilterMapIdStrFunc) remove_uncommon, st2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -346,10 +346,11 @@ gst_pulse_cvolume_from_linear (pa_cvolume * v, unsigned channels,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
make_proplist_item (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
make_proplist_item (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
pa_proplist *p = (pa_proplist *) user_data;
|
||||
gchar *prop_id = (gchar *) g_quark_to_string (field_id);
|
||||
const gchar *prop_id = gst_id_str_as_str (fieldname);
|
||||
|
||||
/* http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html */
|
||||
|
||||
|
@ -374,7 +375,7 @@ gst_pulse_make_proplist (const GstStructure * properties)
|
|||
pa_proplist *proplist = pa_proplist_new ();
|
||||
|
||||
/* iterate the structure and fill the proplist */
|
||||
gst_structure_foreach (properties, make_proplist_item, proplist);
|
||||
gst_structure_foreach_id_str (properties, make_proplist_item, proplist);
|
||||
return proplist;
|
||||
}
|
||||
|
||||
|
|
|
@ -940,10 +940,11 @@ gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_append_extra_header (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
_append_extra_header (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (user_data);
|
||||
const gchar *field_name = g_quark_to_string (field_id);
|
||||
const gchar *field_name = gst_id_str_as_str (fieldname);
|
||||
gchar *field_content = NULL;
|
||||
SoupMessageHeaders *request_headers =
|
||||
_soup_message_get_request_headers (src->msg);
|
||||
|
@ -975,7 +976,7 @@ _append_extra_header (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_append_extra_headers (GQuark field_id, const GValue * value,
|
||||
_append_extra_headers (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (G_VALUE_TYPE (value) == GST_TYPE_ARRAY) {
|
||||
|
@ -985,7 +986,7 @@ _append_extra_headers (GQuark field_id, const GValue * value,
|
|||
for (i = 0; i < n; i++) {
|
||||
const GValue *v = gst_value_array_get_value (value, i);
|
||||
|
||||
if (!_append_extra_header (field_id, v, user_data))
|
||||
if (!_append_extra_header (fieldname, v, user_data))
|
||||
return FALSE;
|
||||
}
|
||||
} else if (G_VALUE_TYPE (value) == GST_TYPE_LIST) {
|
||||
|
@ -995,11 +996,11 @@ _append_extra_headers (GQuark field_id, const GValue * value,
|
|||
for (i = 0; i < n; i++) {
|
||||
const GValue *v = gst_value_list_get_value (value, i);
|
||||
|
||||
if (!_append_extra_header (field_id, v, user_data))
|
||||
if (!_append_extra_header (fieldname, v, user_data))
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
return _append_extra_header (field_id, value, user_data);
|
||||
return _append_extra_header (fieldname, value, user_data);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -1012,7 +1013,8 @@ gst_soup_http_src_add_extra_headers (GstSoupHTTPSrc * src)
|
|||
if (!src->extra_headers)
|
||||
return TRUE;
|
||||
|
||||
return gst_structure_foreach (src->extra_headers, _append_extra_headers, src);
|
||||
return gst_structure_foreach_id_str (src->extra_headers,
|
||||
_append_extra_headers, src);
|
||||
}
|
||||
|
||||
static gpointer
|
||||
|
|
|
@ -249,7 +249,7 @@ gst_caps_setter_transform_ip (GstBaseTransform * btrans, GstBuffer * in)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_caps_is_fixed_foreach (GQuark field_id, const GValue * value,
|
||||
gst_caps_is_fixed_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer unused)
|
||||
{
|
||||
return gst_value_is_fixed (value);
|
||||
|
@ -277,7 +277,7 @@ gst_caps_setter_set_property (GObject * object, guint prop_id,
|
|||
GstStructure *s;
|
||||
|
||||
s = gst_caps_get_structure (new_caps, i);
|
||||
if (!gst_structure_foreach (s, gst_caps_is_fixed_foreach, NULL)) {
|
||||
if (!gst_structure_foreach_id_str (s, gst_caps_is_fixed_foreach, NULL)) {
|
||||
GST_ERROR_OBJECT (filter, "rejected unfixed caps: %" GST_PTR_FORMAT,
|
||||
new_caps);
|
||||
gst_caps_unref (new_caps);
|
||||
|
|
|
@ -5714,20 +5714,19 @@ gst_qt_mux_aggregate (GstAggregator * agg, gboolean timeout)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
field_is_in (GQuark field_id, const gchar * fieldname, ...)
|
||||
field_is_in (const GstIdStr * fieldname, const gchar * name, ...)
|
||||
{
|
||||
va_list varargs;
|
||||
gchar *name = (gchar *) fieldname;
|
||||
|
||||
va_start (varargs, fieldname);
|
||||
va_start (varargs, name);
|
||||
while (name) {
|
||||
if (field_id == g_quark_from_static_string (name)) {
|
||||
if (gst_id_str_is_equal_to_str (fieldname, name)) {
|
||||
va_end (varargs);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
name = va_arg (varargs, char *);
|
||||
name = va_arg (varargs, const char *);
|
||||
}
|
||||
va_end (varargs);
|
||||
|
||||
|
@ -5735,15 +5734,16 @@ field_is_in (GQuark field_id, const gchar * fieldname, ...)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
check_field (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *structure = (GstStructure *) user_data;
|
||||
const GValue *other = gst_structure_id_get_value (structure, field_id);
|
||||
const GValue *other = gst_structure_id_str_get_value (structure, fieldname);
|
||||
const gchar *name = gst_structure_get_name (structure);
|
||||
|
||||
if (g_str_has_prefix (name, "video/")) {
|
||||
/* ignore framerate with video caps */
|
||||
if (g_strcmp0 (g_quark_to_string (field_id), "framerate") == 0)
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "framerate"))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -5753,7 +5753,7 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
* will contain updated tier / level / profiles, which means we do
|
||||
* not need to fail renegotiation when those change.
|
||||
*/
|
||||
if (field_is_in (field_id,
|
||||
if (field_is_in (fieldname,
|
||||
"codec_data", "tier", "level", "profile",
|
||||
"chroma-site", "chroma-format", "bit-depth-luma", "colorimetry",
|
||||
/* TODO: this may require a separate track but gst, vlc, ffmpeg and
|
||||
|
@ -5765,7 +5765,7 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
}
|
||||
|
||||
if (other == NULL) {
|
||||
if (field_is_in (field_id, "interlace-mode", NULL) &&
|
||||
if (field_is_in (fieldname, "interlace-mode", NULL) &&
|
||||
!g_strcmp0 (g_value_get_string (value), "progressive")) {
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -5785,7 +5785,7 @@ gst_qtmux_caps_is_subset_full (GstQTMux * qtmux, GstCaps * subset,
|
|||
if (!gst_structure_has_name (sup_s, gst_structure_get_name (sub_s)))
|
||||
return FALSE;
|
||||
|
||||
return gst_structure_foreach (sub_s, check_field, sup_s);
|
||||
return gst_structure_foreach_id_str (sub_s, check_field, sup_s);
|
||||
}
|
||||
|
||||
/* will unref @qtmux */
|
||||
|
|
|
@ -977,7 +977,8 @@ gst_matroska_mux_set_codec_id (GstMatroskaTrackContext * context,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
check_field (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *structure = (GstStructure *) user_data;
|
||||
const gchar *name = gst_structure_get_name (structure);
|
||||
|
@ -994,48 +995,48 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
*
|
||||
* We don't warn here as we already warned elsewhere.
|
||||
*/
|
||||
if (field_id == g_quark_from_static_string ("codec_data")) {
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "codec_data")) {
|
||||
return FALSE;
|
||||
} else if (field_id == g_quark_from_static_string ("tier")) {
|
||||
} else if (gst_id_str_is_equal_to_str (fieldname, "tier")) {
|
||||
return FALSE;
|
||||
} else if (field_id == g_quark_from_static_string ("profile")) {
|
||||
} else if (gst_id_str_is_equal_to_str (fieldname, "profile")) {
|
||||
return FALSE;
|
||||
} else if (field_id == g_quark_from_static_string ("level")) {
|
||||
} else if (gst_id_str_is_equal_to_str (fieldname, "level")) {
|
||||
return FALSE;
|
||||
} else if (field_id == g_quark_from_static_string ("width")) {
|
||||
} else if (gst_id_str_is_equal_to_str (fieldname, "width")) {
|
||||
return FALSE;
|
||||
} else if (field_id == g_quark_from_static_string ("height")) {
|
||||
} else if (gst_id_str_is_equal_to_str (fieldname, "height")) {
|
||||
return FALSE;
|
||||
}
|
||||
} else if (gst_structure_has_name (structure, "video/x-vp8")
|
||||
|| gst_structure_has_name (structure, "video/x-vp9")) {
|
||||
/* We do not use profile and streamheader for VPX so let it change
|
||||
* mid stream */
|
||||
if (field_id == g_quark_from_static_string ("streamheader"))
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "streamheader"))
|
||||
return FALSE;
|
||||
else if (field_id == g_quark_from_static_string ("profile"))
|
||||
else if (gst_id_str_is_equal_to_str (fieldname, "profile"))
|
||||
return FALSE;
|
||||
else if (field_id == g_quark_from_static_string ("width"))
|
||||
else if (gst_id_str_is_equal_to_str (fieldname, "width"))
|
||||
return FALSE;
|
||||
else if (field_id == g_quark_from_static_string ("height"))
|
||||
else if (gst_id_str_is_equal_to_str (fieldname, "height"))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* This fields aren't used and are not retained into the bitstream so we can
|
||||
* discard them. */
|
||||
if (g_str_has_prefix (gst_structure_get_name (structure), "video/")) {
|
||||
if (field_id == g_quark_from_static_string ("chroma-site"))
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "chroma-site"))
|
||||
return FALSE;
|
||||
else if (field_id == g_quark_from_static_string ("chroma-format"))
|
||||
else if (gst_id_str_is_equal_to_str (fieldname, "chroma-format"))
|
||||
return FALSE;
|
||||
else if (field_id == g_quark_from_static_string ("bit-depth-luma"))
|
||||
else if (gst_id_str_is_equal_to_str (fieldname, "bit-depth-luma"))
|
||||
return FALSE;
|
||||
|
||||
/* Remove pixel-aspect-ratio field if it contains 1/1 as that's considered
|
||||
* equivalent to not having the field but are not considered equivalent
|
||||
* by the generic caps functions
|
||||
*/
|
||||
if (field_id == g_quark_from_static_string ("pixel-aspect-ratio")) {
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "pixel-aspect-ratio")) {
|
||||
gint par_n = gst_value_get_fraction_numerator (value);
|
||||
gint par_d = gst_value_get_fraction_denominator (value);
|
||||
|
||||
|
@ -1047,14 +1048,14 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
* equivalent with not having the fields but are not considered equivalent
|
||||
* by the generic caps functions.
|
||||
*/
|
||||
if (field_id == g_quark_from_static_string ("multiview-mode")) {
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "multiview-mode")) {
|
||||
const gchar *s = g_value_get_string (value);
|
||||
|
||||
if (g_strcmp0 (s, "mono") == 0)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (field_id == g_quark_from_static_string ("multiview-flags")) {
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "multiview-flags")) {
|
||||
guint multiview_flags = gst_value_get_flagset_flags (value);
|
||||
|
||||
if (multiview_flags == 0)
|
||||
|
@ -1078,10 +1079,10 @@ check_new_caps (GstMatroskaTrackVideoContext * videocontext, GstCaps * old_caps,
|
|||
new_s = gst_caps_get_structure (new_caps, 0);
|
||||
old_s = gst_caps_get_structure (old_caps, 0);
|
||||
|
||||
gst_structure_filter_and_map_in_place (new_s,
|
||||
(GstStructureFilterMapFunc) check_field, new_s);
|
||||
gst_structure_filter_and_map_in_place (old_s,
|
||||
(GstStructureFilterMapFunc) check_field, old_s);
|
||||
gst_structure_filter_and_map_in_place_id_str (new_s,
|
||||
(GstStructureFilterMapIdStrFunc) check_field, new_s);
|
||||
gst_structure_filter_and_map_in_place_id_str (old_s,
|
||||
(GstStructureFilterMapIdStrFunc) check_field, old_s);
|
||||
|
||||
ret = gst_caps_is_subset (new_caps, old_caps);
|
||||
|
||||
|
|
|
@ -2123,10 +2123,10 @@ block_context (MqStreamCtx * ctx, GstSplitMuxSink * splitmux)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_set_property_from_structure (GQuark field_id, const GValue * value,
|
||||
_set_property_from_structure (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
const gchar *property_name = g_quark_to_string (field_id);
|
||||
const gchar *property_name = gst_id_str_as_str (fieldname);
|
||||
GObject *element = G_OBJECT (user_data);
|
||||
|
||||
g_object_set_property (element, property_name, value);
|
||||
|
@ -2204,7 +2204,7 @@ start_next_fragment (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
|
|||
gst_preset_load_preset (GST_PRESET (splitmux->sink),
|
||||
splitmux->sink_preset);
|
||||
if (splitmux->sink_properties)
|
||||
gst_structure_foreach (splitmux->sink_properties,
|
||||
gst_structure_foreach_id_str (splitmux->sink_properties,
|
||||
_set_property_from_structure, splitmux->sink);
|
||||
splitmux->active_sink = splitmux->sink;
|
||||
g_signal_emit (splitmux, signals[SIGNAL_SINK_ADDED], 0, splitmux->sink);
|
||||
|
@ -2224,7 +2224,7 @@ start_next_fragment (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
|
|||
gst_preset_load_preset (GST_PRESET (splitmux->muxer),
|
||||
splitmux->muxer_preset);
|
||||
if (splitmux->muxer_properties)
|
||||
gst_structure_foreach (splitmux->muxer_properties,
|
||||
gst_structure_foreach_id_str (splitmux->muxer_properties,
|
||||
_set_property_from_structure, splitmux->muxer);
|
||||
g_signal_emit (splitmux, signals[SIGNAL_MUXER_ADDED], 0, splitmux->muxer);
|
||||
g_free (newname);
|
||||
|
@ -3888,7 +3888,7 @@ create_muxer (GstSplitMuxSink * splitmux)
|
|||
gst_preset_load_preset (GST_PRESET (splitmux->muxer),
|
||||
splitmux->muxer_preset);
|
||||
if (splitmux->muxer_properties)
|
||||
gst_structure_foreach (splitmux->muxer_properties,
|
||||
gst_structure_foreach_id_str (splitmux->muxer_properties,
|
||||
_set_property_from_structure, splitmux->muxer);
|
||||
} else {
|
||||
/* Ensure it's not in locked state (we might be reusing an old element) */
|
||||
|
@ -3985,7 +3985,7 @@ create_sink (GstSplitMuxSink * splitmux)
|
|||
gst_preset_load_preset (GST_PRESET (splitmux->sink),
|
||||
splitmux->sink_preset);
|
||||
if (splitmux->sink_properties)
|
||||
gst_structure_foreach (splitmux->sink_properties,
|
||||
gst_structure_foreach_id_str (splitmux->sink_properties,
|
||||
_set_property_from_structure, splitmux->sink);
|
||||
splitmux->active_sink = splitmux->sink;
|
||||
} else {
|
||||
|
|
|
@ -314,15 +314,14 @@ gst_rtp_pt_demux_finalize (GObject * object)
|
|||
|
||||
/* Removes "ssrc-*" attributes matching other SSRCs. */
|
||||
static gboolean
|
||||
_filter_ssrc (GQuark field_id, GValue * value, gpointer ssrc)
|
||||
_filter_ssrc (const GstIdStr * fieldname, GValue * value, gpointer ssrc)
|
||||
{
|
||||
const gchar *field_name = g_quark_to_string (field_id);
|
||||
|
||||
if (!g_str_has_prefix (field_name, "ssrc-"))
|
||||
if (!g_str_has_prefix (gst_id_str_as_str (fieldname), "ssrc-"))
|
||||
return TRUE;
|
||||
|
||||
gchar *endptr;
|
||||
guint32 field_ssrc = g_ascii_strtoll (field_name + 5, &endptr, 10);
|
||||
guint32 field_ssrc =
|
||||
g_ascii_strtoll (gst_id_str_as_str (fieldname) + 5, &endptr, 10);
|
||||
|
||||
if (!endptr || *endptr != '-')
|
||||
return TRUE;
|
||||
|
@ -376,7 +375,7 @@ gst_rtp_pt_demux_get_caps (GstRtpPtDemux * rtpdemux, guint pt)
|
|||
|
||||
caps = gst_caps_make_writable (caps);
|
||||
s = gst_caps_get_structure (caps, 0);
|
||||
gst_structure_filter_and_map_in_place (s, _filter_ssrc, &ssrc);
|
||||
gst_structure_filter_and_map_in_place_id_str (s, _filter_ssrc, &ssrc);
|
||||
|
||||
gst_caps_set_simple (caps, "payload", G_TYPE_INT, pt, NULL);
|
||||
if (have_ssrc)
|
||||
|
|
|
@ -1002,14 +1002,14 @@ gst_rtp_rtx_receive_get_property (GObject * object,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
structure_to_hash_table_inv (GQuark field_id, const GValue * value,
|
||||
structure_to_hash_table_inv (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer hash)
|
||||
{
|
||||
const gchar *field_str;
|
||||
guint field_uint;
|
||||
guint value_uint;
|
||||
|
||||
field_str = g_quark_to_string (field_id);
|
||||
field_str = gst_id_str_as_str (fieldname);
|
||||
field_uint = atoi (field_str);
|
||||
value_uint = g_value_get_uint (value);
|
||||
g_hash_table_insert ((GHashTable *) hash, GUINT_TO_POINTER (value_uint),
|
||||
|
@ -1031,7 +1031,7 @@ gst_rtp_rtx_receive_set_property (GObject * object,
|
|||
gst_structure_free (rtx->external_ssrc_map);
|
||||
rtx->external_ssrc_map = g_value_dup_boxed (value);
|
||||
g_hash_table_remove_all (rtx->ssrc2_ssrc1_map);
|
||||
gst_structure_foreach (rtx->external_ssrc_map,
|
||||
gst_structure_foreach_id_str (rtx->external_ssrc_map,
|
||||
structure_to_hash_table_inv, rtx->ssrc2_ssrc1_map);
|
||||
GST_OBJECT_UNLOCK (rtx);
|
||||
break;
|
||||
|
@ -1041,7 +1041,7 @@ gst_rtp_rtx_receive_set_property (GObject * object,
|
|||
gst_structure_free (rtx->rtx_pt_map_structure);
|
||||
rtx->rtx_pt_map_structure = g_value_dup_boxed (value);
|
||||
g_hash_table_remove_all (rtx->rtx_pt_map);
|
||||
gst_structure_foreach (rtx->rtx_pt_map_structure,
|
||||
gst_structure_foreach_id_str (rtx->rtx_pt_map_structure,
|
||||
structure_to_hash_table_inv, rtx->rtx_pt_map);
|
||||
GST_OBJECT_UNLOCK (rtx);
|
||||
break;
|
||||
|
|
|
@ -1199,13 +1199,14 @@ gst_rtp_rtx_send_get_property (GObject * object,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
structure_to_hash_table (GQuark field_id, const GValue * value, gpointer hash)
|
||||
structure_to_hash_table (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer hash)
|
||||
{
|
||||
const gchar *field_str;
|
||||
guint field_uint;
|
||||
guint value_uint;
|
||||
|
||||
field_str = g_quark_to_string (field_id);
|
||||
field_str = gst_id_str_as_str (fieldname);
|
||||
field_uint = atoi (field_str);
|
||||
value_uint = g_value_get_uint (value);
|
||||
g_hash_table_insert ((GHashTable *) hash, GUINT_TO_POINTER (field_uint),
|
||||
|
@ -1234,8 +1235,8 @@ gst_rtp_rtx_send_set_property (GObject * object,
|
|||
gst_structure_free (rtx->rtx_pt_map_structure);
|
||||
rtx->rtx_pt_map_structure = g_value_dup_boxed (value);
|
||||
g_hash_table_remove_all (rtx->rtx_pt_map);
|
||||
gst_structure_foreach (rtx->rtx_pt_map_structure, structure_to_hash_table,
|
||||
rtx->rtx_pt_map);
|
||||
gst_structure_foreach_id_str (rtx->rtx_pt_map_structure,
|
||||
structure_to_hash_table, rtx->rtx_pt_map);
|
||||
GST_OBJECT_UNLOCK (rtx);
|
||||
|
||||
if (IS_RTX_ENABLED (rtx))
|
||||
|
@ -1260,7 +1261,7 @@ gst_rtp_rtx_send_set_property (GObject * object,
|
|||
gst_structure_free (rtx->clock_rate_map_structure);
|
||||
rtx->clock_rate_map_structure = g_value_dup_boxed (value);
|
||||
g_hash_table_remove_all (rtx->clock_rate_map);
|
||||
gst_structure_foreach (rtx->clock_rate_map_structure,
|
||||
gst_structure_foreach_id_str (rtx->clock_rate_map_structure,
|
||||
structure_to_hash_table, rtx->clock_rate_map);
|
||||
GST_OBJECT_UNLOCK (rtx);
|
||||
break;
|
||||
|
|
|
@ -490,22 +490,20 @@ rtp_source_get_sdes_struct (RTPSource * src)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
sdes_struct_compare_func (GQuark field_id, const GValue * value,
|
||||
sdes_struct_compare_func (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *old;
|
||||
const gchar *field;
|
||||
|
||||
old = GST_STRUCTURE (user_data);
|
||||
field = g_quark_to_string (field_id);
|
||||
|
||||
if (!gst_structure_has_field (old, field))
|
||||
if (!gst_structure_id_str_has_field (old, fieldname))
|
||||
return FALSE;
|
||||
|
||||
g_assert (G_VALUE_HOLDS_STRING (value));
|
||||
|
||||
return strcmp (g_value_get_string (value), gst_structure_get_string (old,
|
||||
field)) == 0;
|
||||
gst_id_str_as_str (fieldname))) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -529,7 +527,8 @@ rtp_source_set_sdes_struct (RTPSource * src, GstStructure * sdes)
|
|||
g_return_val_if_fail (strcmp (gst_structure_get_name (sdes),
|
||||
"application/x-rtp-source-sdes") == 0, FALSE);
|
||||
|
||||
changed = !gst_structure_foreach (sdes, sdes_struct_compare_func, src->sdes);
|
||||
changed =
|
||||
!gst_structure_foreach_id_str (sdes, sdes_struct_compare_func, src->sdes);
|
||||
|
||||
if (changed) {
|
||||
gst_structure_free (src->sdes);
|
||||
|
|
|
@ -5420,9 +5420,10 @@ accept_certificate_cb (GTlsConnection * conn, GTlsCertificate * peer_cert,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
_add_header_to_conn (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
_add_header_to_conn (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
const gchar *key_str = g_quark_to_string (field_id);
|
||||
const gchar *key_str = gst_id_str_as_str (fieldname);
|
||||
const gchar *value_str = g_value_get_string (value);
|
||||
|
||||
GstRTSPConnection *conn = (GstRTSPConnection *) user_data;
|
||||
|
@ -5493,7 +5494,7 @@ gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info,
|
|||
}
|
||||
|
||||
if (src->prop_extra_http_request_headers != NULL) {
|
||||
gst_structure_foreach (src->prop_extra_http_request_headers,
|
||||
gst_structure_foreach_id_str (src->prop_extra_http_request_headers,
|
||||
_add_header_to_conn, info->connection);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -390,17 +390,18 @@ gst_v4l2src_get_property (GObject * object,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_vl42_src_fixate_fields (GQuark field_id, GValue * value, gpointer user_data)
|
||||
gst_vl42_src_fixate_fields (const GstIdStr * fieldname, GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *s = user_data;
|
||||
|
||||
if (field_id == g_quark_from_string ("interlace-mode"))
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "interlace-mode"))
|
||||
return TRUE;
|
||||
|
||||
if (field_id == g_quark_from_string ("colorimetry"))
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "colorimetry"))
|
||||
return TRUE;
|
||||
|
||||
gst_structure_fixate_field (s, g_quark_to_string (field_id));
|
||||
gst_structure_fixate_field (s, gst_id_str_as_str (fieldname));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -421,7 +422,7 @@ gst_v4l2_src_fixate_struct_with_preference (GstStructure * s,
|
|||
|
||||
/* Finally, fixate everything else except the interlace-mode and colorimetry
|
||||
* which still need further negotiation as it wasn't probed */
|
||||
gst_structure_map_in_place (s, gst_vl42_src_fixate_fields, s);
|
||||
gst_structure_map_in_place_id_str (s, gst_vl42_src_fixate_fields, s);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1035,10 +1035,10 @@ ctrl_failed:
|
|||
}
|
||||
|
||||
static gboolean
|
||||
set_control (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
set_control (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstV4l2Object *v4l2object = user_data;
|
||||
GQuark normalised_field_id;
|
||||
gpointer *d;
|
||||
|
||||
/* 32 bytes is the maximum size for a control name according to v4l2 */
|
||||
|
@ -1048,22 +1048,21 @@ set_control (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
a subtly different way to v4l2-ctl. e.g. the kernel's "Focus (absolute)"
|
||||
would become "focus__absolute_" whereas now it becomes "focus_absolute".
|
||||
Please remove the following in GStreamer 1.5 for 1.6 */
|
||||
strncpy (name, g_quark_to_string (field_id), sizeof (name));
|
||||
strncpy (name, gst_id_str_as_str (fieldname), sizeof (name));
|
||||
name[31] = '\0';
|
||||
gst_v4l2_normalise_control_name (name);
|
||||
normalised_field_id = g_quark_from_string (name);
|
||||
if (normalised_field_id != field_id)
|
||||
if (!gst_id_str_is_equal_to_str (fieldname, name))
|
||||
g_warning ("In GStreamer 1.4 the way V4L2 control names were normalised "
|
||||
"changed. Instead of setting \"%s\" please use \"%s\". The former is "
|
||||
"deprecated and will be removed in a future version of GStreamer",
|
||||
g_quark_to_string (field_id), name);
|
||||
field_id = normalised_field_id;
|
||||
gst_id_str_as_str (fieldname), name);
|
||||
|
||||
d = g_datalist_id_get_data (&v4l2object->controls, field_id);
|
||||
d = g_datalist_id_get_data (&v4l2object->controls,
|
||||
g_quark_from_string (gst_id_str_as_str (fieldname)));
|
||||
if (!d) {
|
||||
GST_WARNING_OBJECT (v4l2object,
|
||||
"Control '%s' does not exist or has an unsupported type.",
|
||||
g_quark_to_string (field_id));
|
||||
gst_id_str_as_str (fieldname));
|
||||
return TRUE;
|
||||
}
|
||||
if (G_VALUE_HOLDS (value, G_TYPE_INT)) {
|
||||
|
@ -1078,7 +1077,7 @@ set_control (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
} else {
|
||||
GST_WARNING_OBJECT (v4l2object,
|
||||
"no compatible value expected for control '%s'.",
|
||||
g_quark_to_string (field_id));
|
||||
gst_id_str_as_str (fieldname));
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -1087,7 +1086,7 @@ set_control (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
gboolean
|
||||
gst_v4l2_set_controls (GstV4l2Object * v4l2object, GstStructure * controls)
|
||||
{
|
||||
return gst_structure_foreach (controls, set_control, v4l2object);
|
||||
return gst_structure_foreach_id_str (controls, set_control, v4l2object);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
|
|
@ -50,10 +50,10 @@ setup_backchannel_shoveler (GstElement * rtspsrc, GstCaps * caps)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
remove_extra_fields (GQuark field_id, GValue * value G_GNUC_UNUSED,
|
||||
remove_extra_fields (const GstIdStr * fieldname, GValue * value G_GNUC_UNUSED,
|
||||
gpointer user_data G_GNUC_UNUSED)
|
||||
{
|
||||
return !g_str_has_prefix (g_quark_to_string (field_id), "a-");
|
||||
return !g_str_has_prefix (gst_id_str_as_str (fieldname), "a-");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -71,7 +71,7 @@ find_backchannel (GstElement * rtspsrc, guint idx, GstCaps * caps,
|
|||
caps = gst_caps_new_empty ();
|
||||
s = gst_structure_copy (s);
|
||||
gst_structure_set_name (s, "application/x-rtp");
|
||||
gst_structure_filter_and_map_in_place (s, remove_extra_fields, NULL);
|
||||
gst_structure_filter_and_map_in_place_id_str (s, remove_extra_fields, NULL);
|
||||
gst_caps_append_structure (caps, s);
|
||||
setup_backchannel_shoveler (rtspsrc, caps);
|
||||
}
|
||||
|
|
|
@ -1255,32 +1255,6 @@ gst_vaapi_video_info_quark_get (void)
|
|||
return g_quark;
|
||||
}
|
||||
|
||||
#define ALLOCATION_VINFO_QUARK allocation_vinfo_quark_get ()
|
||||
static GQuark
|
||||
allocation_vinfo_quark_get (void)
|
||||
{
|
||||
static gsize g_quark;
|
||||
|
||||
if (g_once_init_enter (&g_quark)) {
|
||||
gsize quark = (gsize) g_quark_from_static_string ("allocation-vinfo");
|
||||
g_once_init_leave (&g_quark, quark);
|
||||
}
|
||||
return g_quark;
|
||||
}
|
||||
|
||||
#define SURFACE_ALLOC_FLAGS_QUARK surface_alloc_flags_quark_get ()
|
||||
static GQuark
|
||||
surface_alloc_flags_quark_get (void)
|
||||
{
|
||||
static gsize g_quark;
|
||||
|
||||
if (g_once_init_enter (&g_quark)) {
|
||||
gsize quark = (gsize) g_quark_from_static_string ("surface-alloc-flags");
|
||||
g_once_init_leave (&g_quark, quark);
|
||||
}
|
||||
return g_quark;
|
||||
}
|
||||
|
||||
#define NEGOTIATED_VINFO_QUARK negotiated_vinfo_quark_get ()
|
||||
static GQuark
|
||||
negotiated_vinfo_quark_get (void)
|
||||
|
@ -1323,13 +1297,13 @@ gst_allocator_get_vaapi_video_info (GstAllocator * allocator,
|
|||
return NULL;
|
||||
|
||||
if (out_flags_ptr) {
|
||||
value = gst_structure_id_get_value (structure, SURFACE_ALLOC_FLAGS_QUARK);
|
||||
value = gst_structure_get_value (structure, "surface-alloc-flags");
|
||||
if (!value)
|
||||
return NULL;
|
||||
*out_flags_ptr = g_value_get_uint (value);
|
||||
}
|
||||
|
||||
value = gst_structure_id_get_value (structure, ALLOCATION_VINFO_QUARK);
|
||||
value = gst_structure_get_value (structure, "allocation-vinfo");
|
||||
if (!value)
|
||||
return NULL;
|
||||
return g_value_get_boxed (value);
|
||||
|
|
|
@ -593,12 +593,12 @@ _add_properties (GString * json, GString * other_types,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
print_field (GQuark field, const GValue * value, GString * jcaps)
|
||||
print_field (const GstIdStr * fieldname, 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 (!g_strcmp0 (gst_id_str_as_str (fieldname), "format") ||
|
||||
!g_strcmp0 (gst_id_str_as_str (fieldname), "rate")) {
|
||||
if (!cleanup_caps_field)
|
||||
cleanup_caps_field = g_regex_new ("\\(string\\)|\\(rate\\)", 0, 0, NULL);
|
||||
|
||||
|
@ -607,7 +607,8 @@ print_field (GQuark field, const GValue * value, GString * jcaps)
|
|||
g_free (tmp);
|
||||
}
|
||||
|
||||
g_string_append_printf (jcaps, "%15s: %s\n", g_quark_to_string (field), str);
|
||||
g_string_append_printf (jcaps, "%15s: %s\n", gst_id_str_as_str (fieldname),
|
||||
str);
|
||||
g_free (str);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -645,8 +646,8 @@ _build_caps (const GstCaps * caps)
|
|||
g_string_append_printf (jcaps, "%s:\n",
|
||||
gst_structure_get_name (structure));
|
||||
}
|
||||
gst_structure_foreach (structure, (GstStructureForeachFunc) print_field,
|
||||
jcaps);
|
||||
gst_structure_foreach_id_str (structure,
|
||||
(GstStructureForeachIdStrFunc) print_field, jcaps);
|
||||
}
|
||||
|
||||
res = json_strescape (jcaps->str);
|
||||
|
|
|
@ -830,11 +830,11 @@ gst_buffer_pool_config_set_params (GstStructure * config, GstCaps * caps,
|
|||
g_return_if_fail (max_buffers == 0 || min_buffers <= max_buffers);
|
||||
g_return_if_fail (caps == NULL || gst_caps_is_fixed (caps));
|
||||
|
||||
gst_structure_id_set (config,
|
||||
GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
|
||||
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
||||
GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
|
||||
GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers, NULL);
|
||||
gst_structure_set_static_str (config,
|
||||
"caps", GST_TYPE_CAPS, caps,
|
||||
"size", G_TYPE_UINT, size,
|
||||
"min-buffers", G_TYPE_UINT, min_buffers,
|
||||
"max-buffers", G_TYPE_UINT, max_buffers, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -863,9 +863,9 @@ gst_buffer_pool_config_set_allocator (GstStructure * config,
|
|||
g_return_if_fail (config != NULL);
|
||||
g_return_if_fail (allocator != NULL || params != NULL);
|
||||
|
||||
gst_structure_id_set (config,
|
||||
GST_QUARK (ALLOCATOR), GST_TYPE_ALLOCATOR, allocator,
|
||||
GST_QUARK (PARAMS), GST_TYPE_ALLOCATION_PARAMS, params, NULL);
|
||||
gst_structure_set_static_str (config,
|
||||
"allocator", GST_TYPE_ALLOCATOR, allocator,
|
||||
"params", GST_TYPE_ALLOCATION_PARAMS, params, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -887,7 +887,7 @@ gst_buffer_pool_config_add_option (GstStructure * config, const gchar * option)
|
|||
|
||||
g_return_if_fail (config != NULL);
|
||||
|
||||
value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
|
||||
value = gst_structure_get_value (config, "options");
|
||||
if (value) {
|
||||
len = gst_value_array_get_size (value);
|
||||
for (i = 0; i < len; ++i) {
|
||||
|
@ -900,8 +900,8 @@ gst_buffer_pool_config_add_option (GstStructure * config, const gchar * option)
|
|||
GValue new_array_val = { 0, };
|
||||
|
||||
g_value_init (&new_array_val, GST_TYPE_ARRAY);
|
||||
gst_structure_id_take_value (config, GST_QUARK (OPTIONS), &new_array_val);
|
||||
value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
|
||||
gst_structure_take_value_static_str (config, "options", &new_array_val);
|
||||
value = gst_structure_get_value (config, "options");
|
||||
}
|
||||
g_value_init (&option_value, G_TYPE_STRING);
|
||||
g_value_set_string (&option_value, option);
|
||||
|
@ -925,7 +925,7 @@ gst_buffer_pool_config_n_options (GstStructure * config)
|
|||
|
||||
g_return_val_if_fail (config != NULL, 0);
|
||||
|
||||
value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
|
||||
value = gst_structure_get_value (config, "options");
|
||||
if (value) {
|
||||
size = gst_value_array_get_size (value);
|
||||
}
|
||||
|
@ -950,7 +950,7 @@ gst_buffer_pool_config_get_option (GstStructure * config, guint index)
|
|||
|
||||
g_return_val_if_fail (config != NULL, 0);
|
||||
|
||||
value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
|
||||
value = gst_structure_get_value (config, "options");
|
||||
if (value) {
|
||||
const GValue *option_value;
|
||||
|
||||
|
@ -978,7 +978,7 @@ gst_buffer_pool_config_has_option (GstStructure * config, const gchar * option)
|
|||
|
||||
g_return_val_if_fail (config != NULL, 0);
|
||||
|
||||
value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
|
||||
value = gst_structure_get_value (config, "options");
|
||||
if (value) {
|
||||
len = gst_value_array_get_size (value);
|
||||
for (i = 0; i < len; ++i) {
|
||||
|
@ -1010,13 +1010,12 @@ gst_buffer_pool_config_get_params (GstStructure * config, GstCaps ** caps,
|
|||
g_return_val_if_fail (config != NULL, FALSE);
|
||||
|
||||
if (caps) {
|
||||
*caps = g_value_get_boxed (gst_structure_id_get_value (config,
|
||||
GST_QUARK (CAPS)));
|
||||
*caps = g_value_get_boxed (gst_structure_get_value (config, "caps"));
|
||||
}
|
||||
return gst_structure_id_get (config,
|
||||
GST_QUARK (SIZE), G_TYPE_UINT, size,
|
||||
GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
|
||||
GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers, NULL);
|
||||
return gst_structure_get (config,
|
||||
"size", G_TYPE_UINT, size,
|
||||
"min-buffers", G_TYPE_UINT, min_buffers,
|
||||
"max-buffers", G_TYPE_UINT, max_buffers, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1036,13 +1035,12 @@ gst_buffer_pool_config_get_allocator (GstStructure * config,
|
|||
g_return_val_if_fail (config != NULL, FALSE);
|
||||
|
||||
if (allocator)
|
||||
*allocator = g_value_get_object (gst_structure_id_get_value (config,
|
||||
GST_QUARK (ALLOCATOR)));
|
||||
*allocator = g_value_get_object (gst_structure_get_value (config,
|
||||
"allocator"));
|
||||
if (params) {
|
||||
GstAllocationParams *p;
|
||||
|
||||
p = g_value_get_boxed (gst_structure_id_get_value (config,
|
||||
GST_QUARK (PARAMS)));
|
||||
p = g_value_get_boxed (gst_structure_get_value (config, "params"));
|
||||
if (p) {
|
||||
*params = *p;
|
||||
} else {
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
|
||||
#define GST_DISABLE_MINIOBJECT_INLINE_FUNCTIONS
|
||||
#include "gst_private.h"
|
||||
#include "gstidstr-private.h"
|
||||
#include <gst/gst.h>
|
||||
#include <gobject/gvaluecollector.h>
|
||||
|
||||
|
@ -1217,7 +1218,7 @@ gst_caps_is_empty (const GstCaps * caps)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_caps_is_fixed_foreach (GQuark field_id, const GValue * value,
|
||||
gst_caps_is_fixed_foreach (const GstIdStr * field, const GValue * value,
|
||||
gpointer unused)
|
||||
{
|
||||
return gst_value_is_fixed (value);
|
||||
|
@ -1254,7 +1255,7 @@ gst_caps_is_fixed (const GstCaps * caps)
|
|||
|
||||
structure = gst_caps_get_structure_unchecked (caps, 0);
|
||||
|
||||
return gst_structure_foreach (structure, gst_caps_is_fixed_foreach, NULL);
|
||||
return gst_structure_foreach_id_str (structure, gst_caps_is_fixed_foreach, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1810,7 +1811,7 @@ typedef struct
|
|||
} SubtractionEntry;
|
||||
|
||||
static gboolean
|
||||
gst_caps_structure_subtract_field (GQuark field_id, const GValue * value,
|
||||
gst_caps_structure_subtract_field (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
SubtractionEntry *e = user_data;
|
||||
|
@ -1818,7 +1819,7 @@ gst_caps_structure_subtract_field (GQuark field_id, const GValue * value,
|
|||
const GValue *other;
|
||||
GstStructure *structure;
|
||||
|
||||
other = gst_structure_id_get_value (e->subtract_from, field_id);
|
||||
other = gst_structure_id_str_get_value (e->subtract_from, field);
|
||||
|
||||
if (!other) {
|
||||
return FALSE;
|
||||
|
@ -1832,7 +1833,7 @@ gst_caps_structure_subtract_field (GQuark field_id, const GValue * value,
|
|||
return FALSE;
|
||||
} else {
|
||||
structure = gst_structure_copy (e->subtract_from);
|
||||
gst_structure_id_take_value (structure, field_id, &subtraction);
|
||||
gst_structure_id_str_take_value (structure, field, &subtraction);
|
||||
e->put_into = g_slist_prepend (e->put_into, structure);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1847,7 +1848,7 @@ gst_caps_structure_subtract (GSList ** into, const GstStructure * minuend,
|
|||
|
||||
e.subtract_from = minuend;
|
||||
e.put_into = NULL;
|
||||
ret = gst_structure_foreach ((GstStructure *) subtrahend,
|
||||
ret = gst_structure_foreach_id_str ((GstStructure *) subtrahend,
|
||||
gst_caps_structure_subtract_field, &e);
|
||||
|
||||
if (ret) {
|
||||
|
@ -1972,7 +1973,7 @@ typedef struct _NormalizeForeach
|
|||
} NormalizeForeach;
|
||||
|
||||
static gboolean
|
||||
gst_caps_normalize_foreach (GQuark field_id, const GValue * value, gpointer ptr)
|
||||
gst_caps_normalize_foreach (const GstIdStr * field, const GValue * value, gpointer ptr)
|
||||
{
|
||||
NormalizeForeach *nf = (NormalizeForeach *) ptr;
|
||||
GValue val = { 0 };
|
||||
|
@ -1985,13 +1986,13 @@ gst_caps_normalize_foreach (GQuark field_id, const GValue * value, gpointer ptr)
|
|||
const GValue *v = gst_value_list_get_value (value, i);
|
||||
GstStructure *structure = gst_structure_copy (nf->structure);
|
||||
|
||||
gst_structure_id_set_value (structure, field_id, v);
|
||||
gst_structure_id_str_set_value (structure, field, v);
|
||||
gst_caps_append_structure_unchecked (nf->caps, structure,
|
||||
gst_caps_features_copy_conditional (nf->features));
|
||||
}
|
||||
|
||||
gst_value_init_and_copy (&val, gst_value_list_get_value (value, 0));
|
||||
gst_structure_id_take_value (nf->structure, field_id, &val);
|
||||
gst_structure_id_str_take_value (nf->structure, field, &val);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2026,7 +2027,7 @@ gst_caps_normalize (GstCaps * caps)
|
|||
for (i = 0; i < gst_caps_get_size (nf.caps); i++) {
|
||||
nf.structure = gst_caps_get_structure_unchecked (nf.caps, i);
|
||||
nf.features = gst_caps_get_features_unchecked (nf.caps, i);
|
||||
while (!gst_structure_foreach (nf.structure,
|
||||
while (!gst_structure_foreach_id_str (nf.structure,
|
||||
gst_caps_normalize_foreach, &nf));
|
||||
}
|
||||
|
||||
|
@ -2053,20 +2054,20 @@ gst_caps_compare_structures (gconstpointer one, gconstpointer two)
|
|||
|
||||
typedef struct
|
||||
{
|
||||
GQuark name;
|
||||
GstIdStr name;
|
||||
GValue value;
|
||||
GstStructure *compare;
|
||||
} UnionField;
|
||||
|
||||
static gboolean
|
||||
gst_caps_structure_figure_out_union (GQuark field_id, const GValue * value,
|
||||
gst_caps_structure_figure_out_union (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
UnionField *u = user_data;
|
||||
const GValue *val = gst_structure_id_get_value (u->compare, field_id);
|
||||
const GValue *val = gst_structure_id_str_get_value (u->compare, field);
|
||||
|
||||
if (!val) {
|
||||
if (u->name)
|
||||
if (G_VALUE_TYPE (&u->value) != G_TYPE_INVALID)
|
||||
g_value_unset (&u->value);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2074,12 +2075,12 @@ gst_caps_structure_figure_out_union (GQuark field_id, const GValue * value,
|
|||
if (gst_value_compare (val, value) == GST_VALUE_EQUAL)
|
||||
return TRUE;
|
||||
|
||||
if (u->name) {
|
||||
if (G_VALUE_TYPE (&u->value) != G_TYPE_INVALID) {
|
||||
g_value_unset (&u->value);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u->name = field_id;
|
||||
gst_id_str_copy_into (&u->name, field);
|
||||
gst_value_union (&u->value, val, value);
|
||||
|
||||
return TRUE;
|
||||
|
@ -2090,7 +2091,7 @@ gst_caps_structure_simplify (GstStructure ** result,
|
|||
GstStructure * simplify, GstStructure * compare)
|
||||
{
|
||||
GSList *list;
|
||||
UnionField field = { 0, {0,}, NULL };
|
||||
UnionField field = { GST_ID_STR_INIT, G_VALUE_INIT, NULL };
|
||||
|
||||
/* try to subtract to get a real subset */
|
||||
if (gst_caps_structure_subtract (&list, simplify, compare)) {
|
||||
|
@ -2110,7 +2111,7 @@ gst_caps_structure_simplify (GstStructure ** result,
|
|||
|
||||
/* try to union both structs */
|
||||
field.compare = compare;
|
||||
if (gst_structure_foreach (simplify,
|
||||
if (gst_structure_foreach_id_str (simplify,
|
||||
gst_caps_structure_figure_out_union, &field)) {
|
||||
gboolean ret = FALSE;
|
||||
|
||||
|
@ -2118,7 +2119,7 @@ gst_caps_structure_simplify (GstStructure ** result,
|
|||
* but at most one field: field.name */
|
||||
if (G_IS_VALUE (&field.value)) {
|
||||
if (gst_structure_n_fields (simplify) == gst_structure_n_fields (compare)) {
|
||||
gst_structure_id_take_value (compare, field.name, &field.value);
|
||||
gst_structure_id_str_take_value (compare, &field.name, &field.value);
|
||||
*result = NULL;
|
||||
ret = TRUE;
|
||||
} else {
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
#include "gstpad.h"
|
||||
#include "gstutils.h"
|
||||
#include "gstvalue.h"
|
||||
#include "gstidstr-private.h"
|
||||
|
||||
/*** PIPELINE GRAPHS **********************************************************/
|
||||
|
||||
|
@ -375,14 +376,14 @@ debug_dump_element_pad (GstPad * pad, GstElement * element,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
string_append_field (GQuark field, const GValue * value, gpointer ptr)
|
||||
string_append_field (const GstIdStr * field, const GValue * value, gpointer ptr)
|
||||
{
|
||||
GString *str = (GString *) ptr;
|
||||
gchar *value_str = gst_value_serialize (value);
|
||||
gchar *esc_value_str;
|
||||
|
||||
if (value_str == NULL) {
|
||||
g_string_append_printf (str, " %18s: NULL\\l", g_quark_to_string (field));
|
||||
g_string_append_printf (str, " %18s: NULL\\l", gst_id_str_as_str (field));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -413,7 +414,7 @@ string_append_field (GQuark field, const GValue * value, gpointer ptr)
|
|||
}
|
||||
esc_value_str = g_strescape (value_str, NULL);
|
||||
|
||||
g_string_append_printf (str, " %18s: %s\\l", g_quark_to_string (field),
|
||||
g_string_append_printf (str, " %18s: %s\\l", gst_id_str_as_str (field),
|
||||
esc_value_str);
|
||||
|
||||
g_free (value_str);
|
||||
|
@ -457,7 +458,8 @@ debug_dump_describe_caps (GstCaps * caps, GstDebugGraphDetails details)
|
|||
}
|
||||
g_string_append (str, "\\l");
|
||||
|
||||
gst_structure_foreach (structure, string_append_field, (gpointer) str);
|
||||
gst_structure_foreach_id_str (structure, string_append_field,
|
||||
(gpointer) str);
|
||||
}
|
||||
|
||||
media = g_string_free (str, FALSE);
|
||||
|
|
|
@ -279,11 +279,11 @@ gst_device_provider_class_set_metadata (GstDeviceProviderClass * klass,
|
|||
g_return_if_fail (description != NULL && *description != '\0');
|
||||
g_return_if_fail (author != NULL && *author != '\0');
|
||||
|
||||
gst_structure_id_set ((GstStructure *) klass->metadata,
|
||||
GST_QUARK (ELEMENT_METADATA_LONGNAME), G_TYPE_STRING, longname,
|
||||
GST_QUARK (ELEMENT_METADATA_KLASS), G_TYPE_STRING, classification,
|
||||
GST_QUARK (ELEMENT_METADATA_DESCRIPTION), G_TYPE_STRING, description,
|
||||
GST_QUARK (ELEMENT_METADATA_AUTHOR), G_TYPE_STRING, author, NULL);
|
||||
gst_structure_set_static_str ((GstStructure *) klass->metadata,
|
||||
GST_ELEMENT_METADATA_LONGNAME, G_TYPE_STRING, longname,
|
||||
GST_ELEMENT_METADATA_KLASS, G_TYPE_STRING, classification,
|
||||
GST_ELEMENT_METADATA_DESCRIPTION, G_TYPE_STRING, description,
|
||||
GST_ELEMENT_METADATA_AUTHOR, G_TYPE_STRING, author, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -327,17 +327,17 @@ gst_device_provider_class_set_static_metadata (GstDeviceProviderClass * klass,
|
|||
g_value_init (&val, G_TYPE_STRING);
|
||||
|
||||
g_value_set_static_string (&val, longname);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_LONGNAME), &val);
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_LONGNAME, &val);
|
||||
|
||||
g_value_set_static_string (&val, classification);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_KLASS), &val);
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_KLASS, &val);
|
||||
|
||||
g_value_set_static_string (&val, description);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_DESCRIPTION),
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_DESCRIPTION,
|
||||
&val);
|
||||
|
||||
g_value_set_static_string (&val, author);
|
||||
gst_structure_id_take_value (s, GST_QUARK (ELEMENT_METADATA_AUTHOR), &val);
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_AUTHOR, &val);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1659,11 +1659,11 @@ gst_element_class_set_metadata (GstElementClass * klass,
|
|||
g_return_if_fail (description != NULL && *description != '\0');
|
||||
g_return_if_fail (author != NULL && *author != '\0');
|
||||
|
||||
gst_structure_id_set ((GstStructure *) klass->metadata,
|
||||
GST_QUARK (ELEMENT_METADATA_LONGNAME), G_TYPE_STRING, longname,
|
||||
GST_QUARK (ELEMENT_METADATA_KLASS), G_TYPE_STRING, classification,
|
||||
GST_QUARK (ELEMENT_METADATA_DESCRIPTION), G_TYPE_STRING, description,
|
||||
GST_QUARK (ELEMENT_METADATA_AUTHOR), G_TYPE_STRING, author, NULL);
|
||||
gst_structure_set_static_str ((GstStructure *) klass->metadata,
|
||||
GST_ELEMENT_METADATA_LONGNAME, G_TYPE_STRING, longname,
|
||||
GST_ELEMENT_METADATA_KLASS, G_TYPE_STRING, classification,
|
||||
GST_ELEMENT_METADATA_DESCRIPTION, G_TYPE_STRING, description,
|
||||
GST_ELEMENT_METADATA_AUTHOR, G_TYPE_STRING, author, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1704,17 +1704,17 @@ gst_element_class_set_static_metadata (GstElementClass * klass,
|
|||
g_value_init (&val, G_TYPE_STRING);
|
||||
|
||||
g_value_set_static_string (&val, longname);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_LONGNAME), &val);
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_LONGNAME, &val);
|
||||
|
||||
g_value_set_static_string (&val, classification);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_KLASS), &val);
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_KLASS, &val);
|
||||
|
||||
g_value_set_static_string (&val, description);
|
||||
gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_DESCRIPTION),
|
||||
gst_structure_set_value_static_str (s, GST_ELEMENT_METADATA_DESCRIPTION,
|
||||
&val);
|
||||
|
||||
g_value_set_static_string (&val, author);
|
||||
gst_structure_id_take_value (s, GST_QUARK (ELEMENT_METADATA_AUTHOR), &val);
|
||||
gst_structure_take_value_static_str (s, GST_ELEMENT_METADATA_AUTHOR, &val);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -79,7 +79,6 @@
|
|||
#include "gstevent.h"
|
||||
#include "gstenumtypes.h"
|
||||
#include "gstutils.h"
|
||||
#include "gstquark.h"
|
||||
#include "gstvalue.h"
|
||||
|
||||
GType _gst_event_type = 0;
|
||||
|
@ -630,8 +629,7 @@ gst_event_parse_flush_stop (GstEvent * event, gboolean * reset_time)
|
|||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (G_LIKELY (reset_time))
|
||||
*reset_time =
|
||||
g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RESET_TIME)));
|
||||
g_value_get_boolean (gst_structure_get_value (structure, "reset-time"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -675,7 +673,7 @@ gst_event_new_select_streams (GList * streams)
|
|||
g_value_set_string (&strval, str);
|
||||
gst_value_list_append_and_take_value (&val, &strval);
|
||||
}
|
||||
gst_structure_id_take_value (struc, GST_QUARK (STREAMS), &val);
|
||||
gst_structure_take_value (struc, "streams", &val);
|
||||
event = gst_event_new_custom (GST_EVENT_SELECT_STREAMS, struc);
|
||||
|
||||
return event;
|
||||
|
@ -701,8 +699,7 @@ gst_event_parse_select_streams (GstEvent * event, GList ** streams)
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (G_LIKELY (streams)) {
|
||||
const GValue *vlist =
|
||||
gst_structure_id_get_value (structure, GST_QUARK (STREAMS));
|
||||
const GValue *vlist = gst_structure_get_value (structure, "streams");
|
||||
guint i, sz = gst_value_list_get_size (vlist);
|
||||
for (i = 0; i < sz; i++) {
|
||||
const GValue *strv = gst_value_list_get_value (vlist, i);
|
||||
|
@ -761,8 +758,8 @@ gst_event_parse_stream_group_done (GstEvent * event, guint * group_id)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_GROUP_DONE);
|
||||
|
||||
if (group_id) {
|
||||
gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id, NULL);
|
||||
gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"group-id", G_TYPE_UINT, group_id, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -844,9 +841,9 @@ gst_event_parse_gap (GstEvent * event, GstClockTime * timestamp,
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_GAP);
|
||||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (TIMESTAMP), GST_TYPE_CLOCK_TIME, timestamp,
|
||||
GST_QUARK (DURATION), GST_TYPE_CLOCK_TIME, duration, NULL);
|
||||
gst_structure_get (structure,
|
||||
"timestamp", GST_TYPE_CLOCK_TIME, timestamp,
|
||||
"duration", GST_TYPE_CLOCK_TIME, duration, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -866,8 +863,8 @@ gst_event_set_gap_flags (GstEvent * event, GstGapFlags flags)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_GAP);
|
||||
g_return_if_fail (gst_event_is_writable (event));
|
||||
|
||||
gst_structure_id_set (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (GAP_FLAGS), GST_TYPE_GAP_FLAGS, flags, NULL);
|
||||
gst_structure_set (GST_EVENT_STRUCTURE (event),
|
||||
"gap-flags", GST_TYPE_GAP_FLAGS, flags, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -890,8 +887,8 @@ gst_event_parse_gap_flags (GstEvent * event, GstGapFlags * flags)
|
|||
if (flags)
|
||||
*flags = 0;
|
||||
|
||||
gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (GAP_FLAGS), GST_TYPE_GAP_FLAGS, flags, NULL);
|
||||
gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"gap-flags", GST_TYPE_GAP_FLAGS, flags, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -939,9 +936,7 @@ gst_event_parse_caps (GstEvent * event, GstCaps ** caps)
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (G_LIKELY (caps))
|
||||
*caps =
|
||||
g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CAPS)));
|
||||
*caps = g_value_get_boxed (gst_structure_get_value (structure, "caps"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1021,8 +1016,8 @@ gst_event_parse_segment (GstEvent * event, const GstSegment ** segment)
|
|||
|
||||
if (segment) {
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
*segment = g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SEGMENT)));
|
||||
*segment = g_value_get_boxed (gst_structure_get_value (structure,
|
||||
"segment"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1076,7 +1071,7 @@ gst_event_new_tag (GstTagList * taglist)
|
|||
(taglist)]);
|
||||
g_value_init (&val, GST_TYPE_TAG_LIST);
|
||||
g_value_take_boxed (&val, taglist);
|
||||
gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
|
||||
gst_structure_take_value (s, "taglist", &val);
|
||||
return gst_event_new_custom (GST_EVENT_TAG, s);
|
||||
}
|
||||
|
||||
|
@ -1098,8 +1093,7 @@ gst_event_parse_tag (GstEvent * event, GstTagList ** taglist)
|
|||
g_return_if_fail (GST_IS_EVENT (event));
|
||||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
|
||||
|
||||
val = gst_structure_id_get_value (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (TAGLIST));
|
||||
val = gst_structure_get_value (GST_EVENT_STRUCTURE (event), "taglist");
|
||||
|
||||
if (taglist)
|
||||
*taglist = (GstTagList *) g_value_get_boxed (val);
|
||||
|
@ -1163,20 +1157,15 @@ gst_event_parse_buffer_size (GstEvent * event, GstFormat * format,
|
|||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (format)
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "format"));
|
||||
if (minsize)
|
||||
*minsize =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (MINSIZE)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure, "minsize"));
|
||||
if (maxsize)
|
||||
*maxsize =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (MAXSIZE)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure, "maxsize"));
|
||||
if (async)
|
||||
*async =
|
||||
g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (ASYNC)));
|
||||
*async = g_value_get_boolean (gst_structure_get_value (structure, "async"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1280,25 +1269,20 @@ gst_event_parse_qos (GstEvent * event, GstQOSType * type,
|
|||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (type)
|
||||
*type = (GstQOSType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (TYPE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "type"));
|
||||
if (proportion)
|
||||
*proportion =
|
||||
g_value_get_double (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (PROPORTION)));
|
||||
g_value_get_double (gst_structure_get_value (structure, "proportion"));
|
||||
if (diff)
|
||||
*diff =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (DIFF)));
|
||||
*diff = g_value_get_int64 (gst_structure_get_value (structure, "diff"));
|
||||
if (timestamp) {
|
||||
gint64 offset = gst_event_get_running_time_offset (event);
|
||||
GstClockTimeDiff diff_ =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (DIFF)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"diff"));
|
||||
|
||||
*timestamp =
|
||||
g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (TIMESTAMP)));
|
||||
g_value_get_uint64 (gst_structure_get_value (structure, "timestamp"));
|
||||
/* Catch underflows */
|
||||
if (*timestamp > -offset)
|
||||
*timestamp += offset;
|
||||
|
@ -1436,33 +1420,23 @@ gst_event_parse_seek (GstEvent * event, gdouble * rate,
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (rate)
|
||||
*rate =
|
||||
g_value_get_double (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RATE)));
|
||||
*rate = g_value_get_double (gst_structure_get_value (structure, "rate"));
|
||||
if (format)
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "format"));
|
||||
if (flags)
|
||||
*flags = (GstSeekFlags)
|
||||
g_value_get_flags (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FLAGS)));
|
||||
g_value_get_flags (gst_structure_get_value (structure, "flags"));
|
||||
if (start_type)
|
||||
*start_type = (GstSeekType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CUR_TYPE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "cur-type"));
|
||||
if (start)
|
||||
*start =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CUR)));
|
||||
*start = g_value_get_int64 (gst_structure_get_value (structure, "cur"));
|
||||
if (stop_type)
|
||||
*stop_type = (GstSeekType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (STOP_TYPE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "stop-type"));
|
||||
if (stop)
|
||||
*stop =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (STOP)));
|
||||
*stop = g_value_get_int64 (gst_structure_get_value (structure, "stop"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1482,8 +1456,8 @@ gst_event_set_seek_trickmode_interval (GstEvent * event, GstClockTime interval)
|
|||
g_return_if_fail (gst_event_is_writable (event));
|
||||
g_return_if_fail (GST_CLOCK_TIME_IS_VALID (interval));
|
||||
|
||||
gst_structure_id_set (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (TRICKMODE_INTERVAL), GST_TYPE_CLOCK_TIME, interval, NULL);
|
||||
gst_structure_set_static_str (GST_EVENT_STRUCTURE (event),
|
||||
"trickmode-interval", GST_TYPE_CLOCK_TIME, interval, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1506,8 +1480,8 @@ gst_event_parse_seek_trickmode_interval (GstEvent * event,
|
|||
if (interval)
|
||||
*interval = GST_CLOCK_TIME_NONE;
|
||||
|
||||
gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (TRICKMODE_INTERVAL), GST_TYPE_CLOCK_TIME, interval, NULL);
|
||||
gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"trickmode-interval", GST_TYPE_CLOCK_TIME, interval, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1574,8 +1548,8 @@ gst_event_parse_latency (GstEvent * event, GstClockTime * latency)
|
|||
|
||||
if (latency)
|
||||
*latency =
|
||||
g_value_get_uint64 (gst_structure_id_get_value (GST_EVENT_STRUCTURE
|
||||
(event), GST_QUARK (LATENCY)));
|
||||
g_value_get_uint64 (gst_structure_get_value (GST_EVENT_STRUCTURE
|
||||
(event), "latency"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1648,20 +1622,18 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount,
|
|||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (amount)
|
||||
*amount = g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (AMOUNT)));
|
||||
*amount = g_value_get_uint64 (gst_structure_get_value (structure,
|
||||
"amount"));
|
||||
if (rate)
|
||||
*rate = g_value_get_double (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RATE)));
|
||||
*rate = g_value_get_double (gst_structure_get_value (structure, "rate"));
|
||||
if (flush)
|
||||
*flush = g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FLUSH)));
|
||||
*flush = g_value_get_boolean (gst_structure_get_value (structure, "flush"));
|
||||
if (intermediate)
|
||||
*intermediate = g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (INTERMEDIATE)));
|
||||
*intermediate = g_value_get_boolean (gst_structure_get_value (structure,
|
||||
"intermediate"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1736,8 +1708,8 @@ gst_event_parse_sink_message (GstEvent * event, GstMessage ** msg)
|
|||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (msg)
|
||||
*msg =
|
||||
GST_MESSAGE (g_value_dup_boxed (gst_structure_id_get_value
|
||||
(structure, GST_QUARK (MESSAGE))));
|
||||
GST_MESSAGE (g_value_dup_boxed (gst_structure_get_value
|
||||
(structure, "message")));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1802,7 +1774,7 @@ gst_event_parse_stream_start (GstEvent * event, const gchar ** stream_id)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
|
||||
|
||||
structure = gst_event_get_structure (event);
|
||||
val = gst_structure_id_get_value (structure, GST_QUARK (STREAM_ID));
|
||||
val = gst_structure_get_value (structure, "stream-id");
|
||||
|
||||
if (stream_id)
|
||||
*stream_id = g_value_get_string (val);
|
||||
|
@ -1824,8 +1796,8 @@ gst_event_set_stream (GstEvent * event, GstStream * stream)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
|
||||
g_return_if_fail (gst_event_is_writable (event));
|
||||
|
||||
gst_structure_id_set (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (STREAM), GST_TYPE_STREAM, stream, NULL);
|
||||
gst_structure_set (GST_EVENT_STRUCTURE (event),
|
||||
"stream", GST_TYPE_STREAM, stream, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1845,8 +1817,8 @@ gst_event_parse_stream (GstEvent * event, GstStream ** stream)
|
|||
|
||||
if (stream) {
|
||||
*stream = NULL;
|
||||
gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (STREAM), GST_TYPE_STREAM, stream, NULL);
|
||||
gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"stream", GST_TYPE_STREAM, stream, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1864,8 +1836,8 @@ gst_event_set_stream_flags (GstEvent * event, GstStreamFlags flags)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
|
||||
g_return_if_fail (gst_event_is_writable (event));
|
||||
|
||||
gst_structure_id_set (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL);
|
||||
gst_structure_set (GST_EVENT_STRUCTURE (event),
|
||||
"flags", GST_TYPE_STREAM_FLAGS, flags, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1883,8 +1855,8 @@ gst_event_parse_stream_flags (GstEvent * event, GstStreamFlags * flags)
|
|||
|
||||
if (flags) {
|
||||
*flags = 0;
|
||||
gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL);
|
||||
gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"flags", GST_TYPE_STREAM_FLAGS, flags, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1911,8 +1883,8 @@ gst_event_set_group_id (GstEvent * event, guint group_id)
|
|||
g_return_if_fail (gst_event_is_writable (event));
|
||||
g_return_if_fail (group_id != GST_GROUP_ID_INVALID);
|
||||
|
||||
gst_structure_id_set (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id, NULL);
|
||||
gst_structure_set (GST_EVENT_STRUCTURE (event),
|
||||
"group-id", G_TYPE_UINT, group_id, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1934,8 +1906,8 @@ gst_event_parse_group_id (GstEvent * event, guint * group_id)
|
|||
|
||||
if (group_id) {
|
||||
*group_id = 0;
|
||||
return gst_structure_id_get (GST_EVENT_STRUCTURE (event),
|
||||
GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id, NULL);
|
||||
return gst_structure_get (GST_EVENT_STRUCTURE (event),
|
||||
"group-id", G_TYPE_UINT, group_id, NULL);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -1993,8 +1965,8 @@ gst_event_parse_stream_collection (GstEvent * event,
|
|||
structure = gst_event_get_structure (event);
|
||||
|
||||
if (collection) {
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (COLLECTION), GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
gst_structure_get (structure,
|
||||
"collection", GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2050,9 +2022,8 @@ gst_event_parse_toc (GstEvent * event, GstToc ** toc, gboolean * updated)
|
|||
|
||||
structure = gst_event_get_structure (event);
|
||||
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (TOC), GST_TYPE_TOC, toc,
|
||||
GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
|
||||
gst_structure_get (structure,
|
||||
"toc", GST_TYPE_TOC, toc, "updated", G_TYPE_BOOLEAN, updated, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2097,7 +2068,7 @@ gst_event_parse_toc_select (GstEvent * event, gchar ** uid)
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TOC_SELECT);
|
||||
|
||||
structure = gst_event_get_structure (event);
|
||||
val = gst_structure_id_get_value (structure, GST_QUARK (UID));
|
||||
val = gst_structure_get_value (structure, "uid");
|
||||
|
||||
if (uid != NULL)
|
||||
*uid = g_value_dup_string (val);
|
||||
|
@ -2264,11 +2235,11 @@ gst_event_parse_segment_done (GstEvent * event, GstFormat * format,
|
|||
|
||||
structure = gst_event_get_structure (event);
|
||||
|
||||
val = gst_structure_id_get_value (structure, GST_QUARK (FORMAT));
|
||||
val = gst_structure_get_value (structure, "format");
|
||||
if (format != NULL)
|
||||
*format = g_value_get_enum (val);
|
||||
|
||||
val = gst_structure_id_get_value (structure, GST_QUARK (POSITION));
|
||||
val = gst_structure_get_value (structure, "position");
|
||||
if (position != NULL)
|
||||
*position = g_value_get_int64 (val);
|
||||
}
|
||||
|
@ -2335,9 +2306,8 @@ gst_event_parse_instant_rate_change (GstEvent * event,
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_INSTANT_RATE_CHANGE);
|
||||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
gst_structure_id_get (structure, GST_QUARK (RATE), G_TYPE_DOUBLE,
|
||||
rate_multiplier, GST_QUARK (FLAGS), GST_TYPE_SEGMENT_FLAGS, new_flags,
|
||||
NULL);
|
||||
gst_structure_get (structure, "rate", G_TYPE_DOUBLE,
|
||||
rate_multiplier, "flags", GST_TYPE_SEGMENT_FLAGS, new_flags, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2414,9 +2384,9 @@ gst_event_parse_instant_rate_sync_time (GstEvent * event,
|
|||
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_INSTANT_RATE_SYNC_TIME);
|
||||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
gst_structure_id_get (structure, GST_QUARK (RATE), G_TYPE_DOUBLE,
|
||||
rate_multiplier, GST_QUARK (RUNNING_TIME), GST_TYPE_CLOCK_TIME,
|
||||
running_time, GST_QUARK (UPSTREAM_RUNNING_TIME), GST_TYPE_CLOCK_TIME,
|
||||
gst_structure_get (structure, "rate", G_TYPE_DOUBLE,
|
||||
rate_multiplier, "running-time", GST_TYPE_CLOCK_TIME,
|
||||
running_time, "upstream-running-time", GST_TYPE_CLOCK_TIME,
|
||||
upstream_running_time, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -46,13 +46,11 @@
|
|||
#define GST_DISABLE_MINIOBJECT_INLINE_FUNCTIONS
|
||||
#include "gst_private.h"
|
||||
#include <string.h> /* memcpy */
|
||||
#include "gsterror.h"
|
||||
#include "gstenumtypes.h"
|
||||
#include "gstinfo.h"
|
||||
#include "gstmessage.h"
|
||||
#include "gsttaglist.h"
|
||||
#include "gstutils.h"
|
||||
#include "gstquark.h"
|
||||
#include "gstvalue.h"
|
||||
|
||||
|
||||
|
@ -116,8 +114,6 @@ static GstMessageQuarks message_quarks[] = {
|
|||
{0, NULL, 0}
|
||||
};
|
||||
|
||||
static GQuark details_quark = 0;
|
||||
|
||||
GType _gst_message_type = 0;
|
||||
GST_DEFINE_MINI_OBJECT_TYPE (GstMessage, gst_message);
|
||||
|
||||
|
@ -132,7 +128,6 @@ _priv_gst_message_initialize (void)
|
|||
message_quarks[i].quark =
|
||||
g_quark_from_static_string (message_quarks[i].name);
|
||||
}
|
||||
details_quark = g_quark_from_static_string ("details");
|
||||
|
||||
_gst_message_type = gst_message_get_type ();
|
||||
}
|
||||
|
@ -419,8 +414,7 @@ message_set_details (GstMessage * message, GstStructure * details)
|
|||
}
|
||||
g_value_init (&v, GST_TYPE_STRUCTURE);
|
||||
g_value_take_boxed (&v, details);
|
||||
gst_structure_id_take_value (GST_MESSAGE_STRUCTURE (message), details_quark,
|
||||
&v);
|
||||
gst_structure_take_value (GST_MESSAGE_STRUCTURE (message), "details", &v);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -441,8 +435,7 @@ gst_message_set_details (GstMessage * message, GstStructure * details)
|
|||
g_return_if_fail (details);
|
||||
|
||||
if (GST_MESSAGE_STRUCTURE (message)
|
||||
&& gst_structure_id_has_field (GST_MESSAGE_STRUCTURE (message),
|
||||
details_quark)) {
|
||||
&& gst_structure_has_field (GST_MESSAGE_STRUCTURE (message), "details")) {
|
||||
gst_structure_free (details);
|
||||
g_critical ("Message already has details");
|
||||
return;
|
||||
|
@ -466,11 +459,9 @@ message_parse_details (GstMessage * message, GstStructure ** details,
|
|||
return;
|
||||
|
||||
if (GST_MESSAGE_STRUCTURE (message) &&
|
||||
gst_structure_id_has_field (GST_MESSAGE_STRUCTURE (message),
|
||||
details_quark)) {
|
||||
const GValue *v =
|
||||
gst_structure_id_get_value (GST_MESSAGE_STRUCTURE (message),
|
||||
details_quark);
|
||||
gst_structure_has_field (GST_MESSAGE_STRUCTURE (message), "details")) {
|
||||
const GValue *v = gst_structure_get_value (GST_MESSAGE_STRUCTURE (message),
|
||||
"details");
|
||||
if (v && G_VALUE_TYPE (v) == GST_TYPE_STRUCTURE) {
|
||||
*details = g_value_get_boxed (v);
|
||||
}
|
||||
|
@ -856,7 +847,7 @@ gst_message_new_tag (GstObject * src, GstTagList * tag_list)
|
|||
s = gst_structure_new_static_str_empty ("GstMessageTag");
|
||||
g_value_init (&val, GST_TYPE_TAG_LIST);
|
||||
g_value_take_boxed (&val, tag_list);
|
||||
gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
|
||||
gst_structure_take_value (s, "taglist", &val);
|
||||
message = gst_message_new_custom (GST_MESSAGE_TAG, src, s);
|
||||
return message;
|
||||
}
|
||||
|
@ -1417,8 +1408,8 @@ gst_message_parse_tag (GstMessage * message, GstTagList ** tag_list)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TAG);
|
||||
g_return_if_fail (tag_list != NULL);
|
||||
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (TAGLIST), GST_TYPE_TAG_LIST, tag_list, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"taglist", GST_TYPE_TAG_LIST, tag_list, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1439,8 +1430,8 @@ gst_message_parse_buffering (GstMessage * message, gint * percent)
|
|||
|
||||
if (percent)
|
||||
*percent =
|
||||
g_value_get_int (gst_structure_id_get_value (GST_MESSAGE_STRUCTURE
|
||||
(message), GST_QUARK (BUFFER_PERCENT)));
|
||||
g_value_get_int (gst_structure_get_value (GST_MESSAGE_STRUCTURE
|
||||
(message), "buffer-percent"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1460,11 +1451,11 @@ gst_message_set_buffering_stats (GstMessage * message, GstBufferingMode mode,
|
|||
g_return_if_fail (GST_IS_MESSAGE (message));
|
||||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_BUFFERING);
|
||||
|
||||
gst_structure_id_set (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, mode,
|
||||
GST_QUARK (AVG_IN_RATE), G_TYPE_INT, avg_in,
|
||||
GST_QUARK (AVG_OUT_RATE), G_TYPE_INT, avg_out,
|
||||
GST_QUARK (BUFFERING_LEFT), G_TYPE_INT64, buffering_left, NULL);
|
||||
gst_structure_set (GST_MESSAGE_STRUCTURE (message),
|
||||
"buffering-mode", GST_TYPE_BUFFERING_MODE, mode,
|
||||
"avg-in-rate", G_TYPE_INT, avg_in,
|
||||
"avg-out-rate", G_TYPE_INT, avg_out,
|
||||
"buffering-left", G_TYPE_INT64, buffering_left, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1490,18 +1481,18 @@ gst_message_parse_buffering_stats (GstMessage * message,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (mode)
|
||||
*mode = (GstBufferingMode)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUFFERING_MODE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure,
|
||||
"buffering-mode"));
|
||||
if (avg_in)
|
||||
*avg_in = g_value_get_int (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (AVG_IN_RATE)));
|
||||
*avg_in = g_value_get_int (gst_structure_get_value (structure,
|
||||
"avg-in-rate"));
|
||||
if (avg_out)
|
||||
*avg_out = g_value_get_int (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (AVG_OUT_RATE)));
|
||||
*avg_out = g_value_get_int (gst_structure_get_value (structure,
|
||||
"avg-out-rate"));
|
||||
if (buffering_left)
|
||||
*buffering_left =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUFFERING_LEFT)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"buffering-left"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1546,16 +1537,13 @@ gst_message_parse_state_changed (GstMessage * message,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (oldstate)
|
||||
*oldstate = (GstState)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (OLD_STATE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "old-state"));
|
||||
if (newstate)
|
||||
*newstate = (GstState)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (NEW_STATE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "new-state"));
|
||||
if (pending)
|
||||
*pending = (GstState)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (PENDING_STATE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "pending-state"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1581,14 +1569,12 @@ gst_message_parse_clock_provide (GstMessage * message, GstClock ** clock,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_CLOCK_PROVIDE);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
clock_gvalue = gst_structure_id_get_value (structure, GST_QUARK (CLOCK));
|
||||
clock_gvalue = gst_structure_get_value (structure, "clock");
|
||||
g_return_if_fail (clock_gvalue != NULL);
|
||||
g_return_if_fail (G_VALUE_TYPE (clock_gvalue) == GST_TYPE_CLOCK);
|
||||
|
||||
if (ready)
|
||||
*ready =
|
||||
g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (READY)));
|
||||
*ready = g_value_get_boolean (gst_structure_get_value (structure, "ready"));
|
||||
if (clock)
|
||||
*clock = (GstClock *) g_value_get_object (clock_gvalue);
|
||||
}
|
||||
|
@ -1613,7 +1599,7 @@ gst_message_parse_clock_lost (GstMessage * message, GstClock ** clock)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_CLOCK_LOST);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
clock_gvalue = gst_structure_id_get_value (structure, GST_QUARK (CLOCK));
|
||||
clock_gvalue = gst_structure_get_value (structure, "clock");
|
||||
g_return_if_fail (clock_gvalue != NULL);
|
||||
g_return_if_fail (G_VALUE_TYPE (clock_gvalue) == GST_TYPE_CLOCK);
|
||||
|
||||
|
@ -1642,7 +1628,7 @@ gst_message_parse_new_clock (GstMessage * message, GstClock ** clock)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_NEW_CLOCK);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
clock_gvalue = gst_structure_id_get_value (structure, GST_QUARK (CLOCK));
|
||||
clock_gvalue = gst_structure_get_value (structure, "clock");
|
||||
g_return_if_fail (clock_gvalue != NULL);
|
||||
g_return_if_fail (G_VALUE_TYPE (clock_gvalue) == GST_TYPE_CLOCK);
|
||||
|
||||
|
@ -1674,20 +1660,17 @@ gst_message_parse_structure_change (GstMessage * message,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STRUCTURE_CHANGE);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
owner_gvalue = gst_structure_id_get_value (structure, GST_QUARK (OWNER));
|
||||
owner_gvalue = gst_structure_get_value (structure, "owner");
|
||||
g_return_if_fail (owner_gvalue != NULL);
|
||||
g_return_if_fail (G_VALUE_TYPE (owner_gvalue) == GST_TYPE_ELEMENT);
|
||||
|
||||
if (type)
|
||||
*type = (GstStructureChangeType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (TYPE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "type"));
|
||||
if (owner)
|
||||
*owner = (GstElement *) g_value_get_object (owner_gvalue);
|
||||
if (busy)
|
||||
*busy =
|
||||
g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUSY)));
|
||||
*busy = g_value_get_boolean (gst_structure_get_value (structure, "busy"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1729,9 +1712,8 @@ gst_message_parse_error (GstMessage * message, GError ** gerror, gchar ** debug)
|
|||
g_return_if_fail (GST_IS_MESSAGE (message));
|
||||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR);
|
||||
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (GERROR), G_TYPE_ERROR, gerror,
|
||||
GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"gerror", G_TYPE_ERROR, gerror, "debug", G_TYPE_STRING, debug, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1753,9 +1735,8 @@ gst_message_parse_warning (GstMessage * message, GError ** gerror,
|
|||
g_return_if_fail (GST_IS_MESSAGE (message));
|
||||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_WARNING);
|
||||
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (GERROR), G_TYPE_ERROR, gerror,
|
||||
GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"gerror", G_TYPE_ERROR, gerror, "debug", G_TYPE_STRING, debug, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1776,9 +1757,8 @@ gst_message_parse_info (GstMessage * message, GError ** gerror, gchar ** debug)
|
|||
g_return_if_fail (GST_IS_MESSAGE (message));
|
||||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_INFO);
|
||||
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (GERROR), G_TYPE_ERROR, gerror,
|
||||
GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"gerror", G_TYPE_ERROR, gerror, "debug", G_TYPE_STRING, debug, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1803,12 +1783,10 @@ gst_message_parse_segment_start (GstMessage * message, GstFormat * format,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (format)
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "format"));
|
||||
if (position)
|
||||
*position =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (POSITION)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure, "position"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1833,12 +1811,10 @@ gst_message_parse_segment_done (GstMessage * message, GstFormat * format,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (format)
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "format"));
|
||||
if (position)
|
||||
*position =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (POSITION)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure, "position"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1861,8 +1837,8 @@ gst_message_parse_async_done (GstMessage * message, GstClockTime * running_time)
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (running_time)
|
||||
*running_time =
|
||||
g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RUNNING_TIME)));
|
||||
g_value_get_uint64 (gst_structure_get_value (structure,
|
||||
"running-time"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1885,8 +1861,7 @@ gst_message_parse_request_state (GstMessage * message, GstState * state)
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (state)
|
||||
*state = (GstState)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (NEW_STATE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "new-state"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1940,13 +1915,12 @@ gst_message_parse_stream_status (GstMessage * message,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAM_STATUS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
owner_gvalue = gst_structure_id_get_value (structure, GST_QUARK (OWNER));
|
||||
owner_gvalue = gst_structure_get_value (structure, "owner");
|
||||
g_return_if_fail (owner_gvalue != NULL);
|
||||
|
||||
if (type)
|
||||
*type = (GstStreamStatusType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (TYPE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure, "type"));
|
||||
if (owner)
|
||||
*owner = (GstElement *) g_value_get_object (owner_gvalue);
|
||||
}
|
||||
|
@ -1969,7 +1943,7 @@ gst_message_set_stream_status_object (GstMessage * message,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAM_STATUS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_set_value (structure, GST_QUARK (OBJECT), object);
|
||||
gst_structure_set_value_static_str (structure, "object", object);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1994,7 +1968,7 @@ gst_message_get_stream_status_object (GstMessage * message)
|
|||
NULL);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
result = gst_structure_id_get_value (structure, GST_QUARK (OBJECT));
|
||||
result = gst_structure_get_value (structure, "object");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -2066,14 +2040,13 @@ gst_message_parse_step_done (GstMessage * message, GstFormat * format,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STEP_DONE);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (AMOUNT), G_TYPE_UINT64, amount,
|
||||
GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
|
||||
GST_QUARK (FLUSH), G_TYPE_BOOLEAN, flush,
|
||||
GST_QUARK (INTERMEDIATE), G_TYPE_BOOLEAN, intermediate,
|
||||
GST_QUARK (DURATION), G_TYPE_UINT64, duration,
|
||||
GST_QUARK (EOS), G_TYPE_BOOLEAN, eos, NULL);
|
||||
gst_structure_get (structure,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"amount", G_TYPE_UINT64, amount,
|
||||
"rate", G_TYPE_DOUBLE, rate,
|
||||
"flush", G_TYPE_BOOLEAN, flush,
|
||||
"intermediate", G_TYPE_BOOLEAN, intermediate,
|
||||
"duration", G_TYPE_UINT64, duration, "eos", G_TYPE_BOOLEAN, eos, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2145,13 +2118,13 @@ gst_message_parse_step_start (GstMessage * message, gboolean * active,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STEP_START);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (ACTIVE), G_TYPE_BOOLEAN, active,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (AMOUNT), G_TYPE_UINT64, amount,
|
||||
GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
|
||||
GST_QUARK (FLUSH), G_TYPE_BOOLEAN, flush,
|
||||
GST_QUARK (INTERMEDIATE), G_TYPE_BOOLEAN, intermediate, NULL);
|
||||
gst_structure_get (structure,
|
||||
"active", G_TYPE_BOOLEAN, active,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"amount", G_TYPE_UINT64, amount,
|
||||
"rate", G_TYPE_DOUBLE, rate,
|
||||
"flush", G_TYPE_BOOLEAN, flush,
|
||||
"intermediate", G_TYPE_BOOLEAN, intermediate, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2228,10 +2201,10 @@ gst_message_set_qos_values (GstMessage * message, gint64 jitter,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_QOS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (JITTER), G_TYPE_INT64, jitter,
|
||||
GST_QUARK (PROPORTION), G_TYPE_DOUBLE, proportion,
|
||||
GST_QUARK (QUALITY), G_TYPE_INT, quality, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
"jitter", G_TYPE_INT64, jitter,
|
||||
"proportion", G_TYPE_DOUBLE, proportion,
|
||||
"quality", G_TYPE_INT, quality, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2263,10 +2236,10 @@ gst_message_set_qos_stats (GstMessage * message, GstFormat format,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_QOS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (PROCESSED), G_TYPE_UINT64, processed,
|
||||
GST_QUARK (DROPPED), G_TYPE_UINT64, dropped, NULL);
|
||||
gst_structure_set_static_str (structure,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"processed", G_TYPE_UINT64, processed,
|
||||
"dropped", G_TYPE_UINT64, dropped, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2301,12 +2274,12 @@ gst_message_parse_qos (GstMessage * message, gboolean * live,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_QOS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (LIVE), G_TYPE_BOOLEAN, live,
|
||||
GST_QUARK (RUNNING_TIME), G_TYPE_UINT64, running_time,
|
||||
GST_QUARK (STREAM_TIME), G_TYPE_UINT64, stream_time,
|
||||
GST_QUARK (TIMESTAMP), G_TYPE_UINT64, timestamp,
|
||||
GST_QUARK (DURATION), G_TYPE_UINT64, duration, NULL);
|
||||
gst_structure_get (structure,
|
||||
"live", G_TYPE_BOOLEAN, live,
|
||||
"running-time", G_TYPE_UINT64, running_time,
|
||||
"stream-time", G_TYPE_UINT64, stream_time,
|
||||
"timestamp", G_TYPE_UINT64, timestamp,
|
||||
"duration", G_TYPE_UINT64, duration, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2334,10 +2307,10 @@ gst_message_parse_qos_values (GstMessage * message, gint64 * jitter,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_QOS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (JITTER), G_TYPE_INT64, jitter,
|
||||
GST_QUARK (PROPORTION), G_TYPE_DOUBLE, proportion,
|
||||
GST_QUARK (QUALITY), G_TYPE_INT, quality, NULL);
|
||||
gst_structure_get (structure,
|
||||
"jitter", G_TYPE_INT64, jitter,
|
||||
"proportion", G_TYPE_DOUBLE, proportion,
|
||||
"quality", G_TYPE_INT, quality, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2370,10 +2343,10 @@ gst_message_parse_qos_stats (GstMessage * message, GstFormat * format,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_QOS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (PROCESSED), G_TYPE_UINT64, processed,
|
||||
GST_QUARK (DROPPED), G_TYPE_UINT64, dropped, NULL);
|
||||
gst_structure_get (structure,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"processed", G_TYPE_UINT64, processed,
|
||||
"dropped", G_TYPE_UINT64, dropped, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2434,10 +2407,9 @@ gst_message_parse_progress (GstMessage * message, GstProgressType * type,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_PROGRESS);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (TYPE), GST_TYPE_PROGRESS_TYPE, type,
|
||||
GST_QUARK (CODE), G_TYPE_STRING, code,
|
||||
GST_QUARK (TEXT), G_TYPE_STRING, text, NULL);
|
||||
gst_structure_get (structure,
|
||||
"type", GST_TYPE_PROGRESS_TYPE, type,
|
||||
"code", G_TYPE_STRING, code, "text", G_TYPE_STRING, text, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2485,9 +2457,8 @@ gst_message_parse_toc (GstMessage * message, GstToc ** toc, gboolean * updated)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TOC);
|
||||
g_return_if_fail (toc != NULL);
|
||||
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (TOC), GST_TYPE_TOC, toc,
|
||||
GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"toc", GST_TYPE_TOC, toc, "updated", G_TYPE_BOOLEAN, updated, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2538,8 +2509,8 @@ gst_message_parse_reset_time (GstMessage * message, GstClockTime * running_time)
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
if (running_time)
|
||||
*running_time =
|
||||
g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RUNNING_TIME)));
|
||||
g_value_get_uint64 (gst_structure_get_value (structure,
|
||||
"running-time"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2595,8 +2566,7 @@ gst_message_set_group_id (GstMessage * message, guint group_id)
|
|||
g_return_if_fail (group_id != GST_GROUP_ID_INVALID);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_set (structure, GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id,
|
||||
NULL);
|
||||
gst_structure_set (structure, "group-id", G_TYPE_UINT, group_id, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2630,7 +2600,7 @@ gst_message_parse_group_id (GstMessage * message, guint * group_id)
|
|||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
|
||||
v = gst_structure_id_get_value (structure, GST_QUARK (GROUP_ID));
|
||||
v = gst_structure_get_value (structure, "group-id");
|
||||
if (!v)
|
||||
return FALSE;
|
||||
|
||||
|
@ -2690,7 +2660,7 @@ gst_message_parse_context_type (GstMessage * message,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
|
||||
if (context_type) {
|
||||
value = gst_structure_id_get_value (structure, GST_QUARK (CONTEXT_TYPE));
|
||||
value = gst_structure_get_value (structure, "context-type");
|
||||
*context_type = g_value_get_string (value);
|
||||
}
|
||||
|
||||
|
@ -2743,8 +2713,8 @@ gst_message_parse_have_context (GstMessage * message, GstContext ** context)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_HAVE_CONTEXT);
|
||||
|
||||
if (context)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"context", GST_TYPE_CONTEXT, context, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2795,8 +2765,8 @@ gst_message_parse_device_added (GstMessage * message, GstDevice ** device)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_DEVICE_ADDED);
|
||||
|
||||
if (device)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (DEVICE), GST_TYPE_DEVICE, device, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"device", GST_TYPE_DEVICE, device, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2847,8 +2817,8 @@ gst_message_parse_device_removed (GstMessage * message, GstDevice ** device)
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_DEVICE_REMOVED);
|
||||
|
||||
if (device)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (DEVICE), GST_TYPE_DEVICE, device, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"device", GST_TYPE_DEVICE, device, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2907,12 +2877,12 @@ gst_message_parse_device_changed (GstMessage * message, GstDevice ** device,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_DEVICE_CHANGED);
|
||||
|
||||
if (device)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (DEVICE), GST_TYPE_DEVICE, device, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"device", GST_TYPE_DEVICE, device, NULL);
|
||||
|
||||
if (changed_device)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (DEVICE_CHANGED), GST_TYPE_DEVICE, changed_device, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"device-changed", GST_TYPE_DEVICE, changed_device, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2939,9 +2909,9 @@ gst_message_new_property_notify (GstObject * src, const gchar * property_name,
|
|||
g_value_init (&name_val, G_TYPE_STRING);
|
||||
/* should already be interned, but let's make sure */
|
||||
g_value_set_static_string (&name_val, g_intern_string (property_name));
|
||||
gst_structure_id_take_value (structure, GST_QUARK (PROPERTY_NAME), &name_val);
|
||||
gst_structure_take_value (structure, "property-name", &name_val);
|
||||
if (val != NULL)
|
||||
gst_structure_id_take_value (structure, GST_QUARK (PROPERTY_VALUE), val);
|
||||
gst_structure_take_value (structure, "property-value", val);
|
||||
|
||||
return gst_message_new_custom (GST_MESSAGE_PROPERTY_NOTIFY, src, structure);
|
||||
}
|
||||
|
@ -2979,13 +2949,12 @@ gst_message_parse_property_notify (GstMessage * message, GstObject ** object,
|
|||
if (property_name) {
|
||||
const GValue *name_value;
|
||||
|
||||
name_value = gst_structure_id_get_value (s, GST_QUARK (PROPERTY_NAME));
|
||||
name_value = gst_structure_get_value (s, "property-name");
|
||||
*property_name = g_value_get_string (name_value);
|
||||
}
|
||||
|
||||
if (property_value)
|
||||
*property_value =
|
||||
gst_structure_id_get_value (s, GST_QUARK (PROPERTY_VALUE));
|
||||
*property_value = gst_structure_get_value (s, "property-value");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3038,8 +3007,8 @@ gst_message_parse_stream_collection (GstMessage * message,
|
|||
GST_MESSAGE_STREAM_COLLECTION);
|
||||
|
||||
if (collection)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (COLLECTION), GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"collection", GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3077,7 +3046,7 @@ gst_message_new_streams_selected (GstObject * src,
|
|||
gst_structure_new_static_str ("GstMessageStreamsSelected",
|
||||
"collection", GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
g_value_init (&val, GST_TYPE_ARRAY);
|
||||
gst_structure_id_take_value (structure, GST_QUARK (STREAMS), &val);
|
||||
gst_structure_take_value (structure, "streams", &val);
|
||||
message =
|
||||
gst_message_new_custom (GST_MESSAGE_STREAMS_SELECTED, src, structure);
|
||||
|
||||
|
@ -3103,9 +3072,7 @@ gst_message_streams_selected_get_size (GstMessage * msg)
|
|||
g_return_val_if_fail (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAMS_SELECTED,
|
||||
0);
|
||||
|
||||
val =
|
||||
gst_structure_id_get_value (GST_MESSAGE_STRUCTURE (msg),
|
||||
GST_QUARK (STREAMS));
|
||||
val = gst_structure_get_value (GST_MESSAGE_STRUCTURE (msg), "streams");
|
||||
return gst_value_array_get_size (val);
|
||||
}
|
||||
|
||||
|
@ -3129,8 +3096,8 @@ gst_message_streams_selected_add (GstMessage * msg, GstStream * stream)
|
|||
g_return_if_fail (GST_IS_STREAM (stream));
|
||||
|
||||
val =
|
||||
(GValue *) gst_structure_id_get_value (GST_MESSAGE_STRUCTURE (msg),
|
||||
GST_QUARK (STREAMS));
|
||||
(GValue *) gst_structure_get_value (GST_MESSAGE_STRUCTURE (msg),
|
||||
"streams");
|
||||
g_value_init (&to_add, GST_TYPE_STREAM);
|
||||
g_value_set_object (&to_add, stream);
|
||||
gst_value_array_append_and_take_value (val, &to_add);
|
||||
|
@ -3156,9 +3123,7 @@ gst_message_streams_selected_get_stream (GstMessage * msg, guint idx)
|
|||
g_return_val_if_fail (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAMS_SELECTED,
|
||||
NULL);
|
||||
|
||||
streams =
|
||||
gst_structure_id_get_value (GST_MESSAGE_STRUCTURE (msg),
|
||||
GST_QUARK (STREAMS));
|
||||
streams = gst_structure_get_value (GST_MESSAGE_STRUCTURE (msg), "streams");
|
||||
val = gst_value_array_get_value (streams, idx);
|
||||
if (val) {
|
||||
return (GstStream *) g_value_dup_object (val);
|
||||
|
@ -3185,8 +3150,8 @@ gst_message_parse_streams_selected (GstMessage * message,
|
|||
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAMS_SELECTED);
|
||||
|
||||
if (collection)
|
||||
gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
|
||||
GST_QUARK (COLLECTION), GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
gst_structure_get (GST_MESSAGE_STRUCTURE (message),
|
||||
"collection", GST_TYPE_STREAM_COLLECTION, collection, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3243,11 +3208,11 @@ gst_message_new_redirect (GstObject * src, const gchar * location,
|
|||
g_value_init (&entry_structures_gvalue, GST_TYPE_LIST);
|
||||
|
||||
structure = gst_structure_new_static_str_empty ("GstMessageRedirect");
|
||||
gst_structure_id_take_value (structure, GST_QUARK (REDIRECT_ENTRY_LOCATIONS),
|
||||
gst_structure_take_value_static_str (structure, "redirect-entry-locations",
|
||||
&entry_locations_gvalue);
|
||||
gst_structure_id_take_value (structure, GST_QUARK (REDIRECT_ENTRY_TAGLISTS),
|
||||
gst_structure_take_value_static_str (structure, "redirect-entry-taglists",
|
||||
&entry_taglists_gvalue);
|
||||
gst_structure_id_take_value (structure, GST_QUARK (REDIRECT_ENTRY_STRUCTURES),
|
||||
gst_structure_take_value_static_str (structure, "redirect-entry-structures",
|
||||
&entry_structures_gvalue);
|
||||
|
||||
message = gst_message_new_custom (GST_MESSAGE_REDIRECT, src, structure);
|
||||
|
@ -3289,16 +3254,15 @@ gst_message_add_redirect_entry (GstMessage * message, const gchar * location,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
|
||||
entry_locations_gvalue =
|
||||
(GValue *) gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_LOCATIONS));
|
||||
(GValue *) gst_structure_get_value (structure,
|
||||
"redirect-entry-locations");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_locations_gvalue));
|
||||
entry_taglists_gvalue =
|
||||
(GValue *) gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_TAGLISTS));
|
||||
(GValue *) gst_structure_get_value (structure, "redirect-entry-taglists");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_taglists_gvalue));
|
||||
entry_structures_gvalue =
|
||||
(GValue *) gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_STRUCTURES));
|
||||
(GValue *) gst_structure_get_value (structure,
|
||||
"redirect-entry-structures");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_structures_gvalue));
|
||||
|
||||
g_value_init (&val, G_TYPE_STRING);
|
||||
|
@ -3354,16 +3318,13 @@ gst_message_parse_redirect_entry (GstMessage * message, gsize entry_index,
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
|
||||
entry_locations_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_LOCATIONS));
|
||||
gst_structure_get_value (structure, "redirect-entry-locations");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_locations_gvalue));
|
||||
entry_taglists_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_TAGLISTS));
|
||||
gst_structure_get_value (structure, "redirect-entry-taglists");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_taglists_gvalue));
|
||||
entry_structures_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_STRUCTURES));
|
||||
gst_structure_get_value (structure, "redirect-entry-structures");
|
||||
g_return_if_fail (GST_VALUE_HOLDS_LIST (entry_structures_gvalue));
|
||||
|
||||
if (location) {
|
||||
|
@ -3408,16 +3369,13 @@ gst_message_get_num_redirect_entries (GstMessage * message)
|
|||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
|
||||
entry_locations_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_LOCATIONS));
|
||||
gst_structure_get_value (structure, "redirect-entry-locations");
|
||||
g_return_val_if_fail (GST_VALUE_HOLDS_LIST (entry_locations_gvalue), 0);
|
||||
entry_taglists_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_TAGLISTS));
|
||||
gst_structure_get_value (structure, "redirect-entry-taglists");
|
||||
g_return_val_if_fail (GST_VALUE_HOLDS_LIST (entry_taglists_gvalue), 0);
|
||||
entry_structures_gvalue =
|
||||
gst_structure_id_get_value (structure,
|
||||
GST_QUARK (REDIRECT_ENTRY_STRUCTURES));
|
||||
gst_structure_get_value (structure, "redirect-entry-structures");
|
||||
g_return_val_if_fail (GST_VALUE_HOLDS_LIST (entry_structures_gvalue), 0);
|
||||
|
||||
size = gst_value_list_get_size (entry_locations_gvalue);
|
||||
|
@ -3481,8 +3439,7 @@ gst_message_parse_instant_rate_request (GstMessage * message,
|
|||
GST_MESSAGE_INSTANT_RATE_REQUEST);
|
||||
|
||||
structure = GST_MESSAGE_STRUCTURE (message);
|
||||
gst_structure_id_get (structure, GST_QUARK (RATE), G_TYPE_DOUBLE,
|
||||
rate_multiplier, NULL);
|
||||
gst_structure_get (structure, "rate", G_TYPE_DOUBLE, rate_multiplier, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -59,9 +59,6 @@
|
|||
#include "gstquery.h"
|
||||
#include "gstvalue.h"
|
||||
#include "gstenumtypes.h"
|
||||
#include "gstquark.h"
|
||||
#include "gsturi.h"
|
||||
#include "gstbufferpool.h"
|
||||
|
||||
GST_DEBUG_CATEGORY_STATIC (gst_query_debug);
|
||||
#define GST_CAT_DEFAULT gst_query_debug
|
||||
|
@ -262,12 +259,11 @@ gst_query_set_position (GstQuery * query, GstFormat format, gint64 cur)
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_POSITION);
|
||||
|
||||
s = GST_QUERY_STRUCTURE (query);
|
||||
g_return_if_fail (format == g_value_get_enum (gst_structure_id_get_value (s,
|
||||
GST_QUARK (FORMAT))));
|
||||
g_return_if_fail (format == g_value_get_enum (gst_structure_get_value (s,
|
||||
"format")));
|
||||
|
||||
gst_structure_id_set (s,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (CURRENT), G_TYPE_INT64, cur, NULL);
|
||||
gst_structure_set (s,
|
||||
"format", GST_TYPE_FORMAT, format, "current", G_TYPE_INT64, cur, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -290,11 +286,10 @@ gst_query_parse_position (GstQuery * query, GstFormat * format, gint64 * cur)
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (cur)
|
||||
*cur = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CURRENT)));
|
||||
*cur = g_value_get_int64 (gst_structure_get_value (structure, "current"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -341,10 +336,10 @@ gst_query_set_duration (GstQuery * query, GstFormat format, gint64 duration)
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_DURATION);
|
||||
|
||||
s = GST_QUERY_STRUCTURE (query);
|
||||
g_return_if_fail (format == g_value_get_enum (gst_structure_id_get_value (s,
|
||||
GST_QUARK (FORMAT))));
|
||||
gst_structure_id_set (s, GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (DURATION), G_TYPE_INT64, duration, NULL);
|
||||
g_return_if_fail (format == g_value_get_enum (gst_structure_get_value (s,
|
||||
"format")));
|
||||
gst_structure_set (s, "format", GST_TYPE_FORMAT, format,
|
||||
"duration", G_TYPE_INT64, duration, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -368,11 +363,11 @@ gst_query_parse_duration (GstQuery * query, GstFormat * format,
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (duration)
|
||||
*duration = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (DURATION)));
|
||||
*duration = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"duration"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -422,10 +417,10 @@ gst_query_set_latency (GstQuery * query, gboolean live,
|
|||
g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min_latency));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (LIVE), G_TYPE_BOOLEAN, live,
|
||||
GST_QUARK (MIN_LATENCY), G_TYPE_UINT64, min_latency,
|
||||
GST_QUARK (MAX_LATENCY), G_TYPE_UINT64, max_latency, NULL);
|
||||
gst_structure_set (structure,
|
||||
"live", G_TYPE_BOOLEAN, live,
|
||||
"min-latency", G_TYPE_UINT64, min_latency,
|
||||
"max-latency", G_TYPE_UINT64, max_latency, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -447,15 +442,13 @@ gst_query_parse_latency (GstQuery * query, gboolean * live,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (live)
|
||||
*live =
|
||||
g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (LIVE)));
|
||||
*live = g_value_get_boolean (gst_structure_get_value (structure, "live"));
|
||||
if (min_latency)
|
||||
*min_latency = g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (MIN_LATENCY)));
|
||||
*min_latency = g_value_get_uint64 (gst_structure_get_value (structure,
|
||||
"min-latency"));
|
||||
if (max_latency)
|
||||
*max_latency = g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (MAX_LATENCY)));
|
||||
*max_latency = g_value_get_uint64 (gst_structure_get_value (structure,
|
||||
"max-latency"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -509,11 +502,11 @@ gst_query_set_convert (GstQuery * query, GstFormat src_format, gint64 src_value,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CONVERT);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (SRC_FORMAT), GST_TYPE_FORMAT, src_format,
|
||||
GST_QUARK (SRC_VALUE), G_TYPE_INT64, src_value,
|
||||
GST_QUARK (DEST_FORMAT), GST_TYPE_FORMAT, dest_format,
|
||||
GST_QUARK (DEST_VALUE), G_TYPE_INT64, dest_value, NULL);
|
||||
gst_structure_set (structure,
|
||||
"src_format", GST_TYPE_FORMAT, src_format,
|
||||
"src_value", G_TYPE_INT64, src_value,
|
||||
"dest_format", GST_TYPE_FORMAT, dest_format,
|
||||
"dest_value", G_TYPE_INT64, dest_value, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -541,18 +534,18 @@ gst_query_parse_convert (GstQuery * query, GstFormat * src_format,
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (src_format)
|
||||
*src_format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SRC_FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"src_format"));
|
||||
if (src_value)
|
||||
*src_value = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SRC_VALUE)));
|
||||
*src_value = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"src_value"));
|
||||
if (dest_format)
|
||||
*dest_format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (DEST_FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"dest_format"));
|
||||
if (dest_value)
|
||||
*dest_value = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (DEST_VALUE)));
|
||||
*dest_value = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"dest_value"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -613,11 +606,11 @@ gst_query_set_segment (GstQuery * query, gdouble rate, GstFormat format,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SEGMENT);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (START_VALUE), G_TYPE_INT64, start_value,
|
||||
GST_QUARK (STOP_VALUE), G_TYPE_INT64, stop_value, NULL);
|
||||
gst_structure_set (structure,
|
||||
"rate", G_TYPE_DOUBLE, rate,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"start_value", G_TYPE_INT64, start_value,
|
||||
"stop_value", G_TYPE_INT64, stop_value, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -644,18 +637,17 @@ gst_query_parse_segment (GstQuery * query, gdouble * rate, GstFormat * format,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (rate)
|
||||
*rate = g_value_get_double (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RATE)));
|
||||
*rate = g_value_get_double (gst_structure_get_value (structure, "rate"));
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (start_value)
|
||||
*start_value = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (START_VALUE)));
|
||||
*start_value = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"start_value"));
|
||||
if (stop_value)
|
||||
*stop_value = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (STOP_VALUE)));
|
||||
*stop_value = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"stop_value"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -801,11 +793,11 @@ gst_query_set_seeking (GstQuery * query, GstFormat format,
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (SEEKABLE), G_TYPE_BOOLEAN, seekable,
|
||||
GST_QUARK (SEGMENT_START), G_TYPE_INT64, segment_start,
|
||||
GST_QUARK (SEGMENT_END), G_TYPE_INT64, segment_end, NULL);
|
||||
gst_structure_set (structure,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"seekable", G_TYPE_BOOLEAN, seekable,
|
||||
"segment-start", G_TYPE_INT64, segment_start,
|
||||
"segment-end", G_TYPE_INT64, segment_end, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -832,27 +824,27 @@ gst_query_parse_seeking (GstQuery * query, GstFormat * format,
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (seekable)
|
||||
*seekable = g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SEEKABLE)));
|
||||
*seekable = g_value_get_boolean (gst_structure_get_value (structure,
|
||||
"seekable"));
|
||||
if (segment_start)
|
||||
*segment_start = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SEGMENT_START)));
|
||||
*segment_start = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"segment-start"));
|
||||
if (segment_end)
|
||||
*segment_end = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (SEGMENT_END)));
|
||||
*segment_end = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"segment-end"));
|
||||
}
|
||||
|
||||
static GArray *
|
||||
ensure_array (GstStructure * s, GQuark quark, gsize element_size,
|
||||
ensure_array (GstStructure * s, const gchar * fieldname, gsize element_size,
|
||||
GDestroyNotify clear_func)
|
||||
{
|
||||
GArray *array;
|
||||
const GValue *value;
|
||||
|
||||
value = gst_structure_id_get_value (s, quark);
|
||||
value = gst_structure_get_value (s, fieldname);
|
||||
if (value) {
|
||||
array = (GArray *) g_value_get_boxed (value);
|
||||
} else {
|
||||
|
@ -865,7 +857,7 @@ ensure_array (GstStructure * s, GQuark quark, gsize element_size,
|
|||
g_value_init (&new_array_val, G_TYPE_ARRAY);
|
||||
g_value_take_boxed (&new_array_val, array);
|
||||
|
||||
gst_structure_id_take_value (s, quark, &new_array_val);
|
||||
gst_structure_take_value (s, fieldname, &new_array_val);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
@ -1084,9 +1076,9 @@ gst_query_set_buffering_percent (GstQuery * query, gboolean busy, gint percent)
|
|||
g_return_if_fail (percent >= 0 && percent <= 100);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (BUSY), G_TYPE_BOOLEAN, busy,
|
||||
GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, percent, NULL);
|
||||
gst_structure_set (structure,
|
||||
"busy", G_TYPE_BOOLEAN, busy,
|
||||
"buffer-percent", G_TYPE_INT, percent, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1108,11 +1100,10 @@ gst_query_parse_buffering_percent (GstQuery * query, gboolean * busy,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (busy)
|
||||
*busy = g_value_get_boolean (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUSY)));
|
||||
*busy = g_value_get_boolean (gst_structure_get_value (structure, "busy"));
|
||||
if (percent)
|
||||
*percent = g_value_get_int (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUFFER_PERCENT)));
|
||||
*percent = g_value_get_int (gst_structure_get_value (structure,
|
||||
"buffer-percent"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1135,11 +1126,11 @@ gst_query_set_buffering_stats (GstQuery * query, GstBufferingMode mode,
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, mode,
|
||||
GST_QUARK (AVG_IN_RATE), G_TYPE_INT, avg_in,
|
||||
GST_QUARK (AVG_OUT_RATE), G_TYPE_INT, avg_out,
|
||||
GST_QUARK (BUFFERING_LEFT), G_TYPE_INT64, buffering_left, NULL);
|
||||
gst_structure_set (structure,
|
||||
"buffering-mode", GST_TYPE_BUFFERING_MODE, mode,
|
||||
"avg-in-rate", G_TYPE_INT, avg_in,
|
||||
"avg-out-rate", G_TYPE_INT, avg_out,
|
||||
"buffering-left", G_TYPE_INT64, buffering_left, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1165,18 +1156,18 @@ gst_query_parse_buffering_stats (GstQuery * query,
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (mode)
|
||||
*mode = (GstBufferingMode)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUFFERING_MODE)));
|
||||
g_value_get_enum (gst_structure_get_value (structure,
|
||||
"buffering-mode"));
|
||||
if (avg_in)
|
||||
*avg_in = g_value_get_int (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (AVG_IN_RATE)));
|
||||
*avg_in = g_value_get_int (gst_structure_get_value (structure,
|
||||
"avg-in-rate"));
|
||||
if (avg_out)
|
||||
*avg_out = g_value_get_int (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (AVG_OUT_RATE)));
|
||||
*avg_out = g_value_get_int (gst_structure_get_value (structure,
|
||||
"avg-out-rate"));
|
||||
if (buffering_left)
|
||||
*buffering_left =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (BUFFERING_LEFT)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"buffering-left"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1200,11 +1191,11 @@ gst_query_set_buffering_range (GstQuery * query, GstFormat format,
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
|
||||
GST_QUARK (START_VALUE), G_TYPE_INT64, start,
|
||||
GST_QUARK (STOP_VALUE), G_TYPE_INT64, stop,
|
||||
GST_QUARK (ESTIMATED_TOTAL), G_TYPE_INT64, estimated_total, NULL);
|
||||
gst_structure_set (structure,
|
||||
"format", GST_TYPE_FORMAT, format,
|
||||
"start_value", G_TYPE_INT64, start,
|
||||
"stop_value", G_TYPE_INT64, stop,
|
||||
"estimated-total", G_TYPE_INT64, estimated_total, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1232,18 +1223,18 @@ gst_query_parse_buffering_range (GstQuery * query, GstFormat * format,
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (format)
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
(GstFormat) g_value_get_enum (gst_structure_get_value (structure,
|
||||
"format"));
|
||||
if (start)
|
||||
*start = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (START_VALUE)));
|
||||
*start = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"start_value"));
|
||||
if (stop)
|
||||
*stop = g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (STOP_VALUE)));
|
||||
*stop = g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"stop_value"));
|
||||
if (estimated_total)
|
||||
*estimated_total =
|
||||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (ESTIMATED_TOTAL)));
|
||||
g_value_get_int64 (gst_structure_get_value (structure,
|
||||
"estimated-total"));
|
||||
}
|
||||
|
||||
/* GstQueryBufferingRange: internal struct for GArray */
|
||||
|
@ -1278,7 +1269,7 @@ gst_query_add_buffering_range (GstQuery * query, gint64 start, gint64 stop)
|
|||
return FALSE;
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
|
||||
array = ensure_array (structure, "buffering-ranges",
|
||||
sizeof (GstQueryBufferingRange), NULL);
|
||||
|
||||
if (array->len > 1) {
|
||||
|
@ -1315,7 +1306,7 @@ gst_query_get_n_buffering_ranges (GstQuery * query)
|
|||
g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING, 0);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
|
||||
array = ensure_array (structure, "buffering-ranges",
|
||||
sizeof (GstQueryBufferingRange), NULL);
|
||||
|
||||
return array->len;
|
||||
|
@ -1346,7 +1337,7 @@ gst_query_parse_nth_buffering_range (GstQuery * query, guint index,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
|
||||
array = ensure_array (structure, "buffering-ranges",
|
||||
sizeof (GstQueryBufferingRange), NULL);
|
||||
g_return_val_if_fail (index < array->len, FALSE);
|
||||
|
||||
|
@ -1402,7 +1393,7 @@ gst_query_set_uri (GstQuery * query, const gchar * uri)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure, GST_QUARK (URI), G_TYPE_STRING, uri, NULL);
|
||||
gst_structure_set (structure, "uri", G_TYPE_STRING, uri, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1424,8 +1415,7 @@ gst_query_parse_uri (GstQuery * query, gchar ** uri)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (uri)
|
||||
*uri = g_value_dup_string (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (URI)));
|
||||
*uri = g_value_dup_string (gst_structure_get_value (structure, "uri"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1446,8 +1436,7 @@ gst_query_set_uri_redirection (GstQuery * query, const gchar * uri)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure, GST_QUARK (URI_REDIRECTION),
|
||||
G_TYPE_STRING, uri, NULL);
|
||||
gst_structure_set (structure, "uri-redirection", G_TYPE_STRING, uri, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1471,7 +1460,7 @@ gst_query_parse_uri_redirection (GstQuery * query, gchar ** uri)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (uri) {
|
||||
if (!gst_structure_id_get (structure, GST_QUARK (URI_REDIRECTION),
|
||||
if (!gst_structure_get (structure, "uri-redirection",
|
||||
G_TYPE_STRING, uri, NULL))
|
||||
*uri = NULL;
|
||||
}
|
||||
|
@ -1496,7 +1485,7 @@ gst_query_set_uri_redirection_permanent (GstQuery * query, gboolean permanent)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure, GST_QUARK (URI_REDIRECTION_PERMANENT),
|
||||
gst_structure_set (structure, "uri-redirection-permanent",
|
||||
G_TYPE_BOOLEAN, permanent, NULL);
|
||||
}
|
||||
|
||||
|
@ -1523,7 +1512,7 @@ gst_query_parse_uri_redirection_permanent (GstQuery * query,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (permanent) {
|
||||
if (!gst_structure_id_get (structure, GST_QUARK (URI_REDIRECTION_PERMANENT),
|
||||
if (!gst_structure_get (structure, "uri-redirection-permanent",
|
||||
G_TYPE_BOOLEAN, permanent, NULL))
|
||||
*permanent = FALSE;
|
||||
}
|
||||
|
@ -1578,11 +1567,9 @@ gst_query_parse_allocation (GstQuery * query, GstCaps ** caps,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
if (caps) {
|
||||
*caps = g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CAPS)));
|
||||
*caps = g_value_get_boxed (gst_structure_get_value (structure, "caps"));
|
||||
}
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (NEED_POOL), G_TYPE_BOOLEAN, need_pool, NULL);
|
||||
gst_structure_get (structure, "need-pool", G_TYPE_BOOLEAN, need_pool, NULL);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
|
@ -1622,7 +1609,7 @@ gst_query_add_allocation_pool (GstQuery * query, GstBufferPool * pool,
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (POOL),
|
||||
array = ensure_array (structure, "pool",
|
||||
sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
|
||||
|
||||
if ((ap.pool = pool))
|
||||
|
@ -1652,7 +1639,7 @@ gst_query_get_n_allocation_pools (GstQuery * query)
|
|||
g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (POOL),
|
||||
array = ensure_array (structure, "pool",
|
||||
sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
|
||||
|
||||
return array->len;
|
||||
|
@ -1683,7 +1670,7 @@ gst_query_parse_nth_allocation_pool (GstQuery * query, guint index,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (POOL),
|
||||
array = ensure_array (structure, "pool",
|
||||
sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -1722,7 +1709,7 @@ gst_query_set_nth_allocation_pool (GstQuery * query, guint index,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (POOL),
|
||||
array = ensure_array (structure, "pool",
|
||||
sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -1757,7 +1744,7 @@ gst_query_remove_nth_allocation_pool (GstQuery * query, guint index)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (POOL), sizeof (AllocationPool),
|
||||
ensure_array (structure, "pool", sizeof (AllocationPool),
|
||||
(GDestroyNotify) allocation_pool_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -1799,7 +1786,7 @@ gst_query_add_allocation_meta (GstQuery * query, GType api,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
|
||||
ensure_array (structure, "meta", sizeof (AllocationMeta),
|
||||
(GDestroyNotify) allocation_meta_free);
|
||||
|
||||
am.api = api;
|
||||
|
@ -1827,7 +1814,7 @@ gst_query_get_n_allocation_metas (GstQuery * query)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
|
||||
ensure_array (structure, "meta", sizeof (AllocationMeta),
|
||||
(GDestroyNotify) allocation_meta_free);
|
||||
|
||||
return array->len;
|
||||
|
@ -1856,7 +1843,7 @@ gst_query_parse_nth_allocation_meta (GstQuery * query, guint index,
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
|
||||
ensure_array (structure, "meta", sizeof (AllocationMeta),
|
||||
(GDestroyNotify) allocation_meta_free);
|
||||
|
||||
g_return_val_if_fail (index < array->len, 0);
|
||||
|
@ -1887,7 +1874,7 @@ gst_query_remove_nth_allocation_meta (GstQuery * query, guint index)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
|
||||
ensure_array (structure, "meta", sizeof (AllocationMeta),
|
||||
(GDestroyNotify) allocation_meta_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -1918,7 +1905,7 @@ gst_query_find_allocation_meta (GstQuery * query, GType api, guint * index)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
|
||||
ensure_array (structure, "meta", sizeof (AllocationMeta),
|
||||
(GDestroyNotify) allocation_meta_free);
|
||||
|
||||
len = array->len;
|
||||
|
@ -1967,7 +1954,7 @@ gst_query_add_allocation_param (GstQuery * query, GstAllocator * allocator,
|
|||
g_return_if_fail (allocator != NULL || params != NULL);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (ALLOCATOR),
|
||||
array = ensure_array (structure, "allocator",
|
||||
sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
|
||||
|
||||
if ((ap.allocator = allocator))
|
||||
|
@ -2003,7 +1990,7 @@ gst_query_get_n_allocation_params (GstQuery * query)
|
|||
g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (ALLOCATOR),
|
||||
array = ensure_array (structure, "allocator",
|
||||
sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
|
||||
|
||||
return array->len;
|
||||
|
@ -2030,7 +2017,7 @@ gst_query_parse_nth_allocation_param (GstQuery * query, guint index,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (ALLOCATOR),
|
||||
array = ensure_array (structure, "allocator",
|
||||
sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -2064,7 +2051,7 @@ gst_query_set_nth_allocation_param (GstQuery * query, guint index,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array = ensure_array (structure, GST_QUARK (ALLOCATOR),
|
||||
array = ensure_array (structure, "allocator",
|
||||
sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -2101,7 +2088,7 @@ gst_query_remove_nth_allocation_param (GstQuery * query, guint index)
|
|||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (ALLOCATOR), sizeof (AllocationParam),
|
||||
ensure_array (structure, "allocator", sizeof (AllocationParam),
|
||||
(GDestroyNotify) allocation_param_free);
|
||||
g_return_if_fail (index < array->len);
|
||||
|
||||
|
@ -2152,11 +2139,10 @@ gst_query_set_scheduling (GstQuery * query, GstSchedulingFlags flags,
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (FLAGS), GST_TYPE_SCHEDULING_FLAGS, flags,
|
||||
GST_QUARK (MINSIZE), G_TYPE_INT, minsize,
|
||||
GST_QUARK (MAXSIZE), G_TYPE_INT, maxsize,
|
||||
GST_QUARK (ALIGN), G_TYPE_INT, align, NULL);
|
||||
gst_structure_set (structure,
|
||||
"flags", GST_TYPE_SCHEDULING_FLAGS, flags,
|
||||
"minsize", G_TYPE_INT, minsize,
|
||||
"maxsize", G_TYPE_INT, maxsize, "align", G_TYPE_INT, align, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2178,11 +2164,10 @@ gst_query_parse_scheduling (GstQuery * query, GstSchedulingFlags * flags,
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (FLAGS), GST_TYPE_SCHEDULING_FLAGS, flags,
|
||||
GST_QUARK (MINSIZE), G_TYPE_INT, minsize,
|
||||
GST_QUARK (MAXSIZE), G_TYPE_INT, maxsize,
|
||||
GST_QUARK (ALIGN), G_TYPE_INT, align, NULL);
|
||||
gst_structure_get (structure,
|
||||
"flags", GST_TYPE_SCHEDULING_FLAGS, flags,
|
||||
"minsize", G_TYPE_INT, minsize,
|
||||
"maxsize", G_TYPE_INT, maxsize, "align", G_TYPE_INT, align, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2202,8 +2187,7 @@ gst_query_add_scheduling_mode (GstQuery * query, GstPadMode mode)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
|
||||
array = ensure_array (structure, "modes", sizeof (GstPadMode), NULL);
|
||||
|
||||
g_array_append_val (array, mode);
|
||||
}
|
||||
|
@ -2226,8 +2210,7 @@ gst_query_get_n_scheduling_modes (GstQuery * query)
|
|||
g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING, 0);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
|
||||
array = ensure_array (structure, "modes", sizeof (GstPadMode), NULL);
|
||||
|
||||
return array->len;
|
||||
}
|
||||
|
@ -2252,8 +2235,7 @@ gst_query_parse_nth_scheduling_mode (GstQuery * query, guint index)
|
|||
GST_PAD_MODE_NONE);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
|
||||
array = ensure_array (structure, "modes", sizeof (GstPadMode), NULL);
|
||||
g_return_val_if_fail (index < array->len, GST_PAD_MODE_NONE);
|
||||
|
||||
return g_array_index (array, GstPadMode, index);
|
||||
|
@ -2284,8 +2266,7 @@ gst_query_has_scheduling_mode (GstQuery * query, GstPadMode mode)
|
|||
g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING, FALSE);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
array =
|
||||
ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
|
||||
array = ensure_array (structure, "modes", sizeof (GstPadMode), NULL);
|
||||
|
||||
len = array->len;
|
||||
for (i = 0; i < len; i++) {
|
||||
|
@ -2363,8 +2344,7 @@ gst_query_parse_accept_caps (GstQuery * query, GstCaps ** caps)
|
|||
g_return_if_fail (caps != NULL);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
*caps = g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CAPS)));
|
||||
*caps = g_value_get_boxed (gst_structure_get_value (structure, "caps"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2383,8 +2363,7 @@ gst_query_set_accept_caps_result (GstQuery * query, gboolean result)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure,
|
||||
GST_QUARK (RESULT), G_TYPE_BOOLEAN, result, NULL);
|
||||
gst_structure_set (structure, "result", G_TYPE_BOOLEAN, result, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2402,8 +2381,7 @@ gst_query_parse_accept_caps_result (GstQuery * query, gboolean * result)
|
|||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_get (structure,
|
||||
GST_QUARK (RESULT), G_TYPE_BOOLEAN, result, NULL);
|
||||
gst_structure_get (structure, "result", G_TYPE_BOOLEAN, result, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2463,8 +2441,7 @@ gst_query_parse_caps (GstQuery * query, GstCaps ** filter)
|
|||
g_return_if_fail (filter != NULL);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
*filter = g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FILTER)));
|
||||
*filter = g_value_get_boxed (gst_structure_get_value (structure, "filter"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2483,7 +2460,7 @@ gst_query_set_caps_result (GstQuery * query, GstCaps * caps)
|
|||
g_return_if_fail (gst_query_is_writable (query));
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
gst_structure_id_set (structure, GST_QUARK (CAPS), GST_TYPE_CAPS, caps, NULL);
|
||||
gst_structure_set (structure, "caps", GST_TYPE_CAPS, caps, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2503,8 +2480,7 @@ gst_query_parse_caps_result (GstQuery * query, GstCaps ** caps)
|
|||
g_return_if_fail (caps != NULL);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
*caps = g_value_get_boxed (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CAPS)));
|
||||
*caps = g_value_get_boxed (gst_structure_get_value (structure, "caps"));
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -2592,8 +2568,7 @@ gst_query_set_context (GstQuery * query, GstContext * context)
|
|||
|
||||
s = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
gst_structure_id_set (s,
|
||||
GST_QUARK (CONTEXT), GST_TYPE_CONTEXT, context, NULL);
|
||||
gst_structure_set (s, "context", GST_TYPE_CONTEXT, context, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2616,7 +2591,7 @@ gst_query_parse_context (GstQuery * query, GstContext ** context)
|
|||
g_return_if_fail (context != NULL);
|
||||
|
||||
structure = GST_QUERY_STRUCTURE (query);
|
||||
v = gst_structure_id_get_value (structure, GST_QUARK (CONTEXT));
|
||||
v = gst_structure_get_value (structure, "context");
|
||||
if (v)
|
||||
*context = g_value_get_boxed (v);
|
||||
else
|
||||
|
@ -2645,7 +2620,7 @@ gst_query_parse_context_type (GstQuery * query, const gchar ** context_type)
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
if (context_type) {
|
||||
value = gst_structure_id_get_value (structure, GST_QUARK (CONTEXT_TYPE));
|
||||
value = gst_structure_get_value (structure, "context-type");
|
||||
*context_type = g_value_get_string (value);
|
||||
}
|
||||
|
||||
|
@ -2695,8 +2670,7 @@ gst_query_set_bitrate (GstQuery * query, guint nominal_bitrate)
|
|||
|
||||
s = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
gst_structure_id_set (s,
|
||||
GST_QUARK (NOMINAL_BITRATE), G_TYPE_UINT, nominal_bitrate, NULL);
|
||||
gst_structure_set (s, "nominal-bitrate", G_TYPE_UINT, nominal_bitrate, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2719,7 +2693,7 @@ gst_query_parse_bitrate (GstQuery * query, guint * nominal_bitrate)
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
if (nominal_bitrate) {
|
||||
value = gst_structure_id_get_value (structure, GST_QUARK (NOMINAL_BITRATE));
|
||||
value = gst_structure_get_value (structure, "nominal-bitrate");
|
||||
*nominal_bitrate = g_value_get_uint (value);
|
||||
}
|
||||
}
|
||||
|
@ -2766,8 +2740,7 @@ gst_query_set_selectable (GstQuery * query, gboolean selectable)
|
|||
|
||||
s = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
gst_structure_id_set (s,
|
||||
GST_QUARK (SELECTABLE), G_TYPE_BOOLEAN, selectable, NULL);
|
||||
gst_structure_set (s, "selectable", G_TYPE_BOOLEAN, selectable, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2789,8 +2762,7 @@ gst_query_parse_selectable (GstQuery * query, gboolean * selectable)
|
|||
structure = GST_QUERY_STRUCTURE (query);
|
||||
|
||||
if (selectable) {
|
||||
const GValue *value =
|
||||
gst_structure_id_get_value (structure, GST_QUARK (SELECTABLE));
|
||||
const GValue *value = gst_structure_get_value (structure, "selectable");
|
||||
if (value)
|
||||
*selectable = g_value_get_boolean (value);
|
||||
else
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
#include "gstinfo.h"
|
||||
#include "gstvalue.h"
|
||||
#include "gstbuffer.h"
|
||||
#include "gstquark.h"
|
||||
#include "gststructure.h"
|
||||
#include "gstidstr-private.h"
|
||||
|
||||
|
@ -69,12 +68,12 @@ typedef struct
|
|||
{
|
||||
GType type; /* type the data is in */
|
||||
|
||||
GstIdStr name;
|
||||
const gchar *nick; /* translated short description */
|
||||
const gchar *blurb; /* translated long description */
|
||||
|
||||
GstTagMergeFunc merge_func; /* functions to merge the values */
|
||||
GstTagFlag flag; /* type of tag */
|
||||
GQuark name_quark; /* quark for the name */
|
||||
}
|
||||
GstTagInfo;
|
||||
|
||||
|
@ -551,10 +550,10 @@ gst_tag_register_static (const gchar * name, GstTagFlag flag, GType type,
|
|||
return;
|
||||
}
|
||||
|
||||
info = g_new (GstTagInfo, 1);
|
||||
info = g_new0 (GstTagInfo, 1);
|
||||
info->flag = flag;
|
||||
info->type = type;
|
||||
info->name_quark = g_quark_from_static_string (name);
|
||||
gst_id_str_set_static_str (&info->name, name);
|
||||
info->nick = nick;
|
||||
info->blurb = blurb;
|
||||
info->merge_func = func;
|
||||
|
@ -957,11 +956,11 @@ gst_tag_list_is_empty (const GstTagList * list)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_tag_list_fields_equal (GQuark field_id, const GValue * value2,
|
||||
gst_tag_list_fields_equal (const GstIdStr * field, const GValue * value2,
|
||||
gpointer data)
|
||||
{
|
||||
const GstStructure *struct1 = (const GstStructure *) data;
|
||||
const GValue *value1 = gst_structure_id_get_value (struct1, field_id);
|
||||
const GValue *value1 = gst_structure_id_str_get_value (struct1, field);
|
||||
gdouble d1, d2;
|
||||
|
||||
if (value1 == NULL) {
|
||||
|
@ -1018,7 +1017,8 @@ gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
return gst_structure_foreach (s1, gst_tag_list_fields_equal, (gpointer) s2);
|
||||
return gst_structure_foreach_id_str (s1, gst_tag_list_fields_equal,
|
||||
(gpointer) s2);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
|
@ -1034,7 +1034,7 @@ gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
|
|||
{
|
||||
GstStructure *list = GST_TAG_LIST_STRUCTURE (tag_list);
|
||||
const GValue *value2;
|
||||
GQuark tag_quark;
|
||||
const GstIdStr *tag_name;
|
||||
|
||||
if (info == NULL) {
|
||||
info = gst_tag_lookup (tag);
|
||||
|
@ -1052,23 +1052,23 @@ gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
|
|||
return;
|
||||
}
|
||||
|
||||
tag_quark = info->name_quark;
|
||||
tag_name = &info->name;
|
||||
|
||||
if (info->merge_func
|
||||
&& (value2 = gst_structure_id_get_value (list, tag_quark)) != NULL) {
|
||||
&& (value2 = gst_structure_id_str_get_value (list, tag_name)) != NULL) {
|
||||
GValue dest = { 0, };
|
||||
|
||||
switch (mode) {
|
||||
case GST_TAG_MERGE_REPLACE_ALL:
|
||||
case GST_TAG_MERGE_REPLACE:
|
||||
gst_structure_id_set_value (list, tag_quark, value);
|
||||
gst_structure_id_str_set_value (list, tag_name, value);
|
||||
break;
|
||||
case GST_TAG_MERGE_PREPEND:
|
||||
if (GST_VALUE_HOLDS_LIST (value2) && !GST_VALUE_HOLDS_LIST (value))
|
||||
gst_value_list_prepend_value ((GValue *) value2, value);
|
||||
else {
|
||||
gst_value_list_merge (&dest, value, value2);
|
||||
gst_structure_id_take_value (list, tag_quark, &dest);
|
||||
gst_structure_id_str_take_value (list, tag_name, &dest);
|
||||
}
|
||||
break;
|
||||
case GST_TAG_MERGE_APPEND:
|
||||
|
@ -1076,7 +1076,7 @@ gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
|
|||
gst_value_list_append_value ((GValue *) value2, value);
|
||||
else {
|
||||
gst_value_list_merge (&dest, value2, value);
|
||||
gst_structure_id_take_value (list, tag_quark, &dest);
|
||||
gst_structure_id_str_take_value (list, tag_name, &dest);
|
||||
}
|
||||
break;
|
||||
case GST_TAG_MERGE_KEEP:
|
||||
|
@ -1090,13 +1090,13 @@ gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
|
|||
switch (mode) {
|
||||
case GST_TAG_MERGE_APPEND:
|
||||
case GST_TAG_MERGE_KEEP:
|
||||
if (gst_structure_id_get_value (list, tag_quark) != NULL)
|
||||
if (gst_structure_id_str_get_value (list, tag_name) != NULL)
|
||||
break;
|
||||
/* fall through */
|
||||
case GST_TAG_MERGE_REPLACE_ALL:
|
||||
case GST_TAG_MERGE_REPLACE:
|
||||
case GST_TAG_MERGE_PREPEND:
|
||||
gst_structure_id_set_value (list, tag_quark, value);
|
||||
gst_structure_id_str_set_value (list, tag_name, value);
|
||||
break;
|
||||
case GST_TAG_MERGE_KEEP_ALL:
|
||||
break;
|
||||
|
@ -1108,13 +1108,13 @@ gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gst_tag_list_copy_foreach (GQuark tag_quark, const GValue * value,
|
||||
gst_tag_list_copy_foreach (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstTagCopyData *copy = (GstTagCopyData *) user_data;
|
||||
const gchar *tag;
|
||||
|
||||
tag = g_quark_to_string (tag_quark);
|
||||
tag = gst_id_str_as_str (field);
|
||||
gst_tag_list_add_value_internal (copy->list, copy->mode, tag, value, NULL);
|
||||
|
||||
return TRUE;
|
||||
|
@ -1144,7 +1144,7 @@ gst_tag_list_insert (GstTagList * into, const GstTagList * from,
|
|||
if (mode == GST_TAG_MERGE_REPLACE_ALL) {
|
||||
gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (into));
|
||||
}
|
||||
gst_structure_foreach (GST_TAG_LIST_STRUCTURE (from),
|
||||
gst_structure_foreach_id_str (GST_TAG_LIST_STRUCTURE (from),
|
||||
gst_tag_list_copy_foreach, &data);
|
||||
}
|
||||
|
||||
|
@ -1401,12 +1401,12 @@ typedef struct
|
|||
TagForeachData;
|
||||
|
||||
static int
|
||||
structure_foreach_wrapper (GQuark field_id, const GValue * value,
|
||||
structure_foreach_wrapper (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
TagForeachData *data = (TagForeachData *) user_data;
|
||||
|
||||
data->func (data->tag_list, g_quark_to_string (field_id), data->data);
|
||||
data->func (data->tag_list, gst_id_str_as_str (field), data->data);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1431,7 +1431,7 @@ gst_tag_list_foreach (const GstTagList * list, GstTagForeachFunc func,
|
|||
data.func = func;
|
||||
data.tag_list = list;
|
||||
data.data = user_data;
|
||||
gst_structure_foreach (GST_TAG_LIST_STRUCTURE (list),
|
||||
gst_structure_foreach_id_str (GST_TAG_LIST_STRUCTURE (list),
|
||||
structure_foreach_wrapper, &data);
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,8 @@ struct _GstTracerRecordClass
|
|||
G_DEFINE_TYPE (GstTracerRecord, gst_tracer_record, GST_TYPE_OBJECT);
|
||||
|
||||
static gboolean
|
||||
build_field_template (GQuark field_id, const GValue * value, gpointer user_data)
|
||||
build_field_template (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GString *s = (GString *) user_data;
|
||||
const GstStructure *sub;
|
||||
|
@ -69,7 +70,7 @@ build_field_template (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
|
||||
if (G_VALUE_TYPE (value) != GST_TYPE_STRUCTURE) {
|
||||
GST_ERROR ("expected field of type GstStructure, but %s is %s",
|
||||
g_quark_to_string (field_id), G_VALUE_TYPE_NAME (value));
|
||||
gst_id_str_as_str (field), G_VALUE_TYPE_NAME (value));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -78,17 +79,19 @@ build_field_template (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
GST_TYPE_TRACER_VALUE_FLAGS, &flags, NULL);
|
||||
|
||||
if (flags & GST_TRACER_VALUE_FLAGS_OPTIONAL) {
|
||||
gchar *opt_name = g_strconcat ("have-", g_quark_to_string (field_id), NULL);
|
||||
gchar *opt_name = g_strconcat ("have-", gst_id_str_as_str (field), NULL);
|
||||
|
||||
/* add a boolean field, that indicates the presence of the next field */
|
||||
g_value_init (&template_value, G_TYPE_BOOLEAN);
|
||||
priv__gst_structure_append_template_to_gstring (opt_name, &template_value, s);
|
||||
priv__gst_structure_append_template_to_gstring (opt_name, &template_value,
|
||||
s);
|
||||
g_value_unset (&template_value);
|
||||
g_free (opt_name);
|
||||
}
|
||||
|
||||
g_value_init (&template_value, type);
|
||||
res = priv__gst_structure_append_template_to_gstring (g_quark_to_string (field_id),
|
||||
res =
|
||||
priv__gst_structure_append_template_to_gstring (gst_id_str_as_str (field),
|
||||
&template_value, s);
|
||||
g_value_unset (&template_value);
|
||||
return res;
|
||||
|
@ -115,7 +118,7 @@ gst_tracer_record_build_format (GstTracerRecord * self)
|
|||
|
||||
s = g_string_sized_new (STRUCTURE_ESTIMATED_STRING_LEN (structure));
|
||||
g_string_append (s, name);
|
||||
gst_structure_foreach (structure, build_field_template, s);
|
||||
gst_structure_foreach_id_str (structure, build_field_template, s);
|
||||
g_string_append_c (s, ';');
|
||||
|
||||
self->format = g_string_free (s, FALSE);
|
||||
|
@ -188,7 +191,6 @@ gst_tracer_record_new (const gchar * name, const gchar * firstfield, ...)
|
|||
va_list varargs;
|
||||
gchar *err = NULL;
|
||||
GType type;
|
||||
GQuark id;
|
||||
|
||||
va_start (varargs, firstfield);
|
||||
structure = gst_structure_new_empty (name);
|
||||
|
@ -196,7 +198,6 @@ gst_tracer_record_new (const gchar * name, const gchar * firstfield, ...)
|
|||
while (firstfield) {
|
||||
GValue val = { 0, };
|
||||
|
||||
id = g_quark_from_string (firstfield);
|
||||
type = va_arg (varargs, GType);
|
||||
|
||||
/* all fields passed here must be GstStructures which we take over */
|
||||
|
@ -218,7 +219,7 @@ gst_tracer_record_new (const gchar * name, const gchar * firstfield, ...)
|
|||
* to this structure by unsetting the NOCOPY_CONTENTS collect-flag.
|
||||
* see boxed_proxy_collect_value in glib's gobject/gboxed.c */
|
||||
val.data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS;
|
||||
gst_structure_id_take_value (structure, id, &val);
|
||||
gst_structure_take_value (structure, firstfield, &val);
|
||||
|
||||
firstfield = va_arg (varargs, gchar *);
|
||||
}
|
||||
|
|
|
@ -2953,18 +2953,18 @@ gst_value_deserialize_segment_internal (GValue * dest, const gchar * s,
|
|||
if (G_UNLIKELY (str == NULL))
|
||||
return FALSE;
|
||||
|
||||
res = gst_structure_id_get (str,
|
||||
GST_QUARK (FLAGS), GST_TYPE_SEGMENT_FLAGS, &seg.flags,
|
||||
GST_QUARK (RATE), G_TYPE_DOUBLE, &seg.rate,
|
||||
GST_QUARK (APPLIED_RATE), G_TYPE_DOUBLE, &seg.applied_rate,
|
||||
GST_QUARK (FORMAT), GST_TYPE_FORMAT, &seg.format,
|
||||
GST_QUARK (BASE), G_TYPE_UINT64, &seg.base,
|
||||
GST_QUARK (OFFSET), G_TYPE_UINT64, &seg.offset,
|
||||
GST_QUARK (START), G_TYPE_UINT64, &seg.start,
|
||||
GST_QUARK (STOP), G_TYPE_UINT64, &seg.stop,
|
||||
GST_QUARK (TIME), G_TYPE_UINT64, &seg.time,
|
||||
GST_QUARK (POSITION), G_TYPE_UINT64, &seg.position,
|
||||
GST_QUARK (DURATION), G_TYPE_UINT64, &seg.duration, NULL);
|
||||
res = gst_structure_get (str,
|
||||
"flags", GST_TYPE_SEGMENT_FLAGS, &seg.flags,
|
||||
"rate", G_TYPE_DOUBLE, &seg.rate,
|
||||
"applied-rate", G_TYPE_DOUBLE, &seg.applied_rate,
|
||||
"format", GST_TYPE_FORMAT, &seg.format,
|
||||
"base", G_TYPE_UINT64, &seg.base,
|
||||
"offset", G_TYPE_UINT64, &seg.offset,
|
||||
"start", G_TYPE_UINT64, &seg.start,
|
||||
"stop", G_TYPE_UINT64, &seg.stop,
|
||||
"time", G_TYPE_UINT64, &seg.time,
|
||||
"position", G_TYPE_UINT64, &seg.position,
|
||||
"duration", G_TYPE_UINT64, &seg.duration, NULL);
|
||||
gst_structure_free (str);
|
||||
|
||||
if (res)
|
||||
|
@ -4736,13 +4736,14 @@ gst_value_union_flagset_flagset (GValue * dest, const GValue * src1,
|
|||
|
||||
/* iterating over the result taking the union with the other structure's value */
|
||||
static gboolean
|
||||
structure_field_union_into (GQuark field_id, GValue * val, gpointer user_data)
|
||||
structure_field_union_into (const GstIdStr * field, GValue * val,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *other = user_data;
|
||||
const GValue *other_value;
|
||||
GValue res_value = G_VALUE_INIT;
|
||||
|
||||
other_value = gst_structure_id_get_value (other, field_id);
|
||||
other_value = gst_structure_id_str_get_value (other, field);
|
||||
/* no value in the other struct, just keep this value */
|
||||
if (!other_value)
|
||||
return TRUE;
|
||||
|
@ -4757,15 +4758,15 @@ structure_field_union_into (GQuark field_id, GValue * val, gpointer user_data)
|
|||
|
||||
/* iterating over the other source structure adding missing values */
|
||||
static gboolean
|
||||
structure_field_union_from (GQuark field_id, const GValue * other_val,
|
||||
structure_field_union_from (const GstIdStr * field, const GValue * other_val,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstStructure *result = user_data;
|
||||
const GValue *result_value;
|
||||
|
||||
result_value = gst_structure_id_get_value (result, field_id);
|
||||
result_value = gst_structure_id_str_get_value (result, field);
|
||||
if (!result_value)
|
||||
gst_structure_id_set_value (result, field_id, other_val);
|
||||
gst_structure_id_str_set_value (result, field, other_val);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -4792,12 +4793,13 @@ gst_value_union_structure_structure (GValue * dest, const GValue * src1,
|
|||
|
||||
result = gst_structure_copy (s1);
|
||||
ret =
|
||||
gst_structure_map_in_place (result, structure_field_union_into,
|
||||
gst_structure_map_in_place_id_str (result, structure_field_union_into,
|
||||
(gpointer) s2);
|
||||
if (!ret)
|
||||
goto out;
|
||||
ret =
|
||||
gst_structure_foreach (s2, structure_field_union_from, (gpointer) result);
|
||||
gst_structure_foreach_id_str (s2, structure_field_union_from,
|
||||
(gpointer) result);
|
||||
|
||||
if (ret) {
|
||||
g_value_init (dest, GST_TYPE_STRUCTURE);
|
||||
|
@ -6819,7 +6821,7 @@ gst_value_deserialize_with_pspec (GValue * dest, const gchar * src,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
structure_field_is_fixed (GQuark field_id, const GValue * val,
|
||||
structure_field_is_fixed (const GstIdStr * field, const GValue * val,
|
||||
gpointer user_data)
|
||||
{
|
||||
return gst_value_is_fixed (val);
|
||||
|
@ -6867,7 +6869,7 @@ gst_value_is_fixed (const GValue * value)
|
|||
/* Flagsets are only fixed if there are no 'don't care' bits */
|
||||
return (gst_value_get_flagset_mask (value) == GST_FLAG_SET_MASK_EXACT);
|
||||
} else if (GST_VALUE_HOLDS_STRUCTURE (value)) {
|
||||
return gst_structure_foreach (gst_value_get_structure (value),
|
||||
return gst_structure_foreach_id_str (gst_value_get_structure (value),
|
||||
structure_field_is_fixed, NULL);
|
||||
}
|
||||
return gst_type_is_fixed (type);
|
||||
|
|
|
@ -1111,7 +1111,7 @@ gst_base_parse_convert (GstBaseParse * parse,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
update_upstream_provided (GQuark field_id, const GValue * value,
|
||||
update_upstream_provided (const GstIdStr * field, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GstCaps *default_caps = user_data;
|
||||
|
@ -1121,8 +1121,8 @@ update_upstream_provided (GQuark field_id, const GValue * value,
|
|||
caps_size = gst_caps_get_size (default_caps);
|
||||
for (i = 0; i < caps_size; i++) {
|
||||
GstStructure *structure = gst_caps_get_structure (default_caps, i);
|
||||
if (!gst_structure_id_has_field (structure, field_id)) {
|
||||
gst_structure_id_set_value (structure, field_id, value);
|
||||
if (!gst_structure_has_field (structure, gst_id_str_as_str (field))) {
|
||||
gst_structure_id_str_set_value (structure, field, value);
|
||||
}
|
||||
/* XXX: maybe try to fixate better than gst_caps_fixate() the
|
||||
* downstream caps based on upstream values if possible */
|
||||
|
@ -1162,7 +1162,8 @@ gst_base_parse_negotiate_default_caps (GstBaseParse * parse)
|
|||
|
||||
if (sinkcaps) {
|
||||
structure = gst_caps_get_structure (sinkcaps, 0);
|
||||
gst_structure_foreach (structure, update_upstream_provided, default_caps);
|
||||
gst_structure_foreach_id_str (structure, update_upstream_provided,
|
||||
default_caps);
|
||||
}
|
||||
|
||||
default_caps = gst_caps_fixate (default_caps);
|
||||
|
|
|
@ -59,10 +59,6 @@ static void latency_query_stack_destroy (gpointer data);
|
|||
|
||||
static GQuark latency_probe_id;
|
||||
static GQuark sub_latency_probe_id;
|
||||
static GQuark latency_probe_pad;
|
||||
static GQuark latency_probe_element;
|
||||
static GQuark latency_probe_element_id;
|
||||
static GQuark latency_probe_ts;
|
||||
static GQuark drop_sub_latency_quark;
|
||||
|
||||
static GstTracerRecord *tr_latency;
|
||||
|
@ -182,16 +178,16 @@ log_latency (const GstStructure * data, GstElement * sink_parent,
|
|||
g_return_if_fail (sink_parent);
|
||||
g_return_if_fail (sink_pad);
|
||||
|
||||
value = gst_structure_id_get_value (data, latency_probe_ts);
|
||||
value = gst_structure_get_value (data, "latency_probe.ts");
|
||||
src_ts = g_value_get_uint64 (value);
|
||||
|
||||
value = gst_structure_id_get_value (data, latency_probe_pad);
|
||||
value = gst_structure_get_value (data, "latency_probe.pad");
|
||||
src = g_value_get_string (value);
|
||||
|
||||
value = gst_structure_id_get_value (data, latency_probe_element);
|
||||
value = gst_structure_get_value (data, "latency_probe.element");
|
||||
element_src = g_value_get_string (value);
|
||||
|
||||
value = gst_structure_id_get_value (data, latency_probe_element_id);
|
||||
value = gst_structure_get_value (data, "latency_probe.element_id");
|
||||
id_element_src = g_value_get_string (value);
|
||||
|
||||
id_element_sink = g_strdup_printf ("%p", sink_parent);
|
||||
|
@ -222,7 +218,7 @@ log_element_latency (const GstStructure * data, GstElement * parent,
|
|||
|
||||
/* TODO filtering */
|
||||
|
||||
value = gst_structure_id_get_value (data, latency_probe_ts);
|
||||
value = gst_structure_get_value (data, "latency_probe.ts");
|
||||
src_ts = g_value_get_uint64 (value);
|
||||
|
||||
gst_tracer_record_log (tr_element_latency, element_id, element_name, pad_name,
|
||||
|
@ -387,9 +383,9 @@ do_drop_sub_latency_event (GstPad * pad, GstPadProbeInfo * info,
|
|||
const gchar *value_element_id, *value_pad_name;
|
||||
|
||||
/* Get the element id, element name and pad name from data */
|
||||
value = gst_structure_id_get_value (data, latency_probe_element_id);
|
||||
value = gst_structure_get_value (data, "latency_probe.element_id");
|
||||
value_element_id = g_value_get_string (value);
|
||||
value = gst_structure_id_get_value (data, latency_probe_pad);
|
||||
value = gst_structure_get_value (data, "latency_probe.pad");
|
||||
value_pad_name = g_value_get_string (value);
|
||||
|
||||
if (pad_name == NULL ||
|
||||
|
@ -453,9 +449,9 @@ do_push_event_pre (GstTracer * self, guint64 ts, GstPad * pad, GstEvent * ev)
|
|||
const gchar *value_element_id, *value_pad_name;
|
||||
|
||||
/* Get the element id, element name and pad name from data */
|
||||
value = gst_structure_id_get_value (data, latency_probe_element_id);
|
||||
value = gst_structure_get_value (data, "latency_probe.element_id");
|
||||
value_element_id = g_value_get_string (value);
|
||||
value = gst_structure_id_get_value (data, latency_probe_pad);
|
||||
value = gst_structure_get_value (data, "latency_probe.pad");
|
||||
value_pad_name = g_value_get_string (value);
|
||||
|
||||
if (!g_str_equal (value_element_id, element_id) ||
|
||||
|
@ -603,11 +599,6 @@ gst_latency_tracer_class_init (GstLatencyTracerClass * klass)
|
|||
|
||||
latency_probe_id = g_quark_from_static_string ("latency_probe.id");
|
||||
sub_latency_probe_id = g_quark_from_static_string ("sub_latency_probe.id");
|
||||
latency_probe_pad = g_quark_from_static_string ("latency_probe.pad");
|
||||
latency_probe_element = g_quark_from_static_string ("latency_probe.element");
|
||||
latency_probe_element_id =
|
||||
g_quark_from_static_string ("latency_probe.element_id");
|
||||
latency_probe_ts = g_quark_from_static_string ("latency_probe.ts");
|
||||
drop_sub_latency_quark =
|
||||
g_quark_from_static_string ("drop_sub_latency.quark");
|
||||
|
||||
|
|
|
@ -1160,7 +1160,8 @@ GST_START_TEST (test_union)
|
|||
GST_END_TEST;
|
||||
|
||||
static gboolean
|
||||
_caps_is_fixed_foreach (GQuark field_id, const GValue * value, gpointer unused)
|
||||
_caps_is_fixed_foreach (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer unused)
|
||||
{
|
||||
return gst_value_is_fixed (value);
|
||||
}
|
||||
|
@ -1179,7 +1180,8 @@ GST_START_TEST (test_normalize)
|
|||
for (i = 0; i < gst_caps_get_size (norm); i++) {
|
||||
GstStructure *st = gst_caps_get_structure (norm, i);
|
||||
/* Make sure all fields of all structures are fixed */
|
||||
fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
|
||||
fail_unless (gst_structure_foreach_id_str (st, _caps_is_fixed_foreach,
|
||||
NULL));
|
||||
}
|
||||
|
||||
gst_caps_unref (out);
|
||||
|
@ -1197,7 +1199,8 @@ GST_START_TEST (test_normalize)
|
|||
for (i = 0; i < gst_caps_get_size (norm); i++) {
|
||||
GstStructure *st = gst_caps_get_structure (norm, i);
|
||||
/* Make sure all fields of all structures are fixed */
|
||||
fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
|
||||
fail_unless (gst_structure_foreach_id_str (st, _caps_is_fixed_foreach,
|
||||
NULL));
|
||||
}
|
||||
|
||||
gst_caps_unref (out);
|
||||
|
@ -1214,7 +1217,8 @@ GST_START_TEST (test_normalize)
|
|||
for (i = 0; i < gst_caps_get_size (norm); i++) {
|
||||
GstStructure *st = gst_caps_get_structure (norm, i);
|
||||
/* Make sure all fields of all structures are fixed */
|
||||
fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
|
||||
fail_unless (gst_structure_foreach_id_str (st, _caps_is_fixed_foreach,
|
||||
NULL));
|
||||
}
|
||||
|
||||
gst_caps_unref (out);
|
||||
|
|
|
@ -864,6 +864,8 @@ GST_START_TEST (test_vararg_getters)
|
|||
gst_buffer_unref (buf2);
|
||||
buf2 = NULL;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
/* and now the _id variant */
|
||||
ret = gst_structure_id_get (s, g_quark_from_static_string ("double"),
|
||||
G_TYPE_DOUBLE, &d, g_quark_from_static_string ("string"), G_TYPE_STRING,
|
||||
|
@ -892,6 +894,58 @@ GST_START_TEST (test_vararg_getters)
|
|||
g_free (c);
|
||||
gst_caps_unref (caps2);
|
||||
gst_buffer_unref (buf2);
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
/* and now the _id_str variant */
|
||||
GstIdStr string_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr caps_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr buf_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr int_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr int64_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr double_fieldname = GST_ID_STR_INIT;
|
||||
GstIdStr dooble_fieldname = GST_ID_STR_INIT;
|
||||
|
||||
gst_id_str_set_static_str (&string_fieldname, "string");
|
||||
gst_id_str_set_static_str (&caps_fieldname, "caps");
|
||||
gst_id_str_set_static_str (&buf_fieldname, "buf");
|
||||
gst_id_str_set_static_str (&int_fieldname, "int");
|
||||
gst_id_str_set_static_str (&int64_fieldname, "int64");
|
||||
gst_id_str_set_static_str (&double_fieldname, "double");
|
||||
gst_id_str_set_static_str (&dooble_fieldname, "dooble");
|
||||
|
||||
ret = gst_structure_id_str_get (s, &double_fieldname,
|
||||
G_TYPE_DOUBLE, &d, &string_fieldname, G_TYPE_STRING,
|
||||
&c, &caps_fieldname, GST_TYPE_CAPS, &caps2,
|
||||
&buf_fieldname, GST_TYPE_BUFFER, &buf2,
|
||||
&int_fieldname, G_TYPE_INT, &i,
|
||||
&int64_fieldname, G_TYPE_INT64, &i64, NULL);
|
||||
|
||||
fail_unless (ret);
|
||||
fail_unless_equals_string (c, "Hello World!");
|
||||
fail_unless_equals_int (i, 12345678);
|
||||
fail_unless_equals_float (d, G_MAXDOUBLE);
|
||||
fail_unless (i64 == -99);
|
||||
fail_unless (caps == caps2);
|
||||
fail_unless (buf == buf2);
|
||||
|
||||
/* expected failures */
|
||||
ASSERT_CRITICAL (gst_structure_get (s, 0, G_TYPE_INT, &i, NULL));
|
||||
fail_if (gst_structure_id_str_get (s, &int_fieldname,
|
||||
G_TYPE_INT, &i, &double_fieldname, G_TYPE_FLOAT, &d, NULL));
|
||||
fail_if (gst_structure_id_str_get (s, &int_fieldname,
|
||||
G_TYPE_INT, &i, &dooble_fieldname, G_TYPE_DOUBLE, &d, NULL));
|
||||
|
||||
g_free (c);
|
||||
gst_caps_unref (caps2);
|
||||
gst_buffer_unref (buf2);
|
||||
|
||||
gst_id_str_clear (&string_fieldname);
|
||||
gst_id_str_clear (&caps_fieldname);
|
||||
gst_id_str_clear (&buf_fieldname);
|
||||
gst_id_str_clear (&int_fieldname);
|
||||
gst_id_str_clear (&int64_fieldname);
|
||||
gst_id_str_clear (&double_fieldname);
|
||||
gst_id_str_clear (&dooble_fieldname);
|
||||
|
||||
/* finally make sure NULL as return location is handled gracefully */
|
||||
ret = gst_structure_get (s, "double", G_TYPE_DOUBLE, NULL, "string",
|
||||
|
@ -925,6 +979,21 @@ foreach_func (GQuark field_id, const GValue * value, gpointer user_data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
foreach_id_str_func (const GstIdStr * fieldname, const GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gint *sum = user_data;
|
||||
gint v = 0;
|
||||
|
||||
if (G_VALUE_HOLDS_INT (value))
|
||||
v = g_value_get_int (value);
|
||||
*sum += v;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
GST_START_TEST (test_foreach)
|
||||
{
|
||||
GstStructure *s;
|
||||
|
@ -932,10 +1001,16 @@ GST_START_TEST (test_foreach)
|
|||
|
||||
s = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 1, "bla", G_TYPE_INT, 3,
|
||||
NULL);
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
fail_unless (gst_structure_foreach (s, foreach_func, &sum));
|
||||
#pragma GCC diagnostic pop
|
||||
fail_unless_equals_int (sum, 4);
|
||||
|
||||
sum = 0;
|
||||
fail_unless (gst_structure_foreach_id_str (s, foreach_id_str_func, &sum));
|
||||
fail_unless_equals_int (sum, 4);
|
||||
gst_structure_free (s);
|
||||
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
@ -949,6 +1024,15 @@ map_func (GQuark field_id, GValue * value, gpointer user_data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
map_id_str_func (const GstIdStr * fieldname, GValue * value, gpointer user_data)
|
||||
{
|
||||
if (G_VALUE_HOLDS_INT (value))
|
||||
g_value_set_int (value, 123);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GST_START_TEST (test_map_in_place)
|
||||
{
|
||||
GstStructure *s, *s2;
|
||||
|
@ -957,11 +1041,20 @@ GST_START_TEST (test_map_in_place)
|
|||
NULL);
|
||||
s2 = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 123, "bla", G_TYPE_INT,
|
||||
123, NULL);
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
fail_unless (gst_structure_map_in_place (s, map_func, NULL));
|
||||
#pragma GCC diagnostic pop
|
||||
fail_unless (gst_structure_is_equal (s, s2));
|
||||
|
||||
gst_structure_free (s);
|
||||
s = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 1, "bla", G_TYPE_INT, 3,
|
||||
NULL);
|
||||
fail_unless (gst_structure_map_in_place_id_str (s, map_id_str_func, NULL));
|
||||
fail_unless (gst_structure_is_equal (s, s2));
|
||||
|
||||
gst_structure_free (s);
|
||||
gst_structure_free (s2);
|
||||
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
@ -978,6 +1071,19 @@ filter_map_func (GQuark field_id, GValue * value, gpointer user_data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
filter_map_id_str_func (const GstIdStr * fieldname, GValue * value,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (gst_id_str_is_equal_to_str (fieldname, "bla"))
|
||||
return FALSE;
|
||||
|
||||
if (G_VALUE_HOLDS_INT (value))
|
||||
g_value_set_int (value, 2);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GST_START_TEST (test_filter_and_map_in_place)
|
||||
{
|
||||
GstStructure *s, *s2;
|
||||
|
@ -985,7 +1091,17 @@ GST_START_TEST (test_filter_and_map_in_place)
|
|||
s = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 1, "bla", G_TYPE_INT, 3,
|
||||
NULL);
|
||||
s2 = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 2, NULL);
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
gst_structure_filter_and_map_in_place (s, filter_map_func, NULL);
|
||||
#pragma GCC diagnostic pop
|
||||
fail_unless (gst_structure_is_equal (s, s2));
|
||||
|
||||
gst_structure_free (s);
|
||||
s = gst_structure_new ("foo/bar", "baz", G_TYPE_INT, 1, "bla", G_TYPE_INT, 3,
|
||||
NULL);
|
||||
gst_structure_filter_and_map_in_place_id_str (s, filter_map_id_str_func,
|
||||
NULL);
|
||||
fail_unless (gst_structure_is_equal (s, s2));
|
||||
gst_structure_free (s);
|
||||
gst_structure_free (s2);
|
||||
|
|
|
@ -182,13 +182,13 @@ n_print (const char *format, ...)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
print_field (GQuark field, const GValue * value, gpointer pfx)
|
||||
print_field (const GstIdStr * fieldname, const GValue * value, gpointer pfx)
|
||||
{
|
||||
gchar *str = gst_value_serialize (value);
|
||||
|
||||
n_print ("%s %s%15s%s: %s%s%s\n",
|
||||
(gchar *) pfx, FIELD_NAME_COLOR, g_quark_to_string (field), RESET_COLOR,
|
||||
FIELD_VALUE_COLOR, str, RESET_COLOR);
|
||||
(gchar *) pfx, FIELD_NAME_COLOR, gst_id_str_as_str (fieldname),
|
||||
RESET_COLOR, FIELD_VALUE_COLOR, str, RESET_COLOR);
|
||||
g_free (str);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ print_caps (const GstCaps * caps, const gchar * pfx)
|
|||
n_print ("%s%s%s%s\n", pfx, STRUCT_NAME_COLOR,
|
||||
gst_structure_get_name (structure), RESET_COLOR);
|
||||
}
|
||||
gst_structure_foreach (structure, print_field, (gpointer) pfx);
|
||||
gst_structure_foreach_id_str (structure, print_field, (gpointer) pfx);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -719,7 +719,7 @@ print_object_properties_info (GObject * obj, GObjectClass * obj_class,
|
|||
const GstStructure *s = gst_value_get_structure (&value);
|
||||
if (s) {
|
||||
g_print ("\n");
|
||||
gst_structure_foreach (s, print_field,
|
||||
gst_structure_foreach_id_str (s, print_field,
|
||||
(gpointer) " ");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue