Author: dmeyer
Date: Tue Dec  5 21:07:09 2006
New Revision: 2150

Modified:
   trunk/popcorn/src/backends/base.py
   trunk/popcorn/src/backends/gstreamer/__init__.py
   trunk/popcorn/src/backends/manager.py
   trunk/popcorn/src/backends/mplayer/__init__.py
   trunk/popcorn/src/backends/xine/__init__.py
   trunk/popcorn/src/ptypes.py

Log:
make caps a dict

Modified: trunk/popcorn/src/backends/base.py
==============================================================================
--- trunk/popcorn/src/backends/base.py  (original)
+++ trunk/popcorn/src/backends/base.py  Tue Dec  5 21:07:09 2006
@@ -162,8 +162,6 @@
         """
         Set a window for the player.
         """
-        if not self.has_capability(CAP_VIDEO):
-            raise PlayerCapError, "Player doesn't have CAP_VIDEO"
         self._window = window
 
 
@@ -185,8 +183,6 @@
         """
         Set a new output size.
         """
-        if not self.has_capability(CAP_VIDEO):
-            raise PlayerCapError, "Player doesn't have CAP_VIDEO"
         self._size = size
         self._aspect = aspect
         if not aspect and size and size[0] and size[1]:
@@ -197,8 +193,6 @@
         """
         Get output size.
         """
-        if not self.has_capability(CAP_VIDEO):
-            raise PlayerCapError, "Player doesn't have CAP_VIDEO"
         return self._size
 
 
@@ -206,8 +200,6 @@
         """
         Set special output aspect ratio.
         """
-        if not self.has_capability(CAP_VIDEO):
-            raise PlayerCapError, "Player doesn't have CAP_VIDEO"
         self._aspect = aspect
 
 
@@ -215,8 +207,6 @@
         """
         Get output aspect ratio.
         """
-        if not self.has_capability(CAP_VIDEO):
-            raise PlayerCapError, "Player doesn't have CAP_VIDEO"
         return self._aspect
 
 

Modified: trunk/popcorn/src/backends/gstreamer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/gstreamer/__init__.py    (original)
+++ trunk/popcorn/src/backends/gstreamer/__init__.py    Tue Dec  5 21:07:09 2006
@@ -3,13 +3,27 @@
 from kaa.popcorn.ptypes import *
 
 def get_capabilities():
-    caps = (CAP_VIDEO, CAP_AUDIO, CAP_OSD, CAP_CANVAS, CAP_DVD, CAP_DVD_MENUS,
-           CAP_DYNAMIC_FILTERS, CAP_VARIABLE_SPEED, CAP_VISUALIZATION,
-           CAP_DEINTERLACE)
+    capabilities = {
+        CAP_CANVAS : False,
+        CAP_CANVAS : False,
+        CAP_DYNAMIC_FILTERS : False,
+        CAP_VARIABLE_SPEED : False,
+        CAP_VISUALIZATION : True,
+
+        CAP_DVD : 0,
+        CAP_DVD_MENUS : 0,
+        CAP_DEINTERLACE : 8
+    }
     schemes = [ "file", "fifo", "dvd", "vcd", "cdda", "http", "tcp", "udp",
                 "rtp", "smb", "mms", "pnm", "rtsp" ]
-    exts = ["mpg", "mpeg", "iso"]  # FIXME: complete
-    return caps, schemes, exts
+
+    # list of extentions when to prefer this player
+    exts = ["mpg", "mpeg", "iso"]
+
+    # list of codecs when to prefer this player
+    codecs = []
+
+    return capabilities, schemes, exts, codecs
 
 
 register("gstreamer", GStreamer, get_capabilities)

