diff --git a/docs/plugins/gstreamer-plugins-sections.txt b/docs/plugins/gstreamer-plugins-sections.txt
index 1854112140..742fdf9dad 100644
--- a/docs/plugins/gstreamer-plugins-sections.txt
+++ b/docs/plugins/gstreamer-plugins-sections.txt
@@ -149,6 +149,7 @@ GST_INPUT_SELECTOR_WAIT
element-queue
queue
GstQueue
+GstQueueLeaky
GstQueueClass
GST_QUEUE
diff --git a/plugins/elements/gstqueue.h b/plugins/elements/gstqueue.h
index c72bcb790c..6ab861706f 100644
--- a/plugins/elements/gstqueue.h
+++ b/plugins/elements/gstqueue.h
@@ -39,17 +39,26 @@ G_BEGIN_DECLS
#define GST_IS_QUEUE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QUEUE))
-enum {
+typedef struct _GstQueue GstQueue;
+typedef struct _GstQueueSize GstQueueSize;
+typedef enum _GstQueueLeaky GstQueueLeaky;
+typedef struct _GstQueueClass GstQueueClass;
+
+/**
+ * GstQueueLeaky:
+ * @GST_QUEUE_NO_LEAK: Not Leaky
+ * @GST_QUEUE_LEAK_UPSTREAM: Leaky on upstream (new buffers)
+ * @GST_QUEUE_LEAK_DOWNSTREAM: Leaky on downstream (old buffers)
+ *
+ * Buffer dropping scheme to avoid the queue to block when full.
+ */
+enum _GstQueueLeaky {
GST_QUEUE_NO_LEAK = 0,
GST_QUEUE_LEAK_UPSTREAM = 1,
GST_QUEUE_LEAK_DOWNSTREAM = 2
};
-typedef struct _GstQueue GstQueue;
-typedef struct _GstQueueSize GstQueueSize;
-typedef struct _GstQueueClass GstQueueClass;
-
-/**
+/*
* GstQueueSize:
* @buffers: number of buffers
* @bytes: number of bytes
@@ -115,8 +124,8 @@ struct _GstQueue {
gboolean head_needs_discont, tail_needs_discont;
gboolean push_newsegment;
-
- gboolean silent; /* don't emit signals */
+
+ gboolean silent; /* don't emit signals */
/* whether the first new segment has been applied to src */
gboolean newseg_applied_to_src;