Author: dmeyer
Date: Fri Dec 15 19:13:54 2006
New Revision: 2240
Modified:
trunk/metadata/src/__init__.py
trunk/metadata/src/disc/audio.py
trunk/metadata/src/disc/cdinfo.py
trunk/metadata/src/disc/core.py
trunk/metadata/src/disc/data.py
trunk/metadata/src/disc/dvd.py
trunk/metadata/src/disc/vcd.py
trunk/metadata/src/factory.py
Log:
Bufixes
Modified: trunk/metadata/src/__init__.py
==============================================================================
--- trunk/metadata/src/__init__.py (original)
+++ trunk/metadata/src/__init__.py Fri Dec 15 19:13:54 2006
@@ -38,7 +38,7 @@
# import factory code for kaa.metadata access
from factory import *
-from disc.cdinfo import getid
+from disc.cdinfo import get_id as get_discid
from mediainfo import Media, MEDIA_AUDIO, MEDIA_VIDEO, MEDIA_IMAGE, \
MEDIA_AV, MEDIA_SUBTITLE, MEDIA_CONTAINER, MEDIA_DIRECTORY, MEDIA_DISC, \
MEDIA_GAME
Modified: trunk/metadata/src/disc/audio.py
==============================================================================
--- trunk/metadata/src/disc/audio.py (original)
+++ trunk/metadata/src/disc/audio.py Fri Dec 15 19:13:54 2006
@@ -50,7 +50,7 @@
core.Disc.__init__(self)
self.offset = 0
# check disc
- if self.is_disc(self, device) != 1:
+ if self.is_disc(device) != 1:
raise core.ParseError()
self.query(device)
@@ -61,7 +61,7 @@
def query(self, device):
- cdromfd = cdinfo.audiocd_id(device)
+ cdromfd = cdinfo.audiocd_open(device)
disc_id = cdinfo.audiocd_id(cdromfd)
if kaa.metadata.USE_NETWORK:
Modified: trunk/metadata/src/disc/cdinfo.py
==============================================================================
--- trunk/metadata/src/disc/cdinfo.py (original)
+++ trunk/metadata/src/disc/cdinfo.py Fri Dec 15 19:13:54 2006
@@ -9,8 +9,11 @@
from fcntl import ioctl
# cdrom module
-import _cdrom
-
+try:
+ import _cdrom
+except ImportError:
+ _cdrom = None
+
# get logging object
log = logging.getLogger('metadata')
@@ -48,15 +51,15 @@
return [discid, last] + track_frames[:-1] + [ track_frames[-1] / 75 ]
-def audiocd_toc_header(self, device):
+def audiocd_toc_header(device):
return _cdrom.toc_header(device)
-def audiocd_toc_entry(self, device):
- return _cdrom.toc_entry(device)
+def audiocd_toc_entry(device, track):
+ return _cdrom.toc_entry(device, track)
-def audiocd_leadout(self, device):
+def audiocd_leadout(device):
return _cdrom.leadout(device)
@@ -163,10 +166,14 @@
_id_cache = {}
-def getid(device, handle_mix=0):
+def get_id(device, handle_mix=0):
"""
return the disc id of the device or None if no disc is there
"""
+ if not _cdrom:
+ log.debug("kaa.metadata not compiled with CDROM support")
+ return 0, None
+
global _id_cache
try:
if _id_cache[device][0] + 0.9 > time.time():
Modified: trunk/metadata/src/disc/core.py
==============================================================================
--- trunk/metadata/src/disc/core.py (original)
+++ trunk/metadata/src/disc/core.py Fri Dec 15 19:13:54 2006
@@ -43,6 +43,7 @@
EXTENSION_DEVICE = mediainfo.EXTENSION_DEVICE
EXTENSION_DIRECTORY = mediainfo.EXTENSION_DIRECTORY
+ParseError = mediainfo.ParseError
# get logging object
log = logging.getLogger('metadata')
@@ -55,7 +56,7 @@
media = mediainfo.MEDIA_DISC
def is_disc(self, device):
- (type, self.id) = cdinfo.cdrom_disc_id(device, handle_mix=1)
+ (type, self.id) = cdinfo.get_id(device, handle_mix=1)
if type != 2:
if type == 4:
self.mixed = 1
Modified: trunk/metadata/src/disc/data.py
==============================================================================
--- trunk/metadata/src/disc/data.py (original)
+++ trunk/metadata/src/disc/data.py Fri Dec 15 19:13:54 2006
@@ -35,7 +35,7 @@
class DataDisc(core.Disc):
def __init__(self,device):
core.Disc.__init__(self)
- if self.is_disc(self, device) != 2:
+ if self.is_disc(device) != 2:
raise core.ParseError()
self.offset = 0
self.mime = 'unknown/unknown'
Modified: trunk/metadata/src/disc/dvd.py
==============================================================================
--- trunk/metadata/src/disc/dvd.py (original)
+++ trunk/metadata/src/disc/dvd.py Fri Dec 15 19:13:54 2006
@@ -41,8 +41,11 @@
# kaa.metadata.disc imports
import core
-import _ifoparser
-
+try:
+ import _ifoparser
+except ImportError:
+ _ifoparser = None
+
# get logging object
log = logging.getLogger('metadata')
@@ -137,6 +140,9 @@
def _parse(self, device):
+ if not _ifoparser:
+ log.debug("kaa.metadata not compiled with DVD support")
+ raise core.ParseError()
info = _ifoparser.parse(device)
if not info:
raise core.ParseError()
@@ -158,7 +164,7 @@
def parseDisc(self, device):
- if self.is_disc(self, device) != 2:
+ if self.is_disc(device) != 2:
raise core.ParseError()
# brute force reading of the device to find out if it is a DVD
Modified: trunk/metadata/src/disc/vcd.py
==============================================================================
--- trunk/metadata/src/disc/vcd.py (original)
+++ trunk/metadata/src/disc/vcd.py Fri Dec 15 19:13:54 2006
@@ -31,7 +31,7 @@
# kaa.metadata.disc imports
import core
-import cdrom
+import cdinfo
class VCD(core.Disc):
def __init__(self,device):
@@ -46,7 +46,7 @@
def parseDisc(self, device):
type = None
- if self.is_disc(self, device) != 2:
+ if self.is_disc(device) != 2:
raise core.ParseError()
# brute force reading of the device to find out if it is a VCD
@@ -67,7 +67,7 @@
# read the tracks to generate the title list
device = open(device)
- (first, last) = cdrom.toc_header(device)
+ (first, last) = cdinfo.audio_toc_header(device)
lmin = 0
lsec = 0
@@ -75,9 +75,9 @@
num = 0
for i in range(first, last + 2):
if i == last + 1:
- min, sec, frames = cdrom.leadout(device)
+ min, sec, frames = cdinfo.audio_leadout(device)
else:
- min, sec, frames = cdrom.toc_entry(device, i)
+ min, sec, frames = cdinfo.audio_toc_entry(device, i)
if num:
vi = core.VideoStream()
# XXX add more static information here, it's also possible
Modified: trunk/metadata/src/factory.py
==============================================================================
--- trunk/metadata/src/factory.py (original)
+++ trunk/metadata/src/factory.py Fri Dec 15 19:13:54 2006
@@ -132,26 +132,10 @@
import video.mkv
import misc.xml
- # import some disc modules (may fail)
- try:
- import disc.vcd
- import disc.audio
- except ImportError, e:
- # looks like cdrom.so was not created
- if log.level < 30:
- log.error(e)
-
- try:
- import disc.dvd
- except ImportError, e:
- if log.level < 30:
- log.error(e)
-
- try:
- import disc.data
- except ImportError, e:
- if log.level < 30:
- log.error(e)
+ import disc.vcd
+ import disc.audio
+ import disc.dvd
+ import disc.data
import audio.mp3
import audio.webradio
@@ -322,13 +306,10 @@
return self.create_from_url(name)
if not os.path.exists(name):
return None
- try:
- if (os.uname()[0] == 'FreeBSD' and \
- stat.S_ISCHR(os.stat(name)[stat.ST_MODE])) \
- or stat.S_ISBLK(os.stat(name)[stat.ST_MODE]):
- return self.create_from_device(name)
- except AttributeError:
- pass
+ if (os.uname()[0] == 'FreeBSD' and \
+ stat.S_ISCHR(os.stat(name)[stat.ST_MODE])) \
+ or stat.S_ISBLK(os.stat(name)[stat.ST_MODE]):
+ return self.create_from_device(name)
if os.path.isdir(name):
return self.create_from_directory(name)
return self.create_from_filename(name, force)
-------------------------------------------------------------------------
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