From c01f24c9fd2143149b66172fe8fbd70fe01a1d6d Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Tue, 25 Aug 2009 18:13:43 +0300 Subject: [PATCH] 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; -- 2.7.4