Author: dmeyer
Date: Tue Jan  2 15:54:01 2007
New Revision: 2327

Removed:
   trunk/popcorn/src/utils/mrl.py
Modified:
   trunk/popcorn/src/backends/base.py
   trunk/popcorn/src/backends/gstreamer/player.py
   trunk/popcorn/src/backends/manager.py
   trunk/popcorn/src/backends/mplayer/player.py
   trunk/popcorn/src/backends/xine/player.py
   trunk/popcorn/src/generic.py
   trunk/popcorn/src/utils/__init__.py

Log:
use kaa.metadata object and not mrl internal

Modified: trunk/popcorn/src/backends/base.py
==============================================================================
--- trunk/popcorn/src/backends/base.py  (original)
+++ trunk/popcorn/src/backends/base.py  Tue Jan  2 15:54:01 2007
@@ -37,7 +37,6 @@
 
 # kaa.popcorn imports
 from kaa.popcorn.ptypes import *
-from kaa.popcorn.utils import parse_mrl
 
 # get logging object
 log = logging.getLogger('popcorn')

Modified: trunk/popcorn/src/backends/gstreamer/player.py
==============================================================================
--- trunk/popcorn/src/backends/gstreamer/player.py      (original)
+++ trunk/popcorn/src/backends/gstreamer/player.py      Tue Jan  2 15:54:01 2007
@@ -54,11 +54,11 @@
 
     # public API
 
-    def open(self, mrl):
+    def open(self, media):
         """
-        Open mrl.
+        Open media.
         """
-        self._mrl = mrl
+        self._mrl = media.url
         if not self._gst:
             script = os.path.join(os.path.dirname(__file__), 'main.py')
             self._gst = ChildProcess(self, script)

Modified: trunk/popcorn/src/backends/manager.py
==============================================================================
--- trunk/popcorn/src/backends/manager.py       (original)
+++ trunk/popcorn/src/backends/manager.py       Tue Jan  2 15:54:01 2007
@@ -37,7 +37,6 @@
 
 # kaa.popcorn imports
 from kaa.popcorn.ptypes import *
-from kaa.popcorn.utils import parse_mrl
 
 # backend imports
 from base import MediaPlayer
@@ -88,7 +87,7 @@
     }
 
 