Modified: trunk/popcorn/src/backends/manager.py
==============================================================================
--- trunk/popcorn/src/backends/manager.py       (original)
+++ trunk/popcorn/src/backends/manager.py       Tue Dec  5 21:07:09 2006
@@ -75,25 +75,28 @@
     """
 
     # Ensure all players have their capabilities fetched.
-    for player_id in _players.copy():
+    for player_id in _players:
         if _players[player_id]["loaded"]:
             continue
 
-        player_caps, schemes, exts = _players[player_id]["callback"]()
-        if player_caps != None:
-            _players[player_id].update({
-                "caps": player_caps,
-                "schemes": schemes,
-                # Prefer this player for these extensions.  (It's not a list of
-                # all supported extensions.)
-                "extensions": exts,
-                "loaded": True,
-            })
-            cls = _players[player_id]['class']
-            cls._player_caps = player_caps
-            cls._player_schemes = schemes
-        else:
-            del _players[player_id]
+        player_caps, schemes, exts, codecs = _players[player_id]["callback"]()
+
+        # FIXME: fix the usage of player_caps everywhere to acceped a
+        # dict with capabilities and the rating
+        player_caps = [ x for x in player_caps.keys() if x ]
+        
+        _players[player_id].update({
+            "caps": player_caps,
+            "schemes": schemes,
+            # Prefer this player for these extensions.
+            "extensions": exts,
+            # Prefer this player for these codecs.
+            "codecs": codecs,
+            "loaded": True,
+        })
+        cls = _players[player_id]['class']
+        cls._player_caps = player_caps
+        cls._player_schemes = schemes
 
 
     if force == mrl == caps == None:

Modified: trunk/popcorn/src/backends/mplayer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/mplayer/__init__.py      (original)
+++ trunk/popcorn/src/backends/mplayer/__init__.py      Tue Dec  5 21:07:09 2006
@@ -6,7 +6,19 @@
 from config import config
 
 def get_capabilities():
-    capabilities = [CAP_VIDEO, CAP_AUDIO, CAP_DVD, CAP_VARIABLE_SPEED]
+
+    capabilities = {
+        CAP_CANVAS : False,
+        CAP_CANVAS : False,
+        CAP_DYNAMIC_FILTERS : False,
+        CAP_VARIABLE_SPEED : True,
+        CAP_VISUALIZATION : True,
+
+        CAP_DVD : 8,
+        CAP_DVD_MENUS : 1,
+        CAP_DEINTERLACE : 8
+    }
+
     mp_cmd = config.path
     if not mp_cmd:
         mp_cmd = kaa.utils.which("mplayer")
@@ -15,14 +27,19 @@
         return None, None, None
 
     if "overlay" in info["video_filters"]:
-        capabilities.append(CAP_OSD)
+        capabilities[CAP_OSD] = True
     if "outbuf" in info["video_filters"]:
-        capabilities.append(CAP_CANVAS)
+        capabilities[CAP_CANVAS] = True
 
     schemes = ["file", "vcd", "cdda", "cue", "tivo", "http", "mms", "rtp",
                 "rtsp", "ftp", "udp", "sdp", "dvd", "fifo"]
 
-    exts = ["avi", "wmv", "mkv", "asf", "mov"]  # FIXME: complete.
-    return capabilities, schemes, exts
+    # list of extentions when to prefer this player
+    exts = ["mpg", "mpeg", "mov"]
+
+    # list of codecs when to prefer this player
+    codecs = []
+
+    return capabilities, schemes, exts, codecs
 
 register("mplayer", MPlayer, get_capabilities)

Modified: trunk/popcorn/src/backends/xine/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/xine/__init__.py (original)
+++ trunk/popcorn/src/backends/xine/__init__.py Tue Dec  5 21:07:09 2006
@@ -3,13 +3,27 @@
 from kaa.popcorn.ptypes import *
 
 def get_capabilities():
-    caps = (CAP_VIDEO, CAP_AUDIO, CAP_OSD, CAP_CANVAS, CAP_DVD, CAP_DVD_MENUS,
-           CAP_DYNAMIC_FILTERS, CAP_VARIABLE_SPEED, CAP_VISUALIZATION,
-           CAP_DEINTERLACE)
+    capabilities = {
+        CAP_CANVAS : True,
+        CAP_CANVAS : True,
+        CAP_DYNAMIC_FILTERS : False,
+        CAP_VARIABLE_SPEED : True,
+        CAP_VISUALIZATION : True,
+
+        CAP_DVD : 8,
+        CAP_DVD_MENUS : 8,
+        CAP_DEINTERLACE : 8
+    }
     schemes = [ "file", "fifo", "dvd", "vcd", "cdda", "http", "tcp", "udp",
                 "rtp", "smb", "mms", "pnm", "rtsp", "pvr" ]
-    exts = ["mpg", "mpeg", "iso", "avi", "mkv", "wmv", "mov", "asf"]  # FIXME: 
complete
-    return caps, schemes, exts
+
+    # list of extentions when to prefer this player
+    exts = ["mpg", "mpeg", "iso"]
+
+    # list of codecs when to prefer this player
+    codecs = []
+
+    return capabilities, schemes, exts, codecs
 
 
 register("xine", Xine, get_capabilities)

Modified: trunk/popcorn/src/ptypes.py
==============================================================================
--- trunk/popcorn/src/ptypes.py (original)
+++ trunk/popcorn/src/ptypes.py Tue Dec  5 21:07:09 2006
@@ -27,8 +27,6 @@
 # -----------------------------------------------------------------------------
 
 CAP_NONE  = 0
-CAP_VIDEO = 1
-CAP_AUDIO = 2
 CAP_OSD   = 3
 CAP_DVD = 4
 CAP_DVD_MENUS = 5

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to