--- gstmpegtssection.c
+++ gstmpegtssection.c
@@ -792,3 +792,39 @@
     return NULL;
   }
 }
+
+/* <AWOX> */
+/**
+ * gst_mpegts_section_new_empty:
+ * @pid: the PID to which this section belongs
+ * @data: (transfer full): a pointer to the beginning of the section (i.e. the first byte
+ * should contain the table_id field).
+ * @data_size: size of the @data argument.
+ *
+ * Creates a new #GstMpegTsSection from the provided @data.
+ *
+ * Note: Ensuring @data is big enough to contain the full section is the
+ * responsibility of the caller. If it is not big enough, %NULL will be
+ * returned.
+ *
+ * Note: it is the responsibility of the caller to ensure @data does point
+ * to the beginning of the section.
+ *
+ * Returns: (transfer full): A new empty #GstMpegTsSection
+ */
+GstMpegTsSection *
+gst_mpegts_section_new_empty(guint16 pid, guint8 * data, gsize data_size)
+{
+  GstMpegTsSection *res = NULL;
+  guint8 tmp;
+  guint16 section_length;
+
+
+  res = g_slice_new0 (GstMpegTsSection);
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (res), 0, MPEG_TYPE_TS_SECTION,
+	  (GstMiniObjectCopyFunction) _gst_mpegts_section_copy, NULL,
+	  (GstMiniObjectFreeFunction) _gst_mpegts_section_free);
+
+  return res;
+}
+/* </AWOX> */

--- gstmpegtssection.h
+++ gstmpegtssection.h
@@ -359,5 +359,6 @@
 GstMpegTsSection *gst_mpegts_section_new (guint16 pid,
 					   guint8 * data,
 					   gsize data_size);
+GstMpegTsSection *gst_mpegts_section_new_empty(guint16 pid, guint8 * data, gsize data_size);
 
 #endif				/* GST_MPEGTS_SECTION_H */