-def get_player_class((mrl, metadata), caps = None, exclude = None, force = 
None,
+def get_player_class(media, caps = None, exclude = None, force = None,
                      preferred = None):
     """
     Searches the registered players for the most capable player given the mrl
@@ -122,17 +121,15 @@
         # Note: cls._player_caps are without the rating!
         cls._player_caps = [ x for x in player_caps.keys() if x ]
 
-    scheme, path = parse_mrl(mrl)
-
     if force != None and force in _players:
         player = _players[force]
-        if scheme not in player["schemes"]:
+        if media.scheme not in player["schemes"]:
             return None
         # return forced player, no matter if the other
         # capabilities match or not
         return player["class"]
 
-    ext = os.path.splitext(path)[1]
+    ext = os.path.splitext(media.url)[1]
     if ext:
         ext = ext[1:]  # Eat leading '.'
 
@@ -142,19 +139,18 @@
         exclude  = (exclude,)
 
     codecs = []
-    if metadata:
-        if metadata.media == kaa.metadata.MEDIA_AV:
-            codecs.extend( [ x.fourcc for x in metadata.video if x.fourcc ] )
-            codecs.extend( [ x.fourcc for x in metadata.audio if x.fourcc ] )
-        if 'fourcc' in metadata and metadata.fourcc:
-            codecs.append(metadata.fourcc)
+    if media.media == kaa.metadata.MEDIA_AV:
+        codecs.extend( [ x.fourcc for x in media.video if x.fourcc ] )
+        codecs.extend( [ x.fourcc for x in media.audio if x.fourcc ] )
+    if 'fourcc' in media and media.fourcc:
+        codecs.append(media.fourcc)
 
     choice = None
 
     for player_id, player in _players.items():
-        if scheme not in player["schemes"]:
-            # MRL scheme is not supported by this player.
-            log.debug('skip %s, does not support %s', player_id, scheme)
+        if media.scheme not in player["schemes"]:
+            # scheme is not supported by this player.
+            log.debug('skip %s, does not support %s', player_id, media.scheme)
             continue
         
         if exclude and player_id in exclude:

Modified: trunk/popcorn/src/backends/mplayer/player.py
==============================================================================
--- trunk/popcorn/src/backends/mplayer/player.py        (original)
+++ trunk/popcorn/src/backends/mplayer/player.py        Tue Jan  2 15:54:01 2007
@@ -45,7 +45,6 @@
 
 # kaa.popcorn base imports
 from kaa.popcorn.backends.base import MediaPlayer
-from kaa.popcorn.utils import parse_mrl
 from kaa.popcorn.ptypes import *
 
 # start mplayer in gdb for debugging
@@ -343,20 +342,16 @@
     # Methods for MediaPlayer subclasses
     #
 
-    def open(self, mrl):
+    def open(self, media):
         """
-        Open mrl.
+        Open media.
         """
         if self.get_state() != STATE_NOT_RUNNING:
             raise RuntimeError('mplayer not in STATE_NOT_RUNNING')
 
-        scheme, path = parse_mrl(mrl)
-
         self._file_args = []
-        if scheme in ("file", "fifo"):
-            self._file = path
-        elif scheme == "dvd":
-            file, title = re.search("(.*?)(\/\d+)?$", path).groups()
+        if media.scheme == "dvd":
+            file, title = re.search("(.*?)(\/\d+)?$", media.url[4:]).groups()
             if file.replace('/', ''):
                 if not os.path.isfile(file):
                     raise ValueError, "Invalid ISO file: %s" % file
@@ -366,7 +361,7 @@
             if title:
                 self._file += title[1:]
         else:
-            self._file = mrl
+            self._file = media.url
 
         self._state = STATE_OPENING
         self._audio_delay = 0.0

Modified: trunk/popcorn/src/backends/xine/player.py
==============================================================================
--- trunk/popcorn/src/backends/xine/player.py   (original)
+++ trunk/popcorn/src/backends/xine/player.py   Tue Jan  2 15:54:01 2007
@@ -41,8 +41,8 @@
 
 # kaa.popcorn imports
 from kaa.popcorn.backends.base import MediaPlayer
-from kaa.popcorn.utils import ChildProcess, parse_mrl
 from kaa.popcorn.ptypes import *
+from kaa.popcorn.utils import ChildProcess
 
 # get logging object
 log = logging.getLogger('popcorn.xine')
@@ -244,14 +244,11 @@
     # Methods for MediaPlayer subclasses
     #
 
-    def open(self, mrl):
+    def open(self, media):
         """
-        Open mrl.
+        Open media.
         """
-        scheme, path = parse_mrl(mrl)
-        path = path or '/'
-
-        self._mrl = "%s:%s" % (scheme, path)
+        self._mrl = media.url
         if not self._xine:
             self._child_spawn()
 

Modified: trunk/popcorn/src/generic.py
==============================================================================
--- trunk/popcorn/src/generic.py        (original)
+++ trunk/popcorn/src/generic.py        Tue Jan  2 15:54:01 2007
@@ -42,7 +42,6 @@
 # kaa.popcorn imports
 import backends.manager
 from config import config as default_config
-from kaa.popcorn.utils import parse_mrl
 from ptypes import *
 
 # get logging object
@@ -81,7 +80,7 @@
     def __init__(self, window=None, config=default_config):
 
         self._player = None
-        self._media = ( None, None )
+        self._media = None
         self._size = (0,0)
         self.set_window(window)
 
@@ -277,7 +276,7 @@
         self._player.set_window(self._window)
         self._player.set_size(self._size)
         # FIXME: maybe give the whole media object to the child
-        self._player.open(self._media[0])
+        self._player.open(self._media)
         self.signals['open'].emit()
 
 
@@ -292,11 +291,14 @@
         if kaa.notifier.shutting_down:
             return False
 
-        if mrl.find('://') == -1:
-            scheme, path = parse_mrl(mrl)
-            mrl = "%s://%s" % (scheme, path)
-
-        self._media = mrl, kaa.metadata.parse(mrl)
+        self._media = kaa.metadata.parse(mrl)
+        if not self._media:
+            # unable to detect, create dummy
+            if mrl.find('://') == -1:
+                mrl = 'file://%s'
+            self._media = kaa.metadata.Media(hash=dict(url=mrl, 
media='MEDIA_UNKNOWN'))
+        self._media.scheme = self._media.url[:self._media.url.find(':/')]
+        
         self._open_caps = caps
         self._failed_player = []
         cls = self._get_player_class(player)

Modified: trunk/popcorn/src/utils/__init__.py
==============================================================================
--- trunk/popcorn/src/utils/__init__.py (original)
+++ trunk/popcorn/src/utils/__init__.py Tue Jan  2 15:54:01 2007
@@ -28,4 +28,3 @@
 
 # util imports
 from ipc import ChildProcess, Player
-from mrl import parse_mrl

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