diff --git a/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaPlayer.java b/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaPlayer.java index 73ee3103b3..9143a947b6 100644 --- a/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaPlayer.java +++ b/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaPlayer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -828,6 +828,9 @@ public void addMediaPlayerListener(PlayerStateListener listener) { case FINISHED: listener.onFinish(evt); break; + case HALTED: + listener.onHalt(evt); + break; default: break; } diff --git a/modules/javafx.media/src/main/legal/glib.md b/modules/javafx.media/src/main/legal/glib.md index 6e295ee191..6e929f6072 100644 --- a/modules/javafx.media/src/main/legal/glib.md +++ b/modules/javafx.media/src/main/legal/glib.md @@ -1,10 +1,10 @@ -## GNU Glib v2.42.1 +## GNU Glib v2.56.1 ### Glib Notice
-You are receiving a copy of GNU Glib, Version: 2.42.1 in either source or
+You are receiving a copy of GNU Glib, Version: 2.56.1 in either source or
 object code in the JavaFX runtime or JavaFX SDK. The terms of the
-Oracle license do NOT apply to the GNU Glib, Version: 2.42.1; it is
+Oracle license do NOT apply to the GNU Glib, Version: 2.56.1; it is
 licensed under the following license, separately from the Oracle programs
 you receive. If you do not wish to install this library, you may delete
 this library:
diff --git a/modules/javafx.media/src/main/legal/gstreamer.md b/modules/javafx.media/src/main/legal/gstreamer.md
index e99266b9a1..93509580a0 100644
--- a/modules/javafx.media/src/main/legal/gstreamer.md
+++ b/modules/javafx.media/src/main/legal/gstreamer.md
@@ -1,10 +1,10 @@
-## GStreamer v1.4.4
+## GStreamer v1.14.0
 
 ### GStreamer Notice
 
-You are receiving a copy of GStreamer, Version: 1.4.4 in either source or
+You are receiving a copy of GStreamer, Version: 1.14.0 in either source or
 object code in the JavaFX runtime or JavaFX SDK. The terms of the
-Oracle license do NOT apply to the GStreamer, Version: 1.4.4; it is
+Oracle license do NOT apply to the GStreamer, Version: 1.14.0; it is
 licensed under the following license, separately from the Oracle programs
 you receive. If you do not wish to install this library, you may delete
 this library:
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-lite.def b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-lite.def
deleted file mode 100644
index 187770bdc2..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-lite.def
+++ /dev/null
@@ -1,450 +0,0 @@
-EXPORTS
-g_array_append_vals	@1	NONAME
-g_array_free	@2	NONAME
-g_array_get_type	@3	NONAME
-g_array_insert_vals	@4	NONAME
-g_array_new	@5	NONAME
-g_array_prepend_vals	@6	NONAME
-g_array_remove_index	@7	NONAME
-g_array_remove_index_fast	@8	NONAME
-g_array_remove_range	@9	NONAME
-g_array_set_clear_func	@10	NONAME
-g_array_set_size	@11	NONAME
-g_array_sized_new	@12	NONAME
-g_array_sort	@13	NONAME
-g_ascii_digit_value	@14	NONAME
-g_ascii_dtostr	@15	NONAME
-g_ascii_strcasecmp	@16	NONAME
-g_ascii_strdown	@17	NONAME
-g_ascii_strncasecmp	@18	NONAME
-g_ascii_strtod	@19	NONAME
-g_ascii_strtoull	@20	NONAME
-g_ascii_strup	@21	NONAME
-g_ascii_table	@22	NONAME
-g_ascii_tolower	@23	NONAME
-g_ascii_toupper	@24	NONAME
-g_atomic_int_add	@25	NONAME
-g_atomic_int_compare_and_exchange	@26	NONAME
-g_atomic_int_dec_and_test	@27	NONAME
-g_atomic_int_get	@28	NONAME
-g_atomic_int_inc	@29	NONAME
-g_atomic_int_set	@30	NONAME
-g_atomic_pointer_compare_and_exchange	@31	NONAME
-g_atomic_pointer_get	@32	NONAME
-g_atomic_pointer_set	@33	NONAME
-g_base64_decode_inplace	@34	NONAME
-g_base64_encode	@35	NONAME
-g_boxed_type_register_static	@36	NONAME
-g_build_filename	@37	NONAME
-g_build_filenamev	@38	NONAME
-g_bytes_new_take	@39	NONAME
-g_cclosure_marshal_VOID__VOID	@40	NONAME
-g_cclosure_marshal_generic	@41	NONAME
-g_checksum_free	@42	NONAME
-g_checksum_get_string	@43	NONAME
-g_checksum_new	@44	NONAME
-g_checksum_update	@45	NONAME
-g_clear_error	@46	NONAME
-g_cond_broadcast	@47	NONAME
-g_cond_clear	@48	NONAME
-g_cond_init	@49	NONAME
-g_cond_signal	@50	NONAME
-g_cond_wait	@51	NONAME
-g_cond_wait_until	@52	NONAME
-g_convert	@53	NONAME
-g_datalist_id_get_data	@54	NONAME
-g_datalist_id_set_data_full	@55	NONAME
-g_datalist_init	@56	NONAME
-g_date_free	@57	NONAME
-g_date_get_day	@58	NONAME
-g_date_get_julian	@59	NONAME
-g_date_get_month	@60	NONAME
-g_date_get_type	@61	NONAME
-g_date_get_year	@62	NONAME
-g_date_new_dmy	@63	NONAME
-g_date_time_add	@64	NONAME
-g_date_time_add_seconds	@65	NONAME
-g_date_time_get_day_of_month	@66	NONAME
-g_date_time_get_hour	@67	NONAME
-g_date_time_get_microsecond	@68	NONAME
-g_date_time_get_minute	@69	NONAME
-g_date_time_get_month	@70	NONAME
-g_date_time_get_second	@71	NONAME
-g_date_time_get_utc_offset	@72	NONAME
-g_date_time_get_year	@73	NONAME
-g_date_time_new	@74	NONAME
-g_date_time_new_from_unix_local	@75	NONAME
-g_date_time_new_from_unix_utc	@76	NONAME
-g_date_time_new_local	@77	NONAME
-g_date_time_new_now_local	@78	NONAME
-g_date_time_new_now_utc	@79	NONAME
-g_date_time_new_utc	@80	NONAME
-g_date_time_to_local	@81	NONAME
-g_date_time_to_unix	@82	NONAME
-g_date_time_unref	@83	NONAME
-g_date_valid	@84	NONAME
-g_date_valid_dmy	@85	NONAME
-g_dir_close	@86	NONAME
-g_dir_open_utf8	@87	NONAME
-g_dir_read_name_utf8	@88	NONAME
-g_enum_get_value	@89	NONAME
-g_enum_get_value_by_name	@90	NONAME
-g_enum_get_value_by_nick	@91	NONAME
-g_enum_register_static	@92	NONAME
-g_error_free	@93	NONAME
-g_error_get_type	@94	NONAME
-g_error_new	@95	NONAME
-g_error_new_literal	@96	NONAME
-g_file_set_contents	@97	NONAME
-g_file_test_utf8	@98	NONAME
-g_filename_to_uri_utf8	@99	NONAME
-g_flags_get_first_value	@100	NONAME
-g_flags_get_value_by_name	@101	NONAME
-g_flags_get_value_by_nick	@102	NONAME
-g_flags_register_static	@103	NONAME
-g_free	@104	NONAME
-g_get_charset	@105	NONAME
-g_get_current_dir_utf8	@106	NONAME
-g_get_current_time	@107	NONAME
-g_get_monotonic_time	@108	NONAME
-g_get_prgname	@109	NONAME
-g_get_user_cache_dir	@110	NONAME
-g_get_user_data_dir	@111	NONAME
-g_getenv_utf8	@112	NONAME
-g_hash_table_destroy	@113	NONAME
-g_hash_table_foreach	@114	NONAME
-g_hash_table_insert	@115	NONAME
-g_hash_table_iter_init	@116	NONAME
-g_hash_table_iter_next	@117	NONAME
-g_hash_table_lookup	@118	NONAME
-g_hash_table_new	@119	NONAME
-g_hash_table_remove	@120	NONAME
-g_hash_table_replace	@121	NONAME
-g_hash_table_size	@122	NONAME
-g_hook_alloc	@123	NONAME
-g_hook_destroy_link	@124	NONAME
-g_hook_get	@125	NONAME
-g_hook_list_clear	@126	NONAME
-g_hook_list_init	@127	NONAME
-g_hook_list_marshal	@128	NONAME
-g_hook_prepend	@129	NONAME
-g_initially_unowned_get_type	@130	NONAME
-g_int_equal	@131	NONAME
-g_int_hash	@132	NONAME
-g_intern_static_string	@133	NONAME
-g_intern_string	@134	NONAME
-g_key_file_free	@135	NONAME
-g_key_file_get_comment	@136	NONAME
-g_key_file_get_groups	@137	NONAME
-g_key_file_get_keys	@138	NONAME
-g_key_file_get_value	@139	NONAME
-g_key_file_has_group	@140	NONAME
-g_key_file_load_from_file	@141	NONAME
-g_key_file_new	@142	NONAME
-g_key_file_remove_group	@143	NONAME
-g_key_file_remove_key	@144	NONAME
-g_key_file_set_comment	@145	NONAME
-g_key_file_set_string	@146	NONAME
-g_key_file_set_value	@147	NONAME
-g_key_file_to_data	@148	NONAME
-g_list_alloc	@149	NONAME
-g_list_append	@150	NONAME
-g_list_copy	@151	NONAME
-g_list_delete_link	@152	NONAME
-g_list_find	@153	NONAME
-g_list_find_custom	@154	NONAME
-g_list_first	@155	NONAME
-g_list_foreach	@156	NONAME
-g_list_free	@157	NONAME
-g_list_free_full	@158	NONAME
-g_list_insert	@159	NONAME
-g_list_insert_sorted	@160	NONAME
-g_list_last	@161	NONAME
-g_list_length	@162	NONAME
-g_list_nth_data	@163	NONAME
-g_list_position	@164	NONAME
-g_list_prepend	@165	NONAME
-g_list_remove	@166	NONAME
-g_list_reverse	@167	NONAME
-g_list_sort	@168	NONAME
-g_locale_to_utf8	@169	NONAME
-g_log	@170	NONAME
-g_log_default_handler	@171	NONAME
-g_log_set_default_handler	@172	NONAME
-g_log_set_handler	@173	NONAME
-g_main_context_get_thread_default	@174	NONAME
-g_main_context_new	@175	NONAME
-g_main_context_unref	@176	NONAME
-g_main_loop_is_running	@177	NONAME
-g_main_loop_new	@178	NONAME
-g_main_loop_quit	@179	NONAME
-g_main_loop_run	@180	NONAME
-g_main_loop_unref	@181	NONAME
-g_malloc	@182	NONAME
-g_malloc0	@183	NONAME
-g_malloc0_n	@184	NONAME
-g_malloc_n	@185	NONAME
-g_memdup	@186	NONAME
-g_mkdir_with_parents	@187	NONAME
-g_module_close	@188	NONAME
-g_module_error	@189	NONAME
-g_module_make_resident	@190	NONAME
-g_module_open_utf8	@191	NONAME
-g_module_supported	@192	NONAME
-g_module_symbol	@193	NONAME
-g_mutex_clear	@194	NONAME
-g_mutex_init	@195	NONAME
-g_mutex_lock	@196	NONAME
-g_mutex_unlock	@197	NONAME
-g_node_children_foreach	@198	NONAME
-g_node_depth	@199	NONAME
-g_node_destroy	@200	NONAME
-g_node_insert_before	@201	NONAME
-g_node_new	@202	NONAME
-g_node_traverse	@203	NONAME
-g_object_add_weak_pointer	@204	NONAME
-g_object_class_find_property	@205	NONAME
-g_object_class_install_properties	@206	NONAME
-g_object_class_install_property	@207	NONAME
-g_object_class_list_properties	@208	NONAME
-g_object_freeze_notify	@209	NONAME
-g_object_get	@210	NONAME
-g_object_get_property	@211	NONAME
-g_object_interface_install_property	@212	NONAME
-g_object_new	@213	NONAME
-g_object_newv	@214	NONAME
-g_object_notify	@215	NONAME
-g_object_notify_by_pspec	@216	NONAME
-g_object_ref	@217	NONAME
-g_object_ref_sink	@218	NONAME
-g_object_remove_weak_pointer	@219	NONAME
-g_object_set	@220	NONAME
-g_object_set_property	@221	NONAME
-g_object_thaw_notify	@222	NONAME
-g_object_unref	@223	NONAME
-g_once_impl	@224	NONAME
-g_once_init_enter	@225	NONAME
-g_once_init_leave	@226	NONAME
-g_param_spec_boolean	@227	NONAME
-g_param_spec_boxed	@228	NONAME
-g_param_spec_double	@229	NONAME
-g_param_spec_enum	@230	NONAME
-g_param_spec_float	@231	NONAME
-g_param_spec_int	@232	NONAME
-g_param_spec_int64	@233	NONAME
-g_param_spec_object	@234	NONAME
-g_param_spec_string	@235	NONAME
-g_param_spec_uint	@236	NONAME
-g_param_spec_uint64	@237	NONAME
-g_param_type_register_static	@238	NONAME
-g_parse_debug_string	@239	NONAME
-g_path_get_basename	@240	NONAME
-g_path_is_absolute	@241	NONAME
-g_pointer_type_register_static	@242	NONAME
-g_print	@243	NONAME
-g_printerr	@244	NONAME
-g_private_get	@245	NONAME
-g_private_set	@246	NONAME
-g_propagate_error	@247	NONAME
-g_qsort_with_data	@248	NONAME
-g_quark_from_static_string	@249	NONAME
-g_quark_from_string	@250	NONAME
-g_quark_to_string	@251	NONAME
-g_queue_clear	@252	NONAME
-g_queue_delete_link	@253	NONAME
-g_queue_find	@254	NONAME
-g_queue_find_custom	@255	NONAME
-g_queue_foreach	@256	NONAME
-g_queue_free	@257	NONAME
-g_queue_init	@258	NONAME
-g_queue_is_empty	@259	NONAME
-g_queue_new	@260	NONAME
-g_queue_pop_head	@261	NONAME
-g_queue_push_head	@262	NONAME
-g_queue_push_tail	@263	NONAME
-g_queue_remove	@264	NONAME
-g_random_int	@265	NONAME
-g_realloc	@266	NONAME
-g_realloc_n	@267	NONAME
-g_rec_mutex_clear	@268	NONAME
-g_rec_mutex_init	@269	NONAME
-g_rec_mutex_lock	@270	NONAME
-g_rec_mutex_unlock	@271	NONAME
-g_rename	@272	NONAME
-g_rw_lock_init	@273	NONAME
-g_rw_lock_reader_lock	@274	NONAME
-g_rw_lock_reader_unlock	@275	NONAME
-g_rw_lock_writer_lock	@276	NONAME
-g_rw_lock_writer_unlock	@277	NONAME
-g_set_error	@278	NONAME
-g_signal_connect_data	@279	NONAME
-g_signal_emit	@280	NONAME
-g_signal_handler_disconnect	@281	NONAME
-g_signal_handlers_destroy	@282	NONAME
-g_signal_handlers_disconnect_matched	@283	NONAME
-g_signal_new	@284	NONAME
-g_slice_alloc	@285	NONAME
-g_slice_alloc0	@286	NONAME
-g_slice_copy	@287	NONAME
-g_slice_free1	@288	NONAME
-g_slist_append	@289	NONAME
-g_slist_concat	@290	NONAME
-g_slist_delete_link	@291	NONAME
-g_slist_foreach	@292	NONAME
-g_slist_free	@293	NONAME
-g_slist_insert_before	@294	NONAME
-g_slist_prepend	@295	NONAME
-g_slist_remove	@296	NONAME
-g_slist_reverse	@297	NONAME
-g_snprintf	@298	NONAME
-g_source_add_poll	@299	NONAME
-g_source_attach	@300	NONAME
-g_source_destroy	@301	NONAME
-g_source_new	@302	NONAME
-g_source_remove	@303	NONAME
-g_source_set_callback	@304	NONAME
-g_source_set_name	@305	NONAME
-g_source_set_priority	@306	NONAME
-g_source_unref	@307	NONAME
-g_spawn_async_with_pipes_utf8	@308	NONAME
-g_spawn_close_pid	@309	NONAME
-g_stat	@310	NONAME
-g_str_equal	@311	NONAME
-g_str_has_prefix	@312	NONAME
-g_str_has_suffix	@313	NONAME
-g_str_hash	@314	NONAME
-g_strchomp	@315	NONAME
-g_strchug	@316	NONAME
-g_strcmp0	@317	NONAME
-g_strconcat	@318	NONAME
-g_strdelimit	@319	NONAME
-g_strdup	@320	NONAME
-g_strdup_printf	@321	NONAME
-g_strdup_value_contents	@322	NONAME
-g_strdup_vprintf	@323	NONAME
-g_strdupv	@324	NONAME
-g_strerror	@325	NONAME
-g_strfreev	@326	NONAME
-g_string_append	@327	NONAME
-g_string_append_len	@328	NONAME
-g_string_append_printf	@329	NONAME
-g_string_free	@330	NONAME
-g_string_insert_c	@331	NONAME
-g_string_new	@332	NONAME
-g_string_set_size	@333	NONAME
-g_string_sized_new	@334	NONAME
-g_string_truncate	@335	NONAME
-g_strjoin	@336	NONAME
-g_strlcpy	@337	NONAME
-g_strndup	@338	NONAME
-g_strsplit	@339	NONAME
-g_strsplit_set	@340	NONAME
-g_strstr_len	@341	NONAME
-g_strtod	@342	NONAME
-g_strv_length	@343	NONAME
-g_thread_get_type	@344	NONAME
-g_thread_join	@345	NONAME
-g_thread_new	@346	NONAME
-g_thread_pool_free	@347	NONAME
-g_thread_pool_new	@348	NONAME
-g_thread_pool_push	@349	NONAME
-g_thread_pool_set_max_unused_threads	@350	NONAME
-g_thread_self	@351	NONAME
-g_thread_try_new	@352	NONAME
-g_time_zone_new	@353	NONAME
-g_time_zone_unref	@354	NONAME
-g_timeout_add_full	@355	NONAME
-g_timer_destroy	@356	NONAME
-g_timer_elapsed	@357	NONAME
-g_timer_new	@358	NONAME
-g_timer_start	@359	NONAME
-g_tree_destroy	@360	NONAME
-g_tree_insert	@361	NONAME
-g_tree_new_with_data	@362	NONAME
-g_tree_search	@363	NONAME
-g_try_malloc	@364	NONAME
-g_try_malloc0_n	@365	NONAME
-g_try_realloc_n	@366	NONAME
-g_type_add_interface_static	@367	NONAME
-g_type_check_class_cast	@368	NONAME
-g_type_check_instance_cast	@369	NONAME
-g_type_check_instance_is_a	@370	NONAME
-g_type_check_instance_is_fundamentally_a	@371	NONAME
-g_type_check_value	@372	NONAME
-g_type_check_value_holds	@373	NONAME
-g_type_class_add_private	@374	NONAME
-g_type_class_adjust_private_offset	@375	NONAME
-g_type_class_peek	@376	NONAME
-g_type_class_peek_parent	@377	NONAME
-g_type_class_ref	@378	NONAME
-g_type_class_unref	@379	NONAME
-g_type_from_name	@380	NONAME
-g_type_fundamental	@381	NONAME
-g_type_fundamental_next	@382	NONAME
-g_type_get_qdata	@383	NONAME
-g_type_init	@384	NONAME
-g_type_instance_get_private	@385	NONAME
-g_type_interface_add_prerequisite	@386	NONAME
-g_type_interface_peek	@387	NONAME
-g_type_interfaces	@388	NONAME
-g_type_is_a	@389	NONAME
-g_type_name	@390	NONAME
-g_type_parent	@391	NONAME
-g_type_qname	@392	NONAME
-g_type_register_fundamental	@393	NONAME
-g_type_register_static	@394	NONAME
-g_type_register_static_simple	@395	NONAME
-g_type_set_qdata	@396	NONAME
-g_type_value_table_peek	@397	NONAME
-g_unlink	@398	NONAME
-g_utf16_to_utf8	@399	NONAME
-g_utf8_validate	@400	NONAME
-g_value_copy	@401	NONAME
-g_value_dup_boxed	@402	NONAME
-g_value_dup_object	@403	NONAME
-g_value_dup_string	@404	NONAME
-g_value_get_boolean	@405	NONAME
-g_value_get_boxed	@406	NONAME
-g_value_get_double	@407	NONAME
-g_value_get_enum	@408	NONAME
-g_value_get_flags	@409	NONAME
-g_value_get_float	@410	NONAME
-g_value_get_int	@411	NONAME
-g_value_get_int64	@412	NONAME
-g_value_get_long	@413	NONAME
-g_value_get_object	@414	NONAME
-g_value_get_pointer	@415	NONAME
-g_value_get_string	@416	NONAME
-g_value_get_uchar	@417	NONAME
-g_value_get_uint	@418	NONAME
-g_value_get_uint64	@419	NONAME
-g_value_get_ulong	@420	NONAME
-g_value_init	@421	NONAME
-g_value_peek_pointer	@422	NONAME
-g_value_register_transform_func	@423	NONAME
-g_value_reset	@424	NONAME
-g_value_set_boolean	@425	NONAME
-g_value_set_boxed	@426	NONAME
-g_value_set_double	@427	NONAME
-g_value_set_enum	@428	NONAME
-g_value_set_flags	@429	NONAME
-g_value_set_float	@430	NONAME
-g_value_set_int	@431	NONAME
-g_value_set_int64	@432	NONAME
-g_value_set_long	@433	NONAME
-g_value_set_object	@434	NONAME
-g_value_set_pointer	@435	NONAME
-g_value_set_static_string	@436	NONAME
-g_value_set_string	@437	NONAME
-g_value_set_uchar	@438	NONAME
-g_value_set_uint	@439	NONAME
-g_value_set_uint64	@440	NONAME
-g_value_set_ulong	@441	NONAME
-g_value_take_boxed	@442	NONAME
-g_value_take_object	@443	NONAME
-g_value_take_string	@444	NONAME
-g_value_transform	@445	NONAME
-g_value_unset	@446	NONAME
-g_vasprintf	@447	NONAME
-g_warn_message	@448	NONAME
-g_win32_get_package_installation_directory_of_module	@449	NONAME
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-liteD.def b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-liteD.def
deleted file mode 100644
index 187770bdc2..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glib-liteD.def
+++ /dev/null
@@ -1,450 +0,0 @@
-EXPORTS
-g_array_append_vals	@1	NONAME
-g_array_free	@2	NONAME
-g_array_get_type	@3	NONAME
-g_array_insert_vals	@4	NONAME
-g_array_new	@5	NONAME
-g_array_prepend_vals	@6	NONAME
-g_array_remove_index	@7	NONAME
-g_array_remove_index_fast	@8	NONAME
-g_array_remove_range	@9	NONAME
-g_array_set_clear_func	@10	NONAME
-g_array_set_size	@11	NONAME
-g_array_sized_new	@12	NONAME
-g_array_sort	@13	NONAME
-g_ascii_digit_value	@14	NONAME
-g_ascii_dtostr	@15	NONAME
-g_ascii_strcasecmp	@16	NONAME
-g_ascii_strdown	@17	NONAME
-g_ascii_strncasecmp	@18	NONAME
-g_ascii_strtod	@19	NONAME
-g_ascii_strtoull	@20	NONAME
-g_ascii_strup	@21	NONAME
-g_ascii_table	@22	NONAME
-g_ascii_tolower	@23	NONAME
-g_ascii_toupper	@24	NONAME
-g_atomic_int_add	@25	NONAME
-g_atomic_int_compare_and_exchange	@26	NONAME
-g_atomic_int_dec_and_test	@27	NONAME
-g_atomic_int_get	@28	NONAME
-g_atomic_int_inc	@29	NONAME
-g_atomic_int_set	@30	NONAME
-g_atomic_pointer_compare_and_exchange	@31	NONAME
-g_atomic_pointer_get	@32	NONAME
-g_atomic_pointer_set	@33	NONAME
-g_base64_decode_inplace	@34	NONAME
-g_base64_encode	@35	NONAME
-g_boxed_type_register_static	@36	NONAME
-g_build_filename	@37	NONAME
-g_build_filenamev	@38	NONAME
-g_bytes_new_take	@39	NONAME
-g_cclosure_marshal_VOID__VOID	@40	NONAME
-g_cclosure_marshal_generic	@41	NONAME
-g_checksum_free	@42	NONAME
-g_checksum_get_string	@43	NONAME
-g_checksum_new	@44	NONAME
-g_checksum_update	@45	NONAME
-g_clear_error	@46	NONAME
-g_cond_broadcast	@47	NONAME
-g_cond_clear	@48	NONAME
-g_cond_init	@49	NONAME
-g_cond_signal	@50	NONAME
-g_cond_wait	@51	NONAME
-g_cond_wait_until	@52	NONAME
-g_convert	@53	NONAME
-g_datalist_id_get_data	@54	NONAME
-g_datalist_id_set_data_full	@55	NONAME
-g_datalist_init	@56	NONAME
-g_date_free	@57	NONAME
-g_date_get_day	@58	NONAME
-g_date_get_julian	@59	NONAME
-g_date_get_month	@60	NONAME
-g_date_get_type	@61	NONAME
-g_date_get_year	@62	NONAME
-g_date_new_dmy	@63	NONAME
-g_date_time_add	@64	NONAME
-g_date_time_add_seconds	@65	NONAME
-g_date_time_get_day_of_month	@66	NONAME
-g_date_time_get_hour	@67	NONAME
-g_date_time_get_microsecond	@68	NONAME
-g_date_time_get_minute	@69	NONAME
-g_date_time_get_month	@70	NONAME
-g_date_time_get_second	@71	NONAME
-g_date_time_get_utc_offset	@72	NONAME
-g_date_time_get_year	@73	NONAME
-g_date_time_new	@74	NONAME
-g_date_time_new_from_unix_local	@75	NONAME
-g_date_time_new_from_unix_utc	@76	NONAME
-g_date_time_new_local	@77	NONAME
-g_date_time_new_now_local	@78	NONAME
-g_date_time_new_now_utc	@79	NONAME
-g_date_time_new_utc	@80	NONAME
-g_date_time_to_local	@81	NONAME
-g_date_time_to_unix	@82	NONAME
-g_date_time_unref	@83	NONAME
-g_date_valid	@84	NONAME
-g_date_valid_dmy	@85	NONAME
-g_dir_close	@86	NONAME
-g_dir_open_utf8	@87	NONAME
-g_dir_read_name_utf8	@88	NONAME
-g_enum_get_value	@89	NONAME
-g_enum_get_value_by_name	@90	NONAME
-g_enum_get_value_by_nick	@91	NONAME
-g_enum_register_static	@92	NONAME
-g_error_free	@93	NONAME
-g_error_get_type	@94	NONAME
-g_error_new	@95	NONAME
-g_error_new_literal	@96	NONAME
-g_file_set_contents	@97	NONAME
-g_file_test_utf8	@98	NONAME
-g_filename_to_uri_utf8	@99	NONAME
-g_flags_get_first_value	@100	NONAME
-g_flags_get_value_by_name	@101	NONAME
-g_flags_get_value_by_nick	@102	NONAME
-g_flags_register_static	@103	NONAME
-g_free	@104	NONAME
-g_get_charset	@105	NONAME
-g_get_current_dir_utf8	@106	NONAME
-g_get_current_time	@107	NONAME
-g_get_monotonic_time	@108	NONAME
-g_get_prgname	@109	NONAME
-g_get_user_cache_dir	@110	NONAME
-g_get_user_data_dir	@111	NONAME
-g_getenv_utf8	@112	NONAME
-g_hash_table_destroy	@113	NONAME
-g_hash_table_foreach	@114	NONAME
-g_hash_table_insert	@115	NONAME
-g_hash_table_iter_init	@116	NONAME
-g_hash_table_iter_next	@117	NONAME
-g_hash_table_lookup	@118	NONAME
-g_hash_table_new	@119	NONAME
-g_hash_table_remove	@120	NONAME
-g_hash_table_replace	@121	NONAME
-g_hash_table_size	@122	NONAME
-g_hook_alloc	@123	NONAME
-g_hook_destroy_link	@124	NONAME
-g_hook_get	@125	NONAME
-g_hook_list_clear	@126	NONAME
-g_hook_list_init	@127	NONAME
-g_hook_list_marshal	@128	NONAME
-g_hook_prepend	@129	NONAME
-g_initially_unowned_get_type	@130	NONAME
-g_int_equal	@131	NONAME
-g_int_hash	@132	NONAME
-g_intern_static_string	@133	NONAME
-g_intern_string	@134	NONAME
-g_key_file_free	@135	NONAME
-g_key_file_get_comment	@136	NONAME
-g_key_file_get_groups	@137	NONAME
-g_key_file_get_keys	@138	NONAME
-g_key_file_get_value	@139	NONAME
-g_key_file_has_group	@140	NONAME
-g_key_file_load_from_file	@141	NONAME
-g_key_file_new	@142	NONAME
-g_key_file_remove_group	@143	NONAME
-g_key_file_remove_key	@144	NONAME
-g_key_file_set_comment	@145	NONAME
-g_key_file_set_string	@146	NONAME
-g_key_file_set_value	@147	NONAME
-g_key_file_to_data	@148	NONAME
-g_list_alloc	@149	NONAME
-g_list_append	@150	NONAME
-g_list_copy	@151	NONAME
-g_list_delete_link	@152	NONAME
-g_list_find	@153	NONAME
-g_list_find_custom	@154	NONAME
-g_list_first	@155	NONAME
-g_list_foreach	@156	NONAME
-g_list_free	@157	NONAME
-g_list_free_full	@158	NONAME
-g_list_insert	@159	NONAME
-g_list_insert_sorted	@160	NONAME
-g_list_last	@161	NONAME
-g_list_length	@162	NONAME
-g_list_nth_data	@163	NONAME
-g_list_position	@164	NONAME
-g_list_prepend	@165	NONAME
-g_list_remove	@166	NONAME
-g_list_reverse	@167	NONAME
-g_list_sort	@168	NONAME
-g_locale_to_utf8	@169	NONAME
-g_log	@170	NONAME
-g_log_default_handler	@171	NONAME
-g_log_set_default_handler	@172	NONAME
-g_log_set_handler	@173	NONAME
-g_main_context_get_thread_default	@174	NONAME
-g_main_context_new	@175	NONAME
-g_main_context_unref	@176	NONAME
-g_main_loop_is_running	@177	NONAME
-g_main_loop_new	@178	NONAME
-g_main_loop_quit	@179	NONAME
-g_main_loop_run	@180	NONAME
-g_main_loop_unref	@181	NONAME
-g_malloc	@182	NONAME
-g_malloc0	@183	NONAME
-g_malloc0_n	@184	NONAME
-g_malloc_n	@185	NONAME
-g_memdup	@186	NONAME
-g_mkdir_with_parents	@187	NONAME
-g_module_close	@188	NONAME
-g_module_error	@189	NONAME
-g_module_make_resident	@190	NONAME
-g_module_open_utf8	@191	NONAME
-g_module_supported	@192	NONAME
-g_module_symbol	@193	NONAME
-g_mutex_clear	@194	NONAME
-g_mutex_init	@195	NONAME
-g_mutex_lock	@196	NONAME
-g_mutex_unlock	@197	NONAME
-g_node_children_foreach	@198	NONAME
-g_node_depth	@199	NONAME
-g_node_destroy	@200	NONAME
-g_node_insert_before	@201	NONAME
-g_node_new	@202	NONAME
-g_node_traverse	@203	NONAME
-g_object_add_weak_pointer	@204	NONAME
-g_object_class_find_property	@205	NONAME
-g_object_class_install_properties	@206	NONAME
-g_object_class_install_property	@207	NONAME
-g_object_class_list_properties	@208	NONAME
-g_object_freeze_notify	@209	NONAME
-g_object_get	@210	NONAME
-g_object_get_property	@211	NONAME
-g_object_interface_install_property	@212	NONAME
-g_object_new	@213	NONAME
-g_object_newv	@214	NONAME
-g_object_notify	@215	NONAME
-g_object_notify_by_pspec	@216	NONAME
-g_object_ref	@217	NONAME
-g_object_ref_sink	@218	NONAME
-g_object_remove_weak_pointer	@219	NONAME
-g_object_set	@220	NONAME
-g_object_set_property	@221	NONAME
-g_object_thaw_notify	@222	NONAME
-g_object_unref	@223	NONAME
-g_once_impl	@224	NONAME
-g_once_init_enter	@225	NONAME
-g_once_init_leave	@226	NONAME
-g_param_spec_boolean	@227	NONAME
-g_param_spec_boxed	@228	NONAME
-g_param_spec_double	@229	NONAME
-g_param_spec_enum	@230	NONAME
-g_param_spec_float	@231	NONAME
-g_param_spec_int	@232	NONAME
-g_param_spec_int64	@233	NONAME
-g_param_spec_object	@234	NONAME
-g_param_spec_string	@235	NONAME
-g_param_spec_uint	@236	NONAME
-g_param_spec_uint64	@237	NONAME
-g_param_type_register_static	@238	NONAME
-g_parse_debug_string	@239	NONAME
-g_path_get_basename	@240	NONAME
-g_path_is_absolute	@241	NONAME
-g_pointer_type_register_static	@242	NONAME
-g_print	@243	NONAME
-g_printerr	@244	NONAME
-g_private_get	@245	NONAME
-g_private_set	@246	NONAME
-g_propagate_error	@247	NONAME
-g_qsort_with_data	@248	NONAME
-g_quark_from_static_string	@249	NONAME
-g_quark_from_string	@250	NONAME
-g_quark_to_string	@251	NONAME
-g_queue_clear	@252	NONAME
-g_queue_delete_link	@253	NONAME
-g_queue_find	@254	NONAME
-g_queue_find_custom	@255	NONAME
-g_queue_foreach	@256	NONAME
-g_queue_free	@257	NONAME
-g_queue_init	@258	NONAME
-g_queue_is_empty	@259	NONAME
-g_queue_new	@260	NONAME
-g_queue_pop_head	@261	NONAME
-g_queue_push_head	@262	NONAME
-g_queue_push_tail	@263	NONAME
-g_queue_remove	@264	NONAME
-g_random_int	@265	NONAME
-g_realloc	@266	NONAME
-g_realloc_n	@267	NONAME
-g_rec_mutex_clear	@268	NONAME
-g_rec_mutex_init	@269	NONAME
-g_rec_mutex_lock	@270	NONAME
-g_rec_mutex_unlock	@271	NONAME
-g_rename	@272	NONAME
-g_rw_lock_init	@273	NONAME
-g_rw_lock_reader_lock	@274	NONAME
-g_rw_lock_reader_unlock	@275	NONAME
-g_rw_lock_writer_lock	@276	NONAME
-g_rw_lock_writer_unlock	@277	NONAME
-g_set_error	@278	NONAME
-g_signal_connect_data	@279	NONAME
-g_signal_emit	@280	NONAME
-g_signal_handler_disconnect	@281	NONAME
-g_signal_handlers_destroy	@282	NONAME
-g_signal_handlers_disconnect_matched	@283	NONAME
-g_signal_new	@284	NONAME
-g_slice_alloc	@285	NONAME
-g_slice_alloc0	@286	NONAME
-g_slice_copy	@287	NONAME
-g_slice_free1	@288	NONAME
-g_slist_append	@289	NONAME
-g_slist_concat	@290	NONAME
-g_slist_delete_link	@291	NONAME
-g_slist_foreach	@292	NONAME
-g_slist_free	@293	NONAME
-g_slist_insert_before	@294	NONAME
-g_slist_prepend	@295	NONAME
-g_slist_remove	@296	NONAME
-g_slist_reverse	@297	NONAME
-g_snprintf	@298	NONAME
-g_source_add_poll	@299	NONAME
-g_source_attach	@300	NONAME
-g_source_destroy	@301	NONAME
-g_source_new	@302	NONAME
-g_source_remove	@303	NONAME
-g_source_set_callback	@304	NONAME
-g_source_set_name	@305	NONAME
-g_source_set_priority	@306	NONAME
-g_source_unref	@307	NONAME
-g_spawn_async_with_pipes_utf8	@308	NONAME
-g_spawn_close_pid	@309	NONAME
-g_stat	@310	NONAME
-g_str_equal	@311	NONAME
-g_str_has_prefix	@312	NONAME
-g_str_has_suffix	@313	NONAME
-g_str_hash	@314	NONAME
-g_strchomp	@315	NONAME
-g_strchug	@316	NONAME
-g_strcmp0	@317	NONAME
-g_strconcat	@318	NONAME
-g_strdelimit	@319	NONAME
-g_strdup	@320	NONAME
-g_strdup_printf	@321	NONAME
-g_strdup_value_contents	@322	NONAME
-g_strdup_vprintf	@323	NONAME
-g_strdupv	@324	NONAME
-g_strerror	@325	NONAME
-g_strfreev	@326	NONAME
-g_string_append	@327	NONAME
-g_string_append_len	@328	NONAME
-g_string_append_printf	@329	NONAME
-g_string_free	@330	NONAME
-g_string_insert_c	@331	NONAME
-g_string_new	@332	NONAME
-g_string_set_size	@333	NONAME
-g_string_sized_new	@334	NONAME
-g_string_truncate	@335	NONAME
-g_strjoin	@336	NONAME
-g_strlcpy	@337	NONAME
-g_strndup	@338	NONAME
-g_strsplit	@339	NONAME
-g_strsplit_set	@340	NONAME
-g_strstr_len	@341	NONAME
-g_strtod	@342	NONAME
-g_strv_length	@343	NONAME
-g_thread_get_type	@344	NONAME
-g_thread_join	@345	NONAME
-g_thread_new	@346	NONAME
-g_thread_pool_free	@347	NONAME
-g_thread_pool_new	@348	NONAME
-g_thread_pool_push	@349	NONAME
-g_thread_pool_set_max_unused_threads	@350	NONAME
-g_thread_self	@351	NONAME
-g_thread_try_new	@352	NONAME
-g_time_zone_new	@353	NONAME
-g_time_zone_unref	@354	NONAME
-g_timeout_add_full	@355	NONAME
-g_timer_destroy	@356	NONAME
-g_timer_elapsed	@357	NONAME
-g_timer_new	@358	NONAME
-g_timer_start	@359	NONAME
-g_tree_destroy	@360	NONAME
-g_tree_insert	@361	NONAME
-g_tree_new_with_data	@362	NONAME
-g_tree_search	@363	NONAME
-g_try_malloc	@364	NONAME
-g_try_malloc0_n	@365	NONAME
-g_try_realloc_n	@366	NONAME
-g_type_add_interface_static	@367	NONAME
-g_type_check_class_cast	@368	NONAME
-g_type_check_instance_cast	@369	NONAME
-g_type_check_instance_is_a	@370	NONAME
-g_type_check_instance_is_fundamentally_a	@371	NONAME
-g_type_check_value	@372	NONAME
-g_type_check_value_holds	@373	NONAME
-g_type_class_add_private	@374	NONAME
-g_type_class_adjust_private_offset	@375	NONAME
-g_type_class_peek	@376	NONAME
-g_type_class_peek_parent	@377	NONAME
-g_type_class_ref	@378	NONAME
-g_type_class_unref	@379	NONAME
-g_type_from_name	@380	NONAME
-g_type_fundamental	@381	NONAME
-g_type_fundamental_next	@382	NONAME
-g_type_get_qdata	@383	NONAME
-g_type_init	@384	NONAME
-g_type_instance_get_private	@385	NONAME
-g_type_interface_add_prerequisite	@386	NONAME
-g_type_interface_peek	@387	NONAME
-g_type_interfaces	@388	NONAME
-g_type_is_a	@389	NONAME
-g_type_name	@390	NONAME
-g_type_parent	@391	NONAME
-g_type_qname	@392	NONAME
-g_type_register_fundamental	@393	NONAME
-g_type_register_static	@394	NONAME
-g_type_register_static_simple	@395	NONAME
-g_type_set_qdata	@396	NONAME
-g_type_value_table_peek	@397	NONAME
-g_unlink	@398	NONAME
-g_utf16_to_utf8	@399	NONAME
-g_utf8_validate	@400	NONAME
-g_value_copy	@401	NONAME
-g_value_dup_boxed	@402	NONAME
-g_value_dup_object	@403	NONAME
-g_value_dup_string	@404	NONAME
-g_value_get_boolean	@405	NONAME
-g_value_get_boxed	@406	NONAME
-g_value_get_double	@407	NONAME
-g_value_get_enum	@408	NONAME
-g_value_get_flags	@409	NONAME
-g_value_get_float	@410	NONAME
-g_value_get_int	@411	NONAME
-g_value_get_int64	@412	NONAME
-g_value_get_long	@413	NONAME
-g_value_get_object	@414	NONAME
-g_value_get_pointer	@415	NONAME
-g_value_get_string	@416	NONAME
-g_value_get_uchar	@417	NONAME
-g_value_get_uint	@418	NONAME
-g_value_get_uint64	@419	NONAME
-g_value_get_ulong	@420	NONAME
-g_value_init	@421	NONAME
-g_value_peek_pointer	@422	NONAME
-g_value_register_transform_func	@423	NONAME
-g_value_reset	@424	NONAME
-g_value_set_boolean	@425	NONAME
-g_value_set_boxed	@426	NONAME
-g_value_set_double	@427	NONAME
-g_value_set_enum	@428	NONAME
-g_value_set_flags	@429	NONAME
-g_value_set_float	@430	NONAME
-g_value_set_int	@431	NONAME
-g_value_set_int64	@432	NONAME
-g_value_set_long	@433	NONAME
-g_value_set_object	@434	NONAME
-g_value_set_pointer	@435	NONAME
-g_value_set_static_string	@436	NONAME
-g_value_set_string	@437	NONAME
-g_value_set_uchar	@438	NONAME
-g_value_set_uint	@439	NONAME
-g_value_set_uint64	@440	NONAME
-g_value_set_ulong	@441	NONAME
-g_value_take_boxed	@442	NONAME
-g_value_take_object	@443	NONAME
-g_value_take_string	@444	NONAME
-g_value_transform	@445	NONAME
-g_value_unset	@446	NONAME
-g_vasprintf	@447	NONAME
-g_warn_message	@448	NONAME
-g_win32_get_package_installation_directory_of_module	@449	NONAME
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/deprecated/gthread.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/deprecated/gthread.h
deleted file mode 100644
index 59a3924c8d..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/deprecated/gthread.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see .
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-#ifndef __G_DEPRECATED_THREAD_H__
-#define __G_DEPRECATED_THREAD_H__
-
-#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only  can be included directly."
-#endif
-
-#include 
-
-G_BEGIN_DECLS
-
-#ifndef G_DISABLE_DEPRECATED
-
-typedef enum
-{
-  G_THREAD_PRIORITY_LOW,
-  G_THREAD_PRIORITY_NORMAL,
-  G_THREAD_PRIORITY_HIGH,
-  G_THREAD_PRIORITY_URGENT
-} GThreadPriority;
-
-#endif
-
-struct  _GThread
-{
-  /*< private >*/
-  GThreadFunc func;
-  gpointer data;
-  gboolean joinable;
-#ifndef G_DISABLE_DEPRECATED
-  GThreadPriority priority;
-#endif
-};
-
-#ifndef G_DISABLE_DEPRECATED
-
-typedef struct _GThreadFunctions GThreadFunctions;
-struct _GThreadFunctions
-{
-  GMutex*  (*mutex_new)           (void);
-  void     (*mutex_lock)          (GMutex               *mutex);
-  gboolean (*mutex_trylock)       (GMutex               *mutex);
-  void     (*mutex_unlock)        (GMutex               *mutex);
-  void     (*mutex_free)          (GMutex               *mutex);
-  GCond*   (*cond_new)            (void);
-  void     (*cond_signal)         (GCond                *cond);
-  void     (*cond_broadcast)      (GCond                *cond);
-  void     (*cond_wait)           (GCond                *cond,
-                                   GMutex               *mutex);
-  gboolean (*cond_timed_wait)     (GCond                *cond,
-                                   GMutex               *mutex,
-                                   GTimeVal             *end_time);
-  void      (*cond_free)          (GCond                *cond);
-  GPrivate* (*private_new)        (GDestroyNotify        destructor);
-  gpointer  (*private_get)        (GPrivate             *private_key);
-  void      (*private_set)        (GPrivate             *private_key,
-                                   gpointer              data);
-  void      (*thread_create)      (GThreadFunc           func,
-                                   gpointer              data,
-                                   gulong                stack_size,
-                                   gboolean              joinable,
-                                   gboolean              bound,
-                                   GThreadPriority       priority,
-                                   gpointer              thread,
-                                   GError              **error);
-  void      (*thread_yield)       (void);
-  void      (*thread_join)        (gpointer              thread);
-  void      (*thread_exit)        (void);
-  void      (*thread_set_priority)(gpointer              thread,
-                                   GThreadPriority       priority);
-  void      (*thread_self)        (gpointer              thread);
-  gboolean  (*thread_equal)       (gpointer              thread1,
-                                   gpointer              thread2);
-};
-
-GLIB_VAR GThreadFunctions       g_thread_functions_for_glib_use;
-GLIB_VAR gboolean               g_thread_use_default_impl;
-
-GLIB_VAR guint64   (*g_thread_gettime) (void);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new)
-GThread *g_thread_create       (GThreadFunc       func,
-                                gpointer          data,
-                                gboolean          joinable,
-                                GError          **error);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new)
-GThread *g_thread_create_full  (GThreadFunc       func,
-                                gpointer          data,
-                                gulong            stack_size,
-                                gboolean          joinable,
-                                gboolean          bound,
-                                GThreadPriority   priority,
-                                GError          **error);
-
-GLIB_DEPRECATED_IN_2_32
-void     g_thread_set_priority (GThread          *thread,
-                                GThreadPriority   priority);
-
-GLIB_DEPRECATED_IN_2_32
-void     g_thread_foreach      (GFunc             thread_func,
-                                gpointer          user_data);
-
-#ifndef G_OS_WIN32
-#include 
-#include 
-#endif
-
-#define g_static_mutex_get_mutex g_static_mutex_get_mutex_impl
-#define G_STATIC_MUTEX_INIT { NULL }
-typedef struct
-{
-  GMutex *mutex;
-#ifndef G_OS_WIN32
-  /* only for ABI compatibility reasons */
-  pthread_mutex_t unused;
-#endif
-} GStaticMutex;
-
-#define g_static_mutex_lock(mutex) \
-    g_mutex_lock (g_static_mutex_get_mutex (mutex))
-#define g_static_mutex_trylock(mutex) \
-    g_mutex_trylock (g_static_mutex_get_mutex (mutex))
-#define g_static_mutex_unlock(mutex) \
-    g_mutex_unlock (g_static_mutex_get_mutex (mutex))
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_init)
-void    g_static_mutex_init           (GStaticMutex *mutex);
-GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_clear)
-void    g_static_mutex_free           (GStaticMutex *mutex);
-GLIB_DEPRECATED_IN_2_32_FOR(GMutex)
-GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
-
-typedef struct _GStaticRecMutex GStaticRecMutex;
-struct _GStaticRecMutex
-{
-  /*< private >*/
-  GStaticMutex mutex;
-  guint depth;
-
-  /* ABI compat only */
-  union {
-#ifdef G_OS_WIN32
-    void *owner;
-#else
-    pthread_t owner;
-#endif
-    gdouble dummy;
-  } unused;
-};
-
-#define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT }
-GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_init)
-void     g_static_rec_mutex_init        (GStaticRecMutex *mutex);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_lock)
-void     g_static_rec_mutex_lock        (GStaticRecMutex *mutex);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_try_lock)
-gboolean g_static_rec_mutex_trylock     (GStaticRecMutex *mutex);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_unlock)
-void     g_static_rec_mutex_unlock      (GStaticRecMutex *mutex);
-
-GLIB_DEPRECATED_IN_2_32
-void     g_static_rec_mutex_lock_full   (GStaticRecMutex *mutex,
-                                         guint            depth);
-
-GLIB_DEPRECATED_IN_2_32
-guint    g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_free)
-void     g_static_rec_mutex_free        (GStaticRecMutex *mutex);
-
-typedef struct _GStaticRWLock GStaticRWLock;
-struct _GStaticRWLock
-{
-  /*< private >*/
-  GStaticMutex mutex;
-  GCond *read_cond;
-  GCond *write_cond;
-  guint read_counter;
-  gboolean have_writer;
-  guint want_to_read;
-  guint want_to_write;
-};
-
-#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 }
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_init)
-void      g_static_rw_lock_init           (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_lock)
-void      g_static_rw_lock_reader_lock    (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_trylock)
-gboolean  g_static_rw_lock_reader_trylock (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_unlock)
-void      g_static_rw_lock_reader_unlock  (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_lock)
-void      g_static_rw_lock_writer_lock    (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_trylock)
-gboolean  g_static_rw_lock_writer_trylock (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_unlock)
-void      g_static_rw_lock_writer_unlock  (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_free)
-void      g_static_rw_lock_free           (GStaticRWLock *lock);
-
-GLIB_DEPRECATED_IN_2_32
-GPrivate *      g_private_new             (GDestroyNotify notify);
-
-typedef struct _GStaticPrivate  GStaticPrivate;
-struct _GStaticPrivate
-{
-  /*< private >*/
-  guint index;
-};
-
-#define G_STATIC_PRIVATE_INIT { 0 }
-GLIB_DEPRECATED_IN_2_32
-void     g_static_private_init           (GStaticPrivate *private_key);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_private_get)
-gpointer g_static_private_get            (GStaticPrivate *private_key);
-
-GLIB_DEPRECATED_IN_2_32_FOR(g_private_set)
-void     g_static_private_set            (GStaticPrivate *private_key,
-                                          gpointer        data,
-                                          GDestroyNotify  notify);
-
-GLIB_DEPRECATED_IN_2_32
-void     g_static_private_free           (GStaticPrivate *private_key);
-
-GLIB_DEPRECATED_IN_2_32
-gboolean g_once_init_enter_impl          (volatile gsize *location);
-
-GLIB_DEPRECATED_IN_2_32
-void     g_thread_init                   (gpointer vtable);
-GLIB_DEPRECATED_IN_2_32
-void    g_thread_init_with_errorcheck_mutexes (gpointer vtable);
-
-GLIB_DEPRECATED_IN_2_32
-gboolean g_thread_get_initialized        (void);
-
-GLIB_VAR gboolean g_threads_got_initialized;
-
-#define g_thread_supported()     (1)
-
-GLIB_DEPRECATED_IN_2_32
-GMutex *        g_mutex_new             (void);
-GLIB_DEPRECATED_IN_2_32
-void            g_mutex_free            (GMutex *mutex);
-GLIB_DEPRECATED_IN_2_32
-GCond *         g_cond_new              (void);
-GLIB_DEPRECATED_IN_2_32
-void            g_cond_free             (GCond  *cond);
-GLIB_DEPRECATED_IN_2_32
-gboolean        g_cond_timed_wait       (GCond          *cond,
-                                         GMutex         *mutex,
-                                         GTimeVal       *timeval);
-
-#endif
-
-G_END_DECLS
-
-#endif /* __G_DEPRECATED_THREAD_H__ */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gmessages.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gmessages.c
deleted file mode 100644
index 778d6ebb8a..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gmessages.c
+++ /dev/null
@@ -1,1632 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see .
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-/*
- * MT safe
- */
-
-/**
- * SECTION:warnings
- * @Title: Message Output and Debugging Functions
- * @Short_description: functions to output messages and help debug applications
- *
- * These functions provide support for outputting messages.
- *
- * The g_return family of macros (g_return_if_fail(),
- * g_return_val_if_fail(), g_return_if_reached(),
- * g_return_val_if_reached()) should only be used for programming
- * errors, a typical use case is checking for invalid parameters at
- * the beginning of a public function. They should not be used if
- * you just mean "if (error) return", they should only be used if
- * you mean "if (bug in program) return". The program behavior is
- * generally considered undefined after one of these checks fails.
- * They are not intended for normal control flow, only to give a
- * perhaps-helpful warning before giving up.
- */
-
-#include "config.h"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include "glib-init.h"
-#include "gbacktrace.h"
-#include "gcharset.h"
-#include "gconvert.h"
-#include "genviron.h"
-#include "gmem.h"
-#include "gprintfint.h"
-#include "gtestutils.h"
-#include "gthread.h"
-#include "gstrfuncs.h"
-#include "gstring.h"
-#include "gpattern.h"
-
-#ifdef G_OS_UNIX
-#include 
-#endif
-
-#ifdef G_OS_WIN32
-#include         /* For getpid() */
-#include 
-#  define _WIN32_WINDOWS 0x0401 /* to get IsDebuggerPresent */
-#  include 
-#endif
-
-
-/**
- * SECTION:messages
- * @title: Message Logging
- * @short_description: versatile support for logging messages
- *     with different levels of importance
- *
- * These functions provide support for logging error messages
- * or messages used for debugging.
- *
- * There are several built-in levels of messages, defined in
- * #GLogLevelFlags. These can be extended with user-defined levels.
- */
-
-/**
- * G_LOG_DOMAIN:
- *
- * Defines the log domain.
- *
- * For applications, this is typically left as the default %NULL
- * (or "") domain. Libraries should define this so that any messages
- * which they log can be differentiated from messages from other
- * libraries and application code. But be careful not to define
- * it in any public header files.
- *
- * For example, GTK+ uses this in its Makefile.am:
- * |[
- * INCLUDES = -DG_LOG_DOMAIN=\"Gtk\"
- * ]|
- */
-
-/**
- * G_LOG_FATAL_MASK:
- *
- * GLib log levels that are considered fatal by default.
- */
-
-/**
- * GLogFunc:
- * @log_domain: the log domain of the message
- * @log_level: the log level of the message (including the
- *     fatal and recursion flags)
- * @message: the message to process
- * @user_data: user data, set in g_log_set_handler()
- *
- * Specifies the prototype of log handler functions.
- *
- * The default log handler, g_log_default_handler(), automatically appends a
- * new-line character to @message when printing it. It is advised that any
- * custom log handler functions behave similarly, so that logging calls in user
- * code do not need modifying to add a new-line character to the message if the
- * log handler is changed.
- */
-
-/**
- * GLogLevelFlags:
- * @G_LOG_FLAG_RECURSION: internal flag
- * @G_LOG_FLAG_FATAL: internal flag
- * @G_LOG_LEVEL_ERROR: log level for errors, see g_error().
- *     This level is also used for messages produced by g_assert().
- * @G_LOG_LEVEL_CRITICAL: log level for critical messages, see g_critical().
- *     This level is also used for messages produced by g_return_if_fail()
- *     and g_return_val_if_fail().
- * @G_LOG_LEVEL_WARNING: log level for warnings, see g_warning()
- * @G_LOG_LEVEL_MESSAGE: log level for messages, see g_message()
- * @G_LOG_LEVEL_INFO: log level for informational messages, see g_info()
- * @G_LOG_LEVEL_DEBUG: log level for debug messages, see g_debug()
- * @G_LOG_LEVEL_MASK: a mask including all log levels
- *
- * Flags specifying the level of log messages.
- *
- * It is possible to change how GLib treats messages of the various
- * levels using g_log_set_handler() and g_log_set_fatal_mask().
- */
-
-/**
- * G_LOG_LEVEL_USER_SHIFT:
- *
- * Log levels below 1<
-static gboolean win32_keep_fatal_message = FALSE;
-
-/* This default message will usually be overwritten. */
-/* Yes, a fixed size buffer is bad. So sue me. But g_error() is never
- * called with huge strings, is it?
- */
-static gchar  fatal_msg_buf[1000] = "Unspecified fatal error encountered, aborting.";
-static gchar *fatal_msg_ptr = fatal_msg_buf;
-
-#undef write
-static inline int
-dowrite (int          fd,
-     const void  *buf,
-     unsigned int len)
-{
-  if (win32_keep_fatal_message)
-    {
-      memcpy (fatal_msg_ptr, buf, len);
-      fatal_msg_ptr += len;
-      *fatal_msg_ptr = 0;
-      return len;
-    }
-
-  write (fd, buf, len);
-
-  return len;
-}
-#define write(fd, buf, len) dowrite(fd, buf, len)
-
-#endif
-
-static void
-write_string (int          fd,
-          const gchar *string)
-{
-  int res;
-  do
-    res = write (fd, string, strlen (string));
-  while (G_UNLIKELY (res == -1 && errno == EINTR));
-}
-
-static GLogDomain*
-g_log_find_domain_L (const gchar *log_domain)
-{
-  GLogDomain *domain;
-
-  domain = g_log_domains;
-  while (domain)
-    {
-      if (strcmp (domain->log_domain, log_domain) == 0)
-    return domain;
-      domain = domain->next;
-    }
-  return NULL;
-}
-
-static GLogDomain*
-g_log_domain_new_L (const gchar *log_domain)
-{
-  GLogDomain *domain;
-
-  domain = g_new (GLogDomain, 1);
-  domain->log_domain = g_strdup (log_domain);
-  domain->fatal_mask = G_LOG_FATAL_MASK;
-  domain->handlers = NULL;
-
-  domain->next = g_log_domains;
-  g_log_domains = domain;
-
-  return domain;
-}
-
-static void
-g_log_domain_check_free_L (GLogDomain *domain)
-{
-  if (domain->fatal_mask == G_LOG_FATAL_MASK &&
-      domain->handlers == NULL)
-    {
-      GLogDomain *last, *work;
-
-      last = NULL;
-
-      work = g_log_domains;
-      while (work)
-    {
-      if (work == domain)
-        {
-          if (last)
-        last->next = domain->next;
-          else
-        g_log_domains = domain->next;
-          g_free (domain->log_domain);
-          g_free (domain);
-          break;
-        }
-      last = work;
-      work = last->next;
-    }
-    }
-}
-
-static GLogFunc
-g_log_domain_get_handler_L (GLogDomain  *domain,
-                GLogLevelFlags log_level,
-                gpointer    *data)
-{
-  if (domain && log_level)
-    {
-      GLogHandler *handler;
-
-      handler = domain->handlers;
-      while (handler)
-    {
-      if ((handler->log_level & log_level) == log_level)
-        {
-          *data = handler->data;
-          return handler->log_func;
-        }
-      handler = handler->next;
-    }
-    }
-
-  *data = default_log_data;
-  return default_log_func;
-}
-
-/**
- * g_log_set_always_fatal:
- * @fatal_mask: the mask containing bits set for each level
- *     of error which is to be fatal
- *
- * Sets the message levels which are always fatal, in any log domain.
- * When a message with any of these levels is logged the program terminates.
- * You can only set the levels defined by GLib to be fatal.
- * %G_LOG_LEVEL_ERROR is always fatal.
- *
- * You can also make some message levels fatal at runtime by setting
- * the `G_DEBUG` environment variable (see
- * [Running GLib Applications](glib-running.html)).
- *
- * Returns: the old fatal mask
- */
-GLogLevelFlags
-g_log_set_always_fatal (GLogLevelFlags fatal_mask)
-{
-  GLogLevelFlags old_mask;
-
-  /* restrict the global mask to levels that are known to glib
-   * since this setting applies to all domains
-   */
-  fatal_mask &= (1 << G_LOG_LEVEL_USER_SHIFT) - 1;
-  /* force errors to be fatal */
-  fatal_mask |= G_LOG_LEVEL_ERROR;
-  /* remove bogus flag */
-  fatal_mask &= ~G_LOG_FLAG_FATAL;
-
-  g_mutex_lock (&g_messages_lock);
-  old_mask = g_log_always_fatal;
-  g_log_always_fatal = fatal_mask;
-  g_mutex_unlock (&g_messages_lock);
-
-  return old_mask;
-}
-
-/**
- * g_log_set_fatal_mask:
- * @log_domain: the log domain
- * @fatal_mask: the new fatal mask
- *
- * Sets the log levels which are fatal in the given domain.
- * %G_LOG_LEVEL_ERROR is always fatal.
- *
- * Returns: the old fatal mask for the log domain
- */
-GLogLevelFlags
-g_log_set_fatal_mask (const gchar   *log_domain,
-              GLogLevelFlags fatal_mask)
-{
-  GLogLevelFlags old_flags;
-  GLogDomain *domain;
-
-  if (!log_domain)
-    log_domain = "";
-
-  /* force errors to be fatal */
-  fatal_mask |= G_LOG_LEVEL_ERROR;
-  /* remove bogus flag */
-  fatal_mask &= ~G_LOG_FLAG_FATAL;
-
-  g_mutex_lock (&g_messages_lock);
-
-  domain = g_log_find_domain_L (log_domain);
-  if (!domain)
-    domain = g_log_domain_new_L (log_domain);
-  old_flags = domain->fatal_mask;
-
-  domain->fatal_mask = fatal_mask;
-  g_log_domain_check_free_L (domain);
-
-  g_mutex_unlock (&g_messages_lock);
-
-  return old_flags;
-}
-
-/**
- * g_log_set_handler:
- * @log_domain: (allow-none): the log domain, or %NULL for the default ""
- *     application domain
- * @log_levels: the log levels to apply the log handler for.
- *     To handle fatal and recursive messages as well, combine
- *     the log levels with the #G_LOG_FLAG_FATAL and
- *     #G_LOG_FLAG_RECURSION bit flags.
- * @log_func: the log handler function
- * @user_data: data passed to the log handler
- *
- * Sets the log handler for a domain and a set of log levels.
- * To handle fatal and recursive messages the @log_levels parameter
- * must be combined with the #G_LOG_FLAG_FATAL and #G_LOG_FLAG_RECURSION
- * bit flags.
- *
- * Note that since the #G_LOG_LEVEL_ERROR log level is always fatal, if
- * you want to set a handler for this log level you must combine it with
- * #G_LOG_FLAG_FATAL.
- *
- * Here is an example for adding a log handler for all warning messages
- * in the default domain:
- * |[
- * g_log_set_handler (NULL, G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL
- *                    | G_LOG_FLAG_RECURSION, my_log_handler, NULL);
- * ]|
- *
- * This example adds a log handler for all critical messages from GTK+:
- * |[
- * g_log_set_handler ("Gtk", G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_FATAL
- *                    | G_LOG_FLAG_RECURSION, my_log_handler, NULL);
- * ]|
- *
- * This example adds a log handler for all messages from GLib:
- * |[
- * g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
- *                    | G_LOG_FLAG_RECURSION, my_log_handler, NULL);
- * ]|
- *
- * Returns: the id of the new handler
- */
-guint
-g_log_set_handler (const gchar   *log_domain,
-           GLogLevelFlags log_levels,
-           GLogFunc   log_func,
-           gpointer   user_data)
-{
-  static guint handler_id = 0;
-  GLogDomain *domain;
-  GLogHandler *handler;
-
-  g_return_val_if_fail ((log_levels & G_LOG_LEVEL_MASK) != 0, 0);
-  g_return_val_if_fail (log_func != NULL, 0);
-
-  if (!log_domain)
-    log_domain = "";
-
-  handler = g_new (GLogHandler, 1);
-
-  g_mutex_lock (&g_messages_lock);
-
-  domain = g_log_find_domain_L (log_domain);
-  if (!domain)
-    domain = g_log_domain_new_L (log_domain);
-
-  handler->id = ++handler_id;
-  handler->log_level = log_levels;
-  handler->log_func = log_func;
-  handler->data = user_data;
-  handler->next = domain->handlers;
-  domain->handlers = handler;
-
-  g_mutex_unlock (&g_messages_lock);
-
-  return handler_id;
-}
-
-/**
- * g_log_set_default_handler:
- * @log_func: the log handler function
- * @user_data: data passed to the log handler
- *
- * Installs a default log handler which is used if no
- * log handler has been set for the particular log domain
- * and log level combination. By default, GLib uses
- * g_log_default_handler() as default log handler.
- *
- * Returns: the previous default log handler
- *
- * Since: 2.6
- */
-GLogFunc
-g_log_set_default_handler (GLogFunc log_func,
-               gpointer user_data)
-{
-  GLogFunc old_log_func;
-
-  g_mutex_lock (&g_messages_lock);
-  old_log_func = default_log_func;
-  default_log_func = log_func;
-  default_log_data = user_data;
-  g_mutex_unlock (&g_messages_lock);
-
-  return old_log_func;
-}
-
-/**
- * g_test_log_set_fatal_handler:
- * @log_func: the log handler function.
- * @user_data: data passed to the log handler.
- *
- * Installs a non-error fatal log handler which can be
- * used to decide whether log messages which are counted
- * as fatal abort the program.
- *
- * The use case here is that you are running a test case
- * that depends on particular libraries or circumstances
- * and cannot prevent certain known critical or warning
- * messages. So you install a handler that compares the
- * domain and message to precisely not abort in such a case.
- *
- * Note that the handler is reset at the beginning of
- * any test case, so you have to set it inside each test
- * function which needs the special behavior.
- *
- * This handler has no effect on g_error messages.
- *
- * Since: 2.22
- **/
-void
-g_test_log_set_fatal_handler (GTestLogFatalFunc log_func,
-                              gpointer          user_data)
-{
-  g_mutex_lock (&g_messages_lock);
-  fatal_log_func = log_func;
-  fatal_log_data = user_data;
-  g_mutex_unlock (&g_messages_lock);
-}
-
-/**
- * g_log_remove_handler:
- * @log_domain: the log domain
- * @handler_id: the id of the handler, which was returned
- *     in g_log_set_handler()
- *
- * Removes the log handler.
- */
-void
-g_log_remove_handler (const gchar *log_domain,
-              guint    handler_id)
-{
-  GLogDomain *domain;
-
-  g_return_if_fail (handler_id > 0);
-
-  if (!log_domain)
-    log_domain = "";
-
-  g_mutex_lock (&g_messages_lock);
-  domain = g_log_find_domain_L (log_domain);
-  if (domain)
-    {
-      GLogHandler *work, *last;
-
-      last = NULL;
-      work = domain->handlers;
-      while (work)
-    {
-      if (work->id == handler_id)
-        {
-          if (last)
-        last->next = work->next;
-          else
-        domain->handlers = work->next;
-          g_log_domain_check_free_L (domain);
-          g_mutex_unlock (&g_messages_lock);
-          g_free (work);
-          return;
-        }
-      last = work;
-      work = last->next;
-    }
-    }
-  g_mutex_unlock (&g_messages_lock);
-  g_warning ("%s: could not find handler with id '%d' for domain \"%s\"",
-         G_STRLOC, handler_id, log_domain);
-}
-
-#define CHAR_IS_SAFE(wc) (!((wc < 0x20 && wc != '\t' && wc != '\n' && wc != '\r') || \
-                (wc == 0x7f) || \
-                (wc >= 0x80 && wc < 0xa0)))
-
-static gchar*
-strdup_convert (const gchar *string,
-        const gchar *charset)
-{
-  if (!g_utf8_validate (string, -1, NULL))
-    {
-      GString *gstring = g_string_new ("[Invalid UTF-8] ");
-      guchar *p;
-
-      for (p = (guchar *)string; *p; p++)
-    {
-      if (CHAR_IS_SAFE(*p) &&
-          !(*p == '\r' && *(p + 1) != '\n') &&
-          *p < 0x80)
-        g_string_append_c (gstring, *p);
-      else
-        g_string_append_printf (gstring, "\\x%02x", (guint)(guchar)*p);
-    }
-
-      return g_string_free (gstring, FALSE);
-    }
-  else
-    {
-      GError *err = NULL;
-
-      gchar *result = g_convert_with_fallback (string, -1, charset, "UTF-8", "?", NULL, NULL, &err);
-      if (result)
-    return result;
-      else
-    {
-      /* Not thread-safe, but doesn't matter if we print the warning twice
-       */
-      static gboolean warned = FALSE;
-      if (!warned)
-        {
-          warned = TRUE;
-          _g_fprintf (stderr, "GLib: Cannot convert message: %s\n", err->message);
-        }
-      g_error_free (err);
-
-      return g_strdup (string);
-    }
-    }
-}
-
-/* For a radix of 8 we need at most 3 output bytes for 1 input
- * byte. Additionally we might need up to 2 output bytes for the
- * readix prefix and 1 byte for the trailing NULL.
- */
-#define FORMAT_UNSIGNED_BUFSIZE ((GLIB_SIZEOF_LONG * 3) + 3)
-
-static void
-format_unsigned (gchar  *buf,
-         gulong  num,
-         guint   radix)
-{
-  gulong tmp;
-  gchar c;
-  gint i, n;
-
-  /* we may not call _any_ GLib functions here (or macros like g_return_if_fail()) */
-
-  if (radix != 8 && radix != 10 && radix != 16)
-    {
-      *buf = '\000';
-      return;
-    }
-
-  if (!num)
-    {
-      *buf++ = '0';
-      *buf = '\000';
-      return;
-    }
-
-  if (radix == 16)
-    {
-      *buf++ = '0';
-      *buf++ = 'x';
-    }
-  else if (radix == 8)
-    {
-      *buf++ = '0';
-    }
-
-  n = 0;
-  tmp = num;
-  while (tmp)
-    {
-      tmp /= radix;
-      n++;
-    }
-
-  i = n;
-
-  /* Again we can't use g_assert; actually this check should _never_ fail. */
-  if (n > FORMAT_UNSIGNED_BUFSIZE - 3)
-    {
-      *buf = '\000';
-      return;
-    }
-
-  while (num)
-    {
-      i--;
-      c = (num % radix);
-      if (c < 10)
-    buf[i] = c + '0';
-      else
-    buf[i] = c + 'a' - 10;
-      num /= radix;
-    }
-
-  buf[n] = '\000';
-}
-
-/* string size big enough to hold level prefix */
-#define STRING_BUFFER_SIZE  (FORMAT_UNSIGNED_BUFSIZE + 32)
-
-#define ALERT_LEVELS        (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING)
-
-/* these are emitted by the default log handler */
-#define DEFAULT_LEVELS (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE)
-/* these are filtered by G_MESSAGES_DEBUG by the default log handler */
-#define INFO_LEVELS (G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG)
-
-static int
-mklevel_prefix (gchar          level_prefix[STRING_BUFFER_SIZE],
-        GLogLevelFlags log_level)
-{
-  gboolean to_stdout = TRUE;
-
-  /* we may not call _any_ GLib functions here */
-
-  switch (log_level & G_LOG_LEVEL_MASK)
-    {
-    case G_LOG_LEVEL_ERROR:
-      strcpy (level_prefix, "ERROR");
-      to_stdout = FALSE;
-      break;
-    case G_LOG_LEVEL_CRITICAL:
-      strcpy (level_prefix, "CRITICAL");
-      to_stdout = FALSE;
-      break;
-    case G_LOG_LEVEL_WARNING:
-      strcpy (level_prefix, "WARNING");
-      to_stdout = FALSE;
-      break;
-    case G_LOG_LEVEL_MESSAGE:
-      strcpy (level_prefix, "Message");
-      to_stdout = FALSE;
-      break;
-    case G_LOG_LEVEL_INFO:
-      strcpy (level_prefix, "INFO");
-      break;
-    case G_LOG_LEVEL_DEBUG:
-      strcpy (level_prefix, "DEBUG");
-      break;
-    default:
-      if (log_level)
-    {
-      strcpy (level_prefix, "LOG-");
-      format_unsigned (level_prefix + 4, log_level & G_LOG_LEVEL_MASK, 16);
-    }
-      else
-    strcpy (level_prefix, "LOG");
-      break;
-    }
-  if (log_level & G_LOG_FLAG_RECURSION)
-    strcat (level_prefix, " (recursed)");
-  if (log_level & ALERT_LEVELS)
-    strcat (level_prefix, " **");
-
-#ifdef G_OS_WIN32
-  if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ())
-    win32_keep_fatal_message = TRUE;
-#endif
-  return to_stdout ? 1 : 2;
-}
-
-typedef struct {
-  gchar          *log_domain;
-  GLogLevelFlags  log_level;
-  gchar          *pattern;
-} GTestExpectedMessage;
-
-static GSList *expected_messages = NULL;
-
-/**
- * g_logv:
- * @log_domain: the log domain
- * @log_level: the log level
- * @format: the message format. See the printf() documentation
- * @args: the parameters to insert into the format string
- *
- * Logs an error or debugging message.
- *
- * If the log level has been set as fatal, the abort()
- * function is called to terminate the program.
- *
- * If g_log_default_handler() is used as the log handler function, a new-line
- * character will automatically be appended to @..., and need not be entered
- * manually.
- */
-void
-g_logv (const gchar   *log_domain,
-    GLogLevelFlags log_level,
-    const gchar   *format,
-    va_list        args)
-{
-  gboolean was_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
-  gboolean was_recursion = (log_level & G_LOG_FLAG_RECURSION) != 0;
-  gchar buffer[1025], *msg, *msg_alloc = NULL;
-  gint i;
-
-  log_level &= G_LOG_LEVEL_MASK;
-  if (!log_level)
-    return;
-
-  if (log_level & G_LOG_FLAG_RECURSION)
-    {
-      /* we use a stack buffer of fixed size, since we're likely
-       * in an out-of-memory situation
-       */
-      gsize size G_GNUC_UNUSED;
-
-      size = _g_vsnprintf (buffer, 1024, format, args);
-      msg = buffer;
-    }
-  else
-    msg = msg_alloc = g_strdup_vprintf (format, args);
-
-  if (expected_messages)
-    {
-      GTestExpectedMessage *expected = expected_messages->data;
-
-      if (g_strcmp0 (expected->log_domain, log_domain) == 0 &&
-          ((log_level & expected->log_level) == expected->log_level) &&
-          g_pattern_match_simple (expected->pattern, msg))
-        {
-          expected_messages = g_slist_delete_link (expected_messages,
-                                                   expected_messages);
-          g_free (expected->log_domain);
-          g_free (expected->pattern);
-          g_free (expected);
-          g_free (msg_alloc);
-          return;
-        }
-      else if ((log_level & G_LOG_LEVEL_DEBUG) != G_LOG_LEVEL_DEBUG)
-        {
-          gchar level_prefix[STRING_BUFFER_SIZE];
-          gchar *expected_message;
-
-          mklevel_prefix (level_prefix, expected->log_level);
-          expected_message = g_strdup_printf ("Did not see expected message %s-%s: %s",
-                                              expected->log_domain ? expected->log_domain : "**",
-                                              level_prefix, expected->pattern);
-          g_log_default_handler (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, expected_message, NULL);
-          g_free (expected_message);
-
-          log_level |= G_LOG_FLAG_FATAL;
-        }
-    }
-
-  for (i = g_bit_nth_msf (log_level, -1); i >= 0; i = g_bit_nth_msf (log_level, i))
-    {
-      GLogLevelFlags test_level;
-
-      test_level = 1 << i;
-      if (log_level & test_level)
-    {
-      GLogDomain *domain;
-      GLogFunc log_func;
-      GLogLevelFlags domain_fatal_mask;
-      gpointer data = NULL;
-          gboolean masquerade_fatal = FALSE;
-          guint depth;
-
-      if (was_fatal)
-        test_level |= G_LOG_FLAG_FATAL;
-      if (was_recursion)
-        test_level |= G_LOG_FLAG_RECURSION;
-
-      /* check recursion and lookup handler */
-      g_mutex_lock (&g_messages_lock);
-          depth = GPOINTER_TO_UINT (g_private_get (&g_log_depth));
-      domain = g_log_find_domain_L (log_domain ? log_domain : "");
-      if (depth)
-        test_level |= G_LOG_FLAG_RECURSION;
-      depth++;
-      domain_fatal_mask = domain ? domain->fatal_mask : G_LOG_FATAL_MASK;
-      if ((domain_fatal_mask | g_log_always_fatal) & test_level)
-        test_level |= G_LOG_FLAG_FATAL;
-      if (test_level & G_LOG_FLAG_RECURSION)
-        log_func = _g_log_fallback_handler;
-      else
-        log_func = g_log_domain_get_handler_L (domain, test_level, &data);
-      domain = NULL;
-      g_mutex_unlock (&g_messages_lock);
-
-      g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
-
-          log_func (log_domain, test_level, msg, data);
-
-          if ((test_level & G_LOG_FLAG_FATAL)
-              && !(test_level & G_LOG_LEVEL_ERROR))
-            {
-              masquerade_fatal = fatal_log_func
-                && !fatal_log_func (log_domain, test_level, msg, fatal_log_data);
-            }
-
-          if ((test_level & G_LOG_FLAG_FATAL) && !masquerade_fatal)
-            {
-#ifdef G_OS_WIN32
-              if (win32_keep_fatal_message)
-                {
-                  gchar *locale_msg = g_locale_from_utf8 (fatal_msg_buf, -1, NULL, NULL, NULL);
-
-                  MessageBox (NULL, locale_msg, NULL,
-                              MB_ICONERROR|MB_SETFOREGROUND);
-                }
-          _g_log_abort (IsDebuggerPresent () && !(test_level & G_LOG_FLAG_RECURSION));
-#else
-          _g_log_abort (!(test_level & G_LOG_FLAG_RECURSION));
-#endif /* !G_OS_WIN32 */
-        }
-
-      depth--;
-      g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
-    }
-    }
-
-  g_free (msg_alloc);
-}
-
-/**
- * g_log:
- * @log_domain: the log domain, usually #G_LOG_DOMAIN
- * @log_level: the log level, either from #GLogLevelFlags
- *     or a user-defined level
- * @format: the message format. See the printf() documentation
- * @...: the parameters to insert into the format string
- *
- * Logs an error or debugging message.
- *
- * If the log level has been set as fatal, the abort()
- * function is called to terminate the program.
- *
- * If g_log_default_handler() is used as the log handler function, a new-line
- * character will automatically be appended to @..., and need not be entered
- * manually.
- */
-void
-g_log (const gchar   *log_domain,
-       GLogLevelFlags log_level,
-       const gchar   *format,
-       ...)
-{
-  va_list args;
-
-  va_start (args, format);
-  g_logv (log_domain, log_level, format, args);
-  va_end (args);
-}
-
-void
-g_return_if_fail_warning (const char *log_domain,
-              const char *pretty_function,
-              const char *expression)
-{
-  g_log (log_domain,
-     G_LOG_LEVEL_CRITICAL,
-     "%s: assertion '%s' failed",
-     pretty_function,
-     expression);
-}
-
-void
-g_warn_message (const char     *domain,
-                const char     *file,
-                int             line,
-                const char     *func,
-                const char     *warnexpr)
-{
-  char *s, lstr[32];
-  g_snprintf (lstr, 32, "%d", line);
-  if (warnexpr)
-    s = g_strconcat ("(", file, ":", lstr, "):",
-                     func, func[0] ? ":" : "",
-                     " runtime check failed: (", warnexpr, ")", NULL);
-  else
-    s = g_strconcat ("(", file, ":", lstr, "):",
-                     func, func[0] ? ":" : "",
-                     " ", "code should not be reached", NULL);
-  g_log (domain, G_LOG_LEVEL_WARNING, "%s", s);
-  g_free (s);
-}
-
-void
-g_assert_warning (const char *log_domain,
-          const char *file,
-          const int   line,
-          const char *pretty_function,
-          const char *expression)
-{
-  if (expression)
-    g_log (log_domain,
-       G_LOG_LEVEL_ERROR,
-       "file %s: line %d (%s): assertion failed: (%s)",
-       file,
-       line,
-       pretty_function,
-       expression);
-  else
-    g_log (log_domain,
-       G_LOG_LEVEL_ERROR,
-       "file %s: line %d (%s): should not be reached",
-       file,
-       line,
-       pretty_function);
-  _g_log_abort (FALSE);
-  abort ();
-}
-
-/**
- * g_test_expect_message:
- * @log_domain: (allow-none): the log domain of the message
- * @log_level: the log level of the message
- * @pattern: a glob-style [pattern][glib-Glob-style-pattern-matching]
- *
- * Indicates that a message with the given @log_domain and @log_level,
- * with text matching @pattern, is expected to be logged. When this
- * message is logged, it will not be printed, and the test case will
- * not abort.
- *
- * Use g_test_assert_expected_messages() to assert that all
- * previously-expected messages have been seen and suppressed.
- *
- * You can call this multiple times in a row, if multiple messages are
- * expected as a result of a single call. (The messages must appear in
- * the same order as the calls to g_test_expect_message().)
- *
- * For example:
- *
- * |[
- *   // g_main_context_push_thread_default() should fail if the
- *   // context is already owned by another thread.
- *   g_test_expect_message (G_LOG_DOMAIN,
- *                          G_LOG_LEVEL_CRITICAL,
- *                          "assertion*acquired_context*failed");
- *   g_main_context_push_thread_default (bad_context);
- *   g_test_assert_expected_messages ();
- * ]|
- *
- * Note that you cannot use this to test g_error() messages, since
- * g_error() intentionally never returns even if the program doesn't
- * abort; use g_test_trap_subprocess() in this case.
- *
- * If messages at %G_LOG_LEVEL_DEBUG are emitted, but not explicitly
- * expected via g_test_expect_message() then they will be ignored.
- *
- * Since: 2.34
- */
-void
-g_test_expect_message (const gchar    *log_domain,
-                       GLogLevelFlags  log_level,
-                       const gchar    *pattern)
-{
-  GTestExpectedMessage *expected;
-
-  g_return_if_fail (log_level != 0);
-  g_return_if_fail (pattern != NULL);
-  g_return_if_fail (~log_level & G_LOG_LEVEL_ERROR);
-
-  expected = g_new (GTestExpectedMessage, 1);
-  expected->log_domain = g_strdup (log_domain);
-  expected->log_level = log_level;
-  expected->pattern = g_strdup (pattern);
-
-  expected_messages = g_slist_append (expected_messages, expected);
-}
-
-void
-g_test_assert_expected_messages_internal (const char     *domain,
-                                          const char     *file,
-                                          int             line,
-                                          const char     *func)
-{
-  if (expected_messages)
-    {
-      GTestExpectedMessage *expected;
-      gchar level_prefix[STRING_BUFFER_SIZE];
-      gchar *message;
-
-      expected = expected_messages->data;
-
-      mklevel_prefix (level_prefix, expected->log_level);
-      message = g_strdup_printf ("Did not see expected message %s-%s: %s",
-                                 expected->log_domain ? expected->log_domain : "**",
-                                 level_prefix, expected->pattern);
-      g_assertion_message (G_LOG_DOMAIN, file, line, func, message);
-      g_free (message);
-    }
-}
-
-/**
- * g_test_assert_expected_messages:
- *
- * Asserts that all messages previously indicated via
- * g_test_expect_message() have been seen and suppressed.
- *
- * If messages at %G_LOG_LEVEL_DEBUG are emitted, but not explicitly
- * expected via g_test_expect_message() then they will be ignored.
- *
- * Since: 2.34
- */
-
-void
-_g_log_fallback_handler (const gchar   *log_domain,
-             GLogLevelFlags log_level,
-             const gchar   *message,
-             gpointer       unused_data)
-{
-  gchar level_prefix[STRING_BUFFER_SIZE];
-#ifndef G_OS_WIN32
-  gchar pid_string[FORMAT_UNSIGNED_BUFSIZE];
-#endif
-  int fd;
-
-  /* we cannot call _any_ GLib functions in this fallback handler,
-   * which is why we skip UTF-8 conversion, etc.
-   * since we either recursed or ran out of memory, we're in a pretty
-   * pathologic situation anyways, what we can do is giving the
-   * the process ID unconditionally however.
-   */
-
-  fd = mklevel_prefix (level_prefix, log_level);
-  if (!message)
-    message = "(NULL) message";
-
-#ifndef G_OS_WIN32
-  format_unsigned (pid_string, getpid (), 10);
-#endif
-
-  if (log_domain)
-    write_string (fd, "\n");
-  else
-    write_string (fd, "\n** ");
-
-#ifndef G_OS_WIN32
-  write_string (fd, "(process:");
-  write_string (fd, pid_string);
-  write_string (fd, "): ");
-#endif
-
-  if (log_domain)
-    {
-      write_string (fd, log_domain);
-      write_string (fd, "-");
-    }
-  write_string (fd, level_prefix);
-  write_string (fd, ": ");
-  write_string (fd, message);
-}
-
-static void
-escape_string (GString *string)
-{
-  const char *p = string->str;
-  gunichar wc;
-
-  while (p < string->str + string->len)
-    {
-      gboolean safe;
-
-      wc = g_utf8_get_char_validated (p, -1);
-      if (wc == (gunichar)-1 || wc == (gunichar)-2)
-    {
-      gchar *tmp;
-      guint pos;
-
-      pos = p - string->str;
-
-      /* Emit invalid UTF-8 as hex escapes
-           */
-      tmp = g_strdup_printf ("\\x%02x", (guint)(guchar)*p);
-      g_string_erase (string, pos, 1);
-      g_string_insert (string, pos, tmp);
-
-      p = string->str + (pos + 4); /* Skip over escape sequence */
-
-      g_free (tmp);
-      continue;
-    }
-      if (wc == '\r')
-    {
-      safe = *(p + 1) == '\n';
-    }
-      else
-    {
-      safe = CHAR_IS_SAFE (wc);
-    }
-
-      if (!safe)
-    {
-      gchar *tmp;
-      guint pos;
-
-      pos = p - string->str;
-
-      /* Largest char we escape is 0x0a, so we don't have to worry
-       * about 8-digit \Uxxxxyyyy
-       */
-      tmp = g_strdup_printf ("\\u%04x", wc);
-      g_string_erase (string, pos, g_utf8_next_char (p) - p);
-      g_string_insert (string, pos, tmp);
-      g_free (tmp);
-
-      p = string->str + (pos + 6); /* Skip over escape sequence */
-    }
-      else
-    p = g_utf8_next_char (p);
-    }
-}
-
-/**
- * g_log_default_handler:
- * @log_domain: the log domain of the message
- * @log_level: the level of the message
- * @message: the message
- * @unused_data: data passed from g_log() which is unused
- *
- * The default log handler set up by GLib; g_log_set_default_handler()
- * allows to install an alternate default log handler.
- * This is used if no log handler has been set for the particular log
- * domain and log level combination. It outputs the message to stderr
- * or stdout and if the log level is fatal it calls abort(). It automatically
- * prints a new-line character after the message, so one does not need to be
- * manually included in @message.
- *
- * The behavior of this log handler can be influenced by a number of
- * environment variables:
- *
- * - `G_MESSAGES_PREFIXED`: A :-separated list of log levels for which
- *   messages should be prefixed by the program name and PID of the
- *   aplication.
- *
- * - `G_MESSAGES_DEBUG`: A space-separated list of log domains for
- *   which debug and informational messages are printed. By default
- *   these messages are not printed.
- *
- * stderr is used for levels %G_LOG_LEVEL_ERROR, %G_LOG_LEVEL_CRITICAL,
- * %G_LOG_LEVEL_WARNING and %G_LOG_LEVEL_MESSAGE. stdout is used for
- * the rest.
- */
-void
-g_log_default_handler (const gchar   *log_domain,
-               GLogLevelFlags log_level,
-               const gchar   *message,
-               gpointer       unused_data)
-{
-  gchar level_prefix[STRING_BUFFER_SIZE], *string;
-  GString *gstring;
-  int fd;
-  const gchar *domains;
-
-  if ((log_level & DEFAULT_LEVELS) || (log_level >> G_LOG_LEVEL_USER_SHIFT))
-    goto emit;
-
-  domains = g_getenv ("G_MESSAGES_DEBUG");
-  if (((log_level & INFO_LEVELS) == 0) ||
-      domains == NULL ||
-      (strcmp (domains, "all") != 0 && (!log_domain || !strstr (domains, log_domain))))
-    return;
-
- emit:
-  /* we can be called externally with recursion for whatever reason */
-  if (log_level & G_LOG_FLAG_RECURSION)
-    {
-      _g_log_fallback_handler (log_domain, log_level, message, unused_data);
-      return;
-    }
-
-  fd = mklevel_prefix (level_prefix, log_level);
-
-  gstring = g_string_new (NULL);
-  if (log_level & ALERT_LEVELS)
-    g_string_append (gstring, "\n");
-  if (!log_domain)
-    g_string_append (gstring, "** ");
-
-  if ((g_log_msg_prefix & (log_level & G_LOG_LEVEL_MASK)) == (log_level & G_LOG_LEVEL_MASK))
-    {
-      const gchar *prg_name = g_get_prgname ();
-
-      if (!prg_name)
-    g_string_append_printf (gstring, "(process:%lu): ", (gulong)getpid ());
-      else
-    g_string_append_printf (gstring, "(%s:%lu): ", prg_name, (gulong)getpid ());
-    }
-
-  if (log_domain)
-    {
-      g_string_append (gstring, log_domain);
-      g_string_append_c (gstring, '-');
-    }
-  g_string_append (gstring, level_prefix);
-
-  g_string_append (gstring, ": ");
-  if (!message)
-    g_string_append (gstring, "(NULL) message");
-  else
-    {
-      GString *msg;
-      const gchar *charset;
-
-      msg = g_string_new (message);
-      escape_string (msg);
-
-      if (g_get_charset (&charset))
-    g_string_append (gstring, msg->str);    /* charset is UTF-8 already */
-      else
-    {
-      string = strdup_convert (msg->str, charset);
-      g_string_append (gstring, string);
-      g_free (string);
-    }
-
-      g_string_free (msg, TRUE);
-    }
-  g_string_append (gstring, "\n");
-
-  string = g_string_free (gstring, FALSE);
-
-  write_string (fd, string);
-  g_free (string);
-}
-
-/**
- * g_set_print_handler:
- * @func: the new print handler
- *
- * Sets the print handler.
- *
- * Any messages passed to g_print() will be output via
- * the new handler. The default handler simply outputs
- * the message to stdout. By providing your own handler
- * you can redirect the output, to a GTK+ widget or a
- * log file for example.
- *
- * Returns: the old print handler
- */
-GPrintFunc
-g_set_print_handler (GPrintFunc func)
-{
-  GPrintFunc old_print_func;
-
-  g_mutex_lock (&g_messages_lock);
-  old_print_func = glib_print_func;
-  glib_print_func = func;
-  g_mutex_unlock (&g_messages_lock);
-
-  return old_print_func;
-}
-
-/**
- * g_print:
- * @format: the message format. See the printf() documentation
- * @...: the parameters to insert into the format string
- *
- * Outputs a formatted message via the print handler.
- * The default print handler simply outputs the message to stdout, without
- * appending a trailing new-line character. Typically, @format should end with
- * its own new-line character.
- *
- * g_print() should not be used from within libraries for debugging
- * messages, since it may be redirected by applications to special
- * purpose message windows or even files. Instead, libraries should
- * use g_log(), or the convenience functions g_message(), g_warning()
- * and g_error().
- */
-void
-g_print (const gchar *format,
-         ...)
-{
-  va_list args;
-  gchar *string;
-  GPrintFunc local_glib_print_func;
-
-  g_return_if_fail (format != NULL);
-
-  va_start (args, format);
-  string = g_strdup_vprintf (format, args);
-  va_end (args);
-
-  g_mutex_lock (&g_messages_lock);
-  local_glib_print_func = glib_print_func;
-  g_mutex_unlock (&g_messages_lock);
-
-  if (local_glib_print_func)
-    local_glib_print_func (string);
-  else
-    {
-      const gchar *charset;
-
-      if (g_get_charset (&charset))
-        fputs (string, stdout); /* charset is UTF-8 already */
-      else
-        {
-          gchar *lstring = strdup_convert (string, charset);
-
-          fputs (lstring, stdout);
-          g_free (lstring);
-        }
-      fflush (stdout);
-    }
-  g_free (string);
-}
-
-/**
- * g_set_printerr_handler:
- * @func: the new error message handler
- *
- * Sets the handler for printing error messages.
- *
- * Any messages passed to g_printerr() will be output via
- * the new handler. The default handler simply outputs the
- * message to stderr. By providing your own handler you can
- * redirect the output, to a GTK+ widget or a log file for
- * example.
- *
- * Returns: the old error message handler
- */
-GPrintFunc
-g_set_printerr_handler (GPrintFunc func)
-{
-  GPrintFunc old_printerr_func;
-
-  g_mutex_lock (&g_messages_lock);
-  old_printerr_func = glib_printerr_func;
-  glib_printerr_func = func;
-  g_mutex_unlock (&g_messages_lock);
-
-  return old_printerr_func;
-}
-
-/**
- * g_printerr:
- * @format: the message format. See the printf() documentation
- * @...: the parameters to insert into the format string
- *
- * Outputs a formatted message via the error message handler.
- * The default handler simply outputs the message to stderr, without appending
- * a trailing new-line character. Typically, @format should end with its own
- * new-line character.
- *
- * g_printerr() should not be used from within libraries.
- * Instead g_log() should be used, or the convenience functions
- * g_message(), g_warning() and g_error().
- */
-void
-g_printerr (const gchar *format,
-            ...)
-{
-  va_list args;
-  gchar *string;
-  GPrintFunc local_glib_printerr_func;
-
-  g_return_if_fail (format != NULL);
-
-  va_start (args, format);
-  string = g_strdup_vprintf (format, args);
-  va_end (args);
-
-  g_mutex_lock (&g_messages_lock);
-  local_glib_printerr_func = glib_printerr_func;
-  g_mutex_unlock (&g_messages_lock);
-
-  if (local_glib_printerr_func)
-    local_glib_printerr_func (string);
-  else
-    {
-      const gchar *charset;
-
-      if (g_get_charset (&charset))
-        fputs (string, stderr); /* charset is UTF-8 already */
-      else
-        {
-          gchar *lstring = strdup_convert (string, charset);
-
-          fputs (lstring, stderr);
-          g_free (lstring);
-        }
-      fflush (stderr);
-    }
-  g_free (string);
-}
-
-/**
- * g_printf_string_upper_bound:
- * @format: the format string. See the printf() documentation
- * @args: the parameters to be inserted into the format string
- *
- * Calculates the maximum space needed to store the output
- * of the sprintf() function.
- *
- * Returns: the maximum space needed to store the formatted string
- */
-gsize
-g_printf_string_upper_bound (const gchar *format,
-                             va_list      args)
-{
-  gchar c;
-  return _g_vsnprintf (&c, 1, format, args) + 1;
-}
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.c
deleted file mode 100644
index 08e4dd637f..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
-#include "g-gnulib.h"
-
-/* Specification.  */
-#include "printf-args.h"
-
-#ifdef STATIC
-STATIC
-#endif
-int
-printf_fetchargs (va_list args, arguments *a)
-{
-  unsigned int i;
-  argument *ap;
-
-  for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
-    switch (ap->type)
-      {
-      case TYPE_SCHAR:
-    ap->a.a_schar = va_arg (args, /*signed char*/ int);
-    break;
-      case TYPE_UCHAR:
-    ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
-    break;
-      case TYPE_SHORT:
-    ap->a.a_short = va_arg (args, /*short*/ int);
-    break;
-      case TYPE_USHORT:
-    ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
-    break;
-      case TYPE_INT:
-    ap->a.a_int = va_arg (args, int);
-    break;
-      case TYPE_UINT:
-    ap->a.a_uint = va_arg (args, unsigned int);
-    break;
-      case TYPE_LONGINT:
-    ap->a.a_longint = va_arg (args, long int);
-    break;
-      case TYPE_ULONGINT:
-    ap->a.a_ulongint = va_arg (args, unsigned long int);
-    break;
-#ifdef HAVE_LONG_LONG
-      case TYPE_LONGLONGINT:
-    ap->a.a_longlongint = va_arg (args, long long int);
-    break;
-      case TYPE_ULONGLONGINT:
-    ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
-    break;
-#endif
-#ifdef HAVE_INT64_AND_I64
-      case TYPE_INT64:
-    ap->a.a_int64 = va_arg (args, __int64);
-    break;
-      case TYPE_UINT64:
-    ap->a.a_uint64 = va_arg (args, unsigned __int64);
-    break;
-#endif
-      case TYPE_DOUBLE:
-    ap->a.a_double = va_arg (args, double);
-    break;
-#ifdef HAVE_LONG_DOUBLE
-      case TYPE_LONGDOUBLE:
-    ap->a.a_longdouble = va_arg (args, long double);
-    break;
-#endif
-      case TYPE_CHAR:
-    ap->a.a_char = va_arg (args, int);
-    break;
-#ifdef HAVE_WINT_T
-      case TYPE_WIDE_CHAR:
-#ifdef _WIN32
-    ap->a.a_wide_char = va_arg (args, int);
-#else
-    ap->a.a_wide_char = va_arg (args, wint_t);
-#endif
-    break;
-#endif
-      case TYPE_STRING:
-    ap->a.a_string = va_arg (args, const char *);
-    break;
-#ifdef HAVE_WCHAR_T
-      case TYPE_WIDE_STRING:
-    ap->a.a_wide_string = va_arg (args, const wchar_t *);
-    break;
-#endif
-      case TYPE_POINTER:
-    ap->a.a_pointer = va_arg (args, void *);
-    break;
-      case TYPE_COUNT_SCHAR_POINTER:
-    ap->a.a_count_schar_pointer = va_arg (args, signed char *);
-    break;
-      case TYPE_COUNT_SHORT_POINTER:
-    ap->a.a_count_short_pointer = va_arg (args, short *);
-    break;
-      case TYPE_COUNT_INT_POINTER:
-    ap->a.a_count_int_pointer = va_arg (args, int *);
-    break;
-      case TYPE_COUNT_LONGINT_POINTER:
-    ap->a.a_count_longint_pointer = va_arg (args, long int *);
-    break;
-#ifdef HAVE_LONG_LONG
-      case TYPE_COUNT_LONGLONGINT_POINTER:
-    ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
-    break;
-#endif
-      default:
-    /* Unknown type.  */
-    return -1;
-      }
-  return 0;
-}
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.h
deleted file mode 100644
index ebfef883cb..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-args.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifndef _PRINTF_ARGS_H
-#define _PRINTF_ARGS_H
-
-/* Get wchar_t.  */
-#ifdef HAVE_WCHAR_T
-# include 
-#endif
-
-/* Get wint_t.  */
-#ifdef HAVE_WINT_T
-# include 
-#endif
-
-/* Get va_list.  */
-#include 
-
-
-/* Argument types */
-typedef enum
-{
-  TYPE_NONE,
-  TYPE_SCHAR,
-  TYPE_UCHAR,
-  TYPE_SHORT,
-  TYPE_USHORT,
-  TYPE_INT,
-  TYPE_UINT,
-  TYPE_LONGINT,
-  TYPE_ULONGINT,
-#ifdef HAVE_LONG_LONG
-  TYPE_LONGLONGINT,
-  TYPE_ULONGLONGINT,
-#endif
-#ifdef HAVE_INT64_AND_I64
-  TYPE_INT64,
-  TYPE_UINT64,
-#endif
-  TYPE_DOUBLE,
-#ifdef HAVE_LONG_DOUBLE
-  TYPE_LONGDOUBLE,
-#endif
-  TYPE_CHAR,
-#ifdef HAVE_WINT_T
-  TYPE_WIDE_CHAR,
-#endif
-  TYPE_STRING,
-#ifdef HAVE_WCHAR_T
-  TYPE_WIDE_STRING,
-#endif
-  TYPE_POINTER,
-  TYPE_COUNT_SCHAR_POINTER,
-  TYPE_COUNT_SHORT_POINTER,
-  TYPE_COUNT_INT_POINTER,
-  TYPE_COUNT_LONGINT_POINTER
-#ifdef HAVE_LONG_LONG
-, TYPE_COUNT_LONGLONGINT_POINTER
-#endif
-} arg_type;
-
-/* Polymorphic argument */
-typedef struct
-{
-  arg_type type;
-  union
-  {
-    signed char         a_schar;
-    unsigned char       a_uchar;
-    short           a_short;
-    unsigned short      a_ushort;
-    int             a_int;
-    unsigned int        a_uint;
-    long int            a_longint;
-    unsigned long int       a_ulongint;
-#ifdef HAVE_LONG_LONG
-    long long int       a_longlongint;
-    unsigned long long int  a_ulonglongint;
-#endif
-#ifdef HAVE_INT64_AND_I64
-    __int64                     a_int64;
-    unsigned __int64            a_uint64;
-#endif
-    float           a_float;
-    double          a_double;
-#ifdef HAVE_LONG_DOUBLE
-    long double         a_longdouble;
-#endif
-    int             a_char;
-#ifdef HAVE_WINT_T
-    wint_t          a_wide_char;
-#endif
-    const char*         a_string;
-#ifdef HAVE_WCHAR_T
-    const wchar_t*      a_wide_string;
-#endif
-    void*           a_pointer;
-    signed char *       a_count_schar_pointer;
-    short *         a_count_short_pointer;
-    int *           a_count_int_pointer;
-    long int *          a_count_longint_pointer;
-#ifdef HAVE_LONG_LONG
-    long long int *     a_count_longlongint_pointer;
-#endif
-  }
-  a;
-}
-argument;
-
-typedef struct
-{
-  unsigned int count;
-  argument *arg;
-}
-arguments;
-
-
-/* Fetch the arguments, putting them into a. */
-#ifdef STATIC
-STATIC
-#else
-extern
-#endif
-int printf_fetchargs (va_list args, arguments *a);
-
-#endif /* _PRINTF_ARGS_H */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.c
deleted file mode 100644
index 139293051c..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
-#include "g-gnulib.h"
-
-/* Specification.  */
-#include "printf-parse.h"
-
-/* Get size_t, NULL.  */
-#include 
-
-/* Get intmax_t.  */
-#if HAVE_STDINT_H_WITH_UINTMAX
-# include 
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-# include 
-#endif
-
-/* malloc(), realloc(), free().  */
-#include 
-
-#ifdef STATIC
-STATIC
-#endif
-int
-printf_parse (const char *format, char_directives *d, arguments *a)
-{
-  const char *cp = format;      /* pointer into format */
-  int arg_posn = 0;     /* number of regular arguments consumed */
-  unsigned int d_allocated;     /* allocated elements of d->dir */
-  unsigned int a_allocated;     /* allocated elements of a->arg */
-  unsigned int max_width_length = 0;
-  unsigned int max_precision_length = 0;
-
-  d->count = 0;
-  d_allocated = 1;
-  d->dir = malloc (d_allocated * sizeof (char_directive));
-  if (d->dir == NULL)
-    /* Out of memory.  */
-    return -1;
-
-  a->count = 0;
-  a_allocated = 0;
-  a->arg = NULL;
-
-#define REGISTER_ARG(_index_,_type_) \
-  {                                 \
-    unsigned int n = (_index_);                     \
-    if (n >= a_allocated)                       \
-      {                                 \
-    argument *memory;                       \
-    a_allocated = 2 * a_allocated;                  \
-    if (a_allocated <= n)                       \
-      a_allocated = n + 1;                      \
-    memory = (a->arg                        \
-          ? realloc (a->arg, a_allocated * sizeof (argument))   \
-          : malloc (a_allocated * sizeof (argument)));      \
-    if (memory == NULL)                     \
-      /* Out of memory.  */                     \
-      goto error;                           \
-    a->arg = memory;                        \
-      }                                 \
-    while (a->count <= n)                       \
-      a->arg[a->count++].type = TYPE_NONE;              \
-    if (a->arg[n].type == TYPE_NONE)                    \
-      a->arg[n].type = (_type_);                    \
-    else if (a->arg[n].type != (_type_))                \
-      /* Ambiguous type for positional argument.  */            \
-      goto error;                           \
-  }
-
-  while (*cp != '\0')
-    {
-      char c = *cp++;
-      if (c == '%')
-    {
-      int arg_index = -1;
-      char_directive *dp = &d->dir[d->count];/* pointer to next directive */
-
-      /* Initialize the next directive.  */
-      dp->dir_start = cp - 1;
-      dp->flags = 0;
-      dp->width_start = NULL;
-      dp->width_end = NULL;
-      dp->width_arg_index = -1;
-      dp->precision_start = NULL;
-      dp->precision_end = NULL;
-      dp->precision_arg_index = -1;
-      dp->arg_index = -1;
-
-      /* Test for positional argument.  */
-      if (*cp >= '0' && *cp <= '9')
-        {
-          const char *np;
-
-          for (np = cp; *np >= '0' && *np <= '9'; np++)
-        ;
-          if (*np == '$')
-        {
-          unsigned int n = 0;
-
-          for (np = cp; *np >= '0' && *np <= '9'; np++)
-            n = 10 * n + (*np - '0');
-          if (n == 0)
-            /* Positional argument 0.  */
-            goto error;
-          arg_index = n - 1;
-          cp = np + 1;
-        }
-        }
-
-      /* Read the flags.  */
-      for (;;)
-        {
-          if (*cp == '\'')
-        {
-          dp->flags |= FLAG_GROUP;
-          cp++;
-        }
-          else if (*cp == '-')
-        {
-          dp->flags |= FLAG_LEFT;
-          cp++;
-        }
-          else if (*cp == '+')
-        {
-          dp->flags |= FLAG_SHOWSIGN;
-          cp++;
-        }
-          else if (*cp == ' ')
-        {
-          dp->flags |= FLAG_SPACE;
-          cp++;
-        }
-          else if (*cp == '#')
-        {
-          dp->flags |= FLAG_ALT;
-          cp++;
-        }
-          else if (*cp == '0')
-        {
-          dp->flags |= FLAG_ZERO;
-          cp++;
-        }
-          else
-        break;
-        }
-
-      /* Parse the field width.  */
-      if (*cp == '*')
-        {
-          dp->width_start = cp;
-          cp++;
-          dp->width_end = cp;
-          if (max_width_length < 1)
-        max_width_length = 1;
-
-          /* Test for positional argument.  */
-          if (*cp >= '0' && *cp <= '9')
-        {
-          const char *np;
-
-          for (np = cp; *np >= '0' && *np <= '9'; np++)
-            ;
-          if (*np == '$')
-            {
-              unsigned int n = 0;
-
-              for (np = cp; *np >= '0' && *np <= '9'; np++)
-            n = 10 * n + (*np - '0');
-              if (n == 0)
-            /* Positional argument 0.  */
-            goto error;
-              dp->width_arg_index = n - 1;
-              cp = np + 1;
-            }
-        }
-          if (dp->width_arg_index < 0)
-        dp->width_arg_index = arg_posn++;
-          REGISTER_ARG (dp->width_arg_index, TYPE_INT);
-        }
-      else if (*cp >= '0' && *cp <= '9')
-        {
-          unsigned int width_length;
-
-          dp->width_start = cp;
-          for (; *cp >= '0' && *cp <= '9'; cp++)
-        ;
-          dp->width_end = cp;
-          width_length = dp->width_end - dp->width_start;
-          if (max_width_length < width_length)
-        max_width_length = width_length;
-        }
-
-      /* Parse the precision.  */
-      if (*cp == '.')
-        {
-          cp++;
-          if (*cp == '*')
-        {
-          dp->precision_start = cp - 1;
-          cp++;
-          dp->precision_end = cp;
-          if (max_precision_length < 2)
-            max_precision_length = 2;
-
-          /* Test for positional argument.  */
-          if (*cp >= '0' && *cp <= '9')
-            {
-              const char *np;
-
-              for (np = cp; *np >= '0' && *np <= '9'; np++)
-            ;
-              if (*np == '$')
-            {
-              unsigned int n = 0;
-
-              for (np = cp; *np >= '0' && *np <= '9'; np++)
-                n = 10 * n + (*np - '0');
-              if (n == 0)
-                /* Positional argument 0.  */
-                goto error;
-              dp->precision_arg_index = n - 1;
-              cp = np + 1;
-            }
-            }
-          if (dp->precision_arg_index < 0)
-            dp->precision_arg_index = arg_posn++;
-          REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
-        }
-          else
-        {
-          unsigned int precision_length;
-
-          dp->precision_start = cp - 1;
-          for (; *cp >= '0' && *cp <= '9'; cp++)
-            ;
-          dp->precision_end = cp;
-          precision_length = dp->precision_end - dp->precision_start;
-          if (max_precision_length < precision_length)
-            max_precision_length = precision_length;
-        }
-        }
-
-      {
-        arg_type type;
-
-        /* Parse argument type/size specifiers.  */
-        {
-          int flags = 0;
-
-          for (;;)
-        {
-          if (*cp == 'h')
-            {
-              flags |= (1 << (flags & 1));
-              cp++;
-            }
-          else if (*cp == 'L')
-            {
-              flags |= 4;
-              cp++;
-            }
-          else if (*cp == 'l')
-            {
-              flags += 8;
-              cp++;
-            }
-#ifdef HAVE_INT64_AND_I64
-          else if (cp[0] == 'I' &&
-               cp[1] == '6' &&
-               cp[2] == '4')
-            {
-              flags = 64;
-              cp += 3;
-            }
-#endif
-#ifdef HAVE_INTMAX_T
-          else if (*cp == 'j')
-            {
-              if (sizeof (intmax_t) > sizeof (long))
-            {
-              /* intmax_t = long long */
-              flags += 16;
-            }
-              else if (sizeof (intmax_t) > sizeof (int))
-            {
-              /* intmax_t = long */
-              flags += 8;
-            }
-              cp++;
-            }
-#endif
-          else if (*cp == 'z' || *cp == 'Z')
-            {
-              /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
-             because the warning facility in gcc-2.95.2 understands
-             only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784).  */
-              if (sizeof (size_t) > sizeof (long))
-            {
-              /* size_t = long long */
-              flags += 16;
-            }
-              else if (sizeof (size_t) > sizeof (int))
-            {
-              /* size_t = long */
-              flags += 8;
-            }
-              cp++;
-            }
-          else if (*cp == 't')
-            {
-              if (sizeof (ptrdiff_t) > sizeof (long))
-            {
-              /* ptrdiff_t = long long */
-              flags += 16;
-            }
-              else if (sizeof (ptrdiff_t) > sizeof (int))
-            {
-              /* ptrdiff_t = long */
-              flags += 8;
-            }
-              cp++;
-            }
-          else
-            break;
-        }
-
-          /* Read the conversion character.  */
-          c = *cp++;
-          switch (c)
-        {
-        case 'd': case 'i':
-#ifdef HAVE_INT64_AND_I64
-          if (flags == 64)
-            type = TYPE_INT64;
-          else
-#endif
-#ifdef HAVE_LONG_LONG
-          if (flags >= 16 || (flags & 4))
-            type = TYPE_LONGLONGINT;
-          else
-#endif
-          if (flags >= 8)
-            type = TYPE_LONGINT;
-          else if (flags & 2)
-            type = TYPE_SCHAR;
-          else if (flags & 1)
-            type = TYPE_SHORT;
-          else
-            type = TYPE_INT;
-          break;
-        case 'o': case 'u': case 'x': case 'X':
-#ifdef HAVE_INT64_AND_I64
-          if (flags == 64)
-            type = TYPE_UINT64;
-          else
-#endif
-#ifdef HAVE_LONG_LONG
-          if (flags >= 16 || (flags & 4))
-            type = TYPE_ULONGLONGINT;
-          else
-#endif
-          if (flags >= 8)
-            type = TYPE_ULONGINT;
-          else if (flags & 2)
-            type = TYPE_UCHAR;
-          else if (flags & 1)
-            type = TYPE_USHORT;
-          else
-            type = TYPE_UINT;
-          break;
-        case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-        case 'a': case 'A':
-#ifdef HAVE_LONG_DOUBLE
-          if (flags >= 16 || (flags & 4))
-            type = TYPE_LONGDOUBLE;
-          else
-#endif
-          type = TYPE_DOUBLE;
-          break;
-        case 'c':
-          if (flags >= 8)
-#ifdef HAVE_WINT_T
-            type = TYPE_WIDE_CHAR;
-#else
-            goto error;
-#endif
-          else
-            type = TYPE_CHAR;
-          break;
-#ifdef HAVE_WINT_T
-        case 'C':
-          type = TYPE_WIDE_CHAR;
-          c = 'c';
-          break;
-#endif
-        case 's':
-          if (flags >= 8)
-#ifdef HAVE_WCHAR_T
-            type = TYPE_WIDE_STRING;
-#else
-            goto error;
-#endif
-          else
-            type = TYPE_STRING;
-          break;
-#ifdef HAVE_WCHAR_T
-        case 'S':
-          type = TYPE_WIDE_STRING;
-          c = 's';
-          break;
-#endif
-        case 'p':
-          type = TYPE_POINTER;
-          break;
-        case 'n':
-#ifdef HAVE_LONG_LONG
-          if (flags >= 16 || (flags & 4))
-            type = TYPE_COUNT_LONGLONGINT_POINTER;
-          else
-#endif
-          if (flags >= 8)
-            type = TYPE_COUNT_LONGINT_POINTER;
-          else if (flags & 2)
-            type = TYPE_COUNT_SCHAR_POINTER;
-          else if (flags & 1)
-            type = TYPE_COUNT_SHORT_POINTER;
-          else
-            type = TYPE_COUNT_INT_POINTER;
-          break;
-        case '%':
-          type = TYPE_NONE;
-          break;
-        default:
-          /* Unknown conversion character.  */
-          goto error;
-        }
-        }
-
-        if (type != TYPE_NONE)
-          {
-        dp->arg_index = arg_index;
-        if (dp->arg_index < 0)
-          dp->arg_index = arg_posn++;
-        REGISTER_ARG (dp->arg_index, type);
-          }
-        dp->conversion = c;
-        dp->dir_end = cp;
-      }
-
-      d->count++;
-      if (d->count >= d_allocated)
-        {
-          char_directive *memory;
-
-          d_allocated = 2 * d_allocated;
-          memory = realloc (d->dir, d_allocated * sizeof (char_directive));
-          if (memory == NULL)
-        /* Out of memory.  */
-        goto error;
-          d->dir = memory;
-        }
-    }
-    }
-  d->dir[d->count].dir_start = cp;
-
-  d->max_width_length = max_width_length;
-  d->max_precision_length = max_precision_length;
-  return 0;
-
-error:
-  if (a->arg)
-    free (a->arg);
-  if (d->dir)
-    free (d->dir);
-  return -1;
-}
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.h
deleted file mode 100644
index 8e3097ad17..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/printf-parse.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Parse printf format string.
-   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifndef _PRINTF_PARSE_H
-#define _PRINTF_PARSE_H
-
-#include "printf-args.h"
-
-/* Private namespace for gnulib functions */
-#define printf_parse _g_gnulib_printf_parse
-
-/* Flags */
-#define FLAG_GROUP   1  /* ' flag */
-#define FLAG_LEFT    2  /* - flag */
-#define FLAG_SHOWSIGN    4  /* + flag */
-#define FLAG_SPACE   8  /* space flag */
-#define FLAG_ALT    16  /* # flag */
-#define FLAG_ZERO   32
-
-/* A parsed directive.  */
-typedef struct
-{
-  const char* dir_start;
-  const char* dir_end;
-  int flags;
-  const char* width_start;
-  const char* width_end;
-  int width_arg_index;
-  const char* precision_start;
-  const char* precision_end;
-  int precision_arg_index;
-  char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
-  int arg_index;
-}
-char_directive;
-
-/* A parsed format string.  */
-typedef struct
-{
-  unsigned int count;
-  char_directive *dir;
-  unsigned int max_width_length;
-  unsigned int max_precision_length;
-}
-char_directives;
-
-
-/* Parses the format string.  Fills in the number N of directives, and fills
-   in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-   to the end of the format string.  Also fills in the arg_type fields of the
-   arguments and the needed count of arguments.  */
-#ifdef STATIC
-STATIC
-#else
-extern
-#endif
-int printf_parse (const char *format, char_directives *d, arguments *a);
-
-#endif /* _PRINTF_PARSE_H */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.c
deleted file mode 100644
index ecaaaa8c26..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.c
+++ /dev/null
@@ -1,1082 +0,0 @@
-/* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifndef _WIN32
-/* Tell glibc's  to provide a prototype for snprintf().
-   This must come before  because  may include
-   , and once  has been included, it's too late.  */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE    1
-#endif
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-#include "glib/galloca.h"
-
-#include "g-gnulib.h"
-
-/* Specification.  */
-#include "vasnprintf.h"
-
-#include   /* snprintf(), sprintf() */
-#include  /* abort(), malloc(), realloc(), free() */
-#include  /* memcpy(), strlen() */
-#include   /* errno */
-#include  /* CHAR_BIT */
-#include   /* DBL_MAX_EXP, LDBL_MAX_EXP */
-#include "printf-parse.h"
-
-#ifdef HAVE_WCHAR_T
-# ifdef HAVE_WCSLEN
-#  define local_wcslen wcslen
-# else
-   /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
-      a dependency towards this library, here is a local substitute.
-      Define this substitute only once, even if this file is included
-      twice in the same compilation unit.  */
-#  ifndef local_wcslen_defined
-#   define local_wcslen_defined 1
-static size_t
-local_wcslen (const wchar_t *s)
-{
-  const wchar_t *ptr;
-
-  for (ptr = s; *ptr != (wchar_t) 0; ptr++)
-    ;
-  return ptr - s;
-}
-#  endif
-# endif
-#endif
-
-/* For those losing systems which don't have 'alloca' we have to add
-   some additional code emulating it.  */
-#ifdef HAVE_ALLOCA
-# define freea(p) /* nothing */
-#else
-# define alloca(n) malloc (n)
-# define freea(p) free (p)
-#endif
-
-#ifndef HAVE_LONG_LONG_FORMAT
-static int
-print_long_long (char *buf,
-         int len,
-         int width,
-         int precision,
-         unsigned long flags,
-         char conversion,
-         unsigned long long number)
-{
-  int negative = FALSE;
-  char buffer[128];
-  char *bufferend;
-  char *pointer;
-  int base;
-  static const char *upper = "0123456789ABCDEFX";
-  static const char *lower = "0123456789abcdefx";
-  const char *digits;
-  int i;
-  char *p;
-  int count;
-
-#define EMIT(c)           \
-  if (p - buf == len - 1) \
-    {                     \
-      *p++ = '\0';        \
-      return len;         \
-    }                     \
-  else                    \
-    *p++ = c;
-
-  p = buf;
-
-  switch (conversion)
-    {
-    case 'o':
-      base = 8;
-      digits = lower;
-      negative = FALSE;
-      break;
-    case 'x':
-      base = 16;
-      digits = lower;
-      negative = FALSE;
-      break;
-    case 'X':
-      base = 16;
-      digits = upper;
-      negative = FALSE;
-      break;
-    default:
-      base = 10;
-      digits = lower;
-      negative = (long long)number < 0;
-      if (negative)
-    number = -((long long)number);
-      break;
-    }
-
-  /* Build number */
-  pointer = bufferend = &buffer[sizeof(buffer) - 1];
-  *pointer-- = '\0';
-  for (i = 1; i < (int)sizeof(buffer); i++)
-    {
-      *pointer-- = digits[number % base];
-      number /= base;
-      if (number == 0)
-    break;
-    }
-
-  /* Adjust width */
-  width -= (bufferend - pointer) - 1;
-
-  /* Adjust precision */
-  if (precision != -1)
-    {
-      precision -= (bufferend - pointer) - 1;
-      if (precision < 0)
-    precision = 0;
-      flags |= FLAG_ZERO;
-    }
-
-  /* Adjust width further */
-  if (negative || (flags & FLAG_SHOWSIGN) || (flags & FLAG_SPACE))
-    width--;
-  if (flags & FLAG_ALT)
-    {
-      switch (base)
-    {
-    case 16:
-      width -= 2;
-      break;
-    case 8:
-      width--;
-      break;
-        default:
-      break;
-    }
-    }
-
-  /* Output prefixes spaces if needed */
-  if (! ((flags & FLAG_LEFT) ||
-     ((flags & FLAG_ZERO) && (precision == -1))))
-    {
-      count = (precision == -1) ? 0 : precision;
-      while (width-- > count)
-    *p++ = ' ';
-    }
-
-  /* width has been adjusted for signs and alternatives */
-  if (negative)
-    {
-      EMIT ('-');
-    }
-  else if (flags & FLAG_SHOWSIGN)
-    {
-      EMIT('+');
-    }
-  else if (flags & FLAG_SPACE)
-    {
-      EMIT(' ');
-    }
-
-  if (flags & FLAG_ALT)
-    {
-      switch (base)
-    {
-    case 8:
-      EMIT('0');
-      break;
-    case 16:
-      EMIT('0');
-      EMIT(digits[16]);
-      break;
-    default:
-      break;
-    } /* switch base */
-    }
-
-  /* Output prefixed zero padding if needed */
-  if (flags & FLAG_ZERO)
-    {
-      if (precision == -1)
-    precision = width;
-      while (precision-- > 0)
-    {
-      EMIT('0');
-      width--;
-    }
-    }
-
-  /* Output the number itself */
-  while (*(++pointer))
-    {
-      EMIT(*pointer);
-    }
-
-  /* Output trailing spaces if needed */
-  if (flags & FLAG_LEFT)
-    {
-      while (width-- > 0)
-    EMIT(' ');
-    }
-
-  EMIT('\0');
-
-  return p - buf - 1;
-}
-#endif
-
-char *
-vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
-{
-  char_directives d;
-  arguments a;
-
-  if (printf_parse (format, &d, &a) < 0)
-    {
-      errno = EINVAL;
-      return NULL;
-    }
-
-#define CLEANUP() \
-  free (d.dir);                             \
-  if (a.arg)                                \
-    free (a.arg);
-
-  if (printf_fetchargs (args, &a) < 0)
-    {
-      CLEANUP ();
-      errno = EINVAL;
-      return NULL;
-    }
-
-  {
-    char *buf =
-      (char *) alloca (7 + d.max_width_length + d.max_precision_length + 6);
-    const char *cp;
-    unsigned int i;
-    char_directive *dp;
-    /* Output string accumulator.  */
-    char *result;
-    size_t allocated;
-    size_t length;
-
-    if (resultbuf != NULL)
-      {
-    result = resultbuf;
-    allocated = *lengthp;
-      }
-    else
-      {
-    result = NULL;
-    allocated = 0;
-      }
-    length = 0;
-    /* Invariants:
-       result is either == resultbuf or == NULL or malloc-allocated.
-       If length > 0, then result != NULL.  */
-
-#define ENSURE_ALLOCATION(needed) \
-    if ((needed) > allocated)                       \
-      {                                 \
-    char *memory;                           \
-                                    \
-    allocated = (allocated > 0 ? 2 * allocated : 12);       \
-    if ((needed) > allocated)                   \
-      allocated = (needed);                     \
-    if (result == resultbuf || result == NULL)          \
-      memory = (char *) malloc (allocated);             \
-    else                                \
-      memory = (char *) realloc (result, allocated);        \
-                                    \
-    if (memory == NULL)                     \
-      {                             \
-        if (!(result == resultbuf || result == NULL))       \
-          free (result);                        \
-        freea (buf);                        \
-        CLEANUP ();                         \
-        errno = ENOMEM;                     \
-        return NULL;                        \
-      }                             \
-    if (result == resultbuf && length > 0)              \
-      memcpy (memory, result, length);              \
-    result = memory;                        \
-      }
-
-    for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
-      {
-    if (cp != dp->dir_start)
-      {
-        size_t n = dp->dir_start - cp;
-
-        ENSURE_ALLOCATION (length + n);
-        memcpy (result + length, cp, n);
-        length += n;
-      }
-    if (i == d.count)
-      break;
-
-    /* Execute a single directive.  */
-    if (dp->conversion == '%')
-      {
-        if (!(dp->arg_index < 0))
-          abort ();
-        ENSURE_ALLOCATION (length + 1);
-        result[length] = '%';
-        length += 1;
-      }
-    else
-      {
-        if (!(dp->arg_index >= 0))
-          abort ();
-
-        if (dp->conversion == 'n')
-          {
-        switch (a.arg[dp->arg_index].type)
-          {
-          case TYPE_COUNT_SCHAR_POINTER:
-            *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
-            break;
-          case TYPE_COUNT_SHORT_POINTER:
-            *a.arg[dp->arg_index].a.a_count_short_pointer = length;
-            break;
-          case TYPE_COUNT_INT_POINTER:
-            *a.arg[dp->arg_index].a.a_count_int_pointer = length;
-            break;
-          case TYPE_COUNT_LONGINT_POINTER:
-            *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
-            break;
-#ifdef HAVE_LONG_LONG
-          case TYPE_COUNT_LONGLONGINT_POINTER:
-            *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
-            break;
-#endif
-          default:
-            abort ();
-          }
-          }
-        else
-          {
-        arg_type type = a.arg[dp->arg_index].type;
-        char *p;
-        unsigned int prefix_count;
-        int prefixes[2];
-#if !HAVE_SNPRINTF
-        unsigned int tmp_length;
-        char tmpbuf[700];
-        char *tmp;
-
-        /* Allocate a temporary buffer of sufficient size for calling
-           sprintf.  */
-        {
-          unsigned int width;
-          unsigned int precision;
-
-          width = 0;
-          if (dp->width_start != dp->width_end)
-            {
-              if (dp->width_arg_index >= 0)
-            {
-              int arg;
-
-              if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-                abort ();
-              arg = a.arg[dp->width_arg_index].a.a_int;
-              width = (arg < 0 ? -arg : arg);
-            }
-              else
-            {
-              const char *digitp = dp->width_start;
-
-              do
-                width = width * 10 + (*digitp++ - '0');
-              while (digitp != dp->width_end);
-            }
-            }
-
-          precision = 6;
-          if (dp->precision_start != dp->precision_end)
-            {
-              if (dp->precision_arg_index >= 0)
-            {
-              int arg;
-
-              if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-                abort ();
-              arg = a.arg[dp->precision_arg_index].a.a_int;
-              precision = (arg < 0 ? 0 : arg);
-            }
-              else
-            {
-              const char *digitp = dp->precision_start + 1;
-
-              precision = 0;
-              while (digitp != dp->precision_end)
-                precision = precision * 10 + (*digitp++ - '0');
-            }
-            }
-
-          switch (dp->conversion)
-            {
-            case 'd': case 'i': case 'u':
-# ifdef HAVE_LONG_LONG
-              if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                      * 0.30103 /* binary -> decimal */
-                      * 2 /* estimate for FLAG_GROUP */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              else
-# endif
-              if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                      * 0.30103 /* binary -> decimal */
-                      * 2 /* estimate for FLAG_GROUP */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              else
-            tmp_length =
-              (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                      * 0.30103 /* binary -> decimal */
-                      * 2 /* estimate for FLAG_GROUP */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              break;
-
-            case 'o':
-# ifdef HAVE_LONG_LONG
-              if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                      * 0.333334 /* binary -> octal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              else
-# endif
-              if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                      * 0.333334 /* binary -> octal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              else
-            tmp_length =
-              (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                      * 0.333334 /* binary -> octal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 1; /* account for leading sign */
-              break;
-
-            case 'x': case 'X':
-# ifdef HAVE_LONG_LONG
-              if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                      * 0.25 /* binary -> hexadecimal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 2; /* account for leading sign or alternate form */
-              else
-# endif
-# ifdef HAVE_INT64_AND_I64
-              if (type == TYPE_INT64 || type == TYPE_UINT64)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned __int64) * CHAR_BIT
-                      * 0.25 /* binary -> hexadecimal */
-                      )
-              + 1 /* turn floor into ceil */
-              + 2; /* account for leading sign or alternate form */
-              else
-# endif
-              if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-            tmp_length =
-              (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                      * 0.25 /* binary -> hexadecimal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 2; /* account for leading sign or alternate form */
-              else
-            tmp_length =
-              (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                      * 0.25 /* binary -> hexadecimal */
-                     )
-              + 1 /* turn floor into ceil */
-              + 2; /* account for leading sign or alternate form */
-              break;
-
-            case 'f': case 'F':
-# ifdef HAVE_LONG_DOUBLE
-              if (type == TYPE_LONGDOUBLE)
-            tmp_length =
-              (unsigned int) (LDBL_MAX_EXP
-                      * 0.30103 /* binary -> decimal */
-                      * 2 /* estimate for FLAG_GROUP */
-                     )
-              + 1 /* turn floor into ceil */
-              + precision
-              + 10; /* sign, decimal point etc. */
-              else
-# endif
-            tmp_length =
-              (unsigned int) (DBL_MAX_EXP
-                      * 0.30103 /* binary -> decimal */
-                      * 2 /* estimate for FLAG_GROUP */
-                     )
-              + 1 /* turn floor into ceil */
-              + precision
-              + 10; /* sign, decimal point etc. */
-              break;
-
-            case 'e': case 'E': case 'g': case 'G':
-            case 'a': case 'A':
-              tmp_length =
-            precision
-            + 12; /* sign, decimal point, exponent etc. */
-              break;
-
-            case 'c':
-# ifdef HAVE_WINT_T
-              if (type == TYPE_WIDE_CHAR)
-            tmp_length = MB_CUR_MAX;
-              else
-# endif
-            tmp_length = 1;
-              break;
-
-            case 's':
-# ifdef HAVE_WCHAR_T
-              if (type == TYPE_WIDE_STRING)
-            tmp_length =
-              (a.arg[dp->arg_index].a.a_wide_string == NULL
-              ? 6 /* wcslen(L"(null)") */
-               : local_wcslen (a.arg[dp->arg_index].a.a_wide_string))
-              * MB_CUR_MAX;
-              else
-# endif
-            tmp_length = a.arg[dp->arg_index].a.a_string == NULL
-              ? 6 /* strlen("(null)") */
-              : strlen (a.arg[dp->arg_index].a.a_string);
-              break;
-
-            case 'p':
-              tmp_length =
-            (unsigned int) (sizeof (void *) * CHAR_BIT
-                    * 0.25 /* binary -> hexadecimal */
-                       )
-              + 1 /* turn floor into ceil */
-              + 2; /* account for leading 0x */
-              break;
-
-            default:
-              abort ();
-            }
-
-          if (tmp_length < width)
-            tmp_length = width;
-
-          tmp_length++; /* account for trailing NUL */
-        }
-
-        if (tmp_length <= sizeof (tmpbuf))
-          tmp = tmpbuf;
-        else
-          {
-            tmp = (char *) malloc (tmp_length);
-            if (tmp == NULL)
-              {
-            /* Out of memory.  */
-            if (!(result == resultbuf || result == NULL))
-              free (result);
-            freea (buf);
-            CLEANUP ();
-            errno = ENOMEM;
-            return NULL;
-              }
-          }
-#endif
-
-        /* Construct the format string for calling snprintf or
-           sprintf.  */
-        p = buf;
-        *p++ = '%';
-        if (dp->flags & FLAG_GROUP)
-          *p++ = '\'';
-        if (dp->flags & FLAG_LEFT)
-          *p++ = '-';
-        if (dp->flags & FLAG_SHOWSIGN)
-          *p++ = '+';
-        if (dp->flags & FLAG_SPACE)
-          *p++ = ' ';
-        if (dp->flags & FLAG_ALT)
-          *p++ = '#';
-        if (dp->flags & FLAG_ZERO)
-          *p++ = '0';
-        if (dp->width_start != dp->width_end)
-          {
-            size_t n = dp->width_end - dp->width_start;
-            memcpy (p, dp->width_start, n);
-            p += n;
-          }
-        if (dp->precision_start != dp->precision_end)
-          {
-            size_t n = dp->precision_end - dp->precision_start;
-            memcpy (p, dp->precision_start, n);
-            p += n;
-          }
-
-        switch (type)
-          {
-#ifdef HAVE_INT64_AND_I64
-          case TYPE_INT64:
-          case TYPE_UINT64:
-            *p++ = 'I';
-            *p++ = '6';
-            *p++ = '4';
-            break;
-#endif
-#ifdef HAVE_LONG_LONG
-          case TYPE_LONGLONGINT:
-          case TYPE_ULONGLONGINT:
-#ifdef HAVE_INT64_AND_I64   /* The system (sn)printf uses %I64. Also assume
-                 * that long long == __int64.
-                 */
-            *p++ = 'I';
-            *p++ = '6';
-            *p++ = '4';
-            break;
-#else
-            *p++ = 'l';
-            /*FALLTHROUGH*/
-#endif
-#endif
-          case TYPE_LONGINT:
-          case TYPE_ULONGINT:
-#ifdef HAVE_WINT_T
-          case TYPE_WIDE_CHAR:
-#endif
-#ifdef HAVE_WCHAR_T
-          case TYPE_WIDE_STRING:
-#endif
-            *p++ = 'l';
-            break;
-#ifdef HAVE_LONG_DOUBLE
-          case TYPE_LONGDOUBLE:
-            *p++ = 'L';
-            break;
-#endif
-          default:
-            break;
-          }
-        *p = dp->conversion;
-#if HAVE_SNPRINTF
-        p[1] = '%';
-        p[2] = 'n';
-        p[3] = '\0';
-#else
-        p[1] = '\0';
-#endif
-
-        /* Construct the arguments for calling snprintf or sprintf.  */
-        prefix_count = 0;
-        if (dp->width_arg_index >= 0)
-          {
-            if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-              abort ();
-            prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
-          }
-        if (dp->precision_arg_index >= 0)
-          {
-            if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-              abort ();
-            prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
-          }
-
-#if HAVE_SNPRINTF
-        /* Prepare checking whether snprintf returns the count
-           via %n.  */
-        ENSURE_ALLOCATION (length + 1);
-        result[length] = '\0';
-#endif
-
-        for (;;)
-          {
-            size_t maxlen;
-            int count;
-#if HAVE_SNPRINTF
-            int retcount;
-#endif
-
-            maxlen = allocated - length;
-            count = -1;
-
-#if HAVE_SNPRINTF
-            retcount = 0;
-
-#define SNPRINTF_BUF(arg) \
-            switch (prefix_count)                   \
-              {                             \
-              case 0:                           \
-            retcount = snprintf (result + length, maxlen, buf,  \
-                         arg, &count);          \
-            break;                          \
-              case 1:                           \
-            retcount = snprintf (result + length, maxlen, buf,  \
-                         prefixes[0], arg, &count);     \
-            break;                          \
-              case 2:                           \
-            retcount = snprintf (result + length, maxlen, buf,  \
-                         prefixes[0], prefixes[1], arg, \
-                         &count);               \
-            break;                          \
-              default:                          \
-            abort ();                       \
-              }
-#else
-#define SNPRINTF_BUF(arg) \
-            switch (prefix_count)                   \
-              {                             \
-              case 0:                           \
-            count = sprintf (tmp, buf, arg);            \
-            break;                          \
-              case 1:                           \
-            count = sprintf (tmp, buf, prefixes[0], arg);       \
-            break;                          \
-              case 2:                           \
-            count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
-                     arg);                  \
-            break;                          \
-              default:                          \
-            abort ();                       \
-              }
-#endif
-
-            switch (type)
-              {
-              case TYPE_SCHAR:
-            {
-              int arg = a.arg[dp->arg_index].a.a_schar;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_UCHAR:
-            {
-              unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_SHORT:
-            {
-              int arg = a.arg[dp->arg_index].a.a_short;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_USHORT:
-            {
-              unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_INT:
-            {
-              int arg = a.arg[dp->arg_index].a.a_int;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_UINT:
-            {
-              unsigned int arg = a.arg[dp->arg_index].a.a_uint;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_LONGINT:
-            {
-              long int arg = a.arg[dp->arg_index].a.a_longint;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_ULONGINT:
-            {
-              unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#ifdef HAVE_INT64_AND_I64
-              case TYPE_INT64:
-            {
-              __int64 arg = a.arg[dp->arg_index].a.a_int64;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_UINT64:
-            {
-              unsigned __int64 arg = a.arg[dp->arg_index].a.a_uint64;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#endif
-#ifdef HAVE_LONG_LONG
-#ifndef HAVE_LONG_LONG_FORMAT
-              case TYPE_LONGLONGINT:
-              case TYPE_ULONGLONGINT:
-            {
-              unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
-              int width;
-              int precision;
-
-              width = 0;
-              if (dp->width_start != dp->width_end)
-                {
-                  if (dp->width_arg_index >= 0)
-                {
-                  int arg;
-
-                  if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-                    abort ();
-                  arg = a.arg[dp->width_arg_index].a.a_int;
-                  width = (arg < 0 ? -arg : arg);
-                }
-                  else
-                {
-                  const char *digitp = dp->width_start;
-
-                  do
-                    width = width * 10 + (*digitp++ - '0');
-                  while (digitp != dp->width_end);
-                }
-                }
-
-              precision = -1;
-              if (dp->precision_start != dp->precision_end)
-                {
-                  if (dp->precision_arg_index >= 0)
-                {
-                  int arg;
-
-                  if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-                    abort ();
-                  arg = a.arg[dp->precision_arg_index].a.a_int;
-                  precision = (arg < 0 ? 0 : arg);
-                }
-                  else
-                {
-                  const char *digitp = dp->precision_start + 1;
-
-                  precision = 0;
-                  do
-                    precision = precision * 10 + (*digitp++ - '0');
-                  while (digitp != dp->precision_end);
-                }
-                }
-
-#if HAVE_SNPRINTF
-              count = print_long_long (result + length, maxlen,
-                           width, precision,
-                           dp->flags,
-                           dp->conversion,
-                           arg);
-#else
-              count = print_long_long (tmp, tmp_length,
-                           width, precision,
-                           dp->flags,
-                           dp->conversion,
-                           arg);
-#endif
-            }
-            break;
-#else
-              case TYPE_LONGLONGINT:
-            {
-              long long int arg = a.arg[dp->arg_index].a.a_longlongint;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              case TYPE_ULONGLONGINT:
-            {
-              unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#endif
-#endif
-              case TYPE_DOUBLE:
-            {
-              double arg = a.arg[dp->arg_index].a.a_double;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#ifdef HAVE_LONG_DOUBLE
-              case TYPE_LONGDOUBLE:
-            {
-              long double arg = a.arg[dp->arg_index].a.a_longdouble;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#endif
-              case TYPE_CHAR:
-            {
-              int arg = a.arg[dp->arg_index].a.a_char;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#ifdef HAVE_WINT_T
-              case TYPE_WIDE_CHAR:
-            {
-              wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#endif
-              case TYPE_STRING:
-            {
-              const char *arg = a.arg[dp->arg_index].a.a_string == NULL
-                ? "(null)"
-                : a.arg[dp->arg_index].a.a_string;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#ifdef HAVE_WCHAR_T
-              case TYPE_WIDE_STRING:
-            {
-              const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string == NULL
-                ? L"(null)"
-                : a.arg[dp->arg_index].a.a_wide_string;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-#endif
-              case TYPE_POINTER:
-            {
-              void *arg = a.arg[dp->arg_index].a.a_pointer;
-              SNPRINTF_BUF (arg);
-            }
-            break;
-              default:
-            abort ();
-              }
-
-#if HAVE_SNPRINTF
-            /* Portability: Not all implementations of snprintf()
-               are ISO C 99 compliant.  Determine the number of
-               bytes that snprintf() has produced or would have
-               produced.  */
-            if (count >= 0)
-              {
-            /* Verify that snprintf() has NUL-terminated its
-               result.  */
-            if (count < maxlen && result[length + count] != '\0')
-              abort ();
-            /* Portability hack.  */
-            if (retcount > count)
-              count = retcount;
-              }
-            else
-              {
-            /* snprintf() doesn't understand the '%n'
-               directive.  */
-            if (p[1] != '\0')
-              {
-                /* Don't use the '%n' directive; instead, look
-                   at the snprintf() return value.  */
-                p[1] = '\0';
-                continue;
-              }
-            count = retcount;
-              }
-#endif
-
-            /* Attempt to handle failure.  */
-            if (count < 0)
-              {
-            if (!(result == resultbuf || result == NULL))
-              free (result);
-            freea (buf);
-            CLEANUP ();
-            errno = EINVAL;
-            return NULL;
-              }
-
-#if !HAVE_SNPRINTF
-            if (count >= tmp_length)
-              /* tmp_length was incorrectly calculated - fix the
-             code above!  */
-              abort ();
-#endif
-
-            /* Make room for the result.  */
-            if (count >= maxlen)
-              {
-            /* Need at least count bytes.  But allocate
-               proportionally, to avoid looping eternally if
-               snprintf() reports a too small count.  */
-            size_t n = length + count;
-
-            if (n < 2 * allocated)
-              n = 2 * allocated;
-
-            ENSURE_ALLOCATION (n);
-#if HAVE_SNPRINTF
-            continue;
-#endif
-              }
-
-#if HAVE_SNPRINTF
-            /* The snprintf() result did fit.  */
-#else
-            /* Append the sprintf() result.  */
-            memcpy (result + length, tmp, count);
-            if (tmp != tmpbuf)
-              free (tmp);
-#endif
-
-            length += count;
-            break;
-          }
-          }
-      }
-      }
-
-    /* Add the final NUL.  */
-    ENSURE_ALLOCATION (length + 1);
-    result[length] = '\0';
-
-    if (result != resultbuf && length + 1 < allocated)
-      {
-    /* Shrink the allocated memory if possible.  */
-    char *memory;
-
-    memory = (char *) realloc (result, length + 1);
-    if (memory != NULL)
-      result = memory;
-      }
-
-    freea (buf);
-    CLEANUP ();
-    *lengthp = length;
-    return result;
-  }
-}
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.h
deleted file mode 100644
index f480ad4383..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gnulib/vasnprintf.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, see .  */
-
-#ifndef _VASNPRINTF_H
-#define _VASNPRINTF_H
-
-/* Get va_list.  */
-#include 
-
-/* Get size_t.  */
-#include 
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-#  define __attribute__(Spec) /* empty */
-# endif
-/* The __-protected variants of `format' and `printf' attributes
-   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-#  define __format__ format
-#  define __printf__ printf
-# endif
-#endif
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/* Write formatted output to a string dynamically allocated with malloc().
-   You can pass a preallocated buffer for the result in RESULTBUF and its
-   size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-   If successful, return the address of the string (this may be = RESULTBUF
-   if no dynamic memory allocation was necessary) and set *LENGTHP to the
-   number of resulting bytes, excluding the trailing NUL.  Upon error, set
-   errno and return NULL.  */
-extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-       __attribute__ ((__format__ (__printf__, 3, 4)));
-extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
-       __attribute__ ((__format__ (__printf__, 3, 0)));
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* _VASNPRINTF_H */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gtrashstack.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gtrashstack.h
deleted file mode 100644
index 3e513a0d8a..0000000000
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gtrashstack.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see .
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-#ifndef __G_TRASH_STACK_H__
-#define __G_TRASH_STACK_H__
-
-#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only  can be included directly."
-#endif
-
-#include 
-
-G_BEGIN_DECLS
-
-typedef struct _GTrashStack GTrashStack;
-struct _GTrashStack
-{
-  GTrashStack *next;
-};
-
-G_INLINE_FUNC void      g_trash_stack_push   (GTrashStack **stack_p,
-                                              gpointer      data_p);
-G_INLINE_FUNC gpointer  g_trash_stack_pop    (GTrashStack **stack_p);
-G_INLINE_FUNC gpointer  g_trash_stack_peek   (GTrashStack **stack_p);
-G_INLINE_FUNC guint     g_trash_stack_height (GTrashStack **stack_p);
-
-#if defined (G_CAN_INLINE) || defined (__G_TRASH_STACK_C__)
-
-G_INLINE_FUNC void
-g_trash_stack_push (GTrashStack **stack_p,
-                    gpointer      data_p)
-{
-  GTrashStack *data = (GTrashStack *) data_p;
-
-  data->next = *stack_p;
-  *stack_p = data;
-}
-G_INLINE_FUNC gpointer
-g_trash_stack_pop (GTrashStack **stack_p)
-{
-  GTrashStack *data;
-
-  data = *stack_p;
-  if (data)
-    {
-      *stack_p = data->next;
-      /* NULLify private pointer here, most platforms store NULL as
-       * subsequent 0 bytes
-       */
-      data->next = NULL;
-    }
-
-  return data;
-}
-G_INLINE_FUNC gpointer
-g_trash_stack_peek (GTrashStack **stack_p)
-{
-  GTrashStack *data;
-
-  data = *stack_p;
-
-  return data;
-}
-G_INLINE_FUNC guint
-g_trash_stack_height (GTrashStack **stack_p)
-{
-  GTrashStack *data;
-  guint i = 0;
-
-  for (data = *stack_p; data; data = data->next)
-    i++;
-
-  return i;
-}
-
-#endif  /* G_CAN_INLINE || __G_TRASH_STACK_C__ */
-
-G_END_DECLS
-
-#endif /* __G_UTILS_H__ */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/COPYING b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/COPYING
similarity index 74%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/COPYING
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/COPYING
index bf50f20de6..4362b49151 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/COPYING
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/COPYING
@@ -1,112 +1,125 @@
-		  GNU LIBRARY GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
 
- Copyright (C) 1991 Free Software Foundation, Inc.
-    		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
 
-			    Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
 Licenses are intended to guarantee your freedom to share and change
 free software--to make sure the software is free for all its users.
 
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
 
   To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
 
   For example, if you distribute copies of the library, whether gratis
 or for a fee, you must give the recipients all the rights that we gave
 you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
 it.  And you must show them these terms so they know their rights.
 
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
 permission to copy, distribute and/or modify the library.
 
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
 
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
 
   The precise terms and conditions for copying, distribution and
 modification follow.  Pay close attention to the difference between a
 "work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
 
-		  GNU LIBRARY GENERAL PUBLIC LICENSE
+                  GNU LESSER GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
 
   A "library" means a collection of software functions and/or data
 prepared so as to be conveniently linked with application programs
@@ -133,7 +146,7 @@ such a program is covered only if its contents constitute a work based
 on the Library (independent of the use of the Library in a tool for
 writing it).  Whether that is true depends on what the Library does
 and what the program that uses the Library does.
-  
+
   1. You may copy and distribute verbatim copies of the Library's
 complete source code as you receive it, in any medium, provided that
 you conspicuously and appropriately publish on each copy an
@@ -255,7 +268,7 @@ distribute the object code for the work under the terms of Section 6.
 Any executables containing that work also fall under Section 6,
 whether or not they are linked directly with the Library itself.
 
-  6. As an exception to the Sections above, you may also compile or
+  6. As an exception to the Sections above, you may also combine or
 link a "work that uses the Library" with the Library to produce a
 work containing portions of the Library, and distribute that work
 under terms of your choice, provided that the terms permit
@@ -282,23 +295,31 @@ of these things:
     Library will not necessarily be able to recompile the application
     to use the modified definitions.)
 
-    b) Accompany the work with a written offer, valid for at
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
     least three years, to give the same user the materials
     specified in Subsection 6a, above, for a charge no more
     than the cost of performing this distribution.
 
-    c) If distribution of the work is made by offering access to copy
+    d) If distribution of the work is made by offering access to copy
     from a designated place, offer equivalent access to copy the above
     specified materials from the same place.
 
-    d) Verify that the user has already received a copy of these
+    e) Verify that the user has already received a copy of these
     materials or that you have already sent this user a copy.
 
   For an executable, the required form of the "work that uses the
 Library" must include any data and utility programs needed for
 reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
 components (compiler, kernel, and so on) of the operating system on
 which the executable runs, unless that component itself accompanies
 the executable.
@@ -347,7 +368,7 @@ Library), the recipient automatically receives a license from the
 original licensor to copy, distribute, link with or modify the Library
 subject to these terms and conditions.  You may not impose any further
 restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
+You are not responsible for enforcing compliance by third parties with
 this License.
 
   11. If, as a consequence of a court judgment or allegation of patent
@@ -390,7 +411,7 @@ excluded.  In such case, this License incorporates the limitation as if
 written in the body of this License.
 
   13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
+versions of the Lesser General Public License from time to time.
 Such new versions will be similar in spirit to the present version,
 but may differ in detail to address new problems or concerns.
 
@@ -411,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
 of all derivatives of our free software and of promoting the sharing
 and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
 WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -434,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
+                     END OF TERMS AND CONDITIONS
 
            How to Apply These Terms to Your New Libraries
 
@@ -453,19 +474,18 @@ convey the exclusion of warranty; and each file should have at least the
     Copyright (C)   
 
     This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
+    modify it under the terms of the GNU Lesser General Public
     License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
+    version 2.1 of the License, or (at your option) any later version.
 
     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
+    Lesser General Public License for more details.
 
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the 
-    Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
-    Boston, MA  02111-1307  USA.
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 Also add information on how to contact you by electronic and paper mail.
 
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/config.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/config.h
similarity index 88%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/config.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/config.h
index 6c645e8399..7cbd6db2e0 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/config.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/config.h
@@ -37,7 +37,7 @@
 #define GETTEXT_PACKAGE "glib20"
 
 /* Define to the GLIB binary age */
-#define GLIB_BINARY_AGE 4201
+#define GLIB_BINARY_AGE 5601
 
 /* Define to the GLIB interface age */
 #define GLIB_INTERFACE_AGE 1
@@ -52,7 +52,7 @@
 #define GLIB_MICRO_VERSION 1
 
 /* Define to the GLIB minor version */
-#define GLIB_MINOR_VERSION 42
+#define GLIB_MINOR_VERSION 56
 
 /* Have inline keyword */
 #define G_HAVE_INLINE 1
@@ -93,6 +93,14 @@
 /* define to 1 if Carbon is available */
 #define HAVE_CARBON 1
 
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
 /* Define to 1 if you have the `clock_gettime' function. */
 /* #undef HAVE_CLOCK_GETTIME */
 
@@ -111,6 +119,10 @@
 /* Define to 1 if you have the `dcgettext' function. */
 /* #undef HAVE_DCGETTEXT */
 
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRERROR_R
+
 /* Define to 1 if you have the  header file, and it defines `DIR'.
    */
 #define HAVE_DIRENT_H 1
@@ -166,6 +178,9 @@
 /* Define to 1 if you have the `getfsstat' function. */
 #define HAVE_GETFSSTAT 1
 
+/* Define to 1 if you have the `getgrgid_r' function. */
+#undef HAVE_GETGRGID_R
+
 /* Define to 1 if you have the `getmntent_r' function. */
 /* #undef HAVE_GETMNTENT_R */
 
@@ -224,6 +239,12 @@
 /* Define to 1 if you have the `kqueue' function. */
 #define HAVE_KQUEUE 1
 
+/* Have nl_langinfo (_NL_ABALTMON_n) */
+#undef HAVE_LANGINFO_ABALTMON
+
+/* Have nl_langinfo (ALTMON_n) */
+#undef HAVE_LANGINFO_ALTMON
+
 /* Define if you have  and nl_langinfo(CODESET). */
 #define HAVE_LANGINFO_CODESET 1
 
@@ -248,6 +269,9 @@
 /* Define if libelf is available */
 /* #undef HAVE_LIBELF */
 
+/* Define if libmount is available */
+#undef HAVE_LIBMOUNT
+
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_LINUX_MAGIC_H */
 
@@ -275,6 +299,9 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_MALLOC_H */
 
+/* Define to 1 if you have the `mbrtowc' function. */
+#undef HAVE_MBRTOWC
+
 /* Define to 1 if you have the `memalign' function. */
 /* #undef HAVE_MEMALIGN */
 
@@ -284,6 +311,9 @@
 /* Define to 1 if you have the  header file. */
 #define HAVE_MEMORY_H 1
 
+/* Define to 1 if you have the `mkostemp' function. */
+#undef HAVE_MKOSTEMP
+
 /* Define to 1 if you have the `mmap' function. */
 #define HAVE_MMAP 1
 
@@ -299,12 +329,6 @@
 /* Define to 1 if you have the `newlocale' function. */
 #define HAVE_NEWLOCALE 1
 
-/* Have non-POSIX function getgrgid_r */
-/* #undef HAVE_NONPOSIX_GETGRGID_R */
-
-/* Have non-POSIX function getpwuid_r */
-/* #undef HAVE_NONPOSIX_GETPWUID_R */
-
 /* open option O_DIRECTORY */
 #define HAVE_OPEN_O_DIRECTORY 1
 
@@ -314,12 +338,6 @@
 /* Define to 1 if you have the `poll' function. */
 #define HAVE_POLL 1
 
-/* Have POSIX function getgrgid_r */
-#define HAVE_POSIX_GETGRGID_R 1
-
-/* Have POSIX function getpwuid_r */
-#define HAVE_POSIX_GETPWUID_R 1
-
 /* Define to 1 if you have the `posix_memalign' function. */
 #define HAVE_POSIX_MEMALIGN 1
 
@@ -335,15 +353,45 @@
 /* Have function pthread_cond_timedwait_relative_np */
 #define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP 1
 
+/* Have function pthread_setname_np(const char*) */
+#undef HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID
+
+/* Have function pthread_setname_np(pthread_t, const char*) */
+#undef HAVE_PTHREAD_SETNAME_NP_WITH_TID
+
 /* Define to 1 if the system has the type `ptrdiff_t'. */
 #define HAVE_PTRDIFF_T 1
 
 /* Define to 1 if you have the `readlink' function. */
 #define HAVE_READLINK 1
 
+/* Define to 1 if you have the `recvmmsg' function. */
+#undef HAVE_RECVMMSG
+
 /* Define to 1 if you have the 'res_init' function. */
 #define HAVE_RES_INIT 1
 
+/* Define to 1 if you have the 'res_nclose' function. */
+#undef HAVE_RES_NCLOSE
+
+/* Define to 1 if you have the 'res_ndestroy' function. */
+#undef HAVE_RES_NDESTROY
+
+/* Define to 1 if you have the 'res_ninit' function. */
+#undef HAVE_RES_NINIT
+
+/* Define to 1 if you have the 'res_nquery' function. */
+#undef HAVE_RES_NQUERY
+
+/* Define to 1 if RTLD_GLOBAL is available */
+#undef HAVE_RTLD_GLOBAL
+
+/* Define to 1 if RTLD_LAZY is available */
+#undef HAVE_RTLD_LAZY
+
+/* Define to 1 if RTLD_NOW is available */
+#undef HAVE_RTLD_NOW
+
 /* Define to 1 if you have the  header file. */
 #define HAVE_SCHED_H 1
 
@@ -353,6 +401,9 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SELINUX_SELINUX_H */
 
+/* Define to 1 if you have the `sendmmsg' function. */
+#undef HAVE_SENDMMSG
+
 /* Define to 1 if you have the `setenv' function. */
 #define HAVE_SETENV 1
 
@@ -362,6 +413,9 @@
 /* Define if you have the 'sig_atomic_t' type. */
 #define HAVE_SIG_ATOMIC_T 1
 
+/* SIOCGIFADDR is available */
+#undef HAVE_SIOCGIFADDR
+
 /* Define to 1 if you have the `snprintf' function. */
 #define HAVE_SNPRINTF 1
 
@@ -390,6 +444,9 @@
 /* Define to 1 if you have the `strcasecmp' function. */
 #define HAVE_STRCASECMP 1
 
+/* Define to 1 if you have the `strerror_r' function. */
+#undef HAVE_STRERROR_R
+
 /* Define to 1 if you have the  header file. */
 #define HAVE_STRINGS_H 1
 
@@ -402,6 +459,9 @@
 /* Define to 1 if you have the `strncasecmp' function. */
 #define HAVE_STRNCASECMP 1
 
+/* Define to 1 if you have the `strnlen' function. */
+#undef HAVE_STRNLEN
+
 /* Define to 1 if you have the `strsignal' function. */
 #define HAVE_STRSIGNAL 1
 
@@ -435,6 +495,18 @@
 /* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
 /* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */
 
+/* Define to 1 if `st_birthtim' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIM
+
+/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIME
+
+/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+
+/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
+
 /* Define to 1 if `st_blksize' is a member of `struct stat'. */
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
 
@@ -494,9 +566,6 @@
 /* Define to 1 if you have the  header file. */
 #define HAVE_SYS_PARAM_H 1
 
-/* Define to 1 if you have the  header file. */
-/* #undef HAVE_SYS_PRCTL_H */
-
 /* Define to 1 if you have the  header file. */
 #define HAVE_SYS_RESOURCE_H 1
 
@@ -533,6 +602,9 @@
 /* Define to 1 if you have the  header file. */
 #define HAVE_SYS_XATTR_H 1
 
+/* Define to 1 if you have the  header file. */
+#undef HAVE_TERMIOS_H
+
 /* Define to 1 if you have the `timegm' function. */
 #define HAVE_TIMEGM 1
 
@@ -567,9 +639,15 @@
 /* Define if you have the 'wchar_t' type. */
 #define HAVE_WCHAR_T 1
 
+/* Define to 1 if you have the `wcrtomb' function. */
+#undef HAVE_WCRTOMB
+
 /* Define to 1 if you have the `wcslen' function. */
 #define HAVE_WCSLEN 1
 
+/* Define to 1 if you have the `wcsnlen' function. */
+#undef HAVE_WCSNLEN
+
 /* Define if you have the 'wint_t' type. */
 #define HAVE_WINT_T 1
 
@@ -585,8 +663,7 @@
 /* Define to 1 if you have the `_NSGetEnviron' function. */
 #define HAVE__NSGETENVIRON 1
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #define LT_OBJDIR ".libs/"
 
 /* Define to 1 if `major', `minor', and `makedev' are declared in .
@@ -607,7 +684,7 @@
 #define PACKAGE_NAME "glib"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glib 2.42.1"
+#define PACKAGE_STRING "glib 2.56.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "glib"
@@ -616,7 +693,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.42.1"
+#define PACKAGE_VERSION "2.56.1"
 
 /* define if posix_memalign() can allocate any size */
 #define POSIX_MEMALIGN_WITH_COMPLIANT_ALLOCS 1
@@ -662,6 +739,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
+/* Define to 1 if strerror_r returns char *. */
+#undef STRERROR_R_CHAR_P
+
 /* Use no threads */
 /* #undef THREADS_NONE */
 
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/glibconfig.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/glibconfig.h
similarity index 98%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/glibconfig.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/glibconfig.h
index 82ddc90a7d..617c6841f6 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/glibconfig.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/glibconfig.h
@@ -1,6 +1,6 @@
 /* glibconfig.h
  *
- * This is a generated file.  Please modify 'configure.ac'
+ * This is a generated file.  Please modify 'glibconfig.h.in'
  */
 
 #ifndef __GLIBCONFIG_H__
@@ -100,7 +100,7 @@ typedef unsigned long guintptr;
 #endif
 
 #define GLIB_MAJOR_VERSION 2
-#define GLIB_MINOR_VERSION 42
+#define GLIB_MINOR_VERSION 56
 #define GLIB_MICRO_VERSION 1
 
 #define G_OS_UNIX
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/gmoduleconf.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/gmoduleconf.h
similarity index 94%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/gmoduleconf.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/gmoduleconf.h
index b96fec1784..2da85941b4 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/osx/gmoduleconf.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/osx/gmoduleconf.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/dirent.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/dirent.c
similarity index 100%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/dirent.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/dirent.c
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/dirent.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/dirent.h
similarity index 100%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/dirent.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/dirent.h
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/wdirent.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/wdirent.c
similarity index 100%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/dirent/wdirent.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/dirent/wdirent.c
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/config.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/config.h
similarity index 80%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/config.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/config.h
index b7f2eca498..df0acadd24 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/config.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/config.h
@@ -38,7 +38,7 @@
 #define GETTEXT_PACKAGE "glib20"
 
 /* Define to the GLIB binary age */
-#define GLIB_BINARY_AGE 4201
+#define GLIB_BINARY_AGE 5601
 
 /* Define to the GLIB interface age */
 #define GLIB_INTERFACE_AGE 1
@@ -53,31 +53,14 @@
 #define GLIB_MICRO_VERSION 1
 
 /* Define to the GLIB minor version */
-#define GLIB_MINOR_VERSION 42
-
-/* Have inline keyword */
-#ifndef _MSC_VER
-#define G_HAVE_INLINE 1
-#else /* _MSC_VER */
-/* #undef G_HAVE_INLINE */
-#endif /* _MSC_VER */
-
-/* Have __inline keyword */
-#define G_HAVE___INLINE 1
-
-/* Have __inline__ keyword */
-#if !defined(_MSC_VER) && !defined(__DMC__)
-#define G_HAVE___INLINE__ 1
-#else /* _MSC_VER or __DMC__ */
-/* #undef G_HAVE___INLINE__ */
-#endif /* _MSC_VER or __DMC__ */
+#define GLIB_MINOR_VERSION 56
 
 /* A 'va_copy' style function */
-#ifndef _MSC_VER
-#define G_VA_COPY va_copy
-#else /* _MSC_VER */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+# define G_VA_COPY va_copy
+#else /* _MSC_VER && _MSC_VER < 1800 */
 /* #undef G_VA_COPY */
-#endif /* _MSC_VER */
+#endif
 
 /* 'va_lists' cannot be copies as values */
 /* #undef G_VA_COPY_AS_ARRAY */
@@ -183,12 +166,18 @@
 /* Define to 1 if you have the `getfsstat' function. */
 /* #undef HAVE_GETFSSTAT */
 
+/* Define to 1 if you have the `getgrgid_r' function. */
+/* #undef HAVE_GETGRGID_R */
+
 /* Define to 1 if you have the `getmntent_r' function. */
 /* #undef HAVE_GETMNTENT_R */
 
 /* Define to 1 if you have the `getprotobyname_r' function. */
 /* #undef HAVE_GETPROTOBYNAME_R */
 
+/* Define to 1 if you have the `getpwuid_r' function. */
+/* #undef HAVE_GETPWUID_R */
+
 /* Define to 1 if you have the `getresuid' function. */
 /* #undef HAVE_GETRESUID */
 
@@ -207,25 +196,12 @@
 /* Define to 1 if you have the `hasmntopt' function. */
 /* #undef HAVE_HASMNTOPT */
 
-/* Target the Windows XP API */
-//#ifndef _WIN32_WINNT
-//#define _WIN32_WINNT 0x0502
-//#endif
-
-#if _WIN32_WINNT >= 0x0600
-/* if_indextoname() and if_nametoindex() are available on Windows Vista/Server
- * 2008 or later, so we can make use of them when building agaist Vista/Server
- * 2008 or later.
- */
-
 /* Define to 1 if you have the `if_indextoname' function. */
 #define HAVE_IF_INDEXTONAME 1
 
 /* Define to 1 if you have the `if_nametoindex' function. */
 #define HAVE_IF_NAMETOINDEX 1
 
-#endif
-
 /* Define to 1 if you have the `inotify_init1' function. */
 /* #undef HAVE_INOTIFY_INIT1 */
 
@@ -233,29 +209,20 @@
 #define HAVE_INT64_AND_I64 1
 
 /* Define if you have the 'intmax_t' type in  or . */
-#ifndef _MSC_VER
-#define HAVE_INTMAX_T 1
-#else /* _MSC_VER */
-#if (_MSC_VER >= 1600)
-#define HAVE_INTMAX_T 1
+#if !defined (_MSC_VER) || (_MSC_VER >= 1600)
+# define HAVE_INTMAX_T 1
 #endif
-/* #undef HAVE_INTMAX_T */
-#endif /* _MSC_VER */
 
 /* Define to 1 if you have the  header file. */
-#ifndef _MSC_VER
-#define HAVE_INTTYPES_H 1
-#else /* _MSC_VER */
-/* #undef HAVE_INTTYPES_H */
-#endif /* _MSC_VER */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+# define HAVE_INTTYPES_H 1
+#endif
 
 /* Define if  exists, doesn't clash with , and
    declares uintmax_t. */
-#ifndef _MSC_VER
-#define HAVE_INTTYPES_H_WITH_UINTMAX 1
-#else /* _MSC_VER */
-/* #undef HAVE_INTTYPES_H_WITH_UINTMAX */
-#endif /* _MSC_VER */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+# define HAVE_INTTYPES_H_WITH_UINTMAX 1
+#endif
 
 /* Define if we have struct ip_mreqn */
 /* #undef HAVE_IP_MREQN */
@@ -306,11 +273,7 @@
 #define HAVE_LONG_DOUBLE 1
 
 /* Define if you have the 'long long' type. */
-#ifndef _MSC_VER
 #define HAVE_LONG_LONG 1
-#else /* _MSC_VER */
-/* #undef HAVE_LONG_LONG */
-#endif /* _MSC_VER */
 
 /* define if system printf can print long long */
 #define HAVE_LONG_LONG_FORMAT 1
@@ -324,6 +287,9 @@
 /* Define to 1 if you have the  header file. */
 #define HAVE_MALLOC_H 1
 
+/* Define to 1 if you have the `mbrtowc' function. */
+#define HAVE_MBRTOWC 1
+
 /* Define to 1 if you have the `memalign' function. */
 /* #undef HAVE_MEMALIGN */
 
@@ -348,12 +314,6 @@
 /* Define to 1 if you have the `newlocale' function. */
 /* #undef HAVE_NEWLOCALE */
 
-/* Have non-POSIX function getgrgid_r */
-/* #undef HAVE_NONPOSIX_GETGRGID_R */
-
-/* Have non-POSIX function getpwuid_r */
-/* #undef HAVE_NONPOSIX_GETPWUID_R */
-
 /* open option O_DIRECTORY */
 /* #undef HAVE_OPEN_O_DIRECTORY */
 
@@ -363,12 +323,6 @@
 /* Define to 1 if you have the `poll' function. */
 /* #undef HAVE_POLL */
 
-/* Have POSIX function getgrgid_r */
-/* #undef HAVE_POSIX_GETGRGID_R */
-
-/* Have POSIX function getpwuid_r */
-/* #undef HAVE_POSIX_GETPWUID_R */
-
 /* Define to 1 if you have the `posix_memalign' function. */
 /* #undef HAVE_POSIX_MEMALIGN */
 
@@ -378,11 +332,17 @@
 /* Have function pthread_attr_setstacksize */
 /* #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE */
 
+/* Have function pthread_cond_timedwait_relative_np */
+/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
+
 /* Have function pthread_condattr_setclock */
 /* #undef HAVE_PTHREAD_CONDATTR_SETCLOCK */
 
-/* Have function pthread_cond_timedwait_relative_np */
-/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
+/* Have function pthread_setname_np without TID as argument */
+/* #undef HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID */
+
+/* Have function pthread_setname_np with TID as argument */
+/* #undef HAVE_PTHREAD_SETNAME_NP_WITH_TID */
 
 /* Define to 1 if the system has the type `ptrdiff_t'. */
 #define HAVE_PTRDIFF_T 1
@@ -390,9 +350,24 @@
 /* Define to 1 if you have the `readlink' function. */
 /* #undef HAVE_READLINK */
 
+/* Define to 1 if you have the `recvmmsg' function. */
+/* #undef HAVE_RECVMMSG */
+
 /* Define to 1 if you have the 'res_init' function. */
 /* #undef HAVE_RES_INIT */
 
+/* Define to 1 if you have the 'res_nclose' function. */
+/* #undef HAVE_RES_NCLOSE */
+
+/* Define to 1 if you have the 'res_ndestroy' function. */
+/* #undef HAVE_RES_NDESTROY */
+
+/* Define to 1 if you have the 'res_ninit' function. */
+/* #undef HAVE_RES_NINIT */
+
+/* Define to 1 if you have the 'res_nquery' function. */
+/* #undef HAVE_RES_NQUERY */
+
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SCHED_H */
 
@@ -402,6 +377,9 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SELINUX_SELINUX_H */
 
+/* Define to 1 if you have the `sendmmsg' function. */
+/* #undef HAVE_SENDMMSG */
+
 /* Define to 1 if you have the `setenv' function. */
 /* #undef HAVE_SETENV */
 
@@ -412,14 +390,10 @@
 #define HAVE_SIG_ATOMIC_T 1
 
 /* Define to 1 if you have the `snprintf' function. */
-#ifndef _MSC_VER
 #define HAVE_SNPRINTF 1
-#ifdef __DMC__
-#define snprintf _snprintf
+#if defined (_MSC_VER) && (_MSC_VER < 1900)
+# define snprintf _snprintf
 #endif
-#else /* _MSC_VER */
-/* #undef HAVE_SNPRINTF */
-#endif /* _MSC_VER */
 
 /* Define to 1 if you have the `splice' function. */
 /* #undef HAVE_SPLICE */
@@ -430,60 +404,57 @@
 /* Define to 1 if you have the `statvfs' function. */
 /* #undef HAVE_STATVFS */
 
+/* Define to 1 if you have the  header file. */
+#define HAVE_STDDEF_H 1
+
 /* Define to 1 if you have the  header file. */
-#ifndef _MSC_VER
-#define HAVE_STDINT_H 1
-#else /* _MSC_VER */
-#if (_MSC_VER >= 1600) /*VS 2010 ships with stdint.h*/
-#define HAVE_STDINT_H 1
-#else
-/* #undef HAVE_STDINT_H */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1600)
+# define HAVE_STDINT_H 1
 #endif
-#endif /* _MSC_VER */
 
 /* Define if  exists, doesn't clash with , and declares
    uintmax_t. */
-#ifndef _MSC_VER
-#define HAVE_STDINT_H_WITH_UINTMAX 1
-#else /* _MSC_VER */
-#if (_MSC_VER >= 1600)
-#define HAVE_STDINT_H_WITH_UINTMAX 1
-#else
-/* #undef HAVE_STDINT_H_WITH_UINTMAX */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1600)
+# define HAVE_STDINT_H_WITH_UINTMAX 1
 #endif
-#endif /* _MSC_VER */
+
+/* Define to 1 if you have the  header file. */
+#define HAVE_STDLIB_H 1
 
 /* Define to 1 if you have the `stpcpy' function. */
 /* #undef HAVE_STPCPY */
 
 /* Define to 1 if you have the `strcasecmp' function. */
-#if defined(_MSC_VER)
-#define strcasecmp _stricmp
-#endif /* _MSC_VER uses _stricmp, which is identical to strcasecmp */
-
-#if !defined(__DMC__)
 #define HAVE_STRCASECMP 1
-#endif /* _MSC_VER or __gcc__ */
+#ifdef _MSC_VER
+# define strcasecmp _stricmp
+#endif
+
+/* Define to 1 if you have the `strerror_r' function. */
+/* #undef HAVE_STRERROR_R */
+
+/* Define if strerror_r returns char * */
+/* #undef STRERROR_R_CHAR_P */
 
 /* Define to 1 if you have the  header file. */
-#if !defined(_MSC_VER) && !defined(__DMC__)
-#define HAVE_STRINGS_H 1
-#else /* _MSC_VER or __DMC__ */
-/* #undef HAVE_STRINGS_H */
-#endif /* _MSC_VER or __DMC__ */
+#ifndef _MSC_VER
+# define HAVE_STRINGS_H 1
+#endif
+
+/* Define to 1 if you have the  header file. */
+#define HAVE_STRING_H 1
 
 /* Have functions strlcpy and strlcat */
 /* #undef HAVE_STRLCPY */
 
 /* Define to 1 if you have the `strncasecmp' function. */
-#if !defined(__DMC__)
-#if defined(_MSC_VER)
-#define strncasecmp _strnicmp
-#endif /* _MSC_VER uses _strnicmp, which is identical to strncasecmp */
 #define HAVE_STRNCASECMP 1
-#else /* __DMC__ */
-/* #undef HAVE_STRNCASECMP */
-#endif /* __DMC__ */
+#ifdef _MSC_VER
+# define strncasecmp _strnicmp
+#endif
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
 
 /* Define to 1 if you have the `strsignal' function. */
 /* #undef HAVE_STRSIGNAL */
@@ -518,6 +489,18 @@
 /* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
 /* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */
 
+/* Define to 1 if `st_birthtim' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM */
+
+/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */
+
+/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */
+
+/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */
+
 /* Define to 1 if `st_blksize' is a member of `struct stat'. */
 /* #undef HAVE_STRUCT_STAT_ST_BLKSIZE */
 
@@ -536,7 +519,7 @@
 /* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */
 /* #undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC */
 
-/* Define to 1 if `tm_gmtoff' is a a member of `struct tm'. */
+/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */
 /* #undef HAVE_STRUCT_TM_TM_GMTOFF */
 
 /* Define to 1 if `__tm_gmtoff' is a member of `struct tm'. */
@@ -561,6 +544,9 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_INOTIFY_H */
 
+/* Define to 1 if you have the  header file. */
+/* #undef HAVE_SYS_MKDEV_H */
+
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_MNTCTL_H */
 
@@ -575,14 +561,12 @@
 /* #undef HAVE_SYS_NDIR_H */
 
 /* Define to 1 if you have the  header file. */
-#if !defined(_MSC_VER) && !defined(__DMC__)
-#define HAVE_SYS_PARAM_H 1
-#else /* _MSC_VER or __DMC__ */
-/* #undef HAVE_SYS_PARAM_H */
-#endif /* _MSC_VER or __DMC__ */
+#ifndef _MSC_VER
+# define HAVE_SYS_PARAM_H 1
+#endif
 
-/* Define to 1 if you have the  header file. */
-/* #undef HAVE_SYS_PRCTL_H */
+/* Define to 1 if you have the  header file. */
+/* #undef HAVE_SYS_POLL_H */
 
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_RESOURCE_H */
@@ -602,12 +586,19 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_SYSCTL_H */
 
+/* Define to 1 if you have the  header file. */
+/* #undef HAVE_SYS_TIMES_H */
+
 /* Define to 1 if you have the  header file. */
 #ifndef _MSC_VER
-#define HAVE_SYS_TIME_H 1
-#else /* _MSC_VER */
-/* #undef HAVE_SYS_TIME_H */
-#endif /* _MSC_VER */
+# define HAVE_SYS_TIME_H 1
+#endif
+
+/* Define to 1 if you have the  header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the  header file. */
+/* #undef HAVE_SYS_UIO_H */
 
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_VFSTAB_H */
@@ -618,12 +609,20 @@
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_VMOUNT_H */
 
+/* Define to 1 if you have the  header file. */
+/* #undef HAVE_SYS_WAIT_H */
+
 /* Define to 1 if you have the  header file. */
 /* #undef HAVE_SYS_XATTR_H */
 
 /* Define to 1 if you have the `timegm' function. */
 /* #undef HAVE_TIMEGM */
 
+/* Define to 1 if you have the  header file. */
+#ifndef _MSC_VER
+# define HAVE_UNISTD_H 1
+#endif
+
 /* Define if your printf function family supports positional parameters as
    specified by Unix98. */
 /* #undef HAVE_UNIX98_PRINTF */
@@ -641,27 +640,15 @@
 /* #undef HAVE_VALLOC */
 
 /* Define to 1 if you have the  header file. */
-#if !defined(_MSC_VER) && !defined(__DMC__)
-#define HAVE_VALUES_H 1
-#else /* _MSC_VER or __DMC__ */
-/* #undef HAVE_VALUES_H */
-#endif /* _MSC_VER or __DMC__ */
+#ifdef _MSC_VER
+# define HAVE_VALUES_H 1
+#endif
 
 /* Define to 1 if you have the `vasprintf' function. */
 #define HAVE_VASPRINTF 1
 
 /* Define to 1 if you have the `vsnprintf' function. */
-#ifndef _MSC_VER
 #define HAVE_VSNPRINTF 1
-#ifdef __DMC__
-#define vsnprintf _vsnprintf
-#endif
-#else /* _MSC_VER */
-#if (_MSC_VER >= 1500)
-#define HAVE_VSNPRINTF 1
-#endif /* VS 2008+ has vsnprintf */
-/* #undef HAVE_VSNPRINTF */
-#endif /* _MSC_VER */
 
 /* Define if you have the 'wchar_t' type. */
 #define HAVE_WCHAR_T 1
@@ -672,6 +659,9 @@
 /* Define if you have the 'wint_t' type. */
 #define HAVE_WINT_T 1
 
+/* Have a working bcopy */
+/* #undef HAVE_WORKING_BCOPY */
+
 /* Define to 1 if xattr is available */
 /* #undef HAVE_XATTR */
 
@@ -684,24 +674,15 @@
 /* Define to 1 if you have the `_NSGetEnviron' function. */
 /* #undef HAVE__NSGETENVIRON */
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#define LT_OBJDIR ".libs/"
-
-/* Define to 1 if `major', `minor', and `makedev' are declared in .
-   */
-/* #undef MAJOR_IN_MKDEV */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ""
 
-/* Define to 1 if `major', `minor', and `makedev' are declared in
-   . */
-/* #undef MAJOR_IN_SYSMACROS */
+/* Do we cache iconv descriptors */
+/* #undef NEED_ICONV_CACHE */
 
 /* didn't find fd_set */
 #define NO_FD_SET 1
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
 /* Define to the address where bug reports for this package should be sent. */
 #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=glib"
 
@@ -709,7 +690,7 @@
 #define PACKAGE_NAME "glib"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "glib 2.42.1"
+#define PACKAGE_STRING "glib 2.56.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "glib"
@@ -718,7 +699,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.42.1"
+#define PACKAGE_VERSION "2.56.1"
 
 /* define if posix_memalign() can allocate any size */
 /* #undef POSIX_MEMALIGN_WITH_COMPLIANT_ALLOCS */
@@ -733,27 +714,30 @@
 #define SIZEOF_LONG 4
 
 /* The size of `long long', as computed by sizeof. */
-#ifndef _MSC_VER
 #define SIZEOF_LONG_LONG 8
-#else /* _MSC_VER */
-#define SIZEOF_LONG_LONG 0
-#endif /* _MSC_VER */
 
 /* The size of `short', as computed by sizeof. */
 #define SIZEOF_SHORT 2
 
 /* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
+#ifdef _WIN64
+# define SIZEOF_SIZE_T 8
+#else
+# define SIZEOF_SIZE_T 4
+#endif
 
-/* The size of `void *', as computed by sizeof. */
-#ifdef _MSC_VER
-#if (defined(_M_X64) || defined(_M_AMD64))
-#define SIZEOF_VOID_P 8
-#elif (defined(_M_IX86))
-#define SIZEOF_VOID_P 4
+/* The size of `ssize_t', as computed by sizeof. */
+#ifdef _WIN64
+# define SIZEOF_SSIZE_T 8
+#else
+# define SIZEOF_SSIZE_T 4
 #endif
+
+/* The size of `void *', as computed by sizeof. */
+#ifdef _WIN64
+# define SIZEOF_VOID_P 8
 #else
-#define SIZEOF_VOID_P 4
+# define SIZEOF_VOID_P 4
 #endif
 
 /* The size of `__int64', as computed by sizeof. */
@@ -796,27 +780,27 @@
 
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
-/* # undef _ALL_SOURCE */
+/* #undef _ALL_SOURCE */
 #endif
 /* Enable GNU extensions on systems that have them.  */
 #ifndef _GNU_SOURCE
-/* # undef _GNU_SOURCE */
+/* #undef _GNU_SOURCE */
 #endif
 /* Enable threading extensions on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
-/* # undef _POSIX_PTHREAD_SEMANTICS */
+/* #undef _POSIX_PTHREAD_SEMANTICS */
 #endif
 /* Enable extensions on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
-/* # undef _TANDEM_SOURCE */
+/* #undef _TANDEM_SOURCE */
 #endif
 /* Enable general extensions on Solaris.  */
 #ifndef __EXTENSIONS__
-/* # undef __EXTENSIONS__ */
+/* #undef __EXTENSIONS__ */
 #endif
 
 /* using the system-supplied PCRE library */
-/* This is defined in the *_PCRE MSVC project configs */
+/* This is determined in the MSVC projects */
 /* #undef USE_SYSTEM_PCRE */
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
@@ -827,7 +811,7 @@
 # endif
 #else
 # ifndef WORDS_BIGENDIAN
-/* #  undef WORDS_BIGENDIAN */
+#  undef WORDS_BIGENDIAN
 # endif
 #endif
 
@@ -841,23 +825,16 @@
 
 /* defines how to decorate public symbols while building */
 #ifdef _MSC_VER
-#define _GLIB_EXTERN __declspec (dllexport) extern
+# define _GLIB_EXTERN __declspec (dllexport) extern
 #else
-#define _GLIB_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
+# define _GLIB_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
 #endif
 
 /* Define for large files, on AIX-style hosts. */
 /* #undef _LARGE_FILES */
 
-/* Define to 1 if on MINIX. */
-/* #undef _MINIX */
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-/* #undef _POSIX_SOURCE */
+/* Target the Windows 7 API */
+#define _WIN32_WINNT 0x0601
 
 /* Needed to get declarations for msg_control and msg_controllen on Solaris */
 /* #undef _XOPEN_SOURCE */
@@ -882,3 +859,11 @@
 
 /* Define to `unsigned int' if  does not define. */
 /* #undef size_t */
+
+#define EXEEXT ".exe"
+
+/* #undef MAJOR_IN_MKDEV */
+/* #undef MAJOR_IN_SYSMACROS */
+/* #undef HAVE_RTLD_LAZY */
+/* #undef HAVE_RTLD_NOW */
+/* #undef HAVE_RTLD_GLOBAL */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-lite.def b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-lite.def
new file mode 100644
index 0000000000..b0fa050343
--- /dev/null
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-lite.def
@@ -0,0 +1,496 @@
+EXPORTS
+g_array_append_vals	@1	NONAME
+g_array_free	@2	NONAME
+g_array_get_type	@3	NONAME
+g_array_insert_vals	@4	NONAME
+g_array_new	@5	NONAME
+g_array_prepend_vals	@6	NONAME
+g_array_remove_index	@7	NONAME
+g_array_remove_index_fast	@8	NONAME
+g_array_set_clear_func	@9	NONAME
+g_array_set_size	@10	NONAME
+g_array_sized_new	@11	NONAME
+g_array_sort	@12	NONAME
+g_ascii_digit_value	@13	NONAME
+g_ascii_dtostr	@14	NONAME
+g_ascii_strcasecmp	@15	NONAME
+g_ascii_strdown	@16	NONAME
+g_ascii_strncasecmp	@17	NONAME
+g_ascii_strtod	@18	NONAME
+g_ascii_strtoll	@19	NONAME
+g_ascii_strtoull	@20	NONAME
+g_ascii_strup	@21	NONAME
+g_ascii_table	@22	NONAME
+g_ascii_tolower	@23	NONAME
+g_ascii_toupper	@24	NONAME
+g_atomic_int_add	@25	NONAME
+g_atomic_int_compare_and_exchange	@26	NONAME
+g_atomic_int_dec_and_test	@27	NONAME
+g_atomic_int_get	@28	NONAME
+g_atomic_int_inc	@29	NONAME
+g_atomic_int_set	@30	NONAME
+g_atomic_pointer_compare_and_exchange	@31	NONAME
+g_atomic_pointer_get	@32	NONAME
+g_atomic_pointer_set	@33	NONAME
+g_base64_decode_inplace	@34	NONAME
+g_base64_encode	@35	NONAME
+g_boxed_type_register_static	@36	NONAME
+g_build_filename	@37	NONAME
+g_bytes_new_take	@38	NONAME
+g_cclosure_marshal_VOID__VOID	@39	NONAME
+g_cclosure_marshal_generic	@40	NONAME
+g_checksum_free	@41	NONAME
+g_checksum_get_string	@42	NONAME
+g_checksum_new	@43	NONAME
+g_checksum_update	@44	NONAME
+g_clear_error	@45	NONAME
+g_cond_broadcast	@46	NONAME
+g_cond_clear	@47	NONAME
+g_cond_init	@48	NONAME
+g_cond_signal	@49	NONAME
+g_cond_wait	@50	NONAME
+g_cond_wait_until	@51	NONAME
+g_convert	@52	NONAME
+g_datalist_id_get_data	@53	NONAME
+g_datalist_id_set_data_full	@54	NONAME
+g_datalist_init	@55	NONAME
+g_date_free	@56	NONAME
+g_date_get_day	@57	NONAME
+g_date_get_julian	@58	NONAME
+g_date_get_month	@59	NONAME
+g_date_get_type	@60	NONAME
+g_date_get_year	@61	NONAME
+g_date_new_dmy	@62	NONAME
+g_date_time_add	@63	NONAME
+g_date_time_add_minutes	@64	NONAME
+g_date_time_add_seconds	@65	NONAME
+g_date_time_get_day_of_month	@66	NONAME
+g_date_time_get_hour	@67	NONAME
+g_date_time_get_microsecond	@68	NONAME
+g_date_time_get_minute	@69	NONAME
+g_date_time_get_month	@70	NONAME
+g_date_time_get_second	@71	NONAME
+g_date_time_get_utc_offset	@72	NONAME
+g_date_time_get_year	@73	NONAME
+g_date_time_get_ymd	@74	NONAME
+g_date_time_new	@75	NONAME
+g_date_time_new_from_unix_local	@76	NONAME
+g_date_time_new_from_unix_utc	@77	NONAME
+g_date_time_new_local	@78	NONAME
+g_date_time_new_now_local	@79	NONAME
+g_date_time_new_now_utc	@80	NONAME
+g_date_time_new_utc	@81	NONAME
+g_date_time_to_local	@82	NONAME
+g_date_time_to_unix	@83	NONAME
+g_date_time_unref	@84	NONAME
+g_date_valid	@85	NONAME
+g_date_valid_dmy	@86	NONAME
+g_dir_close	@87	NONAME
+g_dir_open	@88	NONAME
+g_dir_read_name	@89	NONAME
+g_enum_get_value	@90	NONAME
+g_enum_get_value_by_name	@91	NONAME
+g_enum_get_value_by_nick	@92	NONAME
+g_enum_register_static	@93	NONAME
+g_error_free	@94	NONAME
+g_error_get_type	@95	NONAME
+g_error_new	@96	NONAME
+g_error_new_literal	@97	NONAME
+g_file_set_contents	@98	NONAME
+g_file_test_utf8	@99	NONAME
+g_filename_to_uri	@100	NONAME
+g_flags_get_first_value	@101	NONAME
+g_flags_get_value_by_name	@102	NONAME
+g_flags_get_value_by_nick	@103	NONAME
+g_flags_register_static	@104	NONAME
+g_free	@105	NONAME
+g_get_charset	@106	NONAME
+g_get_current_dir_utf8	@107	NONAME
+g_get_current_time	@108	NONAME
+g_get_monotonic_time	@109	NONAME
+g_get_prgname	@110	NONAME
+g_get_user_cache_dir	@111	NONAME
+g_get_user_data_dir	@112	NONAME
+g_getenv	@113	NONAME
+g_gtype_get_type	@114	NONAME
+g_hash_table_contains	@115	NONAME
+g_hash_table_destroy	@116	NONAME
+g_hash_table_foreach	@117	NONAME
+g_hash_table_get_keys	@118	NONAME
+g_hash_table_get_values	@119	NONAME
+g_hash_table_insert	@120	NONAME
+g_hash_table_iter_init	@121	NONAME
+g_hash_table_iter_next	@122	NONAME
+g_hash_table_lookup	@123	NONAME
+g_hash_table_new	@124	NONAME
+g_hash_table_new_full	@125	NONAME
+g_hash_table_ref	@126	NONAME
+g_hash_table_remove	@127	NONAME
+g_hash_table_replace	@128	NONAME
+g_hash_table_size	@129	NONAME
+g_hash_table_unref	@130	NONAME
+g_hook_alloc	@131	NONAME
+g_hook_destroy_link	@132	NONAME
+g_hook_get	@133	NONAME
+g_hook_insert_before	@134	NONAME
+g_hook_list_clear	@135	NONAME
+g_hook_list_init	@136	NONAME
+g_hook_list_marshal	@137	NONAME
+g_initially_unowned_get_type	@138	NONAME
+g_int_equal	@139	NONAME
+g_int_hash	@140	NONAME
+g_intern_static_string	@141	NONAME
+g_intern_string	@142	NONAME
+g_key_file_free	@143	NONAME
+g_key_file_get_comment	@144	NONAME
+g_key_file_get_groups	@145	NONAME
+g_key_file_get_keys	@146	NONAME
+g_key_file_get_value	@147	NONAME
+g_key_file_has_group	@148	NONAME
+g_key_file_load_from_file	@149	NONAME
+g_key_file_new	@150	NONAME
+g_key_file_remove_group	@151	NONAME
+g_key_file_remove_key	@152	NONAME
+g_key_file_set_comment	@153	NONAME
+g_key_file_set_string	@154	NONAME
+g_key_file_set_value	@155	NONAME
+g_key_file_to_data	@156	NONAME
+g_list_alloc	@157	NONAME
+g_list_append	@158	NONAME
+g_list_concat	@159	NONAME
+g_list_copy	@160	NONAME
+g_list_copy_deep	@161	NONAME
+g_list_delete_link	@162	NONAME
+g_list_find	@163	NONAME
+g_list_find_custom	@164	NONAME
+g_list_foreach	@165	NONAME
+g_list_free	@166	NONAME
+g_list_free_full	@167	NONAME
+g_list_insert	@168	NONAME
+g_list_insert_before	@169	NONAME
+g_list_insert_sorted	@170	NONAME
+g_list_last	@171	NONAME
+g_list_length	@172	NONAME
+g_list_nth_data	@173	NONAME
+g_list_position	@174	NONAME
+g_list_prepend	@175	NONAME
+g_list_remove	@176	NONAME
+g_list_remove_link	@177	NONAME
+g_list_reverse	@178	NONAME
+g_list_sort	@179	NONAME
+g_locale_to_utf8	@180	NONAME
+g_log	@181	NONAME
+g_log_default_handler	@182	NONAME
+g_log_set_default_handler	@183	NONAME
+g_log_set_handler	@184	NONAME
+g_main_context_get_thread_default	@185	NONAME
+g_main_context_new	@186	NONAME
+g_main_context_unref	@187	NONAME
+g_main_loop_is_running	@188	NONAME
+g_main_loop_new	@189	NONAME
+g_main_loop_quit	@190	NONAME
+g_main_loop_run	@191	NONAME
+g_main_loop_unref	@192	NONAME
+g_malloc	@193	NONAME
+g_malloc0	@194	NONAME
+g_malloc0_n	@195	NONAME
+g_malloc_n	@196	NONAME
+g_memdup	@197	NONAME
+g_mkdir_with_parents	@198	NONAME
+g_module_close	@199	NONAME
+g_module_error	@200	NONAME
+g_module_make_resident	@201	NONAME
+g_module_open	@202	NONAME
+g_module_supported	@203	NONAME
+g_module_symbol	@204	NONAME
+g_mutex_clear	@205	NONAME
+g_mutex_init	@206	NONAME
+g_mutex_lock	@207	NONAME
+g_mutex_unlock	@208	NONAME
+g_node_children_foreach	@209	NONAME
+g_node_destroy	@210	NONAME
+g_node_insert_before	@211	NONAME
+g_node_new	@212	NONAME
+g_node_nth_child	@213	NONAME
+g_object_add_weak_pointer	@214	NONAME
+g_object_class_find_property	@215	NONAME
+g_object_class_install_properties	@216	NONAME
+g_object_class_install_property	@217	NONAME
+g_object_class_list_properties	@218	NONAME
+g_object_freeze_notify	@219	NONAME
+g_object_get	@220	NONAME
+g_object_get_property	@221	NONAME
+g_object_interface_install_property	@222	NONAME
+g_object_new	@223	NONAME
+g_object_notify	@224	NONAME
+g_object_notify_by_pspec	@225	NONAME
+g_object_ref	@226	NONAME
+g_object_ref_sink	@227	NONAME
+g_object_remove_weak_pointer	@228	NONAME
+g_object_set	@229	NONAME
+g_object_set_property	@230	NONAME
+g_object_thaw_notify	@231	NONAME
+g_object_unref	@232	NONAME
+g_once_impl	@233	NONAME
+g_once_init_enter	@234	NONAME
+g_once_init_leave	@235	NONAME
+g_param_spec_boolean	@236	NONAME
+g_param_spec_boxed	@237	NONAME
+g_param_spec_double	@238	NONAME
+g_param_spec_enum	@239	NONAME
+g_param_spec_flags	@240	NONAME
+g_param_spec_float	@241	NONAME
+g_param_spec_gtype	@242	NONAME
+g_param_spec_int	@243	NONAME
+g_param_spec_int64	@244	NONAME
+g_param_spec_internal	@245	NONAME
+g_param_spec_object	@246	NONAME
+g_param_spec_ref	@247	NONAME
+g_param_spec_sink	@248	NONAME
+g_param_spec_string	@249	NONAME
+g_param_spec_uint	@250	NONAME
+g_param_spec_uint64	@251	NONAME
+g_param_spec_unref	@252	NONAME
+g_param_type_register_static	@253	NONAME
+g_param_value_set_default	@254	NONAME
+g_param_value_validate	@255	NONAME
+g_param_values_cmp	@256	NONAME
+g_path_get_basename	@257	NONAME
+g_path_get_dirname	@258	NONAME
+g_path_is_absolute	@259	NONAME
+g_pointer_type_register_static	@260	NONAME
+g_print	@261	NONAME
+g_printerr	@262	NONAME
+g_private_get	@263	NONAME
+g_private_set	@264	NONAME
+g_propagate_error	@265	NONAME
+g_ptr_array_add	@266	NONAME
+g_ptr_array_free	@267	NONAME
+g_ptr_array_new_full	@268	NONAME
+g_ptr_array_new_with_free_func	@269	NONAME
+g_ptr_array_remove_index	@270	NONAME
+g_qsort_with_data	@271	NONAME
+g_quark_from_static_string	@272	NONAME
+g_quark_from_string	@273	NONAME
+g_quark_to_string	@274	NONAME
+g_quark_try_string	@275	NONAME
+g_queue_clear	@276	NONAME
+g_queue_delete_link	@277	NONAME
+g_queue_find	@278	NONAME
+g_queue_find_custom	@279	NONAME
+g_queue_foreach	@280	NONAME
+g_queue_free	@281	NONAME
+g_queue_get_length	@282	NONAME
+g_queue_init	@283	NONAME
+g_queue_is_empty	@284	NONAME
+g_queue_new	@285	NONAME
+g_queue_peek_nth	@286	NONAME
+g_queue_pop_head	@287	NONAME
+g_queue_push_head	@288	NONAME
+g_queue_push_tail	@289	NONAME
+g_queue_remove	@290	NONAME
+g_queue_sort	@291	NONAME
+g_random_int	@292	NONAME
+g_realloc	@293	NONAME
+g_realloc_n	@294	NONAME
+g_rec_mutex_clear	@295	NONAME
+g_rec_mutex_init	@296	NONAME
+g_rec_mutex_lock	@297	NONAME
+g_rec_mutex_unlock	@298	NONAME
+g_regex_match_simple	@299	NONAME
+g_rename	@300	NONAME
+g_rw_lock_init	@301	NONAME
+g_rw_lock_reader_lock	@302	NONAME
+g_rw_lock_reader_unlock	@303	NONAME
+g_rw_lock_writer_lock	@304	NONAME
+g_rw_lock_writer_unlock	@305	NONAME
+g_set_error	@306	NONAME
+g_signal_connect_data	@307	NONAME
+g_signal_emit	@308	NONAME
+g_signal_handler_disconnect	@309	NONAME
+g_signal_handlers_destroy	@310	NONAME
+g_signal_handlers_disconnect_matched	@311	NONAME
+g_signal_new	@312	NONAME
+g_slice_alloc	@313	NONAME
+g_slice_alloc0	@314	NONAME
+g_slice_copy	@315	NONAME
+g_slice_free1	@316	NONAME
+g_slist_append	@317	NONAME
+g_slist_concat	@318	NONAME
+g_slist_delete_link	@319	NONAME
+g_slist_foreach	@320	NONAME
+g_slist_free	@321	NONAME
+g_slist_insert_before	@322	NONAME
+g_slist_prepend	@323	NONAME
+g_slist_remove	@324	NONAME
+g_slist_reverse	@325	NONAME
+g_snprintf	@326	NONAME
+g_source_add_poll	@327	NONAME
+g_source_attach	@328	NONAME
+g_source_destroy	@329	NONAME
+g_source_new	@330	NONAME
+g_source_remove	@331	NONAME
+g_source_set_callback	@332	NONAME
+g_source_set_name	@333	NONAME
+g_source_set_priority	@334	NONAME
+g_source_unref	@335	NONAME
+g_spawn_close_pid	@336	NONAME
+g_stat	@337	NONAME
+g_str_equal	@338	NONAME
+g_str_has_prefix	@339	NONAME
+g_str_has_suffix	@340	NONAME
+g_str_hash	@341	NONAME
+g_strchomp	@342	NONAME
+g_strchug	@343	NONAME
+g_strcmp0	@344	NONAME
+g_strconcat	@345	NONAME
+g_strdelimit	@346	NONAME
+g_strdup	@347	NONAME
+g_strdup_printf	@348	NONAME
+g_strdup_value_contents	@349	NONAME
+g_strdup_vprintf	@350	NONAME
+g_strdupv	@351	NONAME
+g_strerror	@352	NONAME
+g_strfreev	@353	NONAME
+g_string_append	@354	NONAME
+g_string_append_len	@355	NONAME
+g_string_append_printf	@356	NONAME
+g_string_free	@357	NONAME
+g_string_insert_c	@358	NONAME
+g_string_new	@359	NONAME
+g_string_set_size	@360	NONAME
+g_string_sized_new	@361	NONAME
+g_string_truncate	@362	NONAME
+g_strjoin	@363	NONAME
+g_strlcpy	@364	NONAME
+g_strndup	@365	NONAME
+g_strrstr	@366	NONAME
+g_strsplit	@367	NONAME
+g_strsplit_set	@368	NONAME
+g_strstr_len	@369	NONAME
+g_strtod	@370	NONAME
+g_strv_length	@371	NONAME
+g_thread_get_type	@372	NONAME
+g_thread_join	@373	NONAME
+g_thread_new	@374	NONAME
+g_thread_pool_free	@375	NONAME
+g_thread_pool_new	@376	NONAME
+g_thread_pool_push	@377	NONAME
+g_thread_pool_set_max_unused_threads	@378	NONAME
+g_thread_self	@379	NONAME
+g_thread_try_new	@380	NONAME
+g_thread_yield	@381	NONAME
+g_time_zone_new	@382	NONAME
+g_time_zone_unref	@383	NONAME
+g_timeout_add_full	@384	NONAME
+g_timer_destroy	@385	NONAME
+g_timer_elapsed	@386	NONAME
+g_timer_new	@387	NONAME
+g_timer_start	@388	NONAME
+g_tree_destroy	@389	NONAME
+g_tree_insert	@390	NONAME
+g_tree_new_with_data	@391	NONAME
+g_tree_search	@392	NONAME
+g_try_malloc	@393	NONAME
+g_try_malloc0_n	@394	NONAME
+g_try_malloc_n	@395	NONAME
+g_try_realloc_n	@396	NONAME
+g_type_add_interface_static	@397	NONAME
+g_type_check_class_cast	@398	NONAME
+g_type_check_instance_cast	@399	NONAME
+g_type_check_instance_is_a	@400	NONAME
+g_type_check_instance_is_fundamentally_a	@401	NONAME
+g_type_check_value	@402	NONAME
+g_type_check_value_holds	@403	NONAME
+g_type_class_add_private	@404	NONAME
+g_type_class_adjust_private_offset	@405	NONAME
+g_type_class_peek	@406	NONAME
+g_type_class_peek_parent	@407	NONAME
+g_type_class_ref	@408	NONAME
+g_type_class_unref	@409	NONAME
+g_type_from_name	@410	NONAME
+g_type_fundamental	@411	NONAME
+g_type_fundamental_next	@412	NONAME
+g_type_get_qdata	@413	NONAME
+g_type_init	@414	NONAME
+g_type_instance_get_private	@415	NONAME
+g_type_interface_add_prerequisite	@416	NONAME
+g_type_interface_peek	@417	NONAME
+g_type_interfaces	@418	NONAME
+g_type_is_a	@419	NONAME
+g_type_name	@420	NONAME
+g_type_parent	@421	NONAME
+g_type_qname	@422	NONAME
+g_type_register_fundamental	@423	NONAME
+g_type_register_static	@424	NONAME
+g_type_register_static_simple	@425	NONAME
+g_type_set_qdata	@426	NONAME
+g_type_value_table_peek	@427	NONAME
+g_unlink	@428	NONAME
+g_uri_escape_string	@429	NONAME
+g_uri_unescape_segment	@430	NONAME
+g_uri_unescape_string	@431	NONAME
+g_utf16_to_utf8	@432	NONAME
+g_utf8_strchr	@433	NONAME
+g_utf8_validate	@434	NONAME
+g_value_array_append	@435	NONAME
+g_value_array_get_nth	@436	NONAME
+g_value_array_get_type	@437	NONAME
+g_value_array_new	@438	NONAME
+g_value_copy	@439	NONAME
+g_value_dup_boxed	@440	NONAME
+g_value_dup_object	@441	NONAME
+g_value_dup_string	@442	NONAME
+g_value_get_boolean	@443	NONAME
+g_value_get_boxed	@444	NONAME
+g_value_get_double	@445	NONAME
+g_value_get_enum	@446	NONAME
+g_value_get_flags	@447	NONAME
+g_value_get_float	@448	NONAME
+g_value_get_gtype	@449	NONAME
+g_value_get_int	@450	NONAME
+g_value_get_int64	@451	NONAME
+g_value_get_long	@452	NONAME
+g_value_get_object	@453	NONAME
+g_value_get_pointer	@454	NONAME
+g_value_get_string	@455	NONAME
+g_value_get_uchar	@456	NONAME
+g_value_get_uint	@457	NONAME
+g_value_get_uint64	@458	NONAME
+g_value_get_ulong	@459	NONAME
+g_value_init	@460	NONAME
+g_value_peek_pointer	@461	NONAME
+g_value_register_transform_func	@462	NONAME
+g_value_reset	@463	NONAME
+g_value_set_boolean	@464	NONAME
+g_value_set_boxed	@465	NONAME
+g_value_set_double	@466	NONAME
+g_value_set_enum	@467	NONAME
+g_value_set_flags	@468	NONAME
+g_value_set_float	@469	NONAME
+g_value_set_gtype	@470	NONAME
+g_value_set_int	@471	NONAME
+g_value_set_int64	@472	NONAME
+g_value_set_long	@473	NONAME
+g_value_set_object	@474	NONAME
+g_value_set_pointer	@475	NONAME
+g_value_set_static_boxed	@476	NONAME
+g_value_set_static_string	@477	NONAME
+g_value_set_string	@478	NONAME
+g_value_set_uchar	@479	NONAME
+g_value_set_uint	@480	NONAME
+g_value_set_uint64	@481	NONAME
+g_value_set_ulong	@482	NONAME
+g_value_take_boxed	@483	NONAME
+g_value_take_object	@484	NONAME
+g_value_take_string	@485	NONAME
+g_value_transform	@486	NONAME
+g_value_type_compatible	@487	NONAME
+g_value_unset	@488	NONAME
+g_vasprintf	@489	NONAME
+g_warn_message	@490	NONAME
+g_weak_ref_clear	@491	NONAME
+g_weak_ref_get	@492	NONAME
+g_weak_ref_init	@493	NONAME
+g_weak_ref_set	@494	NONAME
+g_win32_get_package_installation_directory_of_module	@495	NONAME
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-liteD.def b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-liteD.def
new file mode 100644
index 0000000000..93832e5dc2
--- /dev/null
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glib-liteD.def
@@ -0,0 +1,497 @@
+EXPORTS
+g_array_append_vals	@1	NONAME
+g_array_free	@2	NONAME
+g_array_get_type	@3	NONAME
+g_array_insert_vals	@4	NONAME
+g_array_new	@5	NONAME
+g_array_prepend_vals	@6	NONAME
+g_array_remove_index	@7	NONAME
+g_array_remove_index_fast	@8	NONAME
+g_array_set_clear_func	@9	NONAME
+g_array_set_size	@10	NONAME
+g_array_sized_new	@11	NONAME
+g_array_sort	@12	NONAME
+g_ascii_digit_value	@13	NONAME
+g_ascii_dtostr	@14	NONAME
+g_ascii_strcasecmp	@15	NONAME
+g_ascii_strdown	@16	NONAME
+g_ascii_strncasecmp	@17	NONAME
+g_ascii_strtod	@18	NONAME
+g_ascii_strtoll	@19	NONAME
+g_ascii_strtoull	@20	NONAME
+g_ascii_strup	@21	NONAME
+g_ascii_table	@22	NONAME
+g_ascii_tolower	@23	NONAME
+g_ascii_toupper	@24	NONAME
+g_atomic_int_add	@25	NONAME
+g_atomic_int_compare_and_exchange	@26	NONAME
+g_atomic_int_dec_and_test	@27	NONAME
+g_atomic_int_get	@28	NONAME
+g_atomic_int_inc	@29	NONAME
+g_atomic_int_set	@30	NONAME
+g_atomic_pointer_compare_and_exchange	@31	NONAME
+g_atomic_pointer_get	@32	NONAME
+g_atomic_pointer_set	@33	NONAME
+g_base64_decode_inplace	@34	NONAME
+g_base64_encode	@35	NONAME
+g_boxed_type_register_static	@36	NONAME
+g_build_filename	@37	NONAME
+g_build_filenamev	@38	NONAME
+g_bytes_new_take	@39	NONAME
+g_cclosure_marshal_VOID__VOID	@40	NONAME
+g_cclosure_marshal_generic	@41	NONAME
+g_checksum_free	@42	NONAME
+g_checksum_get_string	@43	NONAME
+g_checksum_new	@44	NONAME
+g_checksum_update	@45	NONAME
+g_clear_error	@46	NONAME
+g_cond_broadcast	@47	NONAME
+g_cond_clear	@48	NONAME
+g_cond_init	@49	NONAME
+g_cond_signal	@50	NONAME
+g_cond_wait	@51	NONAME
+g_cond_wait_until	@52	NONAME
+g_convert	@53	NONAME
+g_datalist_id_get_data	@54	NONAME
+g_datalist_id_set_data_full	@55	NONAME
+g_datalist_init	@56	NONAME
+g_date_free	@57	NONAME
+g_date_get_day	@58	NONAME
+g_date_get_julian	@59	NONAME
+g_date_get_month	@60	NONAME
+g_date_get_type	@61	NONAME
+g_date_get_year	@62	NONAME
+g_date_new_dmy	@63	NONAME
+g_date_time_add	@64	NONAME
+g_date_time_add_minutes	@65	NONAME
+g_date_time_add_seconds	@66	NONAME
+g_date_time_get_day_of_month	@67	NONAME
+g_date_time_get_hour	@68	NONAME
+g_date_time_get_microsecond	@69	NONAME
+g_date_time_get_minute	@70	NONAME
+g_date_time_get_month	@71	NONAME
+g_date_time_get_second	@72	NONAME
+g_date_time_get_utc_offset	@73	NONAME
+g_date_time_get_year	@74	NONAME
+g_date_time_get_ymd	@75	NONAME
+g_date_time_new	@76	NONAME
+g_date_time_new_from_unix_local	@77	NONAME
+g_date_time_new_from_unix_utc	@78	NONAME
+g_date_time_new_local	@79	NONAME
+g_date_time_new_now_local	@80	NONAME
+g_date_time_new_now_utc	@81	NONAME
+g_date_time_new_utc	@82	NONAME
+g_date_time_to_local	@83	NONAME
+g_date_time_to_unix	@84	NONAME
+g_date_time_unref	@85	NONAME
+g_date_valid	@86	NONAME
+g_date_valid_dmy	@87	NONAME
+g_dir_close	@88	NONAME
+g_dir_open	@89	NONAME
+g_dir_read_name	@90	NONAME
+g_enum_get_value	@91	NONAME
+g_enum_get_value_by_name	@92	NONAME
+g_enum_get_value_by_nick	@93	NONAME
+g_enum_register_static	@94	NONAME
+g_error_free	@95	NONAME
+g_error_get_type	@96	NONAME
+g_error_new	@97	NONAME
+g_error_new_literal	@98	NONAME
+g_file_set_contents	@99	NONAME
+g_file_test_utf8	@100	NONAME
+g_filename_to_uri	@101	NONAME
+g_flags_get_first_value	@102	NONAME
+g_flags_get_value_by_name	@103	NONAME
+g_flags_get_value_by_nick	@104	NONAME
+g_flags_register_static	@105	NONAME
+g_free	@106	NONAME
+g_get_charset	@107	NONAME
+g_get_current_dir_utf8	@108	NONAME
+g_get_current_time	@109	NONAME
+g_get_monotonic_time	@110	NONAME
+g_get_prgname	@111	NONAME
+g_get_user_cache_dir	@112	NONAME
+g_get_user_data_dir	@113	NONAME
+g_getenv	@114	NONAME
+g_gtype_get_type	@115	NONAME
+g_hash_table_contains	@116	NONAME
+g_hash_table_destroy	@117	NONAME
+g_hash_table_foreach	@118	NONAME
+g_hash_table_get_keys	@119	NONAME
+g_hash_table_get_values	@120	NONAME
+g_hash_table_insert	@121	NONAME
+g_hash_table_iter_init	@122	NONAME
+g_hash_table_iter_next	@123	NONAME
+g_hash_table_lookup	@124	NONAME
+g_hash_table_new	@125	NONAME
+g_hash_table_new_full	@126	NONAME
+g_hash_table_ref	@127	NONAME
+g_hash_table_remove	@128	NONAME
+g_hash_table_replace	@129	NONAME
+g_hash_table_size	@130	NONAME
+g_hash_table_unref	@131	NONAME
+g_hook_alloc	@132	NONAME
+g_hook_destroy_link	@133	NONAME
+g_hook_get	@134	NONAME
+g_hook_insert_before	@135	NONAME
+g_hook_list_clear	@136	NONAME
+g_hook_list_init	@137	NONAME
+g_hook_list_marshal	@138	NONAME
+g_initially_unowned_get_type	@139	NONAME
+g_int_equal	@140	NONAME
+g_int_hash	@141	NONAME
+g_intern_static_string	@142	NONAME
+g_intern_string	@143	NONAME
+g_key_file_free	@144	NONAME
+g_key_file_get_comment	@145	NONAME
+g_key_file_get_groups	@146	NONAME
+g_key_file_get_keys	@147	NONAME
+g_key_file_get_value	@148	NONAME
+g_key_file_has_group	@149	NONAME
+g_key_file_load_from_file	@150	NONAME
+g_key_file_new	@151	NONAME
+g_key_file_remove_group	@152	NONAME
+g_key_file_remove_key	@153	NONAME
+g_key_file_set_comment	@154	NONAME
+g_key_file_set_string	@155	NONAME
+g_key_file_set_value	@156	NONAME
+g_key_file_to_data	@157	NONAME
+g_list_alloc	@158	NONAME
+g_list_append	@159	NONAME
+g_list_concat	@160	NONAME
+g_list_copy	@161	NONAME
+g_list_copy_deep	@162	NONAME
+g_list_delete_link	@163	NONAME
+g_list_find	@164	NONAME
+g_list_find_custom	@165	NONAME
+g_list_foreach	@166	NONAME
+g_list_free	@167	NONAME
+g_list_free_full	@168	NONAME
+g_list_insert	@169	NONAME
+g_list_insert_before	@170	NONAME
+g_list_insert_sorted	@171	NONAME
+g_list_last	@172	NONAME
+g_list_length	@173	NONAME
+g_list_nth_data	@174	NONAME
+g_list_position	@175	NONAME
+g_list_prepend	@176	NONAME
+g_list_remove	@177	NONAME
+g_list_remove_link	@178	NONAME
+g_list_reverse	@179	NONAME
+g_list_sort	@180	NONAME
+g_locale_to_utf8	@181	NONAME
+g_log	@182	NONAME
+g_log_default_handler	@183	NONAME
+g_log_set_default_handler	@184	NONAME
+g_log_set_handler	@185	NONAME
+g_main_context_get_thread_default	@186	NONAME
+g_main_context_new	@187	NONAME
+g_main_context_unref	@188	NONAME
+g_main_loop_is_running	@189	NONAME
+g_main_loop_new	@190	NONAME
+g_main_loop_quit	@191	NONAME
+g_main_loop_run	@192	NONAME
+g_main_loop_unref	@193	NONAME
+g_malloc	@194	NONAME
+g_malloc0	@195	NONAME
+g_malloc0_n	@196	NONAME
+g_malloc_n	@197	NONAME
+g_memdup	@198	NONAME
+g_mkdir_with_parents	@199	NONAME
+g_module_close	@200	NONAME
+g_module_error	@201	NONAME
+g_module_make_resident	@202	NONAME
+g_module_open	@203	NONAME
+g_module_supported	@204	NONAME
+g_module_symbol	@205	NONAME
+g_mutex_clear	@206	NONAME
+g_mutex_init	@207	NONAME
+g_mutex_lock	@208	NONAME
+g_mutex_unlock	@209	NONAME
+g_node_children_foreach	@210	NONAME
+g_node_destroy	@211	NONAME
+g_node_insert_before	@212	NONAME
+g_node_new	@213	NONAME
+g_node_nth_child	@214	NONAME
+g_object_add_weak_pointer	@215	NONAME
+g_object_class_find_property	@216	NONAME
+g_object_class_install_properties	@217	NONAME
+g_object_class_install_property	@218	NONAME
+g_object_class_list_properties	@219	NONAME
+g_object_freeze_notify	@220	NONAME
+g_object_get	@221	NONAME
+g_object_get_property	@222	NONAME
+g_object_interface_install_property	@223	NONAME
+g_object_new	@224	NONAME
+g_object_notify	@225	NONAME
+g_object_notify_by_pspec	@226	NONAME
+g_object_ref	@227	NONAME
+g_object_ref_sink	@228	NONAME
+g_object_remove_weak_pointer	@229	NONAME
+g_object_set	@230	NONAME
+g_object_set_property	@231	NONAME
+g_object_thaw_notify	@232	NONAME
+g_object_unref	@233	NONAME
+g_once_impl	@234	NONAME
+g_once_init_enter	@235	NONAME
+g_once_init_leave	@236	NONAME
+g_param_spec_boolean	@237	NONAME
+g_param_spec_boxed	@238	NONAME
+g_param_spec_double	@239	NONAME
+g_param_spec_enum	@240	NONAME
+g_param_spec_flags	@241	NONAME
+g_param_spec_float	@242	NONAME
+g_param_spec_gtype	@243	NONAME
+g_param_spec_int	@244	NONAME
+g_param_spec_int64	@245	NONAME
+g_param_spec_internal	@246	NONAME
+g_param_spec_object	@247	NONAME
+g_param_spec_ref	@248	NONAME
+g_param_spec_sink	@249	NONAME
+g_param_spec_string	@250	NONAME
+g_param_spec_uint	@251	NONAME
+g_param_spec_uint64	@252	NONAME
+g_param_spec_unref	@253	NONAME
+g_param_type_register_static	@254	NONAME
+g_param_value_set_default	@255	NONAME
+g_param_value_validate	@256	NONAME
+g_param_values_cmp	@257	NONAME
+g_path_get_basename	@258	NONAME
+g_path_get_dirname	@259	NONAME
+g_path_is_absolute	@260	NONAME
+g_pointer_type_register_static	@261	NONAME
+g_print	@262	NONAME
+g_printerr	@263	NONAME
+g_private_get	@264	NONAME
+g_private_set	@265	NONAME
+g_propagate_error	@266	NONAME
+g_ptr_array_add	@267	NONAME
+g_ptr_array_free	@268	NONAME
+g_ptr_array_new_full	@269	NONAME
+g_ptr_array_new_with_free_func	@270	NONAME
+g_ptr_array_remove_index	@271	NONAME
+g_qsort_with_data	@272	NONAME
+g_quark_from_static_string	@273	NONAME
+g_quark_from_string	@274	NONAME
+g_quark_to_string	@275	NONAME
+g_quark_try_string	@276	NONAME
+g_queue_clear	@277	NONAME
+g_queue_delete_link	@278	NONAME
+g_queue_find	@279	NONAME
+g_queue_find_custom	@280	NONAME
+g_queue_foreach	@281	NONAME
+g_queue_free	@282	NONAME
+g_queue_get_length	@283	NONAME
+g_queue_init	@284	NONAME
+g_queue_is_empty	@285	NONAME
+g_queue_new	@286	NONAME
+g_queue_peek_nth	@287	NONAME
+g_queue_pop_head	@288	NONAME
+g_queue_push_head	@289	NONAME
+g_queue_push_tail	@290	NONAME
+g_queue_remove	@291	NONAME
+g_queue_sort	@292	NONAME
+g_random_int	@293	NONAME
+g_realloc	@294	NONAME
+g_realloc_n	@295	NONAME
+g_rec_mutex_clear	@296	NONAME
+g_rec_mutex_init	@297	NONAME
+g_rec_mutex_lock	@298	NONAME
+g_rec_mutex_unlock	@299	NONAME
+g_regex_match_simple	@300	NONAME
+g_rename	@301	NONAME
+g_rw_lock_init	@302	NONAME
+g_rw_lock_reader_lock	@303	NONAME
+g_rw_lock_reader_unlock	@304	NONAME
+g_rw_lock_writer_lock	@305	NONAME
+g_rw_lock_writer_unlock	@306	NONAME
+g_set_error	@307	NONAME
+g_signal_connect_data	@308	NONAME
+g_signal_emit	@309	NONAME
+g_signal_handler_disconnect	@310	NONAME
+g_signal_handlers_destroy	@311	NONAME
+g_signal_handlers_disconnect_matched	@312	NONAME
+g_signal_new	@313	NONAME
+g_slice_alloc	@314	NONAME
+g_slice_alloc0	@315	NONAME
+g_slice_copy	@316	NONAME
+g_slice_free1	@317	NONAME
+g_slist_append	@318	NONAME
+g_slist_concat	@319	NONAME
+g_slist_delete_link	@320	NONAME
+g_slist_foreach	@321	NONAME
+g_slist_free	@322	NONAME
+g_slist_insert_before	@323	NONAME
+g_slist_prepend	@324	NONAME
+g_slist_remove	@325	NONAME
+g_slist_reverse	@326	NONAME
+g_snprintf	@327	NONAME
+g_source_add_poll	@328	NONAME
+g_source_attach	@329	NONAME
+g_source_destroy	@330	NONAME
+g_source_new	@331	NONAME
+g_source_remove	@332	NONAME
+g_source_set_callback	@333	NONAME
+g_source_set_name	@334	NONAME
+g_source_set_priority	@335	NONAME
+g_source_unref	@336	NONAME
+g_spawn_close_pid	@337	NONAME
+g_stat	@338	NONAME
+g_str_equal	@339	NONAME
+g_str_has_prefix	@340	NONAME
+g_str_has_suffix	@341	NONAME
+g_str_hash	@342	NONAME
+g_strchomp	@343	NONAME
+g_strchug	@344	NONAME
+g_strcmp0	@345	NONAME
+g_strconcat	@346	NONAME
+g_strdelimit	@347	NONAME
+g_strdup	@348	NONAME
+g_strdup_printf	@349	NONAME
+g_strdup_value_contents	@350	NONAME
+g_strdup_vprintf	@351	NONAME
+g_strdupv	@352	NONAME
+g_strerror	@353	NONAME
+g_strfreev	@354	NONAME
+g_string_append	@355	NONAME
+g_string_append_len	@356	NONAME
+g_string_append_printf	@357	NONAME
+g_string_free	@358	NONAME
+g_string_insert_c	@359	NONAME
+g_string_new	@360	NONAME
+g_string_set_size	@361	NONAME
+g_string_sized_new	@362	NONAME
+g_string_truncate	@363	NONAME
+g_strjoin	@364	NONAME
+g_strlcpy	@365	NONAME
+g_strndup	@366	NONAME
+g_strrstr	@367	NONAME
+g_strsplit	@368	NONAME
+g_strsplit_set	@369	NONAME
+g_strstr_len	@370	NONAME
+g_strtod	@371	NONAME
+g_strv_length	@372	NONAME
+g_thread_get_type	@373	NONAME
+g_thread_join	@374	NONAME
+g_thread_new	@375	NONAME
+g_thread_pool_free	@376	NONAME
+g_thread_pool_new	@377	NONAME
+g_thread_pool_push	@378	NONAME
+g_thread_pool_set_max_unused_threads	@379	NONAME
+g_thread_self	@380	NONAME
+g_thread_try_new	@381	NONAME
+g_thread_yield	@382	NONAME
+g_time_zone_new	@383	NONAME
+g_time_zone_unref	@384	NONAME
+g_timeout_add_full	@385	NONAME
+g_timer_destroy	@386	NONAME
+g_timer_elapsed	@387	NONAME
+g_timer_new	@388	NONAME
+g_timer_start	@389	NONAME
+g_tree_destroy	@390	NONAME
+g_tree_insert	@391	NONAME
+g_tree_new_with_data	@392	NONAME
+g_tree_search	@393	NONAME
+g_try_malloc	@394	NONAME
+g_try_malloc0_n	@395	NONAME
+g_try_malloc_n	@396	NONAME
+g_try_realloc_n	@397	NONAME
+g_type_add_interface_static	@398	NONAME
+g_type_check_class_cast	@399	NONAME
+g_type_check_instance_cast	@400	NONAME
+g_type_check_instance_is_a	@401	NONAME
+g_type_check_instance_is_fundamentally_a	@402	NONAME
+g_type_check_value	@403	NONAME
+g_type_check_value_holds	@404	NONAME
+g_type_class_add_private	@405	NONAME
+g_type_class_adjust_private_offset	@406	NONAME
+g_type_class_peek	@407	NONAME
+g_type_class_peek_parent	@408	NONAME
+g_type_class_ref	@409	NONAME
+g_type_class_unref	@410	NONAME
+g_type_from_name	@411	NONAME
+g_type_fundamental	@412	NONAME
+g_type_fundamental_next	@413	NONAME
+g_type_get_qdata	@414	NONAME
+g_type_init	@415	NONAME
+g_type_instance_get_private	@416	NONAME
+g_type_interface_add_prerequisite	@417	NONAME
+g_type_interface_peek	@418	NONAME
+g_type_interfaces	@419	NONAME
+g_type_is_a	@420	NONAME
+g_type_name	@421	NONAME
+g_type_parent	@422	NONAME
+g_type_qname	@423	NONAME
+g_type_register_fundamental	@424	NONAME
+g_type_register_static	@425	NONAME
+g_type_register_static_simple	@426	NONAME
+g_type_set_qdata	@427	NONAME
+g_type_value_table_peek	@428	NONAME
+g_unlink	@429	NONAME
+g_uri_escape_string	@430	NONAME
+g_uri_unescape_segment	@431	NONAME
+g_uri_unescape_string	@432	NONAME
+g_utf16_to_utf8	@433	NONAME
+g_utf8_strchr	@434	NONAME
+g_utf8_validate	@435	NONAME
+g_value_array_append	@436	NONAME
+g_value_array_get_nth	@437	NONAME
+g_value_array_get_type	@438	NONAME
+g_value_array_new	@439	NONAME
+g_value_copy	@440	NONAME
+g_value_dup_boxed	@441	NONAME
+g_value_dup_object	@442	NONAME
+g_value_dup_string	@443	NONAME
+g_value_get_boolean	@444	NONAME
+g_value_get_boxed	@445	NONAME
+g_value_get_double	@446	NONAME
+g_value_get_enum	@447	NONAME
+g_value_get_flags	@448	NONAME
+g_value_get_float	@449	NONAME
+g_value_get_gtype	@450	NONAME
+g_value_get_int	@451	NONAME
+g_value_get_int64	@452	NONAME
+g_value_get_long	@453	NONAME
+g_value_get_object	@454	NONAME
+g_value_get_pointer	@455	NONAME
+g_value_get_string	@456	NONAME
+g_value_get_uchar	@457	NONAME
+g_value_get_uint	@458	NONAME
+g_value_get_uint64	@459	NONAME
+g_value_get_ulong	@460	NONAME
+g_value_init	@461	NONAME
+g_value_peek_pointer	@462	NONAME
+g_value_register_transform_func	@463	NONAME
+g_value_reset	@464	NONAME
+g_value_set_boolean	@465	NONAME
+g_value_set_boxed	@466	NONAME
+g_value_set_double	@467	NONAME
+g_value_set_enum	@468	NONAME
+g_value_set_flags	@469	NONAME
+g_value_set_float	@470	NONAME
+g_value_set_gtype	@471	NONAME
+g_value_set_int	@472	NONAME
+g_value_set_int64	@473	NONAME
+g_value_set_long	@474	NONAME
+g_value_set_object	@475	NONAME
+g_value_set_pointer	@476	NONAME
+g_value_set_static_boxed	@477	NONAME
+g_value_set_static_string	@478	NONAME
+g_value_set_string	@479	NONAME
+g_value_set_uchar	@480	NONAME
+g_value_set_uint	@481	NONAME
+g_value_set_uint64	@482	NONAME
+g_value_set_ulong	@483	NONAME
+g_value_take_boxed	@484	NONAME
+g_value_take_object	@485	NONAME
+g_value_take_string	@486	NONAME
+g_value_transform	@487	NONAME
+g_value_type_compatible	@488	NONAME
+g_value_unset	@489	NONAME
+g_vasprintf	@490	NONAME
+g_warn_message	@491	NONAME
+g_weak_ref_clear	@492	NONAME
+g_weak_ref_get	@493	NONAME
+g_weak_ref_init	@494	NONAME
+g_weak_ref_set	@495	NONAME
+g_win32_get_package_installation_directory_of_module	@496	NONAME
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glibconfig.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glibconfig.h
similarity index 66%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glibconfig.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glibconfig.h
index cfccb9c0f1..05c14cfa6d 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/glibconfig.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/glibconfig.h
@@ -15,6 +15,13 @@
 
 #include 
 #include 
+/* #undef GLIB_HAVE_ALLOCA_H */
+
+/* Specifies that GLib's g_print*() functions wrap the
+ * system printf functions.  This is useful to know, for example,
+ * when using glibc's register_printf_function().
+ */
+#define GLIB_USING_SYSTEM_PRINTF
 
 G_BEGIN_DECLS
 
@@ -46,24 +53,11 @@ typedef unsigned int guint32;
 #define G_GUINT32_FORMAT "u"
 #define G_HAVE_GINT64 1          /* deprecated, always true */
 
-#ifndef _MSC_VER
 G_GNUC_EXTENSION typedef signed long long gint64;
 G_GNUC_EXTENSION typedef unsigned long long guint64;
-#else /* _MSC_VER */
-typedef signed __int64 gint64;
-typedef unsigned __int64 guint64;
-#endif /* _MSC_VER */
 
-#ifndef _MSC_VER
 #define G_GINT64_CONSTANT(val)  (G_GNUC_EXTENSION (val##LL))
-#else /* _MSC_VER */
-#define G_GINT64_CONSTANT(val)  (val##i64)
-#endif /* _MSC_VER */
-#ifndef _MSC_VER
 #define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL))
-#else /* _MSC_VER */
-#define G_GUINT64_CONSTANT(val) (val##Ui64)
-#endif /* _MSC_VER */
 #define G_GINT64_MODIFIER "I64"
 #define G_GINT64_FORMAT "I64i"
 #define G_GUINT64_FORMAT "I64u"
@@ -77,8 +71,9 @@ typedef unsigned __int64 guint64;
 typedef signed long long gssize;
 typedef unsigned long long gsize;
 #define G_GSIZE_MODIFIER "I64"
-#define G_GSSIZE_FORMAT "I64d"
+#define G_GSSIZE_MODIFIER "I64"
 #define G_GSIZE_FORMAT "I64u"
+#define G_GSSIZE_FORMAT "I64i"
 
 #define G_MAXSIZE   G_MAXUINT64
 #define G_MINSSIZE  G_MININT64
@@ -93,8 +88,9 @@ typedef unsigned long long gsize;
 typedef signed int gssize;
 typedef unsigned int gsize;
 #define G_GSIZE_MODIFIER ""
-#define G_GSSIZE_FORMAT "i"
+#define G_GSSIZE_MODIFIER ""
 #define G_GSIZE_FORMAT "u"
+#define G_GSSIZE_FORMAT "i"
 
 #define G_MAXSIZE   G_MAXUINT
 #define G_MINSSIZE  G_MININT
@@ -111,75 +107,59 @@ typedef gint64 goffset;
 #define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
 
 
-#ifndef _WIN64
+#ifdef _WIN64
+# define G_POLLFD_FORMAT "%#I64x"
+# define GPOINTER_TO_INT(p) ((gint)  (gint64) (p))
+# define GPOINTER_TO_UINT(p)    ((guint) (guint64) (p))
 
-#define GPOINTER_TO_INT(p)  ((gint)   (p))
-#define GPOINTER_TO_UINT(p) ((guint)  (p))
+# define GINT_TO_POINTER(i) ((gpointer) (gint64) (i))
+# define GUINT_TO_POINTER(u)    ((gpointer) (guint64) (u))
 
-#define GINT_TO_POINTER(i)  ((gpointer)  (i))
-#define GUINT_TO_POINTER(u) ((gpointer)  (u))
-
-typedef signed int gintptr;
-typedef unsigned int guintptr;
-
-#define G_GINTPTR_MODIFIER      ""
-#define G_GINTPTR_FORMAT        "i"
-#define G_GUINTPTR_FORMAT       "u"
+typedef signed long long gintptr;
+typedef unsigned long long guintptr;
 
+# define G_GINTPTR_MODIFIER      "I64"
+# define G_GINTPTR_FORMAT        "I64i"
+# define G_GUINTPTR_FORMAT       "I64u"
 #else
+# define G_POLLFD_FORMAT "%#x"
 
-#define GPOINTER_TO_INT(p)  ((gint)  (gint64) (p))
-#define GPOINTER_TO_UINT(p) ((guint) (guint64) (p))
-
-#define GINT_TO_POINTER(i)  ((gpointer) (gint64) (i))
-#define GUINT_TO_POINTER(u) ((gpointer) (guint64) (u))
+# define GPOINTER_TO_INT(p) ((gint)  (gint) (p))
+# define GPOINTER_TO_UINT(p)    ((guint) (guint) (p))
 
-#ifndef _MSC_VER
-typedef signed long long gintptr;
-typedef unsigned long long guintptr;
-#else
-typedef signed __int64 gintptr;
-typedef unsigned __int64 guintptr;
-#endif
+# define GINT_TO_POINTER(i) ((gpointer) (gint) (i))
+# define GUINT_TO_POINTER(u)    ((gpointer) (guint) (u))
 
-#define G_GINTPTR_MODIFIER      "I64"
-#define G_GINTPTR_FORMAT        "I64i"
-#define G_GUINTPTR_FORMAT       "I64u"
+typedef signed int gintptr;
+typedef unsigned int guintptr;
 
+# define G_GINTPTR_MODIFIER      ""
+# define G_GINTPTR_FORMAT        "i"
+# define G_GUINTPTR_FORMAT       "u"
 #endif
 
+#ifndef G_DISABLE_DEPRECATED
 #define g_ATEXIT(proc)  (atexit (proc))
 
 #define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
+#endif
 
 #define GLIB_MAJOR_VERSION 2
-#define GLIB_MINOR_VERSION 42
+#define GLIB_MINOR_VERSION 56
 #define GLIB_MICRO_VERSION 1
 
 #define G_OS_WIN32
 #define G_PLATFORM_WIN32
 
 
-#ifndef _MSC_VER
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
 #define G_VA_COPY   va_copy
-#endif /* not _MSC_VER */
-
-#ifdef  __cplusplus
-#define G_HAVE_INLINE   1
-#else   /* !__cplusplus */
-#ifndef _MSC_VER
-#define G_HAVE_INLINE 1
-#endif /* _MSC_VER */
-#define G_HAVE___INLINE 1
-#if !defined(_MSC_VER) && !defined(__DMC__)
-#define G_HAVE___INLINE__ 1
-#endif /* !_MSC_VER and !__DMC__ */
-#endif  /* !__cplusplus */
-
-#define G_CAN_INLINE    1
+#endif /* not _MSC_VER or 2013 or later */
 
 #ifndef _MSC_VER
-#define G_HAVE_ISO_VARARGS 1
+# define G_HAVE_ISO_VARARGS 1
+# define G_HAVE_GNUC_VARARGS 1
+# define G_HAVE_GNUC_VISIBILITY 1
 
 /* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
  * is passed ISO vararg support is turned off, and there is no work
@@ -189,16 +169,21 @@ typedef unsigned __int64 guintptr;
 #  undef G_HAVE_ISO_VARARGS
 #endif
 
-#define G_HAVE_GNUC_VARARGS 1
+#define G_HAVE_GROWING_STACK 0
+
 #else /* _MSC_VER */
-/* varargs macros available since msvc8 (vs2005) */
-#  if _MSC_VER >= 1400
-#    define G_HAVE_ISO_VARARGS 1
-#   endif
+# define G_HAVE_ISO_VARARGS 1
 #endif /* not _MSC_VER */
-#define G_HAVE_GROWING_STACK 0
 
-#define G_GNUC_INTERNAL
+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+# define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+# define G_GNUC_INTERNAL __hidden
+#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY)
+# define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
+#else
+# define G_GNUC_INTERNAL
+#endif
 
 #define G_THREADS_ENABLED
 #define G_THREADS_IMPL_WIN32
@@ -225,18 +210,27 @@ typedef unsigned __int64 guintptr;
 #define GUINT_TO_LE(val)    ((guint) GUINT32_TO_LE (val))
 #define GINT_TO_BE(val)     ((gint) GINT32_TO_BE (val))
 #define GUINT_TO_BE(val)    ((guint) GUINT32_TO_BE (val))
-#define GSIZE_TO_LE(val)    ((gsize) GUINT32_TO_LE (val))
-#define GSSIZE_TO_LE(val)   ((gssize) GINT32_TO_LE (val))
-#define GSIZE_TO_BE(val)    ((gsize) GUINT32_TO_BE (val))
-#define GSSIZE_TO_BE(val)   ((gssize) GINT32_TO_BE (val))
+
+#ifdef _WIN64
+# define GSIZE_TO_LE(val)   ((gsize) GUINT64_TO_LE (val))
+# define GSSIZE_TO_LE(val)  ((gssize) GINT64_TO_LE (val))
+# define GSIZE_TO_BE(val)   ((gsize) GUINT64_TO_BE (val))
+# define GSSIZE_TO_BE(val)  ((gssize) GINT64_TO_BE (val))
+#else
+# define GSIZE_TO_LE(val)   ((gsize) GUINT32_TO_LE (val))
+# define GSSIZE_TO_LE(val)  ((gssize) GINT32_TO_LE (val))
+# define GSIZE_TO_BE(val)   ((gsize) GUINT32_TO_BE (val))
+# define GSSIZE_TO_BE(val)  ((gssize) GINT32_TO_BE (val))
+#endif
+
 #define G_BYTE_ORDER G_LITTLE_ENDIAN
 
-#define GLIB_SYSDEF_POLLIN =1
-#define GLIB_SYSDEF_POLLOUT =4
-#define GLIB_SYSDEF_POLLPRI =2
-#define GLIB_SYSDEF_POLLHUP =16
-#define GLIB_SYSDEF_POLLERR =8
-#define GLIB_SYSDEF_POLLNVAL =32
+#define GLIB_SYSDEF_POLLIN =768
+#define GLIB_SYSDEF_POLLOUT =16
+#define GLIB_SYSDEF_POLLPRI =1024
+#define GLIB_SYSDEF_POLLHUP =2
+#define GLIB_SYSDEF_POLLERR =1
+#define GLIB_SYSDEF_POLLNVAL =4
 
 #define G_MODULE_SUFFIX "dll"
 
@@ -248,6 +242,7 @@ typedef unsigned __int64 guintptr;
  * not a process identifier.
  */
 typedef void * GPid;
+#define G_PID_FORMAT "p"
 
 #define GLIB_SYSDEF_AF_UNIX 1
 #define GLIB_SYSDEF_AF_INET 2
@@ -257,6 +252,11 @@ typedef void * GPid;
 #define GLIB_SYSDEF_MSG_PEEK      2
 #define GLIB_SYSDEF_MSG_DONTROUTE 4
 
+#define G_DIR_SEPARATOR '\\'
+#define G_DIR_SEPARATOR_S "\\"
+#define G_SEARCHPATH_SEPARATOR ';'
+#define G_SEARCHPATH_SEPARATOR_S ";"
+
 G_END_DECLS
 
 #endif /* GLIBCONFIG_H */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/gmoduleconf.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/gmoduleconf.h
similarity index 93%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/gmoduleconf.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/gmoduleconf.h
index d3a9ec2582..00e4ddfc35 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/gmoduleconf.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/gmoduleconf.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/msvc_recommended_pragmas.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/msvc_recommended_pragmas.h
similarity index 100%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/build/win32/vs100/msvc_recommended_pragmas.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/build/win32/vs100/msvc_recommended_pragmas.h
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/deprecated/gthread.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/deprecated/gthread.h
similarity index 99%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/deprecated/gthread.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/deprecated/gthread.h
index dbb9d17bb9..fdbe9fbc95 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/deprecated/gthread.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/deprecated/gthread.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/galloca.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/galloca.h
similarity index 98%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/galloca.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/galloca.h
index 9099faf6a8..b543d7023d 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/galloca.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/galloca.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.c
similarity index 92%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.c
index 47e261b84c..df24c2805a 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.c
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,6 +34,7 @@
 #include "garray.h"
 
 #include "gbytes.h"
+#include "ghash.h"
 #include "gslice.h"
 #include "gmem.h"
 #include "gtestutils.h"
@@ -224,7 +225,8 @@ g_array_sized_new (gboolean zero_terminated,
  *
  * The @clear_func will be called when an element in the array
  * data segment is removed and when the array is freed and data
- * segment is deallocated as well.
+ * segment is deallocated as well. @clear_func will be passed a
+ * pointer to the element to clear, rather than the element itself.
  *
  * Note that in contrast with other uses of #GDestroyNotify
  * functions, @clear_func is expected to clear the contents of
@@ -248,7 +250,7 @@ g_array_set_clear_func (GArray         *array,
  * @array: A #GArray
  *
  * Atomically increments the reference count of @array by one.
- * This function is MT-safe and may be called from any thread.
+ * This function is thread-safe and may be called from any thread.
  *
  * Returns: The passed in #GArray
  *
@@ -279,7 +281,7 @@ static gchar *array_free (GRealArray *, ArrayFreeFlags);
  *
  * Atomically decrements the reference count of @array by one. If the
  * reference count drops to 0, all memory allocated by the array is
- * released. This function is MT-safe and may be called from any
+ * released. This function is thread-safe and may be called from any
  * thread.
  *
  * Since: 2.22
@@ -330,6 +332,10 @@ g_array_get_element_size (GArray *array)
  * If array elements contain dynamically-allocated memory, they should
  * be freed separately.
  *
+ * This function is not thread-safe. If using a #GArray from multiple
+ * threads, use only the atomic g_array_ref() and g_array_unref()
+ * functions.
+ *
  * Returns: the element data if @free_segment is %FALSE, otherwise
  *     %NULL. The element data should be freed using g_free().
  */
@@ -390,7 +396,7 @@ array_free (GRealArray     *array,
 /**
  * g_array_append_vals:
  * @array: a #GArray
- * @data: a pointer to the elements to append to the end of the array
+ * @data: (not nullable): a pointer to the elements to append to the end of the array
  * @len: the number of elements to append
  *
  * Adds @len elements onto the end of the array.
@@ -420,6 +426,9 @@ g_array_append_vals (GArray       *farray,
 
   g_return_val_if_fail (array, NULL);
 
+  if (len == 0)
+    return farray;
+
   g_array_maybe_expand (array, len);
 
   memcpy (g_array_elt_pos (array, array->len), data,
@@ -435,7 +444,7 @@ g_array_append_vals (GArray       *farray,
 /**
  * g_array_prepend_vals:
  * @array: a #GArray
- * @data: a pointer to the elements to prepend to the start of the array
+ * @data: (not nullable): a pointer to the elements to prepend to the start of the array
  * @len: the number of elements to prepend
  *
  * Adds @len elements onto the start of the array.
@@ -473,6 +482,9 @@ g_array_prepend_vals (GArray        *farray,
 
   g_return_val_if_fail (array, NULL);
 
+  if (len == 0)
+    return farray;
+
   g_array_maybe_expand (array, len);
 
   memmove (g_array_elt_pos (array, len), g_array_elt_pos (array, 0),
@@ -491,7 +503,7 @@ g_array_prepend_vals (GArray        *farray,
  * g_array_insert_vals:
  * @array: a #GArray
  * @index_: the index to place the elements at
- * @data: a pointer to the elements to insert
+ * @data: (not nullable): a pointer to the elements to insert
  * @len: the number of elements to insert
  *
  * Inserts @len elements into a #GArray at the given index.
@@ -522,6 +534,9 @@ g_array_insert_vals (GArray        *farray,
 
   g_return_val_if_fail (array, NULL);
 
+  if (len == 0)
+    return farray;
+
   g_array_maybe_expand (array, len);
 
   memmove (g_array_elt_pos (array, len + index_),
@@ -671,7 +686,7 @@ g_array_remove_range (GArray *farray,
   GRealArray *array = (GRealArray*) farray;
 
   g_return_val_if_fail (array, NULL);
-  g_return_val_if_fail (index_ < array->len, NULL);
+  g_return_val_if_fail (index_ <= array->len, NULL);
   g_return_val_if_fail (index_ + length <= array->len, NULL);
 
   if (array->clear_func != NULL)
@@ -923,7 +938,7 @@ g_ptr_array_sized_new (guint reserved_size)
 
 /**
  * g_ptr_array_new_with_free_func:
- * @element_free_func: (allow-none): A function to free elements with
+ * @element_free_func: (nullable): A function to free elements with
  *     destroy @array or %NULL
  *
  * Creates a new #GPtrArray with a reference count of 1 and use
@@ -949,7 +964,7 @@ g_ptr_array_new_with_free_func (GDestroyNotify element_free_func)
 /**
  * g_ptr_array_new_full:
  * @reserved_size: number of pointers preallocated
- * @element_free_func: (allow-none): A function to free elements with
+ * @element_free_func: (nullable): A function to free elements with
  *     destroy @array or %NULL
  *
  * Creates a new #GPtrArray with @reserved_size pointers preallocated
@@ -979,7 +994,7 @@ g_ptr_array_new_full (guint          reserved_size,
 /**
  * g_ptr_array_set_free_func:
  * @array: A #GPtrArray
- * @element_free_func: (allow-none): A function to free elements with
+ * @element_free_func: (nullable): A function to free elements with
  *     destroy @array or %NULL
  *
  * Sets a function for freeing each element when @array is destroyed
@@ -1035,7 +1050,7 @@ static gpointer *ptr_array_free (GPtrArray *, ArrayFreeFlags);
  * Atomically decrements the reference count of @array by one. If the
  * reference count drops to 0, the effect is the same as calling
  * g_ptr_array_free() with @free_segment set to %TRUE. This function
- * is MT-safe and may be called from any thread.
+ * is thread-safe and may be called from any thread.
  *
  * Since: 2.22
  */
@@ -1066,6 +1081,10 @@ g_ptr_array_unref (GPtrArray *array)
  * be freed separately if @free_seg is %TRUE and no #GDestroyNotify
  * function has been set for @array.
  *
+ * This function is not thread-safe. If using a #GPtrArray from multiple
+ * threads, use only the atomic g_ptr_array_ref() and g_ptr_array_unref()
+ * functions.
+ *
  * Returns: the pointer array if @free_seg is %FALSE, otherwise %NULL.
  *     The pointer array should be freed using g_free().
  */
@@ -1277,7 +1296,7 @@ g_ptr_array_remove_range (GPtrArray *array,
   guint n;
 
   g_return_val_if_fail (rarray != NULL, NULL);
-  g_return_val_if_fail (index_ < rarray->len, NULL);
+  g_return_val_if_fail (index_ <= rarray->len, NULL);
   g_return_val_if_fail (index_ + length <= rarray->len, NULL);
 
   if (rarray->element_free_func != NULL)
@@ -1499,7 +1518,8 @@ g_ptr_array_sort_with_data (GPtrArray        *array,
  * @func: the function to call for each array element
  * @user_data: user data to pass to the function
  *
- * Calls a function for each element of a #GPtrArray.
+ * Calls a function for each element of a #GPtrArray. @func must not
+ * add elements to or remove elements from the array.
  *
  * Since: 2.4
  */
@@ -1516,6 +1536,81 @@ g_ptr_array_foreach (GPtrArray *array,
     (*func) (array->pdata[i], user_data);
 }
 
+/**
+ * g_ptr_array_find: (skip)
+ * @haystack: pointer array to be searched
+ * @needle: pointer to look for
+ * @index_: (optional) (out caller-allocates): return location for the index of
+ *    the element, if found
+ *
+ * Checks whether @needle exists in @haystack. If the element is found, %TRUE is
+ * returned and the element's index is returned in @index_ (if non-%NULL).
+ * Otherwise, %FALSE is returned and @index_ is undefined. If @needle exists
+ * multiple times in @haystack, the index of the first instance is returned.
+ *
+ * This does pointer comparisons only. If you want to use more complex equality
+ * checks, such as string comparisons, use g_ptr_array_find_with_equal_func().
+ *
+ * Returns: %TRUE if @needle is one of the elements of @haystack
+ * Since: 2.54
+ */
+gboolean
+g_ptr_array_find (GPtrArray     *haystack,
+                  gconstpointer  needle,
+                  guint         *index_)
+{
+  return g_ptr_array_find_with_equal_func (haystack, needle, NULL, index_);
+}
+
+/**
+ * g_ptr_array_find_with_equal_func: (skip)
+ * @haystack: pointer array to be searched
+ * @needle: pointer to look for
+ * @equal_func: (nullable): the function to call for each element, which should
+ *    return %TRUE when the desired element is found; or %NULL to use pointer
+ *    equality
+ * @index_: (optional) (out caller-allocates): return location for the index of
+ *    the element, if found
+ *
+ * Checks whether @needle exists in @haystack, using the given @equal_func.
+ * If the element is found, %TRUE is returned and the element's index is
+ * returned in @index_ (if non-%NULL). Otherwise, %FALSE is returned and @index_
+ * is undefined. If @needle exists multiple times in @haystack, the index of
+ * the first instance is returned.
+ *
+ * @equal_func is called with the element from the array as its first parameter,
+ * and @needle as its second parameter. If @equal_func is %NULL, pointer
+ * equality is used.
+ *
+ * Returns: %TRUE if @needle is one of the elements of @haystack
+ * Since: 2.54
+ */
+gboolean
+g_ptr_array_find_with_equal_func (GPtrArray     *haystack,
+                                  gconstpointer  needle,
+                                  GEqualFunc     equal_func,
+                                  guint         *index_)
+{
+  guint i;
+
+  g_return_val_if_fail (haystack != NULL, FALSE);
+
+  if (equal_func == NULL)
+    equal_func = g_direct_equal;
+
+  for (i = 0; i < haystack->len; i++)
+    {
+      if (equal_func (g_ptr_array_index (haystack, i), needle))
+        {
+          if (index_ != NULL)
+            *index_ = i;
+          return TRUE;
+        }
+    }
+
+  return FALSE;
+}
+
 /**
  * SECTION:arrays_byte
  * @title: Byte Arrays
@@ -1831,7 +1926,7 @@ g_byte_array_remove_range (GByteArray *array,
                            guint       length)
 {
   g_return_val_if_fail (array, NULL);
-  g_return_val_if_fail (index_ < array->len, NULL);
+  g_return_val_if_fail (index_ <= array->len, NULL);
   g_return_val_if_fail (index_ + length <= array->len, NULL);
 
   return (GByteArray *)g_array_remove_range ((GArray *)array, index_, length);
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.h
similarity index 94%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.h
index 3494dbbbe2..9f2847fe69 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/garray.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/garray.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -182,6 +182,15 @@ GLIB_AVAILABLE_IN_ALL
 void       g_ptr_array_foreach            (GPtrArray        *array,
                        GFunc             func,
                        gpointer          user_data);
+GLIB_AVAILABLE_IN_2_54
+gboolean   g_ptr_array_find               (GPtrArray        *haystack,
+                                           gconstpointer     needle,
+                                           guint            *index_);
+GLIB_AVAILABLE_IN_2_54
+gboolean   g_ptr_array_find_with_equal_func (GPtrArray     *haystack,
+                                             gconstpointer  needle,
+                                             GEqualFunc     equal_func,
+                                             guint         *index_);
 
 
 /* Byte arrays, an array of guint8.  Implemented as a GArray,
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.c
similarity index 89%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.c
index a65af8f064..271c62a9be 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.c
@@ -7,7 +7,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -785,6 +785,106 @@ g_async_queue_sort_unlocked (GAsyncQueue      *queue,
                 &sd);
 }
 
+/**
+ * g_async_queue_remove:
+ * @queue: a #GAsyncQueue
+ * @item: the data to remove from the @queue
+ *
+ * Remove an item from the queue.
+ *
+ * Returns: %TRUE if the item was removed
+ *
+ * Since: 2.46
+ */
+gboolean
+g_async_queue_remove (GAsyncQueue *queue,
+                      gpointer     item)
+{
+  gboolean ret;
+
+  g_return_val_if_fail (queue != NULL, FALSE);
+  g_return_val_if_fail (item != NULL, FALSE);
+
+  g_mutex_lock (&queue->mutex);
+  ret = g_async_queue_remove_unlocked (queue, item);
+  g_mutex_unlock (&queue->mutex);
+
+  return ret;
+}
+
+/**
+ * g_async_queue_remove_unlocked:
+ * @queue: a #GAsyncQueue
+ * @item: the data to remove from the @queue
+ *
+ * Remove an item from the queue.
+ *
+ * This function must be called while holding the @queue's lock.
+ *
+ * Returns: %TRUE if the item was removed
+ *
+ * Since: 2.46
+ */
+gboolean
+g_async_queue_remove_unlocked (GAsyncQueue *queue,
+                               gpointer     item)
+{
+  g_return_val_if_fail (queue != NULL, FALSE);
+  g_return_val_if_fail (item != NULL, FALSE);
+
+  return g_queue_remove (&queue->queue, item);
+}
+
+/**
+ * g_async_queue_push_front:
+ * @queue: a #GAsyncQueue
+ * @item: data to push into the @queue
+ *
+ * Pushes the @item into the @queue. @item must not be %NULL.
+ * In contrast to g_async_queue_push(), this function
+ * pushes the new item ahead of the items already in the queue,
+ * so that it will be the next one to be popped off the queue.
+ *
+ * Since: 2.46
+ */
+void
+g_async_queue_push_front (GAsyncQueue *queue,
+                          gpointer     item)
+{
+  g_return_if_fail (queue != NULL);
+  g_return_if_fail (item != NULL);
+
+  g_mutex_lock (&queue->mutex);
+  g_async_queue_push_front_unlocked (queue, item);
+  g_mutex_unlock (&queue->mutex);
+}
+
+/**
+ * g_async_queue_push_front_unlocked:
+ * @queue: a #GAsyncQueue
+ * @item: data to push into the @queue
+ *
+ * Pushes the @item into the @queue. @item must not be %NULL.
+ * In contrast to g_async_queue_push_unlocked(), this function
+ * pushes the new item ahead of the items already in the queue,
+ * so that it will be the next one to be popped off the queue.
+ *
+ * This function must be called while holding the @queue's lock.
+ *
+ * Since: 2.46
+ */
+void
+g_async_queue_push_front_unlocked (GAsyncQueue *queue,
+                                   gpointer     item)
+{
+  g_return_if_fail (queue != NULL);
+  g_return_if_fail (item != NULL);
+
+  g_queue_push_tail (&queue->queue, item);
+  if (queue->waiting_threads > 0)
+    g_cond_signal (&queue->cond);
+}
+
 /*
  * Private API
  */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.h
similarity index 86%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.h
index fa9565fe16..05980a7778 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueue.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueue.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -97,6 +97,19 @@ void         g_async_queue_sort_unlocked        (GAsyncQueue      *queue,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
 
+GLIB_AVAILABLE_IN_2_46
+gboolean     g_async_queue_remove               (GAsyncQueue      *queue,
+                                                 gpointer          item);
+GLIB_AVAILABLE_IN_2_46
+gboolean     g_async_queue_remove_unlocked      (GAsyncQueue      *queue,
+                                                 gpointer          item);
+GLIB_AVAILABLE_IN_2_46
+void         g_async_queue_push_front           (GAsyncQueue      *queue,
+                                                 gpointer          item);
+GLIB_AVAILABLE_IN_2_46
+void         g_async_queue_push_front_unlocked  (GAsyncQueue      *queue,
+                                                 gpointer          item);
+
 GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop)
 gpointer     g_async_queue_timed_pop            (GAsyncQueue      *queue,
                                                  GTimeVal         *end_time);
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueueprivate.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueueprivate.h
similarity index 93%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueueprivate.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueueprivate.h
index 866de7124d..8284a69644 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gasyncqueueprivate.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gasyncqueueprivate.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.c
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.c
index 17a7a2748d..bbb3209799 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.c
@@ -1,10 +1,10 @@
 /*
- * Copyright © 2011 Ryan Lortie
+ * Copyright  2011 Ryan Lortie
  *
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -58,7 +58,8 @@
  * fall outside of simple reference counting patterns are prone to
  * subtle bugs and occasionally undefined behaviour.  It is also worth
  * noting that since all of these operations require global
- * synchronisation of the entire machine, they can be quite slow.  In * the case of performing multiple atomic operations it can often be
+ * synchronisation of the entire machine, they can be quite slow.  In
+ * the case of performing multiple atomic operations it can often be
  * faster to simply acquire a mutex lock around the critical area,
  * perform the operations normally and then release the lock.
  **/
@@ -94,6 +95,16 @@
  */
 
 #if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+
+#if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
+/* The implementation used in this code path in gatomic.h assumes
+ * 4-byte int */
+G_STATIC_ASSERT (sizeof (gint) == 4);
+
+/* The implementations in gatomic.h assume 4- or 8-byte pointers */
+G_STATIC_ASSERT (sizeof (void *) == 4 || sizeof (void *) == 8);
+#endif
+
 /**
  * g_atomic_int_get:
  * @atomic: a pointer to a #gint or #guint
@@ -300,7 +311,7 @@ guint
 
 /**
  * g_atomic_pointer_get:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  *
  * Gets the current value of @atomic.
  *
@@ -319,7 +330,7 @@ gpointer
 
 /**
  * g_atomic_pointer_set:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @newval: a new value to store
  *
  * Sets the value of @atomic to @newval.
@@ -338,7 +349,7 @@ void
 
 /**
  * g_atomic_pointer_compare_and_exchange:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @oldval: the value to compare with
  * @newval: the value to conditionally replace with
  *
@@ -367,7 +378,7 @@ gboolean
 
 /**
  * g_atomic_pointer_add:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @val: the value to add
  *
  * Atomically adds @val to the value of @atomic.
@@ -390,7 +401,7 @@ gssize
 
 /**
  * g_atomic_pointer_and:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @val: the value to 'and'
  *
  * Performs an atomic bitwise 'and' of the value of @atomic and @val,
@@ -414,7 +425,7 @@ gsize
 
 /**
  * g_atomic_pointer_or:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @val: the value to 'or'
  *
  * Performs an atomic bitwise 'or' of the value of @atomic and @val,
@@ -438,7 +449,7 @@ gsize
 
 /**
  * g_atomic_pointer_xor:
- * @atomic: a pointer to a #gpointer-sized value
+ * @atomic: (not nullable): a pointer to a #gpointer-sized value
  * @val: the value to 'xor'
  *
  * Performs an atomic bitwise 'xor' of the value of @atomic and @val,
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.h
similarity index 86%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.h
index 9d04b1dfdb..4fa18811cd 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gatomic.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gatomic.h
@@ -1,10 +1,10 @@
 /*
- * Copyright © 2011 Ryan Lortie
+ * Copyright  2011 Ryan Lortie
  *
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -87,16 +87,20 @@ G_END_DECLS
 /* We prefer the new C11-style atomic extension of GCC if available */
 #if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
 
+/* This assumes sizeof(int) is 4: gatomic.c statically
+ * asserts that (using G_STATIC_ASSERT at top-level in a header was
+ * problematic, see #730932) */
+
 #define g_atomic_int_get(atomic) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ *(atomic) : 0);                                  \
+    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
     (gint) __atomic_load_4 ((atomic), __ATOMIC_SEQ_CST);                     \
   }))
 #define g_atomic_int_set(atomic, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (newval) : 0);                                   \
+    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
     __atomic_store_4 ((atomic), (newval), __ATOMIC_SEQ_CST);                 \
   }))
 
@@ -110,12 +114,16 @@ G_END_DECLS
 #define g_atomic_pointer_set(atomic, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
     __atomic_store_8 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST);         \
   }))
 
 #else /* GLIB_SIZEOF_VOID_P == 8 */
 
+/* This assumes that if sizeof(void *) is not 8, then it is 4:
+ * gatomic.c statically asserts that (using G_STATIC_ASSERT
+ * at top-level in a header was problematic, see #730932) */
+
 #define g_atomic_pointer_get(atomic) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
@@ -124,7 +132,7 @@ G_END_DECLS
 #define g_atomic_pointer_set(atomic, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
     __atomic_store_4 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST);         \
   }))
 
@@ -135,14 +143,14 @@ G_END_DECLS
 #define g_atomic_int_get(atomic) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ *(atomic) : 0);                                  \
+    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
     __sync_synchronize ();                                                   \
     (gint) *(atomic);                                                        \
   }))
 #define g_atomic_int_set(atomic, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (newval) : 0);                                   \
+    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
     *(atomic) = (newval);                                                    \
     __sync_synchronize ();                                                   \
   }))
@@ -155,7 +163,7 @@ G_END_DECLS
 #define g_atomic_pointer_set(atomic, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
     *(atomic) = (__typeof__ (*(atomic))) (gsize) (newval);                   \
     __sync_synchronize ();                                                   \
   }))
@@ -165,78 +173,78 @@ G_END_DECLS
 #define g_atomic_int_inc(atomic) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ *(atomic) : 0);                                  \
+    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
     (void) __sync_fetch_and_add ((atomic), 1);                               \
   }))
 #define g_atomic_int_dec_and_test(atomic) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ *(atomic) : 0);                                  \
+    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
     __sync_fetch_and_sub ((atomic), 1) == 1;                                 \
   }))
 #define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 0);                        \
+    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
     (gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval));  \
   }))
 #define g_atomic_int_add(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (val) : 0);                                      \
+    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
     (gint) __sync_fetch_and_add ((atomic), (val));                           \
   }))
 #define g_atomic_int_and(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (val) : 0);                                      \
+    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
     (guint) __sync_fetch_and_and ((atomic), (val));                          \
   }))
 #define g_atomic_int_or(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (val) : 0);                                      \
+    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
     (guint) __sync_fetch_and_or ((atomic), (val));                           \
   }))
 #define g_atomic_int_xor(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
-    (void) (0 ? *(atomic) ^ (val) : 0);                                      \
+    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
     (guint) __sync_fetch_and_xor ((atomic), (val));                          \
   }))
 
 #define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
     (gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval));  \
   }))
 #define g_atomic_pointer_add(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
-    (void) (0 ? (val) ^ (val) : 0);                                          \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
+    (void) (0 ? (val) ^ (val) : 1);                                          \
     (gssize) __sync_fetch_and_add ((atomic), (val));                         \
   }))
 #define g_atomic_pointer_and(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
-    (void) (0 ? (val) ^ (val) : 0);                                          \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
+    (void) (0 ? (val) ^ (val) : 1);                                          \
     (gsize) __sync_fetch_and_and ((atomic), (val));                          \
   }))
 #define g_atomic_pointer_or(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
-    (void) (0 ? (val) ^ (val) : 0);                                          \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
+    (void) (0 ? (val) ^ (val) : 1);                                          \
     (gsize) __sync_fetch_and_or ((atomic), (val));                           \
   }))
 #define g_atomic_pointer_xor(atomic, val) \
   (G_GNUC_EXTENSION ({                                                       \
     G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
-    (void) (0 ? (gpointer) *(atomic) : 0);                                   \
-    (void) (0 ? (val) ^ (val) : 0);                                          \
+    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
+    (void) (0 ? (val) ^ (val) : 1);                                          \
     (gsize) __sync_fetch_and_xor ((atomic), (val));                          \
   }))
 
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.c
similarity index 98%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.c
index 7637ccc561..95ee86f8f3 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.c
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -257,12 +257,12 @@ g_on_error_stack_trace (const gchar *prg_name)
       G_BREAKPOINT ();
     else
   #endif // G_ENABLE_DEBUG
-    abort ();
+    g_abort ();
 #else // GSTREAMER_LITE
   if (IsDebuggerPresent ())
     G_BREAKPOINT ();
   else
-    abort ();
+    g_abort ();
 #endif // GSTREAMER_LITE
 #endif
 }
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.h
similarity index 91%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.h
index 03b6029dd4..d7322f4e2e 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbacktrace.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbacktrace.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -30,6 +30,9 @@
 #endif
 
 #include 
+#ifdef __sun__
+#include 
+#endif
 #include 
 
 G_BEGIN_DECLS
@@ -55,6 +58,8 @@ void g_on_error_stack_trace (const gchar *prg_name);
 #  define G_BREAKPOINT()        G_STMT_START{ __debugbreak(); }G_STMT_END
 #elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
 #  define G_BREAKPOINT()        G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
+#elif defined (__APPLE__)
+#  define G_BREAKPOINT()        G_STMT_START{ __builtin_trap(); }G_STMT_END
 #else   /* !__i386__ && !__alpha__ */
 #  define G_BREAKPOINT()        G_STMT_START{ raise (SIGTRAP); }G_STMT_END
 #endif  /* __i386__ */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.c
similarity index 96%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.c
index 4f0f05ee3e..16511ab7e1 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.c
@@ -4,17 +4,17 @@
  *  Copyright (C) 2000-2003 Ximian Inc.
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, see .
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  *
  * This is based on code in camel, written by:
  *    Michael Zucchi 
@@ -192,6 +192,8 @@ g_base64_encode_step (const guchar *in,
  * be written to it. It will need up to 4 bytes, or up to 5 bytes if
  * line-breaking is enabled.
  *
+ * The @out array will not be automatically nul-terminated.
+ *
  * Returns: The number of bytes of output that was written
  *
  * Since: 2.12
@@ -220,6 +222,7 @@ g_base64_encode_close (gboolean  break_lines,
       goto skip;
     case 1:
       outptr[2] = '=';
+      c2 = 0;  /* saved state here is not relevant */
     skip:
       outptr [0] = base64_alphabet [ c1 >> 2 ];
       outptr [1] = base64_alphabet [ c2 >> 4 | ( (c1&0x3) << 4 )];
@@ -307,10 +310,10 @@ static const unsigned char mime_base64_rank[256] = {
 };
 
 /**
- * g_base64_decode_step:
+ * g_base64_decode_step: (skip)
  * @in: (array length=len) (element-type guint8): binary input data
  * @len: max length of @in data to decode
- * @out: (out) (array) (element-type guint8): output buffer
+ * @out: (out caller-allocates) (array) (element-type guint8): output buffer
  * @state: (inout): Saved state between steps, initialize to 0
  * @save: (inout): Saved state between steps, initialize to 0
  *
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.h
similarity index 85%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.h
index 4018f0d2a5..662c597ff9 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbase64.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbase64.h
@@ -3,17 +3,17 @@
  *  Copyright (C) 2005  Alexander Larsson 
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, see .
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #ifndef __G_BASE64_H__
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.c
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.c
index ba4f6e28ef..c2f2ff1ee3 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.c
@@ -1,11 +1,11 @@
 /*
- * Copyright © 2008 Ryan Lortie
- * Copyright © 2010 Codethink Limited
+ * Copyright  2008 Ryan Lortie
+ * Copyright  2010 Codethink Limited
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the licence, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -52,6 +52,11 @@ static GSList *g_futex_address_list = NULL;
 #include 
 #include 
 
+#ifndef FUTEX_WAIT_PRIVATE
+#define FUTEX_WAIT_PRIVATE FUTEX_WAIT
+#define FUTEX_WAKE_PRIVATE FUTEX_WAKE
+#endif
+
 /* < private >
  * g_futex_wait:
  * @address: a pointer to an integer
@@ -73,7 +78,7 @@ static void
 g_futex_wait (const volatile gint *address,
               gint                 value)
 {
-  syscall (__NR_futex, address, (gsize) FUTEX_WAIT, (gsize) value, NULL);
+  syscall (__NR_futex, address, (gsize) FUTEX_WAIT_PRIVATE, (gsize) value, NULL);
 }
 
 /* < private >
@@ -90,7 +95,7 @@ g_futex_wait (const volatile gint *address,
 static void
 g_futex_wake (const volatile gint *address)
 {
-  syscall (__NR_futex, address, (gsize) FUTEX_WAKE, (gsize) 1, NULL);
+  syscall (__NR_futex, address, (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
 }
 
 #else
@@ -386,7 +391,7 @@ g_futex_int_address (const volatile void *address)
 
 /**
  * g_pointer_bit_lock:
- * @address: a pointer to a #gpointer-sized value
+ * @address: (not nullable): a pointer to a #gpointer-sized value
  * @lock_bit: a bit value between 0 and 31
  *
  * This is equivalent to g_bit_lock, but working on pointers (or other
@@ -455,7 +460,7 @@ void
 
 /**
  * g_pointer_bit_trylock:
- * @address: a pointer to a #gpointer-sized value
+ * @address: (not nullable): a pointer to a #gpointer-sized value
  * @lock_bit: a bit value between 0 and 31
  *
  * This is equivalent to g_bit_trylock, but working on pointers (or
@@ -502,7 +507,7 @@ gboolean
 
 /**
  * g_pointer_bit_unlock:
- * @address: a pointer to a #gpointer-sized value
+ * @address: (not nullable): a pointer to a #gpointer-sized value
  * @lock_bit: a bit value between 0 and 31
  *
  * This is equivalent to g_bit_unlock, but working on pointers (or other
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.h
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.h
index 5fab49494f..ff743454dd 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbitlock.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbitlock.h
@@ -1,11 +1,11 @@
 /*
- * Copyright © 2008 Ryan Lortie
- * Copyright © 2010 Codethink Limited
+ * Copyright  2008 Ryan Lortie
+ * Copyright  2010 Codethink Limited
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the licence, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.c
similarity index 97%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.c
index 734217545f..c5728e4164 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.c
@@ -3,18 +3,17 @@
  * Copyright (C) 2005-2006 Emmanuele Bassi
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #include "config.h"
@@ -885,7 +884,7 @@ parse_application_element (GMarkupParseContext  *context,
                _("AI is NULL"));
           return;
       }
-#endif GSTREAMER_LITE
+#endif // GSTREAMER_LITE
 
       if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
@@ -1596,7 +1595,7 @@ G_DEFINE_QUARK (g-bookmark-file-error-quark, g_bookmark_file_error)
  ********************/
 
 /**
- * g_bookmark_file_new:
+ * g_bookmark_file_new: (constructor)
  *
  * Creates a new empty #GBookmarkFile object.
  *
@@ -1642,7 +1641,8 @@ g_bookmark_file_free (GBookmarkFile *bookmark)
 /**
  * g_bookmark_file_load_from_data:
  * @bookmark: an empty #GBookmarkFile struct
- * @data: desktop bookmarks loaded in memory
+ * @data: (array length=length) (element-type guint8): desktop bookmarks
+ *    loaded in memory
  * @length: the length of @data in bytes
  * @error: return location for a #GError, or %NULL
  *
@@ -1686,7 +1686,8 @@ g_bookmark_file_load_from_data (GBookmarkFile  *bookmark,
 /**
  * g_bookmark_file_load_from_file:
  * @bookmark: an empty #GBookmarkFile struct
- * @filename: the path of a filename to load, in the GLib file name encoding
+ * @filename: (type filename): the path of a filename to load, in the
+ *     GLib file name encoding
  * @error: return location for a #GError, or %NULL
  *
  * Loads a desktop bookmark file into an empty #GBookmarkFile structure.
@@ -1794,9 +1795,9 @@ find_file_in_data_dirs (const gchar   *file,
 /**
  * g_bookmark_file_load_from_data_dirs:
  * @bookmark: a #GBookmarkFile
- * @file: a relative path to a filename to open and parse
- * @full_path: (allow-none): return location for a string containing the full path
- *   of the file, or %NULL
+ * @file: (type filename): a relative path to a filename to open and parse
+ * @full_path: (out) (optional) (type filename): return location for a string
+ *    containing the full path of the file, or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * This function looks for a desktop bookmark file named @file in the
@@ -1876,13 +1877,13 @@ g_bookmark_file_load_from_data_dirs (GBookmarkFile  *bookmark,
 /**
  * g_bookmark_file_to_data:
  * @bookmark: a #GBookmarkFile
- * @length: (allow-none) (out): return location for the length of the returned string, or %NULL
+ * @length: (out) (optional): return location for the length of the returned string, or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * This function outputs @bookmark as a string.
  *
- * Returns: a newly allocated string holding
- *   the contents of the #GBookmarkFile
+ * Returns: (array length=length) (element-type guint8):
+ *   a newly allocated string holding the contents of the #GBookmarkFile
  *
  * Since: 2.12
  */
@@ -1910,7 +1911,7 @@ g_bookmark_file_to_data (GBookmarkFile  *bookmark,
 /**
  * g_bookmark_file_to_file:
  * @bookmark: a #GBookmarkFile
- * @filename: path of the output file
+ * @filename: (type filename): path of the output file
  * @error: return location for a #GError, or %NULL
  *
  * This function outputs @bookmark into a file.  The write process is
@@ -2072,7 +2073,7 @@ g_bookmark_file_has_item (GBookmarkFile *bookmark,
 /**
  * g_bookmark_file_get_uris:
  * @bookmark: a #GBookmarkFile
- * @length: (allow-none) (out): return location for the number of returned URIs, or %NULL
+ * @length: (out) (optional): return location for the number of returned URIs, or %NULL
  *
  * Returns all URIs of the bookmarks in the bookmark file @bookmark.
  * The array of returned URIs will be %NULL-terminated, so @length may
@@ -2116,7 +2117,7 @@ g_bookmark_file_get_uris (GBookmarkFile *bookmark,
 /**
  * g_bookmark_file_set_title:
  * @bookmark: a #GBookmarkFile
- * @uri: (allow-none): a valid URI or %NULL
+ * @uri: (nullable): a valid URI or %NULL
  * @title: a UTF-8 encoded string
  *
  * Sets @title as the title of the bookmark for @uri inside the
@@ -2161,7 +2162,7 @@ g_bookmark_file_set_title (GBookmarkFile *bookmark,
 /**
  * g_bookmark_file_get_title:
  * @bookmark: a #GBookmarkFile
- * @uri: (allow-none): a valid URI or %NULL
+ * @uri: (nullable): a valid URI or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * Returns the title of the bookmark for @uri.
@@ -2204,7 +2205,7 @@ g_bookmark_file_get_title (GBookmarkFile  *bookmark,
 /**
  * g_bookmark_file_set_description:
  * @bookmark: a #GBookmarkFile
- * @uri: (allow-none): a valid URI or %NULL
+ * @uri: (nullable): a valid URI or %NULL
  * @description: a string
  *
  * Sets @description as the description of the bookmark for @uri.
@@ -2857,7 +2858,8 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
  * g_bookmark_file_set_groups:
  * @bookmark: a #GBookmarkFile
  * @uri: an item's URI
- * @groups: (allow-none): an array of group names, or %NULL to remove all groups
+ * @groups: (nullable) (array length=length) (element-type utf8): an array of
+ *    group names, or %NULL to remove all groups
  * @length: number of group name values in @groups
  *
  * Sets a list of group names for the item with URI @uri.  Each previously
@@ -2895,7 +2897,7 @@ g_bookmark_file_set_groups (GBookmarkFile  *bookmark,
 
   if (groups)
     {
-      for (i = 0; groups[i] != NULL && i < length; i++)
+      for (i = 0; i < length && groups[i] != NULL; i++)
         item->metadata->groups = g_list_append (item->metadata->groups,
                             g_strdup (groups[i]));
     }
@@ -2907,7 +2909,7 @@ g_bookmark_file_set_groups (GBookmarkFile  *bookmark,
  * g_bookmark_file_get_groups:
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
- * @length: (allow-none) (out): return location for the length of the returned string, or %NULL
+ * @length: (out) (optional): return location for the length of the returned string, or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * Retrieves the list of group names of the bookmark for @uri.
@@ -2979,9 +2981,9 @@ g_bookmark_file_get_groups (GBookmarkFile  *bookmark,
  * g_bookmark_file_add_application:
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
- * @name: (allow-none): the name of the application registering the bookmark
+ * @name: (nullable): the name of the application registering the bookmark
  *   or %NULL
- * @exec: (allow-none): command line to be used to launch the bookmark or %NULL
+ * @exec: (nullable): command line to be used to launch the bookmark or %NULL
  *
  * Adds the application with @name and @exec to the list of
  * applications that have registered a bookmark for @uri into
@@ -3337,9 +3339,9 @@ expand_exec_line (const gchar *exec_fmt,
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
  * @name: an application's name
- * @exec: (allow-none) (out): return location for the command line of the application, or %NULL
- * @count: (allow-none) (out): return location for the registration count, or %NULL
- * @stamp: (allow-none) (out): return location for the last registration time, or %NULL
+ * @exec: (out) (optional): return location for the command line of the application, or %NULL
+ * @count: (out) (optional): return location for the registration count, or %NULL
+ * @stamp: (out) (optional): return location for the last registration time, or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * Gets the registration informations of @app_name for the bookmark for
@@ -3437,7 +3439,7 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
  * g_bookmark_file_get_applications:
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
- * @length: (allow-none) (out): return location of the length of the returned list, or %NULL
+ * @length: (out) (optional): return location of the length of the returned list, or %NULL
  * @error: return location for a #GError, or %NULL
  *
  * Retrieves the names of the applications that have registered the
@@ -3529,7 +3531,7 @@ g_bookmark_file_get_size (GBookmarkFile *bookmark)
  * g_bookmark_file_move_item:
  * @bookmark: a #GBookmarkFile
  * @old_uri: a valid URI
- * @new_uri: (allow-none): a valid URI, or %NULL
+ * @new_uri: (nullable): a valid URI, or %NULL
  * @error: return location for a #GError or %NULL
  *
  * Changes the URI of a bookmark item from @old_uri to @new_uri.  Any
@@ -3595,7 +3597,7 @@ g_bookmark_file_move_item (GBookmarkFile  *bookmark,
  * g_bookmark_file_set_icon:
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
- * @href: (allow-none): the URI of the icon for the bookmark, or %NULL
+ * @href: (nullable): the URI of the icon for the bookmark, or %NULL
  * @mime_type: the MIME type of the icon for the bookmark
  *
  * Sets the icon for the bookmark for @uri. If @href is %NULL, unsets
@@ -3644,8 +3646,8 @@ g_bookmark_file_set_icon (GBookmarkFile *bookmark,
  * g_bookmark_file_get_icon:
  * @bookmark: a #GBookmarkFile
  * @uri: a valid URI
- * @href: (allow-none) (out): return location for the icon's location or %NULL
- * @mime_type: (allow-none) (out): return location for the icon's MIME type or %NULL
+ * @href: (out) (optional): return location for the icon's location or %NULL
+ * @mime_type: (out) (optional): return location for the icon's MIME type or %NULL
  * @error: return location for a #GError or %NULL
  *
  * Gets the icon of the bookmark for @uri.
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.h
similarity index 96%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.h
index 1871167ed2..c158d577fc 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbookmarkfile.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbookmarkfile.h
@@ -3,18 +3,17 @@
  * Copyright (C) 2005-2006 Emmanuele Bassi
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #ifndef __G_BOOKMARK_FILE_H__
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbsearcharray.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbsearcharray.h
similarity index 100%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbsearcharray.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbsearcharray.h
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.c
similarity index 85%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.c
index 1520d76096..9678a2b6ce 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.c
@@ -1,11 +1,11 @@
 /*
- * Copyright © 2009, 2010 Codethink Limited
- * Copyright © 2011 Collabora Ltd.
+ * Copyright  2009, 2010 Codethink Limited
+ * Copyright  2011 Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the licence, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -64,6 +64,7 @@
  * Since: 2.32
  **/
 
+/* Keep in sync with glib/tests/bytes.c */
 struct _GBytes
 {
   gconstpointer data;  /* may be NULL iff (size == 0) */
@@ -75,7 +76,7 @@ struct _GBytes
 
 /**
  * g_bytes_new:
- * @data: (transfer none) (array length=size) (element-type guint8) (allow-none):
+ * @data: (transfer none) (array length=size) (element-type guint8) (nullable):
  *        the data to be used for the bytes
  * @size: the size of @data
  *
@@ -98,8 +99,8 @@ g_bytes_new (gconstpointer data,
 
 /**
  * g_bytes_new_take:
- * @data: (transfer full) (array length=size) (element-type guint8) (allow-none):
-          the data to be used for the bytes
+ * @data: (transfer full) (array length=size) (element-type guint8) (nullable):
+ *        the data to be used for the bytes
  * @size: the size of @data
  *
  * Creates a new #GBytes from @data.
@@ -129,8 +130,8 @@ g_bytes_new_take (gpointer data,
 
 /**
  * g_bytes_new_static: (skip)
- * @data: (transfer full) (array length=size) (element-type guint8) (allow-none):
-          the data to be used for the bytes
+ * @data: (transfer full) (array length=size) (element-type guint8) (nullable):
+ *        the data to be used for the bytes
  * @size: the size of @data
  *
  * Creates a new #GBytes from static data.
@@ -150,8 +151,9 @@ g_bytes_new_static (gconstpointer data,
 }
 
 /**
- * g_bytes_new_with_free_func:
- * @data: (array length=size) (allow-none): the data to be used for the bytes
+ * g_bytes_new_with_free_func: (skip)
+ * @data: (array length=size) (element-type guint8) (nullable):
+ *        the data to be used for the bytes
  * @size: the size of @data
  * @free_func: the function to call to release the data
  * @user_data: data to pass to @free_func
@@ -202,6 +204,12 @@ g_bytes_new_with_free_func (gconstpointer  data,
  * A reference to @bytes will be held by the newly created #GBytes until
  * the byte data is no longer needed.
  *
+ * Since 2.56, if @offset is 0 and @length matches the size of @bytes, then
+ * @bytes will be returned with the reference count incremented by 1. If @bytes
+ * is a slice of another #GBytes, then the resulting #GBytes will reference
+ * the same #GBytes instead of @bytes. This allows consumers to simplify the
+ * usage of #GBytes when asynchronously writing to streams.
+ *
  * Returns: (transfer full): a new #GBytes
  *
  * Since: 2.32
@@ -211,19 +219,38 @@ g_bytes_new_from_bytes (GBytes  *bytes,
                         gsize    offset,
                         gsize    length)
 {
+  gchar *base;
+
   /* Note that length may be 0. */
   g_return_val_if_fail (bytes != NULL, NULL);
   g_return_val_if_fail (offset <= bytes->size, NULL);
   g_return_val_if_fail (offset + length <= bytes->size, NULL);
 
-  return g_bytes_new_with_free_func ((gchar *)bytes->data + offset, length,
+  /* Avoid an extra GBytes if all bytes were requested */
+  if (offset == 0 && length == bytes->size)
+    return g_bytes_ref (bytes);
+
+  base = (gchar *)bytes->data + offset;
+
+  /* Avoid referencing intermediate GBytes. In practice, this should
+   * only loop once.
+   */
+  while (bytes->free_func == (gpointer)g_bytes_unref)
+    bytes = bytes->user_data;
+
+  g_return_val_if_fail (bytes != NULL, NULL);
+  g_return_val_if_fail (base >= (gchar *)bytes->data, NULL);
+  g_return_val_if_fail (base <= (gchar *)bytes->data + bytes->size, NULL);
+  g_return_val_if_fail (base + length <= (gchar *)bytes->data + bytes->size, NULL);
+
+  return g_bytes_new_with_free_func (base, length,
                                      (GDestroyNotify)g_bytes_unref, g_bytes_ref (bytes));
 }
 
 /**
  * g_bytes_get_data:
  * @bytes: a #GBytes
- * @size: (out) (allow-none): location to return size of byte data
+ * @size: (out) (optional): location to return size of byte data
  *
  * Get the byte data in the #GBytes. This data should not be modified.
  *
@@ -233,8 +260,8 @@ g_bytes_new_from_bytes (GBytes  *bytes,
  * may represent an empty string with @data non-%NULL and @size as 0. %NULL will
  * not be returned if @size is non-zero.
  *
- * Returns: (transfer none) (array length=size) (type guint8) (allow-none): a pointer to the
- *          byte data, or %NULL
+ * Returns: (transfer none) (array length=size) (element-type guint8) (nullable):
+ *          a pointer to the byte data, or %NULL
  *
  * Since: 2.32
  */
@@ -290,10 +317,10 @@ g_bytes_ref (GBytes *bytes)
 
 /**
  * g_bytes_unref:
- * @bytes: (allow-none): a #GBytes
+ * @bytes: (nullable): a #GBytes
  *
  * Releases a reference on @bytes.  This may result in the bytes being
- * freed.
+ * freed. If @bytes is %NULL, it will return immediately.
  *
  * Since: 2.32
  */
@@ -406,7 +433,8 @@ try_steal_and_unref (GBytes         *bytes,
 {
   gpointer result;
 
-  if (bytes->free_func != free_func || bytes->data == NULL)
+  if (bytes->free_func != free_func || bytes->data == NULL ||
+      bytes->user_data != bytes->data)
     return NULL;
 
   /* Are we the only reference? */
@@ -425,7 +453,7 @@ try_steal_and_unref (GBytes         *bytes,
 /**
  * g_bytes_unref_to_data:
  * @bytes: (transfer full): a #GBytes
- * @size: location to place the length of the returned data
+ * @size: (out): location to place the length of the returned data
  *
  * Unreferences the bytes, and returns a pointer the same byte data
  * contents.
@@ -435,8 +463,9 @@ try_steal_and_unref (GBytes         *bytes,
  * g_bytes_new_take() or g_byte_array_free_to_bytes(). In all other cases the
  * data is copied.
  *
- * Returns: (transfer full): a pointer to the same byte data, which should
- *          be freed with g_free()
+ * Returns: (transfer full) (array length=size) (element-type guint8)
+ *          (not nullable): a pointer to the same byte data, which should be
+ *          freed with g_free()
  *
  * Since: 2.32
  */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.h
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.h
index 24f1856fb2..d5675456e6 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gbytes.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gbytes.h
@@ -1,11 +1,11 @@
 /*
- * Copyright © 2009, 2010 Codethink Limited
- * Copyright © 2011 Collabora Ltd.
+ * Copyright  2009, 2010 Codethink Limited
+ * Copyright  2011 Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the licence, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.c
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.c
index b1cc465e75..704ea13c85 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.c
@@ -5,7 +5,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -152,7 +152,8 @@ charset_cache_free (gpointer data)
 
 /**
  * g_get_charset:
- * @charset: return location for character set name
+ * @charset: (out) (optional) (transfer none): return location for character set
+ *   name, or %NULL.
  *
  * Obtains the character set for the [current locale][setlocale]; you
  * might use this character set as an argument to g_convert(), to convert
@@ -165,6 +166,10 @@ charset_cache_free (gpointer data)
  * handle file names. It might be different from the character set
  * used by the C library's current locale.
  *
+ * On Linux, the character set is found by consulting nl_langinfo() if
+ * available. If not, the environment variables `LC_ALL`, `LC_CTYPE`, `LANG`
+ * and `CHARSET` are queried in order.
+ *
  * The return value is %TRUE if the locale's encoding is UTF-8, in that
  * case you can perhaps avoid calling g_convert().
  *
@@ -227,17 +232,14 @@ g_get_codeset (void)
 
 #ifndef G_OS_WIN32
 
-static GHashTable *alias_table = NULL;
-
 /* read an alias file for the locales */
 static void
-read_aliases (gchar *file)
+read_aliases (gchar      *file,
+              GHashTable *alias_table)
 {
   FILE *fp;
   char buf[256];
 
-  if (!alias_table)
-    alias_table = g_hash_table_new (g_str_hash, g_str_equal);
   fp = fopen (file,"r");
   if (!fp)
     return;
@@ -288,11 +290,16 @@ static char *
 unalias_lang (char *lang)
 {
 #ifndef G_OS_WIN32
+  static GHashTable *alias_table = NULL;
   char *p;
   int i;
 
-  if (!alias_table)
-    read_aliases ("/usr/share/locale/locale.alias");
+  if (g_once_init_enter (&alias_table))
+    {
+      GHashTable *table = g_hash_table_new (g_str_hash, g_str_equal);
+      read_aliases ("/usr/share/locale/locale.alias", table);
+      g_once_init_leave (&alias_table, table);
+    }
 
   i = 0;
   while ((p = g_hash_table_lookup (alias_table, lang)) && (strcmp (p, lang) != 0))
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.h
similarity index 67%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.h
index e90a5f61b5..fccedc7c31 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharset.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharset.h
@@ -2,19 +2,18 @@
  *
  *  Copyright (C) 2011 Red Hat, Inc.
  *
- * The GLib Library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
  *
- * The GLib Library is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the Gnome Library; see the file COPYING.LIB.  If not,
- * see .
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #ifndef __G_CHARSET_H__
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharsetprivate.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharsetprivate.h
similarity index 92%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharsetprivate.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharsetprivate.h
index 25474d6ec5..a5b1469b78 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gcharsetprivate.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gcharsetprivate.h
@@ -5,7 +5,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.c
similarity index 94%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.c
index 1855b5a3a2..384da5ae36 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.c
@@ -3,17 +3,17 @@
  * Copyright (C) 2007  Emmanuele Bassi  
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, see .
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #include "config.h"
@@ -52,7 +52,7 @@
  * Support for checksums has been added in GLib 2.16
  **/
 
-#define IS_VALID_TYPE(type)     ((type) >= G_CHECKSUM_MD5 && (type) <= G_CHECKSUM_SHA512)
+#define IS_VALID_TYPE(type)     ((type) >= G_CHECKSUM_MD5 && (type) <= G_CHECKSUM_SHA384)
 
 /* The fact that these are lower case characters is part of the ABI */
 static const gchar hex_digits[] = "0123456789abcdef";
@@ -100,14 +100,16 @@ typedef struct
   guchar digest[SHA256_DIGEST_LEN];
 } Sha256sum;
 
-#define SHA512_BLOCK_LEN       128 /* 1024 bits message block */
+/* SHA2 is common thing for SHA-384, SHA-512, SHA-512/224 and SHA-512/256 */
+#define SHA2_BLOCK_LEN         128 /* 1024 bits message block */
+#define SHA384_DIGEST_LEN       48
 #define SHA512_DIGEST_LEN       64
 
 typedef struct
 {
   guint64 H[8];
 
-  guint8 block[SHA512_BLOCK_LEN];
+  guint8 block[SHA2_BLOCK_LEN];
   guint8 block_len;
 
   guint64 data_len[2];
@@ -1084,16 +1086,17 @@ sha256_sum_digest (Sha256sum *sha256,
 }
 
 /*
- * SHA-512 Checksum
+ * SHA-384, SHA-512, SHA-512/224 and SHA-512/256 Checksums
  *
- * Implemented following FIPS-180-2 standard at
- * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf.
- * References in the form [§x.y.z] map to sections in that document.
+ * Implemented following FIPS-180-4 standard at
+ * http://csrc.nist.gov/publications/fips/fips180-4/fips180-4.pdf.
+ * References in the form [x.y.z] map to sections in that document.
  *
- *   Author: Eduardo Lima Mitev 
+ *   Author(s): Eduardo Lima Mitev 
+ *              Igor Gnatenko 
  */
 
-/* SHA-384 and SHA-512 functions [§4.1.3] */
+/* SHA-384, SHA-512, SHA-512/224 and SHA-512/256 functions [4.1.3] */
 #define Ch(x,y,z)  ((x & y) ^ (~x & z))
 #define Maj(x,y,z) ((x & y) ^ (x & z) ^ (y & z))
 #define SHR(n,x)   (x >> n)
@@ -1113,27 +1116,8 @@ sha256_sum_digest (Sha256sum *sha256,
     (b)[(i) + 6] = (guint8) (n >>  8);                   \
     (b)[(i) + 7] = (guint8) (n      ); } G_STMT_END
 
-static void
-sha512_sum_init (Sha512sum *sha512)
-{
-  /* Initial Hash Value [§5.3.4] */
-  sha512->H[0] = 0x6a09e667f3bcc908;
-  sha512->H[1] = 0xbb67ae8584caa73b;
-  sha512->H[2] = 0x3c6ef372fe94f82b;
-  sha512->H[3] = 0xa54ff53a5f1d36f1;
-  sha512->H[4] = 0x510e527fade682d1;
-  sha512->H[5] = 0x9b05688c2b3e6c1f;
-  sha512->H[6] = 0x1f83d9abfb41bd6b;
-  sha512->H[7] = 0x5be0cd19137e2179;
-
-  sha512->block_len = 0;
-
-  sha512->data_len[0] = 0;
-  sha512->data_len[1] = 0;
-}
-
-/* SHA-384 and SHA-512 constants [§4.2.3] */
-static const guint64 SHA512_K[80] = {
+/* SHA-384 and SHA-512 constants [4.2.3] */
+static const guint64 SHA2_K[80] = {
   0x428a2f98d728ae22, 0x7137449123ef65cd,
   0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
   0x3956c25bf348b538, 0x59f111f1b605d019,
@@ -1176,9 +1160,48 @@ static const guint64 SHA512_K[80] = {
   0x5fcb6fab3ad6faec, 0x6c44198c4a475817
 };
 
+
+static void
+sha384_sum_init (Sha512sum *sha512)
+{
+  /* Initial Hash Value [5.3.4] */
+  sha512->H[0] = 0xcbbb9d5dc1059ed8;
+  sha512->H[1] = 0x629a292a367cd507;
+  sha512->H[2] = 0x9159015a3070dd17;
+  sha512->H[3] = 0x152fecd8f70e5939;
+  sha512->H[4] = 0x67332667ffc00b31;
+  sha512->H[5] = 0x8eb44a8768581511;
+  sha512->H[6] = 0xdb0c2e0d64f98fa7;
+  sha512->H[7] = 0x47b5481dbefa4fa4;
+
+  sha512->block_len = 0;
+
+  sha512->data_len[0] = 0;
+  sha512->data_len[1] = 0;
+}
+
+static void
+sha512_sum_init (Sha512sum *sha512)
+{
+  /* Initial Hash Value [5.3.5] */
+  sha512->H[0] = 0x6a09e667f3bcc908;
+  sha512->H[1] = 0xbb67ae8584caa73b;
+  sha512->H[2] = 0x3c6ef372fe94f82b;
+  sha512->H[3] = 0xa54ff53a5f1d36f1;
+  sha512->H[4] = 0x510e527fade682d1;
+  sha512->H[5] = 0x9b05688c2b3e6c1f;
+  sha512->H[6] = 0x1f83d9abfb41bd6b;
+  sha512->H[7] = 0x5be0cd19137e2179;
+
+  sha512->block_len = 0;
+
+  sha512->data_len[0] = 0;
+  sha512->data_len[1] = 0;
+}
+
 static void
 sha512_transform (guint64      H[8],
-                  guint8 const data[SHA512_BLOCK_LEN])
+                  guint8 const data[SHA2_BLOCK_LEN])
 {
   gint i;
   gint t;
@@ -1186,7 +1209,7 @@ sha512_transform (guint64      H[8],
   guint64 M[16];
   guint64 W[80];
 
-  /* SHA-512 hash computation [§6.3.2] */
+  /* SHA-512 hash computation [6.4.2] */
 
   /* prepare the message schedule */
   for (i = 0; i < 16; i++)
@@ -1224,7 +1247,7 @@ sha512_transform (guint64      H[8],
     {
       guint64 T1, T2;
 
-      T1 = h + SIGMA1 (e) + Ch (e, f, g) + SHA512_K[t] + W[t];
+      T1 = h + SIGMA1 (e) + Ch (e, f, g) + SHA2_K[t] + W[t];
       T2 = SIGMA0 (a) + Maj (a, b, c);
       h = g;
       g = f;
@@ -1262,7 +1285,7 @@ sha512_sum_update (Sha512sum    *sha512,
     sha512->data_len[1]++;
 
   /* try to fill current block */
-  block_left = SHA512_BLOCK_LEN - sha512->block_len;
+  block_left = SHA2_BLOCK_LEN - sha512->block_len;
   if (block_left > 0)
     {
       gsize fill_len;
@@ -1273,7 +1296,7 @@ sha512_sum_update (Sha512sum    *sha512,
       length -= fill_len;
       offset += fill_len;
 
-      if (sha512->block_len == SHA512_BLOCK_LEN)
+      if (sha512->block_len == SHA2_BLOCK_LEN)
         {
           sha512_transform (sha512->H, sha512->block);
           sha512->block_len = 0;
@@ -1281,14 +1304,14 @@ sha512_sum_update (Sha512sum    *sha512,
     }
 
   /* process complete blocks */
-  while (length >= SHA512_BLOCK_LEN)
+  while (length >= SHA2_BLOCK_LEN)
     {
-      memcpy (sha512->block, buffer + offset, SHA512_BLOCK_LEN);
+      memcpy (sha512->block, buffer + offset, SHA2_BLOCK_LEN);
 
       sha512_transform (sha512->H, sha512->block);
 
-      length -= SHA512_BLOCK_LEN;
-      offset += SHA512_BLOCK_LEN;
+      length -= SHA2_BLOCK_LEN;
+      offset += SHA2_BLOCK_LEN;
     }
 
   /* keep remaining data for next block */
@@ -1304,11 +1327,11 @@ sha512_sum_close (Sha512sum *sha512)
 {
   guint l;
   gint zeros;
-  guint8 pad[SHA512_BLOCK_LEN * 2] = { 0, };
+  guint8 pad[SHA2_BLOCK_LEN * 2] = { 0, };
   guint pad_len = 0;
   gint i;
 
-  /* apply padding [§5.1.2] */
+  /* apply padding [5.1.2] */
   l = sha512->block_len * 8;
   zeros = 896 - (l + 1);
 
@@ -1338,12 +1361,25 @@ sha512_sum_close (Sha512sum *sha512)
     PUT_UINT64 (sha512->H[i], sha512->digest, i * 8);
 }
 
+static gchar *
+sha384_sum_to_string (Sha512sum *sha512)
+{
+  return digest_to_string (sha512->digest, SHA384_DIGEST_LEN);
+}
+
 static gchar *
 sha512_sum_to_string (Sha512sum *sha512)
 {
   return digest_to_string (sha512->digest, SHA512_DIGEST_LEN);
 }
 
+static void
+sha384_sum_digest (Sha512sum *sha512,
+                   guint8    *digest)
+{
+  memcpy (digest, sha512->digest, SHA384_DIGEST_LEN);
+}
+
 static void
 sha512_sum_digest (Sha512sum *sha512,
                    guint8    *digest)
@@ -1393,6 +1429,9 @@ g_checksum_type_get_length (GChecksumType checksum_type)
     case G_CHECKSUM_SHA256:
       len = SHA256_DIGEST_LEN;
       break;
+    case G_CHECKSUM_SHA384:
+      len = SHA384_DIGEST_LEN;
+      break;
     case G_CHECKSUM_SHA512:
       len = SHA512_DIGEST_LEN;
       break;
@@ -1470,6 +1509,9 @@ g_checksum_reset (GChecksum *checksum)
     case G_CHECKSUM_SHA256:
       sha256_sum_init (&(checksum->sum.sha256));
       break;
+    case G_CHECKSUM_SHA384:
+      sha384_sum_init (&(checksum->sum.sha512));
+      break;
     case G_CHECKSUM_SHA512:
       sha512_sum_init (&(checksum->sum.sha512));
       break;
@@ -1573,6 +1615,7 @@ g_checksum_update (GChecksum    *checksum,
     case G_CHECKSUM_SHA256:
       sha256_sum_update (&(checksum->sum.sha256), data, length);
       break;
+    case G_CHECKSUM_SHA384:
     case G_CHECKSUM_SHA512:
       sha512_sum_update (&(checksum->sum.sha512), data, length);
       break;
@@ -1623,6 +1666,10 @@ g_checksum_get_string (GChecksum *checksum)
       sha256_sum_close (&(checksum->sum.sha256));
       str = sha256_sum_to_string (&(checksum->sum.sha256));
       break;
+    case G_CHECKSUM_SHA384:
+      sha512_sum_close (&(checksum->sum.sha512));
+      str = sha384_sum_to_string (&(checksum->sum.sha512));
+      break;
     case G_CHECKSUM_SHA512:
       sha512_sum_close (&(checksum->sum.sha512));
       str = sha512_sum_to_string (&(checksum->sum.sha512));
@@ -1694,6 +1741,14 @@ g_checksum_get_digest (GChecksum  *checksum,
         }
       sha256_sum_digest (&(checksum->sum.sha256), buffer);
       break;
+    case G_CHECKSUM_SHA384:
+      if (checksum_open)
+        {
+          sha512_sum_close (&(checksum->sum.sha512));
+          str = sha384_sum_to_string (&(checksum->sum.sha512));
+        }
+      sha384_sum_digest (&(checksum->sum.sha512), buffer);
+      break;
     case G_CHECKSUM_SHA512:
       if (checksum_open)
         {
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.h
similarity index 86%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.h
index af32757349..599f439c1e 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gchecksum.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gchecksum.h
@@ -3,17 +3,17 @@
  * Copyright (C) 2007  Emmanuele Bassi  
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, see .
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  */
 
 #ifndef __G_CHECKSUM_H__
@@ -33,7 +33,8 @@ G_BEGIN_DECLS
  * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
  * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
  * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
- * @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm
+ * @G_CHECKSUM_SHA384: Use the SHA-384 hashing algorithm (Since: 2.51)
+ * @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm (Since: 2.36)
  *
  * The hashing algorithm to be used by #GChecksum when performing the
  * digest of some data.
@@ -47,7 +48,8 @@ typedef enum {
   G_CHECKSUM_MD5,
   G_CHECKSUM_SHA1,
   G_CHECKSUM_SHA256,
-  G_CHECKSUM_SHA512
+  G_CHECKSUM_SHA512,
+  G_CHECKSUM_SHA384
 } GChecksumType;
 
 /**
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconstructor.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconstructor.h
similarity index 59%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconstructor.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconstructor.h
index c5cff19a82..dccb0314c5 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconstructor.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconstructor.h
@@ -16,6 +16,8 @@
 
 */
 
+#ifndef __GTK_DOC_IGNORE__
+
 #if  __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
 
 #define G_HAS_CONSTRUCTORS 1
@@ -28,17 +30,43 @@
 
 #define G_HAS_CONSTRUCTORS 1
 
-#define G_DEFINE_CONSTRUCTOR(_func) \
+/* We do some weird things to avoid the constructors being optimized
+ * away on VS2015 if WholeProgramOptimization is enabled. First we
+ * make a reference to the array from the wrapper to make sure its
+ * references. Then we use a pragma to make sure the wrapper function
+ * symbol is always included at the link stage. Also, the symbols
+ * need to be extern (but not dllexport), even though they are not
+ * really used from another object file.
+ */
+
+/* We need to account for differences between the mangling of symbols
+ * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed
+ * with an underscore but symbols on x64 are not.
+ */
+#ifdef _WIN64
+#define G_MSVC_SYMBOL_PREFIX ""
+#else
+#define G_MSVC_SYMBOL_PREFIX "_"
+#endif
+
+#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX)
+#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX)
+
+#define G_MSVC_CTOR(_func,_sym_prefix) \
   static void _func(void); \
-  static int _func ## _wrapper(void) { _func(); return 0; } \
+  extern int (* _array ## _func)(void);              \
+  int _func ## _wrapper(void) { _func(); g_slist_find (NULL,  _array ## _func); return 0; } \
+  __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \
   __pragma(section(".CRT$XCU",read)) \
-  __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper;
+  __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper;
 
-#define G_DEFINE_DESTRUCTOR(_func) \
+#define G_MSVC_DTOR(_func,_sym_prefix) \
   static void _func(void); \
-  static int _func ## _constructor(void) { atexit (_func); return 0; } \
+  extern int (* _array ## _func)(void);              \
+  int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL,  _array ## _func); return 0; } \
+   __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \
   __pragma(section(".CRT$XCU",read)) \
-  __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
+  __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor;
 
 #elif defined (_MSC_VER)
 
@@ -89,3 +117,4 @@
 
 #endif
 
+#endif /* __GTK_DOC_IGNORE__ */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.c
similarity index 76%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.c
index c5fdb42d2c..5ed04500bb 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.c
@@ -7,7 +7,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -76,44 +76,44 @@
  * in it ("/"). However, displaying file names may require conversion:
  * from the character set in which they were created, to the character
  * set in which the application operates. Consider the Spanish file name
- * "Presentación.sxi". If the application which created it uses
+ * "Presentacion.sxi". If the application which created it uses
  * ISO-8859-1 for its encoding,
  * |[
- * Character:  P  r  e  s  e  n  t  a  c  i  ó  n  .  s  x  i
+ * Character:  P  r  e  s  e  n  t  a  c  i  o  n  .  s  x  i
  * Hex code:   50 72 65 73 65 6e 74 61 63 69 f3 6e 2e 73 78 69
  * ]|
  * However, if the application use UTF-8, the actual file name on
  * disk would look like this:
  * |[
- * Character:  P  r  e  s  e  n  t  a  c  i  ó     n  .  s  x  i
+ * Character:  P  r  e  s  e  n  t  a  c  i  o  n  .  s  x  i
  * Hex code:   50 72 65 73 65 6e 74 61 63 69 c3 b3 6e 2e 73 78 69
  * ]|
  * Glib uses UTF-8 for its strings, and GUI toolkits like GTK+ that use
- * Glib do the same thing. If you get a file name from the file system,
+ * GLib do the same thing. If you get a file name from the file system,
  * for example, from readdir() or from g_dir_read_name(), and you wish
  * to display the file name to the user, you  will need to convert it
  * into UTF-8. The opposite case is when the user types the name of a
- * file he wishes to save: the toolkit will give you that string in
+ * file they wish to save: the toolkit will give you that string in
  * UTF-8 encoding, and you will need to convert it to the character
  * set used for file names before you can create the file with open()
  * or fopen().
  *
- * By default, Glib assumes that file names on disk are in UTF-8
+ * By default, GLib assumes that file names on disk are in UTF-8
  * encoding. This is a valid assumption for file systems which
  * were created relatively recently: most applications use UTF-8
  * encoding for their strings, and that is also what they use for
  * the file names they create. However, older file systems may
  * still contain file names created in "older" encodings, such as
  * ISO-8859-1. In this case, for compatibility reasons, you may want
- * to instruct Glib to use that particular encoding for file names
+ * to instruct GLib to use that particular encoding for file names
  * rather than UTF-8. You can do this by specifying the encoding for
  * file names in the [`G_FILENAME_ENCODING`][G_FILENAME_ENCODING]
  * environment variable. For example, if your installation uses
- * ISO-8859-1 for file names, you can put this in your `~/.profile`
+ * ISO-8859-1 for file names, you can put this in your `~/.profile`:
  * |[
  * export G_FILENAME_ENCODING=ISO-8859-1
  * ]|
- * Glib provides the functions g_filename_to_utf8() and
+ * GLib provides the functions g_filename_to_utf8() and
  * g_filename_from_utf8() to perform the necessary conversions.
  * These functions convert file names from the encoding specified
  * in `G_FILENAME_ENCODING` to UTF-8 and vice-versa. This
@@ -128,7 +128,6 @@
  * ## Checklist for Application Writers
  *
  * This section is a practical summary of the detailed
-
  * things to do to make sure your applications process file
  * name encodings correctly.
  *
@@ -202,7 +201,7 @@ try_to_aliases (const char **to_aliases,
 }
 
 /**
- * g_iconv_open:
+ * g_iconv_open: (skip)
  * @to_codeset: destination codeset
  * @from_codeset: source codeset
  *
@@ -251,7 +250,7 @@ g_iconv_open (const gchar  *to_codeset,
 }
 
 /**
- * g_iconv:
+ * g_iconv: (skip)
  * @converter: conversion descriptor from g_iconv_open()
  * @inbuf: bytes to convert
  * @inbytes_left: inout parameter, bytes remaining to convert in @inbuf
@@ -265,6 +264,13 @@ g_iconv_open (const gchar  *to_codeset,
  * GLib provides g_convert() and g_locale_to_utf8() which are likely
  * more convenient than the raw iconv wrappers.
  *
+ * Note that the behaviour of iconv() for characters which are valid in the
+ * input character set, but which have no representation in the output character
+ * set, is implementation defined. This function may return success (with a
+ * positive number of non-reversible conversions as replacement characters were
+ * used), or it may return -1 and set an error such as %EILSEQ, in such a
+ * situation.
+ *
  * Returns: count of non-reversible conversions, or -1 on error
  **/
 gsize
@@ -280,7 +286,7 @@ g_iconv (GIConv   converter,
 }
 
 /**
- * g_iconv_close:
+ * g_iconv_close: (skip)
  * @converter: a conversion descriptor from g_iconv_open()
  *
  * Same as the standard UNIX routine iconv_close(), but
@@ -340,30 +346,31 @@ close_converter (GIConv cd)
 }
 
 /**
- * g_convert_with_iconv:
- * @str:           the string to convert
+ * g_convert_with_iconv: (skip)
+ * @str:           (array length=len) (element-type guint8):
+ *                 the string to convert.
  * @len:           the length of the string in bytes, or -1 if the string is
  *                 nul-terminated (Note that some encodings may allow nul
  *                 bytes to occur inside strings. In that case, using -1
  *                 for the @len parameter is unsafe)
  * @converter:     conversion descriptor from g_iconv_open()
- * @bytes_read:    location to store the number of bytes in the
- *                 input string that were successfully converted, or %NULL.
+ * @bytes_read:    (out) (optional): location to store the number of bytes in
+ *                 the input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
  *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in
+ *                 the output buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
  * Converts a string from one character set to another.
  *
  * Note that you should use g_iconv() for streaming conversions.
- * Despite the fact that @byes_read can return information about partial
+ * Despite the fact that @bytes_read can return information about partial
  * characters, the g_convert_... functions are not generally suitable
  * for streaming. If the underlying converter maintains internal state,
  * then this won't be preserved across successive calls to g_convert(),
@@ -372,8 +379,17 @@ close_converter (GIConv cd)
  * character until it knows that the next character is not a mark that
  * could combine with the base character.)
  *
- * Returns: If the conversion was successful, a newly allocated
- *               nul-terminated string, which must be freed with
+ * Characters which are valid in the input character set, but which have no
+ * representation in the output character set will result in a
+ * %G_CONVERT_ERROR_ILLEGAL_SEQUENCE error. This is in contrast to the iconv()
+ * specification, which leaves this behaviour implementation defined. Note that
+ * this is the same error code as is returned for an invalid byte sequence in
+ * the input character set. To get defined behaviour for conversion of
+ * unrepresentable characters, use g_convert_with_fallback().
+ *
+ * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
+ *               If the conversion was successful, a newly allocated buffer
+ *               containing the converted string, which must be freed with
  *               g_free(). Otherwise %NULL and @error will be set.
  **/
 gchar*
@@ -450,6 +466,13 @@ g_convert_with_iconv (const gchar *str,
           break;
         }
     }
+      else if (err > 0)
+        {
+          /* @err gives the number of replacement characters used. */
+          g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
+                               _("Unrepresentable character in conversion input"));
+          have_error = TRUE;
+        }
       else
     {
       if (!reset)
@@ -494,30 +517,31 @@ g_convert_with_iconv (const gchar *str,
 
 /**
  * g_convert:
- * @str:           the string to convert
+ * @str:           (array length=len) (element-type guint8):
+ *                 the string to convert.
  * @len:           the length of the string in bytes, or -1 if the string is
  *                 nul-terminated (Note that some encodings may allow nul
  *                 bytes to occur inside strings. In that case, using -1
  *                 for the @len parameter is unsafe)
  * @to_codeset:    name of character set into which to convert @str
  * @from_codeset:  character set of @str.
- * @bytes_read: (out):   location to store the number of bytes in the
- *                 input string that were successfully converted, or %NULL.
+ * @bytes_read:    (out) (optional): location to store the number of bytes in
+ *                 the input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
  *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: (out): the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in
+ *                 the output buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
  * Converts a string from one character set to another.
  *
  * Note that you should use g_iconv() for streaming conversions.
- * Despite the fact that @byes_read can return information about partial
+ * Despite the fact that @bytes_read can return information about partial
  * characters, the g_convert_... functions are not generally suitable
  * for streaming. If the underlying converter maintains internal state,
  * then this won't be preserved across successive calls to g_convert(),
@@ -529,9 +553,10 @@ g_convert_with_iconv (const gchar *str,
  * Using extensions such as "//TRANSLIT" may not work (or may not work
  * well) on many platforms.  Consider using g_str_to_ascii() instead.
  *
- * Returns: If the conversion was successful, a newly allocated
- *               nul-terminated string, which must be freed with
- *               g_free(). Otherwise %NULL and @error will be set.
+ * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
+ *          If the conversion was successful, a newly allocated buffer
+ *          containing the converted string, which must be freed with g_free().
+ *          Otherwise %NULL and @error will be set.
  **/
 gchar*
 g_convert (const gchar *str,
@@ -573,25 +598,26 @@ g_convert (const gchar *str,
 
 /**
  * g_convert_with_fallback:
- * @str:          the string to convert
+ * @str:          (array length=len) (element-type guint8):
+ *                the string to convert.
  * @len:          the length of the string in bytes, or -1 if the string is
  *                 nul-terminated (Note that some encodings may allow nul
  *                 bytes to occur inside strings. In that case, using -1
  *                 for the @len parameter is unsafe)
  * @to_codeset:   name of character set into which to convert @str
  * @from_codeset: character set of @str.
- * @fallback:     UTF-8 string to use in place of character not
+ * @fallback:     UTF-8 string to use in place of characters not
  *                present in the target encoding. (The string must be
  *                representable in the target encoding).
-                  If %NULL, characters not in the target encoding will
-                  be represented as Unicode escapes \uxxxx or \Uxxxxyyyy.
- * @bytes_read:   location to store the number of bytes in the
- *                input string that were successfully converted, or %NULL.
+ *                If %NULL, characters not in the target encoding will
+ *                be represented as Unicode escapes \uxxxx or \Uxxxxyyyy.
+ * @bytes_read:   (out) (optional): location to store the number of bytes in
+ *                the input string that were successfully converted, or %NULL.
  *                Even if the conversion was successful, this may be
  *                less than @len if there were partial characters
  *                at the end of the input.
- * @bytes_written: the number of bytes stored in the output buffer (not
- *                including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in
+ *                 the output buffer (not including the terminating nul).
  * @error:        location to store the error occurring, or %NULL to ignore
  *                errors. Any of the errors in #GConvertError may occur.
  *
@@ -604,7 +630,7 @@ g_convert (const gchar *str,
  * in which case GLib will simply return that approximate conversion.
  *
  * Note that you should use g_iconv() for streaming conversions.
- * Despite the fact that @byes_read can return information about partial
+ * Despite the fact that @bytes_read can return information about partial
  * characters, the g_convert_... functions are not generally suitable
  * for streaming. If the underlying converter maintains internal state,
  * then this won't be preserved across successive calls to g_convert(),
@@ -613,9 +639,10 @@ g_convert (const gchar *str,
  * character until it knows that the next character is not a mark that
  * could combine with the base character.)
  *
- * Returns: If the conversion was successful, a newly allocated
- *               nul-terminated string, which must be freed with
- *               g_free(). Otherwise %NULL and @error will be set.
+ * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
+ *          If the conversion was successful, a newly allocated buffer
+ *          containing the converted string, which must be freed with g_free().
+ *          Otherwise %NULL and @error will be set.
  **/
 gchar*
 g_convert_with_fallback (const gchar *str,
@@ -824,20 +851,31 @@ g_convert_with_fallback (const gchar *str,
  *
  */
 
+/*
+ * Validate @string as UTF-8. @len can be negative if @string is
+ * nul-terminated, or a non-negative value in bytes. If @string ends in an
+ * incomplete sequence, or contains any illegal sequences or nul codepoints,
+ * %NULL will be returned and the error set to
+ * %G_CONVERT_ERROR_ILLEGAL_SEQUENCE.
+ * On success, @bytes_read and @bytes_written, if provided, will be set to
+ * the number of bytes in @string up to @len or the terminating nul byte.
+ * On error, @bytes_read will be set to the byte offset after the last valid
+ * and non-nul UTF-8 sequence in @string, and @bytes_written will be set to 0.
+ */
 static gchar *
 strdup_len (const gchar *string,
         gssize       len,
-        gsize       *bytes_written,
         gsize       *bytes_read,
-        GError      **error)
-
+        gsize       *bytes_written,
+        GError     **error)
 {
   gsize real_len;
+  const gchar *end_valid;
 
-  if (!g_utf8_validate (string, len, NULL))
+  if (!g_utf8_validate (string, len, &end_valid))
     {
       if (bytes_read)
-    *bytes_read = 0;
+    *bytes_read = end_valid - string;
       if (bytes_written)
     *bytes_written = 0;
 
@@ -846,15 +884,7 @@ strdup_len (const gchar *string,
       return NULL;
     }
 
-  if (len < 0)
-    real_len = strlen (string);
-  else
-    {
-      real_len = 0;
-
-      while (real_len < len && string[real_len])
-    real_len++;
-    }
+  real_len = end_valid - string;
 
   if (bytes_read)
     *bytes_read = real_len;
@@ -864,24 +894,98 @@ strdup_len (const gchar *string,
   return g_strndup (string, real_len);
 }
 
+typedef enum
+{
+  CONVERT_CHECK_NO_NULS_IN_INPUT  = 1 << 0,
+  CONVERT_CHECK_NO_NULS_IN_OUTPUT = 1 << 1
+} ConvertCheckFlags;
+
+/*
+ * Convert from @string in the encoding identified by @from_codeset,
+ * returning a string in the encoding identifed by @to_codeset.
+ * @len can be negative if @string is nul-terminated, or a non-negative
+ * value in bytes. Flags defined in #ConvertCheckFlags can be set in @flags
+ * to check the input, the output, or both, for embedded nul bytes.
+ * On success, @bytes_read, if provided, will be set to the number of bytes
+ * in @string up to @len or the terminating nul byte, and @bytes_written, if
+ * provided, will be set to the number of output bytes written into the
+ * returned buffer, excluding the terminating nul sequence.
+ * On error, @bytes_read will be set to the byte offset after the last valid
+ * sequence in @string, and @bytes_written will be set to 0.
+ */
+static gchar *
+convert_checked (const gchar      *string,
+                 gssize            len,
+                 const gchar      *to_codeset,
+                 const gchar      *from_codeset,
+                 ConvertCheckFlags flags,
+                 gsize            *bytes_read,
+                 gsize            *bytes_written,
+                 GError          **error)
+{
+  gchar *out;
+  gsize outbytes;
+
+  if ((flags & CONVERT_CHECK_NO_NULS_IN_INPUT) && len > 0)
+    {
+      const gchar *early_nul = memchr (string, '\0', len);
+      if (early_nul != NULL)
+        {
+          if (bytes_read)
+            *bytes_read = early_nul - string;
+          if (bytes_written)
+            *bytes_written = 0;
+
+          g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
+                               _("Embedded NUL byte in conversion input"));
+          return NULL;
+        }
+    }
+
+  out = g_convert (string, len, to_codeset, from_codeset,
+                   bytes_read, &outbytes, error);
+  if (out == NULL)
+    {
+      if (bytes_written)
+        *bytes_written = 0;
+      return NULL;
+    }
+
+  if ((flags & CONVERT_CHECK_NO_NULS_IN_OUTPUT)
+      && memchr (out, '\0', outbytes) != NULL)
+    {
+      g_free (out);
+      if (bytes_written)
+        *bytes_written = 0;
+      g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_EMBEDDED_NUL,
+                           _("Embedded NUL byte in conversion output"));
+      return NULL;
+    }
+
+  if (bytes_written)
+    *bytes_written = outbytes;
+  return out;
+}
+
 /**
  * g_locale_to_utf8:
- * @opsysstring:   a string in the encoding of the current locale. On Windows
+ * @opsysstring:   (array length=len) (element-type guint8): a string in the
+ *                 encoding of the current locale. On Windows
  *                 this means the system codepage.
  * @len:           the length of the string, or -1 if the string is
  *                 nul-terminated (Note that some encodings may allow nul
  *                 bytes to occur inside strings. In that case, using -1
  *                 for the @len parameter is unsafe)
- * @bytes_read:    location to store the number of bytes in the
+ * @bytes_read: (out) (optional): location to store the number of bytes in the
  *                 input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
- *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 %G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in the output
+ *                 buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
@@ -889,8 +993,15 @@ strdup_len (const gchar *string,
  * the C runtime (usually the same as that used by the operating
  * system) in the [current locale][setlocale] into a UTF-8 string.
  *
- * Returns: A newly-allocated buffer containing the converted string,
- *               or %NULL on an error, and error will be set.
+ * If the source encoding is not UTF-8 and the conversion output contains a
+ * nul character, the error %G_CONVERT_ERROR_EMBEDDED_NUL is set and the
+ * function returns %NULL.
+ * If the source encoding is UTF-8, an embedded nul character is treated with
+ * the %G_CONVERT_ERROR_ILLEGAL_SEQUENCE error for backward compatibility with
+ * earlier versions of this library. Use g_convert() to produce output that
+ * may contain embedded nul characters.
+ *
+ * Returns: (type utf8): The converted string, or %NULL on an error.
  **/
 gchar *
 g_locale_to_utf8 (const gchar  *opsysstring,
@@ -904,27 +1015,26 @@ g_locale_to_utf8 (const gchar  *opsysstring,
   if (g_get_charset (&charset))
     return strdup_len (opsysstring, len, bytes_read, bytes_written, error);
   else
-    return g_convert (opsysstring, len,
-              "UTF-8", charset, bytes_read, bytes_written, error);
+    return convert_checked (opsysstring, len, "UTF-8", charset,
+                            CONVERT_CHECK_NO_NULS_IN_OUTPUT,
+                            bytes_read, bytes_written, error);
 }
 
 /**
  * g_locale_from_utf8:
  * @utf8string:    a UTF-8 encoded string
  * @len:           the length of the string, or -1 if the string is
- *                 nul-terminated (Note that some encodings may allow nul
- *                 bytes to occur inside strings. In that case, using -1
- *                 for the @len parameter is unsafe)
- * @bytes_read:    location to store the number of bytes in the
+ *                 nul-terminated.
+ * @bytes_read: (out) (optional): location to store the number of bytes in the
  *                 input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
- *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 %G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in the output
+ *                 buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
@@ -933,8 +1043,14 @@ g_locale_to_utf8 (const gchar  *opsysstring,
  * system) in the [current locale][setlocale]. On Windows this means
  * the system codepage.
  *
- * Returns: A newly-allocated buffer containing the converted string,
- *               or %NULL on an error, and error will be set.
+ * The input string shall not contain nul characters even if the @len
+ * argument is positive. A nul character found inside the string will result
+ * in error %G_CONVERT_ERROR_ILLEGAL_SEQUENCE. Use g_convert() to convert
+ * input that may contain embedded nul characters.
+ *
+ * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
+ *          A newly-allocated buffer containing the converted string,
+ *          or %NULL on an error, and error will be set.
  **/
 gchar *
 g_locale_from_utf8 (const gchar *utf8string,
@@ -948,8 +1064,9 @@ g_locale_from_utf8 (const gchar *utf8string,
   if (g_get_charset (&charset))
     return strdup_len (utf8string, len, bytes_read, bytes_written, error);
   else
-    return g_convert (utf8string, len,
-              charset, "UTF-8", bytes_read, bytes_written, error);
+    return convert_checked (utf8string, len, charset, "UTF-8",
+                            CONVERT_CHECK_NO_NULS_IN_INPUT,
+                            bytes_read, bytes_written, error);
 }
 
 #ifndef G_PLATFORM_WIN32
@@ -973,7 +1090,8 @@ filename_charset_cache_free (gpointer data)
 
 /**
  * g_get_filename_charsets:
- * @charsets: return location for the %NULL-terminated list of encoding names
+ * @filename_charsets: (out) (transfer none) (array zero-terminated=1):
+ *    return location for the %NULL-terminated list of encoding names
  *
  * Determines the preferred character sets used for filenames.
  * The first character set from the @charsets is the filename encoding, the
@@ -986,7 +1104,7 @@ filename_charset_cache_free (gpointer data)
  * and said environment variables have no effect.
  *
  * `G_FILENAME_ENCODING` may be set to a comma-separated list of
- * character set names. The special token "@locale" is taken
+ * character set names. The special token "\@locale" is taken
  * to  mean the character set for the [current locale][setlocale].
  * If `G_FILENAME_ENCODING` is not set, but `G_BROKEN_FILENAMES` is,
  * the character set of the current locale is taken as the filename
@@ -1114,21 +1232,21 @@ get_filename_charset (const gchar **filename_charset)
 
 /**
  * g_filename_to_utf8:
- * @opsysstring:   a string in the encoding for filenames
+ * @opsysstring: (type filename): a string in the encoding for filenames
  * @len:           the length of the string, or -1 if the string is
  *                 nul-terminated (Note that some encodings may allow nul
  *                 bytes to occur inside strings. In that case, using -1
  *                 for the @len parameter is unsafe)
- * @bytes_read:    location to store the number of bytes in the
+ * @bytes_read: (out) (optional): location to store the number of bytes in the
  *                 input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
- *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 %G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in the output
+ *                 buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
@@ -1137,7 +1255,15 @@ get_filename_charset (const gchar **filename_charset)
  * for filenames; on other platforms, this function indirectly depends on
  * the [current locale][setlocale].
  *
- * Returns: The converted string, or %NULL on an error.
+ * The input string shall not contain nul characters even if the @len
+ * argument is positive. A nul character found inside the string will result
+ * in error %G_CONVERT_ERROR_ILLEGAL_SEQUENCE.
+ * If the source encoding is not UTF-8 and the conversion output contains a
+ * nul character, the error %G_CONVERT_ERROR_EMBEDDED_NUL is set and the
+ * function returns %NULL. Use g_convert() to produce output that
+ * may contain embedded nul characters.
+ *
+ * Returns: (type utf8): The converted string, or %NULL on an error.
  **/
 gchar*
 g_filename_to_utf8 (const gchar *opsysstring,
@@ -1153,54 +1279,27 @@ g_filename_to_utf8 (const gchar *opsysstring,
   if (get_filename_charset (&charset))
     return strdup_len (opsysstring, len, bytes_read, bytes_written, error);
   else
-    return g_convert (opsysstring, len,
-              "UTF-8", charset, bytes_read, bytes_written, error);
+    return convert_checked (opsysstring, len, "UTF-8", charset,
+                            CONVERT_CHECK_NO_NULS_IN_INPUT |
+                            CONVERT_CHECK_NO_NULS_IN_OUTPUT,
+                            bytes_read, bytes_written, error);
 }
 
-#if defined (G_OS_WIN32) && !defined (_WIN64)
-
-#undef g_filename_to_utf8
-
-/* Binary compatibility version. Not for newly compiled code. Also not needed for
- * 64-bit versions as there should be no old deployed binaries that would use
- * the old versions.
- */
-
-gchar*
-g_filename_to_utf8 (const gchar *opsysstring,
-            gssize       len,
-            gsize       *bytes_read,
-            gsize       *bytes_written,
-            GError     **error)
-{
-  const gchar *charset;
-
-  g_return_val_if_fail (opsysstring != NULL, NULL);
-
-  if (g_get_charset (&charset))
-    return strdup_len (opsysstring, len, bytes_read, bytes_written, error);
-  else
-    return g_convert (opsysstring, len,
-              "UTF-8", charset, bytes_read, bytes_written, error);
-}
-
-#endif
-
 /**
  * g_filename_from_utf8:
- * @utf8string:    a UTF-8 encoded string.
+ * @utf8string:    (type utf8): a UTF-8 encoded string.
  * @len:           the length of the string, or -1 if the string is
  *                 nul-terminated.
- * @bytes_read:    (out) (allow-none): location to store the number of bytes in
+ * @bytes_read:    (out) (optional): location to store the number of bytes in
  *                 the input string that were successfully converted, or %NULL.
  *                 Even if the conversion was successful, this may be
  *                 less than @len if there were partial characters
  *                 at the end of the input. If the error
- *                 #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
- *                 stored will the byte offset after the last valid
+ *                 %G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+ *                 stored will be the byte offset after the last valid
  *                 input sequence.
- * @bytes_written: (out): the number of bytes stored in the output buffer (not
- *                 including the terminating nul).
+ * @bytes_written: (out) (optional): the number of bytes stored in
+ *                 the output buffer (not including the terminating nul).
  * @error:         location to store the error occurring, or %NULL to ignore
  *                 errors. Any of the errors in #GConvertError may occur.
  *
@@ -1209,7 +1308,13 @@ g_filename_to_utf8 (const gchar *opsysstring,
  * on other platforms, this function indirectly depends on the
  * [current locale][setlocale].
  *
- * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
+ * The input string shall not contain nul characters even if the @len
+ * argument is positive. A nul character found inside the string will result
+ * in error %G_CONVERT_ERROR_ILLEGAL_SEQUENCE. If the filename encoding is
+ * not UTF-8 and the conversion output contains a nul character, the error
+ * %G_CONVERT_ERROR_EMBEDDED_NUL is set and the function returns %NULL.
+ *
+ * Returns: (type filename):
  *               The converted string, or %NULL on an error.
  **/
 gchar*
@@ -1224,34 +1329,12 @@ g_filename_from_utf8 (const gchar *utf8string,
   if (get_filename_charset (&charset))
     return strdup_len (utf8string, len, bytes_read, bytes_written, error);
   else
-    return g_convert (utf8string, len,
-              charset, "UTF-8", bytes_read, bytes_written, error);
-}
-
-#if defined (G_OS_WIN32) && !defined (_WIN64)
-
-#undef g_filename_from_utf8
-
-/* Binary compatibility version. Not for newly compiled code. */
-
-gchar*
-g_filename_from_utf8 (const gchar *utf8string,
-              gssize       len,
-              gsize       *bytes_read,
-              gsize       *bytes_written,
-              GError     **error)
-{
-  const gchar *charset;
-
-  if (g_get_charset (&charset))
-    return strdup_len (utf8string, len, bytes_read, bytes_written, error);
-  else
-    return g_convert (utf8string, len,
-              charset, "UTF-8", bytes_read, bytes_written, error);
+    return convert_checked (utf8string, len, charset, "UTF-8",
+                            CONVERT_CHECK_NO_NULS_IN_INPUT |
+                            CONVERT_CHECK_NO_NULS_IN_OUTPUT,
+                            bytes_read, bytes_written, error);
 }
 
-#endif
-
 /* Test of haystack has the needle prefix, comparing case
  * insensitive. haystack may be UTF-8, but needle must
  * contain only ascii. */
@@ -1530,7 +1613,7 @@ hostname_validate (const char *hostname)
 /**
  * g_filename_from_uri:
  * @uri: a uri describing a filename (escaped, encoded in ASCII).
- * @hostname: (out) (allow-none): Location to store hostname for the URI, or %NULL.
+ * @hostname: (out) (optional) (nullable): Location to store hostname for the URI.
  *            If there is no hostname in the URI, %NULL will be
  *            stored in this location.
  * @error: location to store the error occurring, or %NULL to ignore
@@ -1563,7 +1646,7 @@ g_filename_from_uri (const gchar *uri,
   if (!has_case_prefix (uri, "file:/"))
     {
       g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
-           _("The URI '%s' is not an absolute URI using the \"file\" scheme"),
+           _("The URI '%s' is not an absolute URI using the 'file' scheme"),
            uri);
       return NULL;
     }
@@ -1663,35 +1746,12 @@ g_filename_from_uri (const gchar *uri,
   return result;
 }
 
-#if defined (G_OS_WIN32) && !defined (_WIN64)
-
-#undef g_filename_from_uri
-
-gchar *
-g_filename_from_uri (const gchar *uri,
-             gchar      **hostname,
-             GError     **error)
-{
-  gchar *utf8_filename;
-  gchar *retval = NULL;
-
-  utf8_filename = g_filename_from_uri_utf8 (uri, hostname, error);
-  if (utf8_filename)
-    {
-      retval = g_locale_from_utf8 (utf8_filename, -1, NULL, NULL, error);
-      g_free (utf8_filename);
-    }
-  return retval;
-}
-
-#endif
-
 /**
  * g_filename_to_uri:
- * @filename: an absolute filename specified in the GLib file name encoding,
- *            which is the on-disk file name bytes on Unix, and UTF-8 on
- *            Windows
- * @hostname: (allow-none): A UTF-8 encoded hostname, or %NULL for none.
+ * @filename: (type filename): an absolute filename specified in the GLib file
+ *     name encoding, which is the on-disk file name bytes on Unix, and UTF-8
+ *     on Windows
+ * @hostname: (nullable): A UTF-8 encoded hostname, or %NULL for none.
  * @error: location to store the error occurring, or %NULL to ignore
  *         errors. Any of the errors in #GConvertError may occur.
  *
@@ -1738,31 +1798,6 @@ g_filename_to_uri (const gchar *filename,
   return escaped_uri;
 }
 
-#if defined (G_OS_WIN32) && !defined (_WIN64)
-
-#undef g_filename_to_uri
-
-gchar *
-g_filename_to_uri (const gchar *filename,
-           const gchar *hostname,
-           GError     **error)
-{
-  gchar *utf8_filename;
-  gchar *retval = NULL;
-
-  utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, error);
-
-  if (utf8_filename)
-    {
-      retval = g_filename_to_uri_utf8 (utf8_filename, hostname, error);
-      g_free (utf8_filename);
-    }
-
-  return retval;
-}
-
-#endif
-
 /**
  * g_uri_list_extract_uris:
  * @uri_list: an URI list
@@ -1838,7 +1873,8 @@ g_uri_list_extract_uris (const gchar *uri_list)
 
 /**
  * g_filename_display_basename:
- * @filename: an absolute pathname in the GLib file name encoding
+ * @filename: (type filename): an absolute pathname in the
+ *     GLib file name encoding
  *
  * Returns the display basename for the particular filename, guaranteed
  * to be valid UTF-8. The display name might not be identical to the filename,
@@ -1878,7 +1914,8 @@ g_filename_display_basename (const gchar *filename)
 
 /**
  * g_filename_display_name:
- * @filename: a pathname hopefully in the GLib file name encoding
+ * @filename: (type filename): a pathname hopefully in the
+ *     GLib file name encoding
  *
  * Converts a filename into a valid UTF-8 string. The conversion is
  * not necessarily reversible, so you should keep the original around
@@ -1936,7 +1973,66 @@ g_filename_display_name (const gchar *filename)
    * by a question mark
    */
   if (!display_name)
-    display_name = _g_utf8_make_valid (filename);
+    display_name = g_utf8_make_valid (filename, -1);
 
   return display_name;
 }
+
+#ifdef G_OS_WIN32
+
+/* Binary compatibility versions. Not for newly compiled code. */
+
+_GLIB_EXTERN gchar *g_filename_to_utf8_utf8   (const gchar  *opsysstring,
+                                               gssize        len,
+                                               gsize        *bytes_read,
+                                               gsize        *bytes_written,
+                                               GError      **error) G_GNUC_MALLOC;
+_GLIB_EXTERN gchar *g_filename_from_utf8_utf8 (const gchar  *utf8string,
+                                               gssize        len,
+                                               gsize        *bytes_read,
+                                               gsize        *bytes_written,
+                                               GError      **error) G_GNUC_MALLOC;
+_GLIB_EXTERN gchar *g_filename_from_uri_utf8  (const gchar  *uri,
+                                               gchar       **hostname,
+                                               GError      **error) G_GNUC_MALLOC;
+_GLIB_EXTERN gchar *g_filename_to_uri_utf8    (const gchar  *filename,
+                                               const gchar  *hostname,
+                                               GError      **error) G_GNUC_MALLOC;
+
+gchar *
+g_filename_to_utf8_utf8 (const gchar *opsysstring,
+                         gssize       len,
+                         gsize       *bytes_read,
+                         gsize       *bytes_written,
+                         GError     **error)
+{
+  return g_filename_to_utf8 (opsysstring, len, bytes_read, bytes_written, error);
+}
+
+gchar *
+g_filename_from_utf8_utf8 (const gchar *utf8string,
+                           gssize       len,
+                           gsize       *bytes_read,
+                           gsize       *bytes_written,
+                           GError     **error)
+{
+  return g_filename_from_utf8 (utf8string, len, bytes_read, bytes_written, error);
+}
+
+gchar *
+g_filename_from_uri_utf8 (const gchar *uri,
+                          gchar      **hostname,
+                          GError     **error)
+{
+  return g_filename_from_uri (uri, hostname, error);
+}
+
+gchar *
+g_filename_to_uri_utf8 (const gchar *filename,
+                        const gchar *hostname,
+                        GError     **error)
+{
+  return g_filename_to_uri (filename, hostname, error);
+}
+
+#endif
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.h
similarity index 80%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.h
index 4aa0b7c74e..68c08ae44f 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gconvert.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gconvert.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -37,12 +37,17 @@ G_BEGIN_DECLS
  * GConvertError:
  * @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character
  *     sets is not supported.
- * @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input.
+ * @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input;
+ *    or the character sequence could not be represented in the target
+ *    character set.
  * @G_CONVERT_ERROR_FAILED: Conversion failed for some reason.
  * @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input.
  * @G_CONVERT_ERROR_BAD_URI: URI is invalid.
  * @G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: Pathname is not an absolute path.
  * @G_CONVERT_ERROR_NO_MEMORY: No memory available. Since: 2.40
+ * @G_CONVERT_ERROR_EMBEDDED_NUL: An embedded NUL character is present in
+ *     conversion output where a NUL-terminated string is expected.
+ *     Since: 2.56
  *
  * Error codes returned by character set conversion routines.
  */
@@ -54,7 +59,8 @@ typedef enum
   G_CONVERT_ERROR_PARTIAL_INPUT,
   G_CONVERT_ERROR_BAD_URI,
   G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
-  G_CONVERT_ERROR_NO_MEMORY
+  G_CONVERT_ERROR_NO_MEMORY,
+  G_CONVERT_ERROR_EMBEDDED_NUL
 } GConvertError;
 
 /**
@@ -69,7 +75,7 @@ GLIB_AVAILABLE_IN_ALL
 GQuark g_convert_error_quark (void);
 
 /**
- * GIConv:
+ * GIConv: (skip)
  *
  * The GIConv struct wraps an iconv() conversion descriptor. It contains
  * private data and should only be accessed using the following functions.
@@ -166,34 +172,6 @@ gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC;
 GLIB_AVAILABLE_IN_ALL
 gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC;
 
-#ifdef G_OS_WIN32
-#define g_filename_to_utf8   g_filename_to_utf8_utf8
-#define g_filename_from_utf8 g_filename_from_utf8_utf8
-#define g_filename_from_uri  g_filename_from_uri_utf8
-#define g_filename_to_uri    g_filename_to_uri_utf8
-
-GLIB_AVAILABLE_IN_ALL
-gchar* g_filename_to_utf8_utf8   (const gchar  *opsysstring,
-                                  gssize        len,
-                                  gsize        *bytes_read,
-                                  gsize        *bytes_written,
-                                  GError      **error) G_GNUC_MALLOC;
-GLIB_AVAILABLE_IN_ALL
-gchar* g_filename_from_utf8_utf8 (const gchar  *utf8string,
-                                  gssize        len,
-                                  gsize        *bytes_read,
-                                  gsize        *bytes_written,
-                                  GError      **error) G_GNUC_MALLOC;
-GLIB_AVAILABLE_IN_ALL
-gchar *g_filename_from_uri_utf8  (const gchar  *uri,
-                                  gchar       **hostname,
-                                  GError      **error) G_GNUC_MALLOC;
-GLIB_AVAILABLE_IN_ALL
-gchar *g_filename_to_uri_utf8    (const gchar  *filename,
-                                  const gchar  *hostname,
-                                  GError      **error) G_GNUC_MALLOC;
-#endif
-
 G_END_DECLS
 
 #endif /* __G_CONVERT_H__ */
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.c
similarity index 90%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.c
index b86a24c214..b9cfec0fa1 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.c
@@ -7,7 +7,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -243,7 +243,7 @@ g_datalist_clear_i (GData **datalist)
 }
 
 /**
- * g_datalist_clear:
+ * g_datalist_clear: (skip)
  * @datalist: a datalist.
  *
  * Frees all the data elements of the datalist.
@@ -318,7 +318,7 @@ g_dataset_destroy_internal (GDataset *dataset)
 
 /**
  * g_dataset_destroy:
- * @dataset_location: the location identifying the dataset.
+ * @dataset_location: (not nullable): the location identifying the dataset.
  *
  * Destroys the dataset, freeing all memory allocated, and calling any
  * destroy functions set for data elements.
@@ -486,8 +486,8 @@ g_data_set_internal (GData    **datalist,
 }
 
 /**
- * g_dataset_id_set_data_full:
- * @dataset_location: the location identifying the dataset.
+ * g_dataset_id_set_data_full: (skip)
+ * @dataset_location: (not nullable): the location identifying the dataset.
  * @key_id: the #GQuark id to identify the data element.
  * @data: the data element.
  * @destroy_func: the function to call when the data element is
@@ -501,7 +501,7 @@ g_data_set_internal (GData    **datalist,
  * is called.
  **/
 /**
- * g_dataset_set_data_full:
+ * g_dataset_set_data_full: (skip)
  * @l: the location identifying the dataset.
  * @k: the string to identify the data element.
  * @d: the data element.
@@ -591,12 +591,12 @@ g_dataset_id_set_data_full (gconstpointer  dataset_location,
 }
 
 /**
- * g_datalist_id_set_data_full:
+ * g_datalist_id_set_data_full: (skip)
  * @datalist: a datalist.
  * @key_id: the #GQuark to identify the data element.
- * @data: (allow-none): the data element or %NULL to remove any previous element
+ * @data: (nullable): the data element or %NULL to remove any previous element
  *        corresponding to @key_id.
- * @destroy_func: the function to call when the data element is
+ * @destroy_func: (nullable): the function to call when the data element is
  *                removed. This function will be called with the data
  *                element and can be used to free any memory allocated
  *                for it. If @data is %NULL, then @destroy_func must
@@ -608,13 +608,13 @@ g_dataset_id_set_data_full (gconstpointer  dataset_location,
  * function is called.
  **/
 /**
- * g_datalist_set_data_full:
+ * g_datalist_set_data_full: (skip)
  * @dl: a datalist.
  * @k: the string to identify the data element.
- * @d: (allow-none): the data element, or %NULL to remove any previous element
+ * @d: (nullable): the data element, or %NULL to remove any previous element
  *     corresponding to @k.
- * @f: the function to call when the data element is removed. This
- *     function will be called with the data element and can be used to
+ * @f: (nullable): the function to call when the data element is removed.
+ *     This function will be called with the data element and can be used to
  *     free any memory allocated for it. If @d is %NULL, then @f must
  *     also be %NULL.
  *
@@ -625,7 +625,7 @@ g_dataset_id_set_data_full (gconstpointer  dataset_location,
  * g_datalist_id_set_data:
  * @dl: a datalist.
  * @q: the #GQuark to identify the data element.
- * @d: (allow-none): the data element, or %NULL to remove any previous element
+ * @d: (nullable): the data element, or %NULL to remove any previous element
  *     corresponding to @q.
  *
  * Sets the data corresponding to the given #GQuark id. Any previous
@@ -636,7 +636,7 @@ g_dataset_id_set_data_full (gconstpointer  dataset_location,
  * g_datalist_set_data:
  * @dl: a datalist.
  * @k: the string to identify the data element.
- * @d: (allow-none): the data element, or %NULL to remove any previous element
+ * @d: (nullable): the data element, or %NULL to remove any previous element
  *     corresponding to @k.
  *
  * Sets the data element corresponding to the given string identifier.
@@ -677,17 +677,18 @@ g_datalist_id_set_data_full (GData    **datalist,
 }
 
 /**
- * g_dataset_id_remove_no_notify:
- * @dataset_location: the location identifying the dataset.
+ * g_dataset_id_remove_no_notify: (skip)
+ * @dataset_location: (not nullable): the location identifying the dataset.
  * @key_id: the #GQuark ID identifying the data element.
  *
  * Removes an element, without calling its destroy notification
  * function.
  *
- * Returns: the data previously stored at @key_id, or %NULL if none.
+ * Returns: (nullable): the data previously stored at @key_id,
+ *          or %NULL if none.
  **/
 /**
- * g_dataset_remove_no_notify:
+ * g_dataset_remove_no_notify: (skip)
  * @l: the location identifying the dataset.
  * @k: the string identifying the data element.
  *
@@ -716,17 +717,18 @@ g_dataset_id_remove_no_notify (gconstpointer  dataset_location,
 }
 
 /**
- * g_datalist_id_remove_no_notify:
+ * g_datalist_id_remove_no_notify: (skip)
  * @datalist: a datalist.
  * @key_id: the #GQuark identifying a data element.
  *
  * Removes an element, without calling its destroy notification
  * function.
  *
- * Returns: the data previously stored at @key_id, or %NULL if none.
+ * Returns: (nullable): the data previously stored at @key_id,
+ *          or %NULL if none.
  **/
 /**
- * g_datalist_remove_no_notify:
+ * g_datalist_remove_no_notify: (skip)
  * @dl: a datalist.
  * @k: the string identifying the data element.
  *
@@ -748,13 +750,13 @@ g_datalist_id_remove_no_notify (GData   **datalist,
 
 /**
  * g_dataset_id_get_data:
- * @dataset_location: the location identifying the dataset.
+ * @dataset_location: (not nullable): the location identifying the dataset.
  * @key_id: the #GQuark id to identify the data element.
  *
  * Gets the data element corresponding to a #GQuark.
  *
- * Returns: the data element corresponding to the #GQuark, or %NULL if
- *          it is not found.
+ * Returns: (transfer none) (nullable): the data element corresponding to
+ *          the #GQuark, or %NULL if it is not found.
  **/
 /**
  * g_dataset_get_data:
@@ -763,8 +765,8 @@ g_datalist_id_remove_no_notify (GData   **datalist,
  *
  * Gets the data element corresponding to a string.
  *
- * Returns: the data element corresponding to the string, or %NULL if
- *          it is not found.
+ * Returns: (transfer none) (nullable): the data element corresponding to
+ *          the string, or %NULL if it is not found.
  **/
 gpointer
 g_dataset_id_get_data (gconstpointer  dataset_location,
@@ -795,7 +797,8 @@ g_dataset_id_get_data (gconstpointer  dataset_location,
  *
  * Retrieves the data element corresponding to @key_id.
  *
- * Returns: the data element, or %NULL if it is not found.
+ * Returns: (transfer none) (nullable): the data element, or %NULL if
+ *          it is not found.
  */
 gpointer
 g_datalist_id_get_data (GData  **datalist,
@@ -807,7 +810,8 @@ g_datalist_id_get_data (GData  **datalist,
 /**
  * GDuplicateFunc:
  * @data: the data to duplicate
- * @user_data: user data that was specified in g_datalist_id_dup_data()
+ * @user_data: (closure): user data that was specified in
+ *             g_datalist_id_dup_data()
  *
  * The type of functions that are used to 'duplicate' an object.
  * What this means depends on the context, it could just be
@@ -818,11 +822,11 @@ g_datalist_id_get_data (GData  **datalist,
  */
 
 /**
- * g_datalist_id_dup_data:
+ * g_datalist_id_dup_data: (skip)
  * @datalist: location of a datalist
  * @key_id: the #GQuark identifying a data element
- * @dup_func: (allow-none): function to duplicate the old value
- * @user_data: (allow-none): passed as user_data to @dup_func
+ * @dup_func: (nullable) (scope call): function to duplicate the old value
+ * @user_data: (closure): passed as user_data to @dup_func
  *
  * This is a variant of g_datalist_id_get_data() which
  * returns a 'duplicate' of the value. @dup_func defines the
@@ -838,7 +842,7 @@ g_datalist_id_get_data (GData  **datalist,
  * This function can be useful to avoid races when multiple
  * threads are using the same datalist and the same key.
  *
- * Returns: the result of calling @dup_func on the value
+ * Returns: (nullable): the result of calling @dup_func on the value
  *     associated with @key_id in @datalist, or %NULL if not set.
  *     If @dup_func is %NULL, the value is returned unmodified.
  *
@@ -855,17 +859,14 @@ g_datalist_id_dup_data (GData          **datalist,
   GData *d;
   GDataElt *data, *data_end;
 
-  g_return_val_if_fail (datalist != NULL, NULL);
-  g_return_val_if_fail (key_id != 0, NULL);
-
   g_datalist_lock (datalist);
 
   d = G_DATALIST_GET_POINTER (datalist);
   if (d)
     {
       data = d->data;
-      data_end = data + d->len - 1;
-      while (data <= data_end)
+      data_end = data + d->len;
+      do
         {
           if (data->key == key_id)
             {
@@ -874,6 +875,7 @@ g_datalist_id_dup_data (GData          **datalist,
             }
           data++;
         }
+      while (data < data_end);
     }
 
   if (dup_func)
@@ -887,13 +889,13 @@ g_datalist_id_dup_data (GData          **datalist,
 }
 
 /**
- * g_datalist_id_replace_data:
+ * g_datalist_id_replace_data: (skip)
  * @datalist: location of a datalist
  * @key_id: the #GQuark identifying a data element
- * @oldval: (allow-none): the old value to compare against
- * @newval: (allow-none): the new value to replace it with
- * @destroy: (allow-none): destroy notify for the new value
- * @old_destroy: (allow-none): destroy notify for the existing value
+ * @oldval: (nullable): the old value to compare against
+ * @newval: (nullable): the new value to replace it with
+ * @destroy: (nullable): destroy notify for the new value
+ * @old_destroy: (out) (optional): destroy notify for the existing value
  *
  * Compares the member that is associated with @key_id in
  * @datalist to @oldval, and if they are the same, replace
@@ -904,7 +906,7 @@ g_datalist_id_dup_data (GData          **datalist,
  *
  * If the previous value was replaced then ownership of the
  * old value (@oldval) is passed to the caller, including
- * the registred destroy notify for it (passed out in @old_destroy).
+ * the registered destroy notify for it (passed out in @old_destroy).
  * Its up to the caller to free this as he wishes, which may
  * or may not include using @old_destroy as sometimes replacement
  * should not destroy the object in the normal way.
@@ -1014,7 +1016,8 @@ g_datalist_id_replace_data (GData          **datalist,
  * Gets a data element, using its string identifier. This is slower than
  * g_datalist_id_get_data() because it compares strings.
  *
- * Returns: the data element, or %NULL if it is not found.
+ * Returns: (transfer none) (nullable): the data element, or %NULL if it
+ *          is not found.
  **/
 gpointer
 g_datalist_get_data (GData   **datalist,
@@ -1035,7 +1038,7 @@ g_datalist_get_data (GData   **datalist,
       data_end = data + d->len;
       while (data < data_end)
     {
-      if (strcmp (g_quark_to_string (data->key), key) == 0)
+      if (g_strcmp0 (g_quark_to_string (data->key), key) == 0)
         {
           res = data->data;
           break;
@@ -1053,7 +1056,7 @@ g_datalist_get_data (GData   **datalist,
  * GDataForeachFunc:
  * @key_id: the #GQuark id to identifying the data element.
  * @data: the data element.
- * @user_data: user data passed to g_dataset_foreach().
+ * @user_data: (closure): user data passed to g_dataset_foreach().
  *
  * Specifies the type of function passed to g_dataset_foreach(). It is
  * called with each #GQuark id and associated data element, together
@@ -1062,14 +1065,18 @@ g_datalist_get_data (GData   **datalist,
 
 /**
  * g_dataset_foreach:
- * @dataset_location: the location identifying the dataset.
- * @func: the function to call for each data element.
- * @user_data: user data to pass to the function.
+ * @dataset_location: (not nullable): the location identifying the dataset.
+ * @func: (scope call): the function to call for each data element.
+ * @user_data: (closure): user data to pass to the function.
  *
  * Calls the given function for each data element which is associated
  * with the given location. Note that this function is NOT thread-safe.
- * So unless @datalist can be protected from any modifications during
- * invocation of this function, it should not be called.
+ * So unless @dataset_location can be protected from any modifications
+ * during invocation of this function, it should not be called.
+ *
+ * @func can make changes to the dataset, but the iteration will not
+ * reflect changes made during the g_dataset_foreach() call, other
+ * than skipping over elements that are removed.
  **/
 void
 g_dataset_foreach (gconstpointer    dataset_location,
@@ -1098,8 +1105,8 @@ g_dataset_foreach (gconstpointer    dataset_location,
 /**
  * g_datalist_foreach:
  * @datalist: a datalist.
- * @func: the function to call for each data element.
- * @user_data: user data to pass to the function.
+ * @func: (scope call): the function to call for each data element.
+ * @user_data: (closure): user data to pass to the function.
  *
  * Calls the given function for each data element of the datalist. The
  * function is called with each data element's #GQuark id and data,
@@ -1107,6 +1114,10 @@ g_dataset_foreach (gconstpointer    dataset_location,
  * function is NOT thread-safe. So unless @datalist can be protected
  * from any modifications during invocation of this function, it should
  * not be called.
+ *
+ * @func can make changes to @datalist, but the iteration will not
+ * reflect changes made during the g_datalist_foreach() call, other
+ * than skipping over elements that are removed.
  **/
 void
 g_datalist_foreach (GData      **datalist,
@@ -1151,7 +1162,7 @@ g_datalist_foreach (GData      **datalist,
 }
 
 /**
- * g_datalist_init:
+ * g_datalist_init: (skip)
  * @datalist: a pointer to a pointer to a datalist.
  *
  * Resets the datalist to %NULL. It does not free any memory or call
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.h
similarity index 98%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.h
index 1839926f14..37d7e46924 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdataset.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdataset.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatasetprivate.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatasetprivate.h
similarity index 95%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatasetprivate.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatasetprivate.h
index 8d9c36f778..41858fe15f 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatasetprivate.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatasetprivate.h
@@ -5,7 +5,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.c
similarity index 92%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.c
index 5445a292cb..9671068cb9 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.c
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -342,6 +342,35 @@ g_date_free (GDate *date)
   g_free (date);
 }
 
+/**
+ * g_date_copy:
+ * @date: a #GDate to copy
+ *
+ * Copies a GDate to a newly-allocated GDate. If the input was invalid
+ * (as determined by g_date_valid()), the invalid state will be copied
+ * as is into the new object.
+ *
+ * Returns: (transfer full): a newly-allocated #GDate initialized from @date
+ *
+ * Since: 2.56
+ */
+GDate *
+g_date_copy (const GDate *date)
+{
+  GDate *res;
+  g_return_val_if_fail (date != NULL, NULL);
+
+  if (g_date_valid (date))
+    res = g_date_new_julian (g_date_get_julian (date));
+  else
+    {
+      res = g_date_new ();
+      *res = *date;
+    }
+
+  return res;
+}
+
 /**
  * g_date_valid:
  * @date: a #GDate to check
@@ -698,8 +727,8 @@ g_date_get_day_of_year (const GDate *d)
  * @date: a #GDate
  *
  * Returns the week of the year, where weeks are understood to start on
- * Monday. If the date is before the first Monday of the year, return
- * 0. The date must be valid.
+ * Monday. If the date is before the first Monday of the year, return 0.
+ * The date must be valid.
  *
  * Returns: week of the year
  */
@@ -731,9 +760,9 @@ g_date_get_monday_week_of_year (const GDate *d)
  * g_date_get_sunday_week_of_year:
  * @date: a #GDate
  *
- * Returns the week of the year during which this date falls, if weeks
- * are understood to being on Sunday. The date must be valid. Can return
- * 0 if the day is before the first Sunday of the year.
+ * Returns the week of the year during which this date falls, if
+ * weeks are understood to begin on Sunday. The date must be valid.
+ * Can return 0 if the day is before the first Sunday of the year.
  *
  * Returns: week number
  */
@@ -850,11 +879,21 @@ static gchar *long_month_names[13] =
   NULL,
 };
 
+static gchar *long_month_names_alternative[13] =
+{
+  NULL,
+};
+
 static gchar *short_month_names[13] =
 {
   NULL,
 };
 
+static gchar *short_month_names_alternative[13] =
+{
+  NULL,
+};
+
 /* This tells us if we need to update the parse info */
 static gchar *current_locale = NULL;
 
@@ -945,6 +984,15 @@ g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
       i = 1;
       while (i < 13)
         {
+          /* Here month names may be in a genitive case if the language
+           * grammatical rules require it.
+           * Examples of how January may look in some languages:
+           * Catalan: "de gener", Croatian: "gener", Polish: "gener",
+           * Upper Sorbian: "januara".
+           * Note that most of the languages can't or don't use the the
+           * genitive case here so they use nominative everywhere.
+           * For example, English always uses "January".
+           */
           if (long_month_names[i] != NULL)
             {
               const gchar *found = strstr (normalized, long_month_names[i]);
@@ -956,6 +1004,26 @@ g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
                 }
             }
 
+          /* Here month names will be in a nominative case.
+           * Examples of how January may look in some languages:
+           * Catalan: "gener", Croatian: "gener", Polish: "gener",
+           * Upper Sorbian: "Januar".
+           */
+          if (long_month_names_alternative[i] != NULL)
+            {
+              const gchar *found = strstr (normalized, long_month_names_alternative[i]);
+
+              if (found != NULL)
+                {
+                  pt->month = i;
+                  break;
+                }
+            }
+
+          /* Differences between abbreviated nominative and abbreviated
+           * genitive month names are visible in very few languages but
+           * let's handle them.
+           */
           if (short_month_names[i] != NULL)
             {
               const gchar *found = strstr (normalized, short_month_names[i]);
@@ -967,6 +1035,17 @@ g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
                 }
             }
 
+          if (short_month_names_alternative[i] != NULL)
+            {
+              const gchar *found = strstr (normalized, short_month_names_alternative[i]);
+
+              if (found != NULL)
+                {
+                  pt->month = i;
+                  break;
+                }
+            }
+
           ++i;
         }
 
@@ -1024,6 +1103,18 @@ g_date_prepare_to_parse (const gchar      *str,
           long_month_names[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL);
       g_free (casefold);
 
+          g_date_strftime (buf, 127, "%Ob", &d);
+          casefold = g_utf8_casefold (buf, -1);
+          g_free (short_month_names_alternative[i]);
+          short_month_names_alternative[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL);
+          g_free (casefold);
+
+          g_date_strftime (buf, 127, "%OB", &d);
+          casefold = g_utf8_casefold (buf, -1);
+          g_free (long_month_names_alternative[i]);
+          long_month_names_alternative[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL);
+          g_free (casefold);
+
           ++i;
         }
 
@@ -1070,6 +1161,13 @@ g_date_prepare_to_parse (const gchar      *str,
           DEBUG_MSG (("  %s   %s", long_month_names[i], short_month_names[i]));
           ++i;
         }
+      DEBUG_MSG (("Alternative month names:"));
+      i = 1;
+      while (i < 13)
+        {
+          DEBUG_MSG (("  %s   %s", long_month_names_alternative[i], short_month_names_alternative[i]));
+          ++i;
+        }
       if (using_twodigit_years)
         {
       DEBUG_MSG (("**Using twodigit years with cutoff year: %u", twodigit_start_year));
@@ -1938,7 +2036,7 @@ g_date_compare (const GDate *lhs,
 /**
  * g_date_to_struct_tm:
  * @date: a #GDate to set the struct tm from
- * @tm: struct tm to fill
+ * @tm: (not nullable): struct tm to fill
  *
  * Fills in the date-related bits of a struct tm using the @date value.
  * Initializes the non-date parts with something sane but meaningless.
@@ -2039,6 +2137,48 @@ g_date_order (GDate *date1,
 }
 
 #ifdef G_OS_WIN32
+static void
+append_month_name (GArray     *result,
+           LCID        lcid,
+           SYSTEMTIME *systemtime,
+           gboolean    abbreviated,
+           gboolean    alternative)
+{
+  int n;
+  WORD base;
+  LPCWSTR lpFormat;
+
+  if (alternative)
+    {
+      base = abbreviated ? LOCALE_SABBREVMONTHNAME1 : LOCALE_SMONTHNAME1;
+      n = GetLocaleInfoW (lcid, base + systemtime->wMonth - 1, NULL, 0);
+      g_array_set_size (result, result->len + n);
+      GetLocaleInfoW (lcid, base + systemtime->wMonth - 1,
+              ((wchar_t *) result->data) + result->len - n, n);
+      g_array_set_size (result, result->len - 1);
+    }
+  else
+    {
+      /* According to MSDN, this is the correct method to obtain
+       * the form of the month name used when formatting a full
+       * date; it must be a genitive case in some languages.
+       */
+      lpFormat = abbreviated ? L"ddMMM" : L"ddMMMM";
+      n = GetDateFormatW (lcid, 0, systemtime, lpFormat, NULL, 0);
+      g_array_set_size (result, result->len + n);
+      GetDateFormatW (lcid, 0, systemtime, lpFormat,
+              ((wchar_t *) result->data) + result->len - n, n);
+      /* We have obtained a day number as two digits and the month name.
+       * Now let's get rid of those two digits: overwrite them with the
+       * month name.
+       */
+      memmove (((wchar_t *) result->data) + result->len - n,
+           ((wchar_t *) result->data) + result->len - n + 2,
+           (n - 2) * sizeof (wchar_t));
+      g_array_set_size (result, result->len - 3);
+    }
+}
+
 static gsize
 win32_strftime_helper (const GDate     *d,
                const gchar     *format,
@@ -2052,7 +2192,7 @@ win32_strftime_helper (const GDate     *d,
   int n, k;
   GArray *result;
   const gchar *p;
-  gunichar c;
+  gunichar c, modifier;
   const wchar_t digits[] = L"0123456789";
   gchar *convbuf;
   glong convlen = 0;
@@ -2085,10 +2225,14 @@ win32_strftime_helper (const GDate     *d,
           return 0;
         }
 
+      modifier = '\0';
       c = g_utf8_get_char (p);
       if (c == 'E' || c == 'O')
         {
-          /* Ignore modified conversion specifiers for now. */
+          /* "%OB", "%Ob", and "%Oh" are supported, ignore other modified
+           * conversion specifiers for now.
+           */
+          modifier = c;
           p = g_utf8_next_char (p);
           if (!*p)
         {
@@ -2125,16 +2269,12 @@ win32_strftime_helper (const GDate     *d,
           break;
         case 'b':
         case 'h':
-          n = GetLocaleInfoW (lcid, LOCALE_SABBREVMONTHNAME1+systemtime.wMonth-1, NULL, 0);
-          g_array_set_size (result, result->len + n);
-          GetLocaleInfoW (lcid, LOCALE_SABBREVMONTHNAME1+systemtime.wMonth-1, ((wchar_t *) result->data) + result->len - n, n);
-          g_array_set_size (result, result->len - 1);
+          append_month_name (result, lcid, &systemtime, TRUE,
+                 modifier == 'O');
           break;
         case 'B':
-          n = GetLocaleInfoW (lcid, LOCALE_SMONTHNAME1+systemtime.wMonth-1, NULL, 0);
-          g_array_set_size (result, result->len + n);
-          GetLocaleInfoW (lcid, LOCALE_SMONTHNAME1+systemtime.wMonth-1, ((wchar_t *) result->data) + result->len - n, n);
-          g_array_set_size (result, result->len - 1);
+          append_month_name (result, lcid, &systemtime, FALSE,
+                 modifier == 'O');
           break;
         case 'c':
           n = GetDateFormatW (lcid, 0, &systemtime, NULL, NULL, 0);
@@ -2439,6 +2579,9 @@ win32_strftime_helper (const GDate     *d,
  *
  * Returns: number of characters written to the buffer, or 0 the buffer was too small
  */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+
 gsize
 g_date_strftime (gchar       *s,
                  gsize        slen,
@@ -2553,3 +2696,5 @@ g_date_strftime (gchar       *s,
   return retval;
 #endif
 }
+
+#pragma GCC diagnostic pop
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.h b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.h
similarity index 98%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.h
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.h
index bc551b3a4e..7115aeeb62 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdate.h
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdate.h
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -127,6 +127,8 @@ GLIB_AVAILABLE_IN_ALL
 GDate*       g_date_new_julian            (guint32      julian_day);
 GLIB_AVAILABLE_IN_ALL
 void         g_date_free                  (GDate       *date);
+GLIB_AVAILABLE_IN_2_56
+GDate*       g_date_copy                  (const GDate *date);
 
 /* check g_date_valid() after doing an operation that might fail, like
  * _parse.  Almost all g_date operations are undefined on invalid
diff --git a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatetime.c b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatetime.c
similarity index 71%
rename from modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatetime.c
rename to modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatetime.c
index 41e60ffba6..1b2da6e766 100644
--- a/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.42.1/glib/gdatetime.c
+++ b/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gdatetime.c
@@ -3,7 +3,7 @@
  * Copyright (C) 2009-2010 Christian Hergert 
  * Copyright (C) 2010 Thiago Santos 
  * Copyright (C) 2010 Emmanuele Bassi 
- * Copyright © 2010 Codethink Limited
+ * Copyright  2010 Codethink Limited
  *
  * This library is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as
@@ -15,15 +15,14 @@
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  * License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
- * USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see .
  *
  * Authors: Christian Hergert 
  *          Thiago Santos 
  *          Emmanuele Bassi 
  *          Ryan Lortie 
+ *          Robert Ancell 
  */
 
 /* Algorithms within this file are based on the Calendar FAQ by
@@ -47,6 +46,11 @@
 
 #include "config.h"
 
+/* langinfo.h in glibc 2.27 defines ALTMON_* only if _GNU_SOURCE is defined.  */
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
+
 #include 
 #include 
 
@@ -130,7 +134,9 @@ struct _GDateTime
 #define INSTANT_TO_UNIX(instant) \
   ((instant)/USEC_PER_SECOND - UNIX_EPOCH_START * SEC_PER_DAY)
 #define UNIX_TO_INSTANT(unix) \
-  (((unix) + UNIX_EPOCH_START * SEC_PER_DAY) * USEC_PER_SECOND)
+  (((gint64) (unix) + UNIX_EPOCH_START * SEC_PER_DAY) * USEC_PER_SECOND)
+#define UNIX_TO_INSTANT_IS_VALID(unix) \
+  ((gint64) (unix) <= INSTANT_TO_UNIX (G_MAXINT64))
 
 #define DAYS_IN_4YEARS    1461    /* days in 4 years */
 #define DAYS_IN_100YEARS  36524   /* days in 100 years */
@@ -170,11 +176,11 @@ static const guint16 days_in_year[2][13] =
 #define GET_AMPM(d) ((g_date_time_get_hour (d) < 12) ? \
                      nl_langinfo (AM_STR) : \
                      nl_langinfo (PM_STR))
+#define GET_AMPM_IS_LOCALE TRUE
 
 #define PREFERRED_DATE_TIME_FMT nl_langinfo (D_T_FMT)
 #define PREFERRED_DATE_FMT nl_langinfo (D_FMT)
 #define PREFERRED_TIME_FMT nl_langinfo (T_FMT)
-#define PREFERRED_TIME_FMT nl_langinfo (T_FMT)
 #define PREFERRED_12HR_TIME_FMT nl_langinfo (T_FMT_AMPM)
 
 static const gint weekday_item[2][7] =
@@ -190,17 +196,18 @@ static const gint month_item[2][12] =
 };
 
 #define WEEKDAY_ABBR(d) nl_langinfo (weekday_item[0][g_date_time_get_day_of_week (d) - 1])
+#define WEEKDAY_ABBR_IS_LOCALE TRUE
 #define WEEKDAY_FULL(d) nl_langinfo (weekday_item[1][g_date_time_get_day_of_week (d) - 1])
+#define WEEKDAY_FULL_IS_LOCALE TRUE
 #define MONTH_ABBR(d) nl_langinfo (month_item[0][g_date_time_get_month (d) - 1])
+#define MONTH_ABBR_IS_LOCALE TRUE
 #define MONTH_FULL(d) nl_langinfo (month_item[1][g_date_time_get_month (d) - 1])
+#define MONTH_FULL_IS_LOCALE TRUE
 
 #else
 
-#define GET_AMPM(d)          ((g_date_time_get_hour (d) < 12)  \
-                                       /* Translators: 'before midday' indicator */ \
-                                ? C_("GDateTime", "AM") \
-                                  /* Translators: 'after midday' indicator */ \
-                                : C_("GDateTime", "PM"))
+#define GET_AMPM(d)          (get_fallback_ampm (g_date_time_get_hour (d)))
+#define GET_AMPM_IS_LOCALE   FALSE
 
 /* Translators: this is the preferred format for expressing the date and the time */
 #define PREFERRED_DATE_TIME_FMT C_("GDateTime", "%a %b %e %H:%M:%S %Y")
@@ -215,16 +222,42 @@ static const gint month_item[2][12] =
 #define PREFERRED_12HR_TIME_FMT C_("GDateTime", "%I:%M:%S %p")
 
 #define WEEKDAY_ABBR(d)       (get_weekday_name_abbr (g_date_time_get_day_of_week (d)))
+#define WEEKDAY_ABBR_IS_LOCALE FALSE
 #define WEEKDAY_FULL(d)       (get_weekday_name (g_date_time_get_day_of_week (d)))
-#define MONTH_ABBR(d)         (get_month_name_abbr (g_date_time_get_month (d)))
-#define MONTH_FULL(d)         (get_month_name (g_date_time_get_month (d)))
+#define WEEKDAY_FULL_IS_LOCALE FALSE
+/* We don't yet know if nl_langinfo (MON_n) returns standalone or complete-date
+ * format forms but if nl_langinfo (ALTMON_n) is not supported then we will
+ * have to use MONTH_FULL as standalone.  The same if nl_langinfo () does not
+ * exist at all.  MONTH_ABBR is similar: if nl_langinfo (_NL_ABALTMON_n) is not
+ * supported then we will use MONTH_ABBR as standalone.
+ */
+#define MONTH_ABBR(d)         (get_month_name_abbr_standalone (g_date_time_get_month (d)))
+#define MONTH_ABBR_IS_LOCALE  FALSE
+#define MONTH_FULL(d)         (get_month_name_standalone (g_date_time_get_month (d)))
+#define MONTH_FULL_IS_LOCALE  FALSE
 
 static const gchar *
-get_month_name (gint month)
+get_month_name_standalone (gint month)
 {
   switch (month)
     {
     case 1:
+      /* Translators: Some languages (Baltic, Slavic, Greek, and some more)
+       * need different grammatical forms of month names depending on whether
+       * they are standalone or in a complete date context, with the day
+       * number.  Some other languages may prefer starting with uppercase when
+       * they are standalone and with lowercase when they are in a complete
+       * date context.  Here are full month names in a form appropriate when
+       * they are used standalone.  If your system is Linux with the glibc
+       * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
+       * family (which includes OS X) then you can refer to the date command
+       * line utility and see what the command `date +%OB' produces.  Also in
+       * the latest Linux the command `locale alt_mon' in your native locale
+       * produces a complete list of month names almost ready to copy and
+       * paste here.  Note that in most of the languages (western European,
+       * non-European) there is no difference between the standalone and
+       * complete date form.
+       */
       return C_("full month name", "January");
     case 2:
       return C_("full month name", "February");
@@ -257,11 +290,28 @@ get_month_name (gint month)
 }
 
 static const gchar *
-get_month_name_abbr (gint month)
+get_month_name_abbr_standalone (gint month)
 {
   switch (month)
     {
     case 1:
+      /* Translators: Some languages need different grammatical forms of
+       * month names depending on whether they are standalone or in a complete
+       * date context, with the day number.  Some may prefer starting with
+       * uppercase when they are standalone and with lowercase when they are
+       * in a full date context.  However, as these names are abbreviated
+       * the grammatical difference is visible probably only in Belarusian
+       * and Russian.  In other languages there is no difference between
+       * the standalone and complete date form when they are abbreviated.
+       * If your system is Linux with the glibc version 2.27 (released
+       * Feb 1, 2018) or newer then you can refer to the date command line
+       * utility and see what the command `date +%Ob' produces.  Also in
+       * the latest Linux the command `locale ab_alt_mon' in your native
+       * locale produces a complete list of month names almost ready to copy
+       * and paste here.  Note that this feature is not yet supported by any
+       * other platform.  Here are abbreviated month names in a form
+       * appropriate when they are used standalone.
+       */
       return C_("abbreviated month name", "Jan");
     case 2:
       return C_("abbreviated month name", "Feb");
@@ -349,6 +399,191 @@ get_weekday_name_abbr (gint day)
 
 #endif  /* HAVE_LANGINFO_TIME */
 
+#ifdef HAVE_LANGINFO_ALTMON
+
+/* If nl_langinfo () supports ALTMON_n then MON_n returns full date format
+ * forms and ALTMON_n returns standalone forms.
+ */
+
+#define MONTH_FULL_WITH_DAY(d) MONTH_FULL(d)
+#define MONTH_FULL_WITH_DAY_IS_LOCALE MONTH_FULL_IS_LOCALE
+
+static const gint alt_month_item[12] =
+{
+  ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4, ALTMON_5, ALTMON_6,
+  ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10, ALTMON_11, ALTMON_12
+};
+
+#define MONTH_FULL_STANDALONE(d) nl_langinfo (alt_month_item[g_date_time_get_month (d) - 1])
+#define MONTH_FULL_STANDALONE_IS_LOCALE TRUE
+
+#else
+
+/* If nl_langinfo () does not support ALTMON_n then either MON_n returns
+ * standalone forms or nl_langinfo (MON_n) does not work so we have defined
+ * it as standalone form.
+ */
+
+#define MONTH_FULL_STANDALONE(d) MONTH_FULL(d)
+#define MONTH_FULL_STANDALONE_IS_LOCALE MONTH_FULL_IS_LOCALE
+#define MONTH_FULL_WITH_DAY(d) (get_month_name_with_day (g_date_time_get_month (d)))
+#define MONTH_FULL_WITH_DAY_IS_LOCALE FALSE
+
+static const gchar *
+get_month_name_with_day (gint month)
+{
+  switch (month)
+    {
+    case 1:
+      /* Translators: Some languages need different grammatical forms of
+       * month names depending on whether they are standalone or in a full
+       * date context, with the day number.  Some may prefer starting with
+       * uppercase when they are standalone and with lowercase when they are
+       * in a full date context.  Here are full month names in a form
+       * appropriate when they are used in a full date context, with the
+       * day number.  If your system is Linux with the glibc version 2.27
+       * (released Feb 1, 2018) or newer or if it is from the BSD family
+       * (which includes OS X) then you can refer to the date command line
+       * utility and see what the command `date +%B' produces.  Also in
+       * the latest Linux the command `locale mon' in your native locale
+       * produces a complete list of month names almost ready to copy and
+       * paste here.  In older Linux systems due to a bug the result is
+       * incorrect in some languages.  Note that in most of the languages
+       * (western European, non-European) there is no difference between the
+       * standalone and complete date form.
+       */
+      return C_("full month name with day", "January");
+    case 2:
+      return C_("full month name with day", "February");
+    case 3:
+      return C_("full month name with day", "March");
+    case 4:
+      return C_("full month name with day", "April");
+    case 5:
+      return C_("full month name with day", "May");
+    case 6:
+      return C_("full month name with day", "June");
+    case 7:
+      return C_("full month name with day", "July");
+    case 8:
+      return C_("full month name with day", "August");
+    case 9:
+      return C_("full month name with day", "September");
+    case 10:
+      return C_("full month name with day", "October");
+    case 11:
+      return C_("full month name with day", "November");
+    case 12:
+      return C_("full month name with day", "December");
+
+    default:
+      g_warning ("Invalid month number %d", month);
+    }
+
+  return NULL;
+}
+
+#endif  /* HAVE_LANGINFO_ALTMON */
+
+#ifdef HAVE_LANGINFO_ABALTMON
+
+/* If nl_langinfo () supports _NL_ABALTMON_n then ABMON_n returns full
+ * date format forms and _NL_ABALTMON_n returns standalone forms.
+ */
+
+#define MONTH_ABBR_WITH_DAY(d) MONTH_ABBR(d)
+#define MONTH_ABBR_WITH_DAY_IS_LOCALE MONTH_ABBR_IS_LOCALE
+
+static const gint ab_alt_month_item[12] =
+{
+  _NL_ABALTMON_1, _NL_ABALTMON_2, _NL_ABALTMON_3, _NL_ABALTMON_4,
+  _NL_ABALTMON_5, _NL_ABALTMON_6, _NL_ABALTMON_7, _NL_ABALTMON_8,
+  _NL_ABALTMON_9, _NL_ABALTMON_10, _NL_ABALTMON_11, _NL_ABALTMON_12
+};
+
+#define MONTH_ABBR_STANDALONE(d) nl_langinfo (ab_alt_month_item[g_date_time_get_month (d) - 1])
+#define MONTH_ABBR_STANDALONE_IS_LOCALE TRUE
+
+#else
+
+/* If nl_langinfo () does not support _NL_ABALTMON_n then either ABMON_n
+ * returns standalone forms or nl_langinfo (ABMON_n) does not work so we
+ * have defined it as standalone form. Now it's time to swap.
+ */
+
+#define MONTH_ABBR_STANDALONE(d) MONTH_ABBR(d)
+#define MONTH_ABBR_STANDALONE_IS_LOCALE MONTH_ABBR_IS_LOCALE
+#define MONTH_ABBR_WITH_DAY(d) (get_month_name_abbr_with_day (g_date_time_get_month (d)))
+#define MONTH_ABBR_WITH_DAY_IS_LOCALE FALSE
+
+static const gchar *
+get_month_name_abbr_with_day (gint month)
+{
+  switch (month)
+    {
+    case 1:
+      /* Translators: Some languages need different grammatical forms of
+       * month names depending on whether they are standalone or in a full
+       * date context, with the day number.  Some may prefer starting with
+       * uppercase when they are standalone and with lowercase when they are
+       * in a full date context.  Here are abbreviated month names in a form
+       * appropriate when they are used in a full date context, with the
+       * day number.  However, as these names are abbreviated the grammatical
+       * difference is visible probably only in Belarusian and Russian.
+       * In other languages there is no difference between the standalone
+       * and complete date form when they are abbreviated.  If your system
+       * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
+       * then you can refer to the date command line utility and see what the
+       * command `date +%b' produces.  Also in the latest Linux the command
+       * `locale abmon' in your native locale produces a complete list of
+       * month names almost ready to copy and paste here.  In other systems
+       * due to a bug the result is incorrect in some languages.
+       */
+      return C_("abbreviated month name with day", "Jan");
+    case 2:
+      return C_("abbreviated month name with day", "Feb");
+    case 3:
+      return C_("abbreviated month name with day", "Mar");
+    case 4:
+      return C_("abbreviated month name with day", "Apr");
+    case 5:
+      return C_("abbreviated month name with day", "May");
+    case 6:
+      return C_("abbreviated month name with day", "Jun");
+    case 7:
+      return C_("abbreviated month name with day", "Jul");
+    case 8:
+      return C_("abbreviated month name with day", "Aug");
+    case 9:
+      return C_("abbreviated month name with day", "Sep");
+    case 10:
+      return C_("abbreviated month name with day", "Oct");
+    case 11:
+      return C_("abbreviated month name with day", "Nov");
+    case 12:
+      return C_("abbreviated month name with day", "Dec");
+
+    default:
+      g_warning ("Invalid month number %d", month);
+    }
+
+  return NULL;
+}
+
+#endif  /* HAVE_LANGINFO_ABALTMON */
+
+/* Format AM/PM indicator if the locale does not have a localized version. */
+static const gchar *
+get_fallback_ampm (gint hour)
+{
+  if (hour < 12)
+    /* Translators: 'before midday' indicator */
+    return C_("GDateTime", "AM");
+  else
+    /* Translators: 'after midday' indicator */
+    return C_("GDateTime", "PM");
+}
+
 static inline gint
 ymd_to_days (gint year,
              gint month,
@@ -644,6 +879,10 @@ static GDateTime *
 g_date_time_new_from_timeval (GTimeZone      *tz,
                               const GTimeVal *tv)
 {
+  if ((gint64) tv->tv_sec > G_MAXINT64 - 1 ||
+      !UNIX_TO_INSTANT_IS_VALID ((gint64) tv->tv_sec + 1))
+    return NULL;
+
   return g_date_time_from_instant (tz, tv->tv_usec +
                                    UNIX_TO_INSTANT (tv->tv_sec));
 }
@@ -673,6 +912,9 @@ static GDateTime *
 g_date_time_new_from_unix (GTimeZone *tz,
                            gint64     secs)
 {
+  if (!UNIX_TO_INSTANT_IS_VALID (secs))
+    return NULL;
+
   return g_date_time_from_instant (tz, UNIX_TO_INSTANT (secs));
 }
 
@@ -887,6 +1129,347 @@ g_date_time_new_from_timeval_utc (const GTimeVal *tv)
   return datetime;
 }
 
+/* Parse integers in the form d (week days), dd (hours etc), ddd (ordinal days) or dddd (years) */
+static gboolean
+get_iso8601_int (const gchar *text, gsize length, gint *value)
+{
+  gint i, v = 0;
+
+  if (length < 1 || length > 4)
+    return FALSE;
+
+  for (i = 0; i < length; i++)
+    {
+      const gchar c = text[i];
+      if (c < '0' || c > '9')
+        return FALSE;
+      v = v * 10 + (c - '0');
+    }
+
+  *value = v;
+  return TRUE;
+}
+
+/* Parse seconds in the form ss or ss.sss (variable length decimal) */
+static gboolean
+get_iso8601_seconds (const gchar *text, gsize length, gdouble *value)
+{
+  gint i;
+  gdouble divisor = 1, v = 0;
+
+  if (length < 2)
+    return FALSE;
+
+  for (i = 0; i < 2; i++)
+    {
+      const gchar c = text[i];
+      if (c < '0' || c > '9')
+        return FALSE;
+      v = v * 10 + (c - '0');
+    }
+
+  if (length > 2 && !(text[i] == '.' || text[i] == ','))
+    return FALSE;
+  i++;
+  if (i == length)
+    return FALSE;
+
+  for (; i < length; i++)
+    {
+      const gchar c = text[i];
+      if (c < '0' || c > '9')
+        return FALSE;
+      v = v * 10 + (c - '0');
+      divisor *= 10;
+    }
+
+  *value = v / divisor;
+  return TRUE;
+}
+
+static GDateTime *
+g_date_time_new_ordinal (GTimeZone *tz, gint year, gint ordinal_day, gint hour, gint minute, gdouble seconds)
+{
+  GDateTime *dt;
+
+  if (ordinal_day < 1 || ordinal_day > (GREGORIAN_LEAP (year) ? 366 : 365))
+    return NULL;
+
+  dt = g_date_time_new (tz, year, 1, 1, hour, minute, seconds);
+#ifdef GSTREAMER_LITE
+  if (dt == NULL) {
+    return NULL;
+  }
+#endif // GSTREAMER_LITE
+  dt->days += ordinal_day - 1;
+
+  return dt;
+}
+
+static GDateTime *
+g_date_time_new_week (GTimeZone *tz, gint year, gint week, gint week_day, gint hour, gint minute, gdouble seconds)
+{
+  gint64 p;
+  gint max_week, jan4_week_day, ordinal_day;
+  GDateTime *dt;
+
+  p = (year * 365 + (year / 4) - (year / 100) + (year / 400)) % 7;
+  max_week = p == 4 ? 53 : 52;
+
+  if (week < 1 || week > max_week || week_day < 1 || week_day > 7)
+    return NULL;
+
+  dt = g_date_time_new (tz, year, 1, 4, 0, 0, 0);
+  g_date_time_get_week_number (dt, NULL, &jan4_week_day, NULL);
+  ordinal_day = (week * 7) + week_day - (jan4_week_day + 3);
+  if (ordinal_day < 0)
+    {
+      year--;
+      ordinal_day += GREGORIAN_LEAP (year) ? 366 : 365;
+    }
+  else if (ordinal_day > (GREGORIAN_LEAP (year) ? 366 : 365))
+    {
+      ordinal_day -= (GREGORIAN_LEAP (year) ? 366 : 365);
+      year++;
+    }
+
+  return g_date_time_new_ordinal (tz, year, ordinal_day, hour, minute, seconds);
+}
+
+static GDateTime *
+parse_iso8601_date (const gchar *text, gsize length,
+                    gint hour, gint minute, gdouble seconds, GTimeZone *tz)
+{
+  /* YYYY-MM-DD */
+  if (length == 10 && text[4] == '-' && text[7] == '-')
+    {
+      int year, month, day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 5, 2, &month) ||
+          !get_iso8601_int (text + 8, 2, &day))
+        return NULL;
+      return g_date_time_new (tz, year, month, day, hour, minute, seconds);
+    }
+  /* YYYY-DDD */
+  else if (length == 8 && text[4] == '-')
+    {
+      gint year, ordinal_day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 5, 3, &ordinal_day))
+        return NULL;
+      return g_date_time_new_ordinal (tz, year, ordinal_day, hour, minute, seconds);
+    }
+  /* YYYY-Www-D */
+  else if (length == 10 && text[4] == '-' && text[5] == 'W' && text[8] == '-')
+    {
+      gint year, week, week_day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 6, 2, &week) ||
+          !get_iso8601_int (text + 9, 1, &week_day))
+        return NULL;
+      return g_date_time_new_week (tz, year, week, week_day, hour, minute, seconds);
+    }
+  /* YYYYWwwD */
+  else if (length == 8 && text[4] == 'W')
+    {
+      gint year, week, week_day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 5, 2, &week) ||
+          !get_iso8601_int (text + 7, 1, &week_day))
+        return NULL;
+      return g_date_time_new_week (tz, year, week, week_day, hour, minute, seconds);
+    }
+  /* YYYYMMDD */
+  else if (length == 8)
+    {
+      int year, month, day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 4, 2, &month) ||
+          !get_iso8601_int (text + 6, 2, &day))
+        return NULL;
+      return g_date_time_new (tz, year, month, day, hour, minute, seconds);
+    }
+  /* YYYYDDD */
+  else if (length == 7)
+    {
+      gint year, ordinal_day;
+      if (!get_iso8601_int (text, 4, &year) ||
+          !get_iso8601_int (text + 4, 3, &ordinal_day))
+        return NULL;
+      return g_date_time_new_ordinal (tz, year, ordinal_day, hour, minute, seconds);
+    }
+  else
+    return FALSE;
+}
+
+static GTimeZone *
+parse_iso8601_timezone (const gchar *text, gsize length, gssize *tz_offset)
+{
+  gint i, tz_length, offset_sign = 1, offset_hours, offset_minutes;
+  GTimeZone *tz;
+
+  /* UTC uses Z suffix  */
+  if (length > 0 && text[length - 1] == 'Z')
+    {
+      *tz_offset = length - 1;
+      return g_time_zone_new_utc ();
+    }
+
+  /* Look for '+' or '-' of offset */
+  for (i = length - 1; i >= 0; i--)
+    if (text[i] == '+' || text[i] == '-')
+      {
+        offset_sign = text[i] == '-' ? -1 : 1;
+        break;
+      }
+  if (i < 0)
+    return NULL;
+  tz_length = length - i;
+
+  /* +hh:mm or -hh:mm */
+  if (tz_length == 6 && text[i+3] == ':')
+    {
+      if (!get_iso8601_int (text + i + 1, 2, &offset_hours) ||
+          !get_iso8601_int (text + i + 4, 2, &offset_minutes))
+        return NULL;
+    }
+  /* +hhmm or -hhmm */
+  else if (tz_length == 5)
+    {
+      if (!get_iso8601_int (text + i + 1, 2, &offset_hours) ||
+          !get_iso8601_int (text + i + 3, 2, &offset_minutes))
+        return NULL;
+    }
+  /* +hh or -hh */
+  else if (tz_length == 3)
+    {
+      if (!get_iso8601_int (text + i + 1, 2, &offset_hours))
+        return NULL;
+      offset_minutes = 0;
+    }
+  else
+    return NULL;
+
+  *tz_offset = i;
+  tz = g_time_zone_new (text + i);
+
+  /* Double-check that the GTimeZone matches our interpretation of the timezone.
+   * Failure would indicate a bug either here of in the GTimeZone code. */
+  g_assert (g_time_zone_get_offset (tz, 0) == offset_sign * (offset_hours * 3600 + offset_minutes * 60));
+
+  return tz;
+}
+
+static gboolean
+parse_iso8601_time (const gchar *text, gsize length,
+                    gint *hour, gint *minute, gdouble *seconds, GTimeZone **tz)
+{
+  gssize tz_offset = -1;
+
+  /* Check for timezone suffix */
+  *tz = parse_iso8601_timezone (text, length, &tz_offset);
+  if (tz_offset >= 0)
+    length = tz_offset;
+
+  /* hh:mm:ss(.sss) */
+  if (length >= 8 && text[2] == ':' && text[5] == ':')
+    {
+      return get_iso8601_int (text, 2, hour) &&
+             get_iso8601_int (text + 3, 2, minute) &&
+             get_iso8601_seconds (text + 6, length - 6, seconds);
+    }
+  /* hhmmss(.sss) */
+  else if (length >= 6)
+    {
+      return get_iso8601_int (text, 2, hour) &&
+             get_iso8601_int (text + 2, 2, minute) &&
+             get_iso8601_seconds (text + 4, length - 4, seconds);
+    }
+  else
+    return FALSE;
+}
+
+/**
+ * g_date_time_new_from_iso8601:
+ * @text: an ISO 8601 formatted time string.
+ * @default_tz: (nullable): a #GTimeZone to use if the text doesn't contain a
+ *                          timezone, or %NULL.
+ *
+ * Creates a #GDateTime corresponding to the given
+ * [ISO 8601 formatted string](https://en.wikipedia.org/wiki/ISO_8601)
+ * @text. ISO 8601 strings of the form