rygel r771 - trunk/src/rygel
- From: zeeshanak svn gnome org
- To: svn-commits-list gnome org
- Subject: rygel r771 - trunk/src/rygel
- Date: Sat, 28 Mar 2009 00:46:32 +0000 (UTC)
Author: zeeshanak
Date: Sat Mar 28 00:46:32 2009
New Revision: 771
URL: http://svn.gnome.org/viewvc/rygel?rev=771&view=rev
Log:
TranscodeManager keeps a single list of transcoders.
Modified:
trunk/src/rygel/rygel-transcode-manager.vala
Modified: trunk/src/rygel/rygel-transcode-manager.vala
==============================================================================
--- trunk/src/rygel/rygel-transcode-manager.vala (original)
+++ trunk/src/rygel/rygel-transcode-manager.vala Sat Mar 28 00:46:32 2009
@@ -27,17 +27,15 @@
using Gst;
internal abstract class Rygel.TranscodeManager : GLib.Object {
- private ArrayList<Transcoder> audio_transcoders;
- private ArrayList<Transcoder> video_transcoders;
+ private ArrayList<Transcoder> transcoders;
public TranscodeManager () {
- audio_transcoders = new ArrayList<Transcoder> ();
- video_transcoders = new ArrayList<Transcoder> ();
+ transcoders = new ArrayList<Transcoder> ();
- audio_transcoders.add (new L16Transcoder (Endianness.BIG));
- audio_transcoders.add (new MP3Transcoder (MP3Layer.THREE));
- video_transcoders.add (new MP2TSTranscoder(MP2TSProfile.SD));
- video_transcoders.add (new MP2TSTranscoder(MP2TSProfile.HD));
+ transcoders.add (new L16Transcoder (Endianness.BIG));
+ transcoders.add (new MP3Transcoder (MP3Layer.THREE));
+ transcoders.add (new MP2TSTranscoder(MP2TSProfile.SD));
+ transcoders.add (new MP2TSTranscoder(MP2TSProfile.HD));
}
public abstract string create_uri_for_item (MediaItem item,
@@ -50,25 +48,28 @@
if (item.upnp_class.has_prefix (MediaItem.IMAGE_CLASS)) {
// No transcoding for images yet :(
return;
- } else if (item.upnp_class.has_prefix (MediaItem.MUSIC_CLASS)) {
- this.add_audio_resources (resources, item);
- this.add_video_resources (resources, item);
- } else {
- this.add_video_resources (resources, item);
- this.add_audio_resources (resources, item);
}
- }
- public Transcoder get_transcoder (string target) throws Error {
- Transcoder transcoder = null;
+ // First add resource of the transcoders that are primarily meant for
+ // the UPnP class of the item concerned
+ foreach (var transcoder in this.transcoders) {
+ if (item.upnp_class.has_prefix (transcoder.upnp_class)) {
+ transcoder.add_resources (resources, item, this);
+ }
+ }
- foreach (var iter in this.audio_transcoders) {
- if (iter.can_handle (target)) {
- transcoder = iter;
+ // Then add resources from other transcoders
+ foreach (var transcoder in this.transcoders) {
+ if (!item.upnp_class.has_prefix (transcoder.upnp_class)) {
+ transcoder.add_resources (resources, item, this);
}
}
+ }
- foreach (var iter in this.video_transcoders) {
+ public Transcoder get_transcoder (string target) throws Error {
+ Transcoder transcoder = null;
+
+ foreach (var iter in this.transcoders) {
if (iter.can_handle (target)) {
transcoder = iter;
}
@@ -82,21 +83,5 @@
return transcoder;
}
-
- private void add_audio_resources (ArrayList<DIDLLiteResource?> resources,
- MediaItem item)
- throws Error {
- foreach (var transcoder in this.audio_transcoders) {
- transcoder.add_resources (resources, item, this);
- }
- }
-
- private void add_video_resources (ArrayList<DIDLLiteResource?> resources,
- MediaItem item)
- throws Error {
- foreach (var transcoder in this.video_transcoders) {
- transcoder.add_resources (resources, item, this);
- }
- }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]