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