<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>A media engines should derive its own <link linkend="RygelDataSource">RygelDataSource</link>,
+returning an instance of it from its create_data_source() implementation.</para>
+
+<para>Optionally, a derived RygelMediaEngine may implement the get_dlna_profiles() and get_transcoders() virtual functions.</para>
<para>Rygel itself provides two media engines:
</para>
</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>
+<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 and is an example of an external Rygel media-engine implemented in C.</para>
</section>
/**
* Get a list of the DLNA profiles that are supported by this media
- * engine.
+ * engine when calling rygel_media_engine_create_data_source().
+ *
+ * Other DLNA profiles may be supported as transcoding targets -
+ * see rygel_media_engine_get_transcoders().
*
* @return A list of #RygelDLNAProfile<!-- -->s
*/
Gst.init (ref args);
gst_preset_set_app_dir (PRESET_DIR);
+ /* Get the possible DLNA profiles
+ * to add to the list of DLNA profiles supported by
+ * this media engine, for get_dlna_profiles():
+ */
var discoverer = new GUPnPDLNA.Discoverer ((ClockTime) SECOND,
true,
false);
foreach (var profile in discoverer.list_profiles ()) {
var p = new DLNAProfile (profile.name, profile.mime);
+
+ /* TODO: Check that we (via GStreamer) really support this profile
+ * instead of just claiming to support everything.
+ */
this.dlna_profiles.prepend (p);
}
this.dlna_profiles.prepend (new DLNAProfile ("DIDL_S", "text/xml"));