Author: dmeyer
Date: Thu Feb 15 13:44:08 2007
New Revision: 2490

Modified:
   trunk/popcorn/src/backends/gstreamer/__init__.py
   trunk/popcorn/src/backends/manager.py
   trunk/popcorn/src/backends/mplayer/__init__.py
   trunk/popcorn/src/backends/mplayer/player.py
   trunk/popcorn/src/backends/xine/__init__.py
   trunk/popcorn/src/config.cxml
   trunk/popcorn/src/generic.py

Log:
support x11 for mplayer

Modified: trunk/popcorn/src/backends/gstreamer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/gstreamer/__init__.py    (original)
+++ trunk/popcorn/src/backends/gstreamer/__init__.py    Thu Feb 15 13:44:08 2007
@@ -60,7 +60,10 @@
     # list of codecs when to prefer this player
     codecs = config.preferred.codecs.split(',')
 
-    return capabilities, schemes, exts, codecs
+    # list of video driver
+    vo = [ 'xv' ]
+
+    return capabilities, schemes, exts, codecs, vo
 
 
 def import_backend():

Modified: trunk/popcorn/src/backends/manager.py
==============================================================================
--- trunk/popcorn/src/backends/manager.py       (original)
+++ trunk/popcorn/src/backends/manager.py       Thu Feb 15 13:44:08 2007
@@ -79,7 +79,7 @@
 
 
 def get_player_class(media, caps = None, exclude = None, force = None,
-                     preferred = None):
+                     video_out = True):
     """
     Searches the registered players for the most capable player given the mrl
     or required capabilities.  A specific player can be returned by specifying
@@ -96,7 +96,7 @@
         if _players[player_id]["loaded"]:
             continue
 
-        player_caps, schemes, exts, codecs = _players[player_id]["callback"]()
+        player_caps, schemes, exts, codecs, vo = 
_players[player_id]["callback"]()
 
         _players[player_id].update({
             "caps": player_caps,
@@ -105,6 +105,8 @@
             "extensions": exts,
             # Prefer this player for these codecs.
             "codecs": codecs,
+            # Supported video driver
+            "vdriver": vo,
             "loaded": True,
         })
 
@@ -149,6 +151,10 @@
             log.debug('skip %s, in exclude list', player_id)
             continue
 
+        if video_out and config.video.driver not in player['vdriver']:
+            # video driver not supported
+            continue
+
         rating = 0
         if caps:
             # Rate player on the given capabilities. If one or more needed
@@ -175,7 +181,7 @@
                 # player is good at this extension
                 rating += 3
             
-        if preferred == player_id:
+        if config.preferred == player_id:
             rating += 2
 
         log.debug('%s rating: %s', player_id, rating)

Modified: trunk/popcorn/src/backends/mplayer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/mplayer/__init__.py      (original)
+++ trunk/popcorn/src/backends/mplayer/__init__.py      Thu Feb 15 13:44:08 2007
@@ -78,7 +78,10 @@
     # list of codecs when to prefer this player
     codecs = config.preferred.codecs.split(',')
 
-    return capabilities, schemes, exts, codecs
+    # list of video driver
+    vo = [ 'xv', 'x11' ]
+
+    return capabilities, schemes, exts, codecs, vo
 
 
 def import_backend():

Modified: trunk/popcorn/src/backends/mplayer/player.py
==============================================================================
--- trunk/popcorn/src/backends/mplayer/player.py        (original)
+++ trunk/popcorn/src/backends/mplayer/player.py        Thu Feb 15 13:44:08 2007
@@ -392,7 +392,8 @@
             filters.append('dsize=%s:%s:0' % size)
 
         # add software scaler based on dsize arguments
-        if self._properties.get('software-scaler'):
+        if self._properties.get('software-scaler') or \
+               config.video.driver in ('x11',):
             filters.append('scale=0:0')
             args.add(sws=2)
 
@@ -414,7 +415,8 @@
             else:
                 args.append('-fs')
             display = self._window.get_display().get_string()
-            args.add(vo='xv', display=display, colorkey=config.video.colorkey)
+            args.add(vo=config.video.driver, display=display,
+                     colorkey=config.video.colorkey)
         else:
             # FIXME: add support for DFB/FB/etc
             args.add(vo='null')

Modified: trunk/popcorn/src/backends/xine/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/xine/__init__.py (original)
+++ trunk/popcorn/src/backends/xine/__init__.py Thu Feb 15 13:44:08 2007
@@ -66,7 +66,10 @@
     # list of codecs when to prefer this player
     codecs = config.preferred.codecs.split(',')
 
-    return capabilities, schemes, exts, codecs
+    # list of video driver
+    vo = [ 'xv' ]
+
+    return capabilities, schemes, exts, codecs, vo
 
 
 def import_backend():

Modified: trunk/popcorn/src/config.cxml
==============================================================================
--- trunk/popcorn/src/config.cxml       (original)
+++ trunk/popcorn/src/config.cxml       Thu Feb 15 13:44:08 2007
@@ -17,6 +17,7 @@
         <var name="driver" default="xv">
             <values>
                 <value>xv</value>
+                <value>x11</value>
             </values>
             <desc>
                 Video driver; xv is the only supported video driver at this

Modified: trunk/popcorn/src/generic.py
==============================================================================
--- trunk/popcorn/src/generic.py        (original)
+++ trunk/popcorn/src/generic.py        Thu Feb 15 13:44:08 2007
@@ -170,7 +170,7 @@
             if not getattr(config, p).activate and not p in exclude:
                 exclude.append(p)
         return backends.manager.get_player_class(\
-            self._media, self._open_caps, exclude, player, config.preferred)
+            self._media, self._open_caps, exclude, player, self._window)
 
 
     def _state_change(self, old_state, state):

-------------------------------------------------------------------------
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