diff --git a/meson.build b/meson.build
index 41a2a04379..009e2b40d1 100644
--- a/meson.build
+++ b/meson.build
@@ -129,6 +129,13 @@ foreach sp : subprojects
   endif
 endforeach
 
+# Check if we need to also build glib-networking for TLS modules
+glib_dep = dependency('glib-2.0')
+if glib_dep.type_name() == 'internal'
+  subproject('glib-networking', required : get_option('tls'),
+             default_options: ['gnutls=auto', 'openssl=auto'])
+endif
+
 plugins_doc_dep = custom_target('plugins-doc-cache',
   command: [python3, '-c', 'print("Built all doc caches")'],
   input: plugins_doc_caches,
diff --git a/meson_options.txt b/meson_options.txt
index eb5063df71..aabb9611cc 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,4 @@
+# Subproject options
 option('python', type : 'feature', value : 'auto')
 option('libav', type : 'feature', value : 'auto')
 option('libnice', type : 'feature', value : 'auto')
@@ -9,9 +10,12 @@ option('rtsp_server', type : 'feature', value : 'auto')
 option('omx', type : 'feature', value : 'disabled')
 option('vaapi', type : 'feature', value : 'disabled')
 option('sharp', type : 'feature', value : 'disabled')
-option('custom_subprojects', type : 'string', value : '', description : 'Comma-separated project names')
-option('gst-examples', type : 'feature', value : 'auto', description : 'Build gst-examples')
 option('rs', type : 'feature', value : 'disabled')
+option('gst-examples', type : 'feature', value : 'auto', description : 'Build gst-examples')
+option('tls', type : 'feature', value : 'auto', description : 'TLS support using glib-networking')
+
+# Other options
+option('custom_subprojects', type : 'string', value : '', description : 'Comma-separated project names')
 option('gst-full-libraries', type : 'array', value : [],
   description : '''List of libraries to expose in gstreamer-full's ABI. gstreamer, glib and gobject are always included.''')
 
diff --git a/subprojects/glib-networking.wrap b/subprojects/glib-networking.wrap
new file mode 100644
index 0000000000..4321af57b5
--- /dev/null
+++ b/subprojects/glib-networking.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+directory=glib-networking
+url=https://gitlab.gnome.org/GNOME/glib-networking.git
+push-url=git@gitlab.gnome.org:GNOME/glib-networking.git
+revision=glib-2-62