[rygel] core: Better distance calculation for transcoders



commit c01f24c9fd2143149b66172fe8fbd70fe01a1d6d
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Tue Aug 25 18:13:43 2009 +0300

    core: Better distance calculation for transcoders

 src/rygel/rygel-l16-transcoder.vala   |    8 ++++++--
 src/rygel/rygel-mp2ts-transcoder.vala |    6 +++++-
 src/rygel/rygel-mp3-transcoder.vala   |   12 +++++++++---
 3 files changed, 20 insertions(+), 6 deletions(-)
---
diff --git a/src/rygel/rygel-l16-transcoder.vala b/src/rygel/rygel-l16-transcoder.vala
index f534fd8..49ba980 100644
--- a/src/rygel/rygel-l16-transcoder.vala
+++ b/src/rygel/rygel-l16-transcoder.vala
@@ -87,9 +87,11 @@ internal class Rygel.L16Transcoder : Rygel.Transcoder {
             return uint.MAX;
         }
 
-        uint distance = uint.MIN;
+        uint distance;
+
+        if (item.upnp_class.has_prefix (MediaItem.AUDIO_CLASS)) {
+            distance = uint.MIN;
 
-        if (item.upnp_class.has_prefix (MediaItem.MUSIC_CLASS)) {
             if (item.sample_freq > 0) {
                 distance += (item.sample_freq - FREQUENCY).abs ();
             }
@@ -101,6 +103,8 @@ internal class Rygel.L16Transcoder : Rygel.Transcoder {
             if (item.bits_per_sample > 0) {
                 distance += (item.bits_per_sample - WIDTH).abs ();
             }
+        } else {
+            distance = uint.MAX / 2;
         }
 
         return distance;
diff --git a/src/rygel/rygel-mp2ts-transcoder.vala b/src/rygel/rygel-mp2ts-transcoder.vala
index 769b966..c4afac6 100644
--- a/src/rygel/rygel-mp2ts-transcoder.vala
+++ b/src/rygel/rygel-mp2ts-transcoder.vala
@@ -81,9 +81,11 @@ internal class Rygel.MP2TSTranscoder : Rygel.Transcoder {
             return uint.MAX;
         }
 
-        uint distance = uint.MIN;
+        uint distance;
 
         if (item.upnp_class.has_prefix (MediaItem.VIDEO_CLASS)) {
+            distance = uint.MIN;
+
             if (item.bitrate > 0) {
                 distance += (item.bitrate - BITRATE).abs ();
             }
@@ -95,6 +97,8 @@ internal class Rygel.MP2TSTranscoder : Rygel.Transcoder {
             if (item.height > 0) {
                 distance += (item.height - HEIGHT[this.profile]).abs ();
             }
+        } else {
+            distance = uint.MAX / 2;
         }
 
         return distance;
diff --git a/src/rygel/rygel-mp3-transcoder.vala b/src/rygel/rygel-mp3-transcoder.vala
index da68384..398725b 100644
--- a/src/rygel/rygel-mp3-transcoder.vala
+++ b/src/rygel/rygel-mp3-transcoder.vala
@@ -69,10 +69,16 @@ internal class Rygel.MP3Transcoder : Rygel.Transcoder {
             return uint.MAX;
         }
 
-        uint distance = uint.MIN;
+        uint distance;
 
-        if (item.bitrate > 0) {
-            distance += (item.bitrate - BITRATE).abs ();
+        if (item.upnp_class.has_prefix (MediaItem.AUDIO_CLASS)) {
+            distance = uint.MIN;
+
+            if (item.bitrate > 0) {
+                distance += (item.bitrate - BITRATE).abs ();
+            }
+        } else {
+            distance = uint.MAX / 2;
         }
 
         return distance;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]