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