[rygel] core: Better distance calculation for transcoders
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel] core: Better distance calculation for transcoders
- Date: Wed, 26 Aug 2009 11:46:07 +0000 (UTC)
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]