Though this is mostly a duplicate of the RygelMediaEngine API docs.
Still, it seems helpful to have it here.
<para>
This library may be used to create Rygel media engines by
implementing the <link linkend="RygelMediaEngine">RygelMediaEngine</link> class.
+Rygel media engines contain knowledge about the streaming and (optionally) the
+transcoding and seeking capabilites of the media library in use.</para>
+
+<para>The actual media engine used by Rygel at runtime is specified
+by the media-engine configuration key. For instance, in <literal>rygel.conf</literal>:
+<code>media-engine=librygel-media-engine-gst.so</code>
+</para>
+
+<para>Media engines should derive their own <link linkend="RygelDataSource">RygelDataSource</link>,
+returning an instance of it from create_data_source().</para>
+
+<para>Rygel itself provides two media engines:
</para>
+<para>
+<orderedlist>
+<listitem><para><ulink url="http://git.gnome.org/browse/rygel/tree/src/media-engines/gstreamer">gstreamer</ulink>: A media engine that uses GStreamer for transcoding and seeking.</para></listitem>
+<listitem><para><ulink url="http://git.gnome.org/browse/rygel/tree/src/media-engines/simple">simple</ulink>: A media engine that uses no multimedia framework, and therefore offers no transcoding or time-based seeking.</para></listitem>
+</orderedlist>
+</para>
+
+<para>In addition, the external <ulink url="http://git.gnome.org/browse/rygel-gst-0-10-media-engine">rygel-gst-0-10-media-engine</ulink> project provides a Rygel media engine that uses an older GStreamer version.</para>
</section>
* For instance, in rygel.conf:
* media-engine=librygel-media-engine-gst.so
*
- * Media engines should also derive their own Rygel.DataSource,
+ * Media engines should also derive their own RygelDataSource,
* returning an instance of it from create_data_source().
- **
+ *
* See the
* <link linkend="implementing-media-engines">Implementing Media Engines</link> section.
*/
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+/**
+ * A simple data source for use with the simple media engine (RygelSimpleMediaEngine).
+ *
+ * This does not support time-base seeking with
+ * rygel_data_source_start() because it does not
+ * use any multimedia framework. Therefore, calling start() with
+ * RYGEL_HTTP_SEEK_TYPE_TIME will fail with a
+ * RYGEL_DATA_SOURCE_ERROR_SEEK_FAILED GError code,
+ */
internal class Rygel.SimpleDataSource : DataSource, Object {
private string uri;
private Thread<void*> thread;
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+/**
+ * The simple media engine does not use GStreamer or any other
+ * multimedia framework. Therefore its capabilities are limited.
+ *
+ * It does not support transcoding - get_transcoders() returns null.
+ * Also, its RygelSimpleDataSource does not support time-base seeking.
+ */
internal class Rygel.SimpleMediaEngine : MediaEngine {
private List<DLNAProfile> profiles = new List<DLNAProfile> ();