- * <itemizedlist>
- * <listitem><para>one sinkpad</para></listitem>
- * <listitem><para>handles state changes</para></listitem>
- * <listitem><para>pull/push mode</para></listitem>
- * <listitem><para>handles seeking/query</para></listitem>
- * <listitem><para>handles preroll</para></listitem>
- * <listitem><para>EOS handling</para></listitem>
- * </itemizedlist>
+ * There is only support in GstBaseSink for one sink pad, which should be named
+ * "sink". A sink implementation (subclass of GstBaseSink) should install a pad
+ * template in its base_init function, like so:
+ * <programlisting>
+ * static void
+ * my_element_base_init (gpointer g_class)
+ * {
+ * GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
+ *
+ * // sinktemplate should be a #GstStaticPadTemplate with direction
+ * // #GST_PAD_SINK and name "sink"
+ * gst_element_class_add_pad_template (gstelement_class,
+ * gst_static_pad_template_get (&sinktemplate));
+ * // see #GstElementDetails
+ * gst_element_class_set_details (gstelement_class, &details);
+ * }
+ * </programlisting>
+ *
+ * The one method which all subclasses of GstBaseSink must implement is
+ * GstBaseSink::render. This method will be called...
+ *
+ * preroll()
+ *
+ * event(): mostly useful for file-like sinks (seeking or flushing)
+ *
+ * get_caps/set_caps/buffer_alloc
+ *
+ * start/stop for resource allocation
+ *
+ * unlock if you block on an fd, for example
+ *
+ * get_times i'm sure is for something :P
+ *
+ * provide example of textsink
+ *
+ * admonishment not to try to implement your own sink with prerolling...
+ *
+ * extending via subclassing, setting pad functions, gstelement vmethods.