diff --git a/subprojects/gstreamer/gst/gst_private.h b/subprojects/gstreamer/gst/gst_private.h
index cc05f871bf..9e0715fc3a 100644
--- a/subprojects/gstreamer/gst/gst_private.h
+++ b/subprojects/gstreamer/gst/gst_private.h
@@ -533,5 +533,8 @@ void priv_gst_clock_init (void);
 GstClockTime priv_gst_get_monotonic_time (void);
 GstClockTime priv_gst_get_real_time (void);
 
+/* Needed for hashing in gstvalue.c */
+G_GNUC_INTERNAL const GstStructure * _gst_tag_list_structure (const GstTagList * list);
+
 G_END_DECLS
 #endif /* __GST_PRIVATE_H__ */
diff --git a/subprojects/gstreamer/gst/gsttaglist.c b/subprojects/gstreamer/gst/gsttaglist.c
index 44c26ee8a8..1c8b24dc13 100644
--- a/subprojects/gstreamer/gst/gsttaglist.c
+++ b/subprojects/gstreamer/gst/gsttaglist.c
@@ -2185,3 +2185,9 @@ gst_tag_list_take (GstTagList ** old_taglist, GstTagList * new_taglist)
   return gst_mini_object_take ((GstMiniObject **) old_taglist,
       (GstMiniObject *) new_taglist);
 }
+
+const GstStructure *
+_gst_tag_list_structure (const GstTagList * list)
+{
+  return GST_TAG_LIST_STRUCTURE (list);
+}