Author: dmeyer
Date: Fri Dec 15 16:12:40 2006
New Revision: 2237

Added:
   trunk/metadata/src/disc/audio.py
      - copied, changed from r2236, /trunk/metadata/src/disc/audioinfo.py
   trunk/metadata/src/disc/core.py
      - copied, changed from r2233, /trunk/metadata/src/disc/discinfo.py
   trunk/metadata/src/disc/data.py
      - copied, changed from r2233, /trunk/metadata/src/disc/datainfo.py
   trunk/metadata/src/disc/dvd.py
      - copied, changed from r2233, /trunk/metadata/src/disc/dvdinfo.py
   trunk/metadata/src/disc/vcd.py
      - copied, changed from r2233, /trunk/metadata/src/disc/vcdinfo.py
   trunk/metadata/src/misc/directory.py
      - copied, changed from r2233, /trunk/metadata/src/misc/dirinfo.py
   trunk/metadata/src/misc/xml.py
      - copied, changed from r2233, /trunk/metadata/src/misc/xmlinfo.py
   trunk/metadata/src/video/asf.py
      - copied, changed from r2233, /trunk/metadata/src/video/asfinfo.py
   trunk/metadata/src/video/core.py
   trunk/metadata/src/video/flv.py
      - copied, changed from r2233, /trunk/metadata/src/video/flvinfo.py
   trunk/metadata/src/video/mkv.py
      - copied, changed from r2233, /trunk/metadata/src/video/mkvinfo.py
   trunk/metadata/src/video/mov.py
      - copied, changed from r2233, /trunk/metadata/src/video/movinfo.py
   trunk/metadata/src/video/mpeg.py
      - copied, changed from r2233, /trunk/metadata/src/video/mpeginfo.py
   trunk/metadata/src/video/ogm.py
      - copied, changed from r2233, /trunk/metadata/src/video/ogminfo.py
   trunk/metadata/src/video/real.py
      - copied, changed from r2233, /trunk/metadata/src/video/realinfo.py
   trunk/metadata/src/video/riff.py
      - copied, changed from r2233, /trunk/metadata/src/video/riffinfo.py
   trunk/metadata/src/video/vcd.py
      - copied, changed from r2233, /trunk/metadata/src/video/vcdinfo.py
Removed:
   trunk/metadata/src/disc/audioinfo.py
   trunk/metadata/src/disc/datainfo.py
   trunk/metadata/src/disc/discinfo.py
   trunk/metadata/src/disc/dvdinfo.py
   trunk/metadata/src/disc/vcdinfo.py
   trunk/metadata/src/misc/dirinfo.py
   trunk/metadata/src/misc/xmlinfo.py
   trunk/metadata/src/video/asfinfo.py
   trunk/metadata/src/video/flvinfo.py
   trunk/metadata/src/video/mkvinfo.py
   trunk/metadata/src/video/movinfo.py
   trunk/metadata/src/video/mpeginfo.py
   trunk/metadata/src/video/ogminfo.py
   trunk/metadata/src/video/realinfo.py
   trunk/metadata/src/video/riffinfo.py
   trunk/metadata/src/video/vcdinfo.py
Modified:
   trunk/metadata/src/disc/DiscID.py
   trunk/metadata/src/factory.py

Log:
update the last *info files

Modified: trunk/metadata/src/disc/DiscID.py
==============================================================================
--- trunk/metadata/src/disc/DiscID.py   (original)
+++ trunk/metadata/src/disc/DiscID.py   Fri Dec 15 16:12:40 2006
@@ -23,37 +23,6 @@
 
     return ret
 
-def open(device=None, flags=None):
-    # Allow this function to be called with no arguments,
-    # specifying that we should call cdrom.open() with
-    # no arguments.
-    if device == None:
-        return cdrom.open()
-    elif flags == None:
-        return cdrom.open(device)
-    else:
-        return cdrom.open(device, flags)
-
-def disc_id(device):
-    (first, last) = cdrom.toc_header(device)
-
-    track_frames = []
-    checksum = 0
-    
-    for i in range(first, last + 1):
-       (min, sec, frame) = cdrom.toc_entry(device, i)
-       checksum = checksum + cddb_sum(min*60 + sec)
-       track_frames.append(min*60*75 + sec*75 + frame)
-
-    (min, sec, frame) = cdrom.leadout(device)
-    track_frames.append(min*60*75 + sec*75 + frame)
-
-    total_time = (track_frames[-1] / 75) - (track_frames[0] / 75)
-              
-    discid = ((checksum % 0xff) << 24 | total_time << 8 | last)
-
-    return [discid, last] + track_frames[:-1] + [ track_frames[-1] / 75 ]
-
 if __name__ == '__main__':
 
     dev_name = None

Copied: trunk/metadata/src/disc/audio.py (from r2236, 
/trunk/metadata/src/disc/audioinfo.py)
==============================================================================
--- /trunk/metadata/src/disc/audioinfo.py       (original)
+++ trunk/metadata/src/disc/audio.py    Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# audioinfo.py - support for audio cds
+# audio.py - support for audio cds
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -33,27 +33,25 @@
 import cdrom
 import logging
 
-# kaa imports
+# kaa.metadata imports
 import kaa.metadata
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
-from kaa.audio.core import Music as MusicInfo
+from kaa.metadata.audio.core import Music as AudioTrack
 
-# disc imports
-import discinfo
+# kaa.metadata.disc imports
+import core
 import DiscID
 import CDDB
 
 # get logging object
 log = logging.getLogger('metadata')
 
-class AudioDiscInfo(discinfo.DiscInfo):
+class AudioDisc(core.Disc):
     def __init__(self,device):
-        discinfo.DiscInfo.__init__(self)
+        core.Disc.__init__(self)
         self.offset = 0
         # check disc
-        if discinfo.DiscInfo.isDisc(self, device) != 1:
-            raise mediainfo.KaaMetadataParseError()
+        if self.is_disc(self, device) != 1:
+            raise core.ParseError()
 
         self.query(device)
         self.mime = 'audio/cd'
@@ -105,7 +103,7 @@
 
             if read_stat == 210:
                 for i in range(0, disc_id[1]):
-                    mi = MusicInfo()
+                    mi = AudioTrack()
                     mi.title = read_info['TTITLE' + `i`]
                     mi.album = self.title
                     mi.artist = self.artist
@@ -130,7 +128,7 @@
             log.error("failure getting disc info, status %i" % query_stat)
             self.no_caching = 1
             for i in range(0, disc_id[1]):
-                mi = MusicInfo()
+                mi = AudioTrack()
                 mi.title = 'Track %s' % (i+1)
                 mi.codec = 'PCM'
                 mi.samplerate = 44.1
@@ -175,4 +173,4 @@
         cdromfd.close()
 
 
-factory.register( 'audio/cd', mediainfo.EXTENSION_DEVICE, AudioDiscInfo )
+core.register( 'audio/cd', core.EXTENSION_DEVICE, AudioDisc )

Copied: trunk/metadata/src/disc/core.py (from r2233, 
/trunk/metadata/src/disc/discinfo.py)
==============================================================================
--- /trunk/metadata/src/disc/discinfo.py        (original)
+++ trunk/metadata/src/disc/core.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# discinfo.py - basic class for any discs containing collections of media.
+# core.py - basic class for any discs containing collections of media.
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -41,6 +41,10 @@
 
 # kaa imports
 from kaa.metadata import mediainfo
+from kaa.metadata.factory import register
+
+EXTENSION_DEVICE = mediainfo.EXTENSION_DEVICE
+VideoTrack = mediainfo.VideoInfo
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -208,12 +212,12 @@
     return disc_type, id
 
 
-class DiscInfo(mediainfo.CollectionInfo):
+class Disc(mediainfo.CollectionInfo):
 
     _keys = mediainfo.CollectionInfo._keys + [ 'mixed', 'label' ]
     media = mediainfo.MEDIA_DISC
     
-    def isDisc(self, device):
+    def is_disc(self, device):
         (type, self.id) = cdrom_disc_id(device, handle_mix=1)
         if type != 2:
             if type == 4:

Copied: trunk/metadata/src/disc/data.py (from r2233, 
/trunk/metadata/src/disc/datainfo.py)
==============================================================================
--- /trunk/metadata/src/disc/datainfo.py        (original)
+++ trunk/metadata/src/disc/data.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# datainfo.py - info about a normal data disc
+# data.py - info about a normal data disc
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -29,20 +29,18 @@
 #
 # -----------------------------------------------------------------------------
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
-from discinfo import DiscInfo
+# kaa.metadata.disc imports
+import core
 
-class DataDiscInfo(DiscInfo):
+class DataDisc(core.Disc):
     def __init__(self,device):
-        DiscInfo.__init__(self)
-        if DiscInfo.isDisc(self, device) != 2:
-            raise mediainfo.KaaMetadataParseError()
+        core.Disc.__init__(self)
+        if self.is_disc(self, device) != 2:
+            raise core.ParseError()
         self.offset = 0
         self.mime = 'unknown/unknown'
         self.type = 'CD'
         self.subtype = 'data'
 
 
-factory.register( 'cd/unknown', mediainfo.EXTENSION_DEVICE, DataDiscInfo )
+core.register( 'cd/unknown', core.EXTENSION_DEVICE, DataDisc )

Copied: trunk/metadata/src/disc/dvd.py (from r2233, 
/trunk/metadata/src/disc/dvdinfo.py)
==============================================================================
--- /trunk/metadata/src/disc/dvdinfo.py (original)
+++ trunk/metadata/src/disc/dvd.py      Fri Dec 15 16:12:40 2006
@@ -35,11 +35,12 @@
 import os
 import logging
 
-# kaa imports
-import ifoparser
+# kaa.metadata imports
 from kaa.metadata import mediainfo
-from kaa.metadata import factory
-from discinfo import DiscInfo
+
+# kaa.metadata.disc imports
+import core
+import ifoparser
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -60,7 +61,8 @@
         self.width  = _video_width[data[4]]
         self.height = _video_height[data[5]]
         self.codec  = 'MP2V'
-        
+
+
 class DVDAudio(mediainfo.AudioInfo):
 
     _keys = mediainfo.AudioInfo._keys + [ 'id' ]
@@ -101,12 +103,12 @@
             self.subtitles.append(mediainfo.SubtitleInfo(s))
 
 
-class DVDInfo(DiscInfo):
+class DVDInfo(core.Disc):
 
-    _keys = DiscInfo._keys + [ 'length' ]
+    _keys = core.Disc._keys + [ 'length' ]
 
     def __init__(self, device):
-        DiscInfo.__init__(self)
+        core.Disc.__init__(self)
         self.offset = 0
 
         if isinstance(device, file):
@@ -136,7 +138,7 @@
     def _parse(self, device):
         info = ifoparser.parse(device)
         if not info:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
         for pos, title in enumerate(info):
             ti = DVDTitle(title)
             ti.trackno = pos + 1
@@ -148,15 +150,15 @@
         if not (os.path.isdir(dirname+'/VIDEO_TS') or \
                 os.path.isdir(dirname+'/video_ts') or \
                 os.path.isdir(dirname+'/Video_ts')):
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
         # OK, try libdvdread
         self._parse(dirname)
         return 1
 
 
     def parseDisc(self, device):
-        if DiscInfo.isDisc(self, device) != 2:
-            raise mediainfo.KaaMetadataParseError()
+        if self.is_disc(self, device) != 2:
+            raise core.ParseError()
 
         # brute force reading of the device to find out if it is a DVD
         f = open(device,'rb')
@@ -165,7 +167,7 @@
 
         if buffer.find('UDF') == -1:
             f.close()
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # seems to be a DVD, read a little bit more
         buffer += f.read(550000)
@@ -174,7 +176,7 @@
         if buffer.find('VIDEO_TS') == -1 and \
                buffer.find('VIDEO_TS.IFO') == -1 and \
                buffer.find('OSTA UDF Compliant') == -1:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # OK, try libdvdread
         self._parse(device)
@@ -186,7 +188,7 @@
         buffer = f.read(60000)
 
         if buffer.find('UDF') == -1:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # seems to be a DVD, read a little bit more
         buffer += f.read(550000)
@@ -194,14 +196,12 @@
         if buffer.find('VIDEO_TS') == -1 and \
                buffer.find('VIDEO_TS.IFO') == -1 and \
                buffer.find('OSTA UDF Compliant') == -1:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # OK, try libdvdread
         self._parse(f.name)
 
 
-factory.register( 'video/dvd', mediainfo.EXTENSION_DEVICE, DVDInfo )
-
-factory.register('video/dvd', mediainfo.EXTENSION_DIRECTORY, DVDInfo)
-
-factory.register('video/dvd', ['iso'], DVDInfo)
+core.register( 'video/dvd', mediainfo.EXTENSION_DEVICE, DVDInfo )
+core.register('video/dvd', mediainfo.EXTENSION_DIRECTORY, DVDInfo)
+core.register('video/dvd', ['iso'], DVDInfo)

Copied: trunk/metadata/src/disc/vcd.py (from r2233, 
/trunk/metadata/src/disc/vcdinfo.py)
==============================================================================
--- /trunk/metadata/src/disc/vcdinfo.py (original)
+++ trunk/metadata/src/disc/vcd.py      Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# vcdinfo.py - parse vcd track informations
+# vcd.py - parse vcd track informations
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -29,15 +29,13 @@
 #
 # -----------------------------------------------------------------------------
 
-# kaa imports
-from kaa.metadata import factory
-from kaa.metadata import mediainfo
-from discinfo import DiscInfo
+# kaa.metadata.disc imports
+import core
 import cdrom
 
-class VCDInfo(DiscInfo):
+class VCD(core.Disc):
     def __init__(self,device):
-        DiscInfo.__init__(self)
+        core.Disc.__init__(self)
         self.offset = 0
         self.mime = 'video/vcd'
         self.type = 'CD'
@@ -48,8 +46,8 @@
 
     def parseDisc(self, device):
         type = None
-        if DiscInfo.isDisc(self, device) != 2:
-            raise mediainfo.KaaMetadataParseError()
+        if self.is_disc(self, device) != 2:
+            raise core.ParseError()
 
         # brute force reading of the device to find out if it is a VCD
         f = open(device,'rb')
@@ -65,7 +63,7 @@
             type = 'VCD'
 
         else:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # read the tracks to generate the title list
         device = open(device)
@@ -81,7 +79,7 @@
             else:
                 min, sec, frames = cdrom.toc_entry(device, i)
             if num:
-                vi = mediainfo.VideoInfo()
+                vi = core.VideoTrack()
                 # XXX add more static information here, it's also possible
                 # XXX to scan for more informations like fps
                 # XXX Settings to MPEG1/2 is a wild guess, maybe the track
@@ -97,4 +95,4 @@
         device.close()
 
 
-factory.register( 'video/vcd', mediainfo.EXTENSION_DEVICE, VCDInfo )
+core.register( 'video/vcd', core.EXTENSION_DEVICE, VCD )

Modified: trunk/metadata/src/factory.py
==============================================================================
--- trunk/metadata/src/factory.py       (original)
+++ trunk/metadata/src/factory.py       Fri Dec 15 16:12:40 2006
@@ -117,41 +117,39 @@
         import audio.ac3
         import audio.pcm
         import audio.adts
-        import video.riffinfo
-        import video.mpeginfo
-        import video.asfinfo
-        import video.movinfo
-        import video.flvinfo
+        import video.riff
+        import video.mpeg
+        import video.asf
+        import video.mov
+        import video.flv
         import image.jpg
         import image.png
         import image.tiff
         import image.bmp
         import image.gif
-        import video.vcdinfo
-        import video.realinfo
-        import video.ogminfo
-        import video.mkvinfo
-        import misc.xmlinfo
+        import video.vcd
+        import video.real
+        import video.ogm
+        import video.mkv
+        import misc.xml
 
         # import some disc modules (may fail)
         try:
-            import disc.discinfo
-            import disc.vcdinfo
-            import disc.audioinfo
+            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.dvdinfo
+            import disc.dvd
         except ImportError, e:
             if log.level < 30:
                 log.error(e)
 
-        # use fallback disc module
         try:
-            import disc.datainfo
+            import disc.data
         except ImportError, e:
             if log.level < 30:
                 log.error(e)
@@ -163,7 +161,7 @@
         import games.gameboy
         import games.snes
 
-        import misc.dirinfo
+        import misc.directory
 
 
     def create_from_file(self, file, force=True):

Copied: trunk/metadata/src/misc/directory.py (from r2233, 
/trunk/metadata/src/misc/dirinfo.py)
==============================================================================
--- /trunk/metadata/src/misc/dirinfo.py (original)
+++ trunk/metadata/src/misc/directory.py        Fri Dec 15 16:12:40 2006
@@ -1,11 +1,9 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# dvdinfo.py - parse dvd title structure
+# directory.py - parse directory information
 # -----------------------------------------------------------------------------
 # $Id$
 #
-# TODO: update the ifomodule and remove the lsdvd parser
-#
 # -----------------------------------------------------------------------------
 # kaa-Metadata - Media Metadata for Python
 # Copyright (C) 2003-2006 Thomas Schueppel, Dirk Meyer
@@ -39,22 +37,23 @@
 # kaa imports
 from kaa.strutils import unicode_to_str
 from kaa import xml
-from kaa.metadata.mediainfo import MediaInfo, MEDIACORE, \
-     EXTENSION_DIRECTORY, MEDIA_DIRECTORY
+
+# kaa.metadata imports
+import kaa.metadata.mediainfo as core
 from kaa.metadata.factory import register
 
 # get logging object
 log = logging.getLogger('metadata')
 
 
-class DirInfo(MediaInfo):
+class Directory(core.MediaInfo):
     """
     Simple parser for reading a .directory file.
     """
-    media = MEDIA_DIRECTORY
-    
+    media = core.MEDIA_DIRECTORY
+
     def __init__(self, directory):
-        MediaInfo.__init__(self)
+        core.MediaInfo.__init__(self)
         for func in (self.parse_dot_directory, self.parse_bins):
             try:
                 func(directory)
@@ -107,4 +106,4 @@
             self._set(key, child.content)
 
 # register to kaa.metadata core
-register('directory', EXTENSION_DIRECTORY, DirInfo)
+register('directory', core.EXTENSION_DIRECTORY, Directory)

Copied: trunk/metadata/src/misc/xml.py (from r2233, 
/trunk/metadata/src/misc/xmlinfo.py)
==============================================================================
--- /trunk/metadata/src/misc/xmlinfo.py (original)
+++ trunk/metadata/src/misc/xml.py      Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# xmlinfo.py - detect xml and fxd files
+# xml.py - detect xml and fxd files
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -34,9 +34,9 @@
 import logging
 import libxml2
 
-# kaa imports
-from kaa.metadata import factory
-from kaa.metadata import mediainfo
+# kaa.metadata imports
+import kaa.metadata.mediainfo as core
+import kaa.metadata.factory as factory
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -46,14 +46,14 @@
     'freevo': 'Freevo XML Definition'
     }
 
-class XMLInfo(mediainfo.MediaInfo):
+class XML(core.MediaInfo):
 
     def __init__(self,file):
         ext = os.path.splitext(file.name)[1].lower()
         if not ext in ('.xml', '.fxd', '.html', '.htm'):
-            raise mediainfo.KaaMetadataParseError()
+            raise core.KaaMetadataParseError()
 
-        mediainfo.MediaInfo.__init__(self)
+        core.MediaInfo.__init__(self)
 
         self.mime  = 'text/xml'
         self.type  = ''
@@ -72,10 +72,10 @@
         try:
             doc = ctxt.doc()
         except libxml2.parserError:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.KaaMetadataParseError()
 
         if not doc or not doc.children or not doc.children.name:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.KaaMetadataParseError()
 
         tag = doc.children.name
         if tag in XML_TAG_INFO:
@@ -85,4 +85,4 @@
         doc.freeDoc()
 
 
-factory.register( 'text/xml', ('xml', 'fxd', 'html', 'htm'), XMLInfo )
+factory.register( 'text/xml', ('xml', 'fxd', 'html', 'htm'), XML )

Copied: trunk/metadata/src/video/asf.py (from r2233, 
/trunk/metadata/src/video/asfinfo.py)
==============================================================================
--- /trunk/metadata/src/video/asfinfo.py        (original)
+++ trunk/metadata/src/video/asf.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# asfinfo.py - asf file parser
+# asf.py - asf file parser
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -38,9 +38,8 @@
 import string
 import logging
 
-# kaa imports
-from kaa.metadata import factory
-from kaa.metadata import mediainfo
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -139,24 +138,24 @@
     }
 
 
-class AsfInfo(mediainfo.AVInfo):
+class Asf(core.AVContainer):
     def __init__(self, file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.mime = 'video/x-ms-asf'
         self.type = 'asf format'
 
         h = file.read(30)
         if len(h) < 30:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         (guidstr, objsize, objnum, reserved1, \
          reserved2) = struct.unpack('<16sQIBB',h)
         guid = self._parseguid(guidstr)
 
         if (guid != GUIDS['ASF_Header_Object']):
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
         if reserved1 != 0x01 or reserved2 != 0x02:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         log.debug("asf header size: %d / %d objects" % (objsize,objnum))
         header = file.read(objsize-30)
@@ -261,14 +260,14 @@
             if encrypted:
                 self._set('encrypted', True)
             if streamtype == GUIDS['ASF_Video_Media']:
-                vi = mediainfo.VideoInfo()
+                vi = core.VideoStream()
                 vi.width, vi.height, depth, \
                           codec, = struct.unpack('<4xII2xH4s', s[89:89+20])
                 vi.codec = codec
                 vi.id = strno
                 self.video.append(vi)
             elif streamtype == GUIDS['ASF_Audio_Media']:
-                ai = mediainfo.AudioInfo()
+                ai = core.AudioStream()
                 twocc, ai.channels, ai.samplerate, bitrate, block, \
                        ai.samplebits, = struct.unpack('<HHIIHH', s[78:78+16])
                 ai.bitrate = 8*bitrate  # XXX Is this right?
@@ -376,4 +375,4 @@
 
 
 
-factory.register( 'video/asf', ('asf','wmv','wma'), AsfInfo)
+core.register( 'video/asf', ('asf','wmv','wma'), Asf)

Added: trunk/metadata/src/video/core.py
==============================================================================
--- (empty file)
+++ trunk/metadata/src/video/core.py    Fri Dec 15 16:12:40 2006
@@ -0,0 +1,46 @@
+# -*- coding: iso-8859-1 -*-
+# -----------------------------------------------------------------------------
+# core.py - basic video class
+# -----------------------------------------------------------------------------
+# $Id: core.py 2216 2006-12-10 20:32:21Z dmeyer $
+#
+# -----------------------------------------------------------------------------
+# kaa-Metadata - Media Metadata for Python
+# Copyright (C) 2003-2006 Thomas Schueppel, Dirk Meyer
+#
+# First Edition: Thomas Schueppel <[EMAIL PROTECTED]>
+# Maintainer:    Dirk Meyer <[EMAIL PROTECTED]>
+#
+# Please see the file AUTHORS for a complete list of authors.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MER-
+# CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# -----------------------------------------------------------------------------
+
+from kaa.metadata import mediainfo
+from kaa.metadata.factory import register
+
+ParseError = mediainfo.KaaMetadataParseError
+
+# TODO: copy stuff to this file
+
+VideoStream  = mediainfo.VideoInfo
+AudioStream  = mediainfo.AudioInfo
+AVContainer = mediainfo.AVInfo
+MEDIA_AUDIO = mediainfo.MEDIA_AUDIO
+MEDIA_AV = mediainfo.MEDIA_AV
+Subtitle = mediainfo.SubtitleInfo
+Chapter = mediainfo.ChapterInfo
+Collection = mediainfo.CollectionInfo

Copied: trunk/metadata/src/video/flv.py (from r2233, 
/trunk/metadata/src/video/flvinfo.py)
==============================================================================
--- /trunk/metadata/src/video/flvinfo.py        (original)
+++ trunk/metadata/src/video/flv.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# flvinfo.py - parser for flash video files
+# flv.py - parser for flash video files
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -34,9 +34,8 @@
 import string
 import logging
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -59,14 +58,14 @@
 FLV_VIDEO_CODECID = ( 'FLV1', 'MSS1', 'VP60') # wild guess
 
 
-class FlashInfo(mediainfo.AVInfo):
+class FlashVideo(core.AVContainer):
     def __init__(self,file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.mime = 'video/flv'
         self.type = 'Flash Video'
         header = struct.unpack('>3sBBII', file.read(13))
         if not header[0] == 'FLV':
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         for i in range(10):
             if self.audio and self.video:
@@ -80,7 +79,7 @@
             if chunk[0] == FLV_TAG_TYPE_AUDIO:
                 flags = ord(file.read(1))
                 if not self.audio:
-                    a = mediainfo.AudioInfo()
+                    a = core.AudioStream()
                     a.channels = (flags & FLV_AUDIO_CHANNEL_MASK) + 1
                     srate = (flags & FLV_AUDIO_SAMPLERATE_MASK)
                     a.samplerate = (44100 << (srate >> 
FLV_AUDIO_SAMPLERATE_OFFSET) >> 3)
@@ -94,7 +93,7 @@
             elif chunk[0] == FLV_TAG_TYPE_VIDEO:
                 flags = ord(file.read(1))
                 if not self.video:
-                    v = mediainfo.VideoInfo()
+                    v = core.VideoStream()
                     codec = (flags & FLV_VIDEO_CODECID_MASK) - 2
                     if codec < len(FLV_VIDEO_CODECID):
                         v.codec = FLV_VIDEO_CODECID[codec]
@@ -115,4 +114,4 @@
 
             file.seek(4, 1)
 
-factory.register( 'video/flv', ('flv',), FlashInfo )
+core.register( 'video/flv', ('flv',), FlashVideo )

Copied: trunk/metadata/src/video/mkv.py (from r2233, 
/trunk/metadata/src/video/mkvinfo.py)
==============================================================================
--- /trunk/metadata/src/video/mkvinfo.py        (original)
+++ trunk/metadata/src/video/mkv.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# mkvinfo.py - Matroska Streaming Video Files
+# mkv.py - Matroska Streaming Video Files
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -39,9 +39,8 @@
 from string import *
 import logging
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -148,7 +147,7 @@
 
         if self.id_len == 0:
             log.debug("EBML entity not found, bad file format")
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         self.entity_len, self.len_size = self.compute_len(inbuf[self.id_len:])
         self.entity_data = inbuf[self.get_header_len() : self.get_total_len()]
@@ -261,14 +260,14 @@
 
 
 
-class MkvInfo(mediainfo.AVInfo):
+class Matroska(core.AVContainer):
     """
     This is the main Matroska object
     """
-    media = mediainfo.MEDIA_AUDIO
-    
+    media = core.MEDIA_AUDIO
+
     def __init__(self, file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.samplerate = 1
 
         self.file = file
@@ -276,12 +275,12 @@
         buffer = file.read(2000)
         if len(buffer) == 0:
             # Regular File end
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # Check the Matroska header
         header = EbmlEntity(buffer)
         if header.get_id() != MATROSKA_HEADER_ID:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         log.debug("HEADER ID found %08X" % header.get_id() )
         self.mime = 'application/mkv'
@@ -334,7 +333,7 @@
 
         elif elem_id == MATROSKA_SEEKHEAD_ID:
             self.process_seekhead(elem)
-            
+
         log.debug('END: process element %s' % hex(elem_id))
         return True
 
@@ -380,7 +379,7 @@
 
 
     def process_track(self, track):
-        # Collapse generator into a list since we need to iterate over it 
+        # Collapse generator into a list since we need to iterate over it
         # twice.
         elements = [ x for x in self.process_one_level(track) ]
         track_type = [ x.get_value() for x in elements if x.get_id() == 
MATROSKA_TRACK_TYPE_ID ]
@@ -399,7 +398,7 @@
             track = self.process_audio_track(elements)
         elif track_type == MATROSKA_SUBTITLES_TRACK:
             log.debug("Subtitle track found")
-            track = mediainfo.SubtitleInfo()
+            track = core.Subtitle()
             self.subtitles.append(track)
             for elem in elements:
                 self.process_track_common(elem, track)
@@ -418,7 +417,7 @@
 
 
     def process_video_track(self, elements):
-        track = mediainfo.VideoInfo()
+        track = core.VideoStream()
         codec_private_id = ''
         # Defaults
         track.codec = u'Unknown'
@@ -472,13 +471,13 @@
             # FIXME: add more video codecs here
             track.codec = track.codec[2:]
 
-        self.media = mediainfo.MEDIA_AV
+        self.media = core.MEDIA_AV
         self.video.append(track)
         return track
 
 
     def process_audio_track(self, elements):
-        track = mediainfo.AudioInfo()
+        track = core.AudioStream()
         track.codec = u'Unknown'
 
         for elem in elements:
@@ -520,7 +519,7 @@
 
     def process_chapter_atom(self, atom):
         elements = self.process_one_level(atom)
-        chap = mediainfo.ChapterInfo()
+        chap = core.Chapter()
 
         for elem in elements:
             elem_id = elem.get_id()
@@ -574,4 +573,4 @@
 
         log.debug('Attachment "%s" found' % name)
 
-factory.register( 'application/mkv', ('mkv', 'mka',), MkvInfo )
+core.register( 'application/mkv', ('mkv', 'mka',), Matroska )

Copied: trunk/metadata/src/video/mov.py (from r2233, 
/trunk/metadata/src/video/movinfo.py)
==============================================================================
--- /trunk/metadata/src/video/movinfo.py        (original)
+++ trunk/metadata/src/video/mov.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# movinfo.py - mov file parser
+# mov.py - mov file parser
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -39,9 +39,10 @@
 import StringIO
 from struct import unpack
 
-# kaa imports
-from kaa.metadata import factory
-from kaa.metadata import mediainfo
+# import kaa.metadata.video core
+import core
+
+# mov language codes
 from movlanguages import *
 
 # get logging object
@@ -59,12 +60,12 @@
     'cpy': 'copyright'
 }
 
-class MovInfo(mediainfo.AVInfo):
+class MPEG4(core.AVContainer):
 
     table_mapping = { 'QTUDTA': QTUDTA }
 
     def __init__(self,file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self._references = []
 
         self.mime = 'video/quicktime'
@@ -93,7 +94,7 @@
 
         if not type in ('moov', 'wide', 'free'):
             log.debug('invalid header: %s' % type)
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # Extended size
         if size == 1:
@@ -164,7 +165,7 @@
                     trackinfo['width'] = tkhd[10] >> 16
                     trackinfo['height'] = tkhd[11] >> 16
                     trackinfo['id'] = tkhd[3]
-                    
+
                     try:
                         # XXX Date number of Seconds is since January 1st 1904!
                         # XXX 2082844800 is the difference between Unix and
@@ -252,10 +253,10 @@
 
             info = None
             if tracktype == 'video':
-                info = mediainfo.VideoInfo()
+                info = core.VideoStream()
                 self.video.append(info)
             if tracktype == 'audio':
-                info = mediainfo.AudioInfo()
+                info = core.AudioStream()
                 self.audio.append(info)
             if info:
                 for key, value in trackinfo.items():
@@ -360,4 +361,4 @@
 
 
 exts = ('mov', 'qt', 'mp4', 'mp4a', '3gp', '3gp2', 'mk2')
-factory.register( 'video/quicktime', exts, MovInfo)
+core.register( 'video/quicktime', exts, MPEG4)

Copied: trunk/metadata/src/video/mpeg.py (from r2233, 
/trunk/metadata/src/video/mpeginfo.py)
==============================================================================
--- /trunk/metadata/src/video/mpeginfo.py       (original)
+++ trunk/metadata/src/video/mpeg.py    Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# mpginfo.py - mpeg 1/2 file parser
+# mpeg.py - mpeg 1/2 file parser
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -37,9 +37,8 @@
 import logging
 import stat
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -134,12 +133,12 @@
                )
 
 
-class MpegInfo(mediainfo.AVInfo):
+class MPEG(core.AVContainer):
     def __init__(self,file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.sequence_header_offset = 0
         self.mpeg_version = 2
-        
+
         # detect TS (fast scan)
         if not self.isTS(file):
             # detect system mpeg (many infos)
@@ -147,11 +146,11 @@
                 # detect PES
                 if not self.isPES(file):
                     # no mpeg at all
-                    raise mediainfo.KaaMetadataParseError()
+                    raise core.ParseError()
 
         self.mime = 'video/mpeg'
         if not self.video:
-            self.video.append(mediainfo.VideoInfo())
+            self.video.append(core.VideoStream())
 
         if self.sequence_header_offset <= 0:
             return
@@ -376,7 +375,7 @@
                 if a.id == id:
                     break
             else:
-                self.audio.append(mediainfo.AudioInfo())
+                self.audio.append(core.AudioStream())
                 self.audio[-1]._set('id', id)
             return 0
 
@@ -386,7 +385,7 @@
                 if v.id == id:
                     break
             else:
-                self.video.append(mediainfo.VideoInfo())
+                self.video.append(core.VideoStream())
                 self.video[-1]._set('id', id)
             return 0
 
@@ -406,7 +405,7 @@
                     if a.id == id:
                         break
                 else:
-                    self.audio.append(mediainfo.AudioInfo())
+                    self.audio.append(core.AudioStream())
                     self.audio[-1]._set('id', id)
                     self.audio[-1].codec = 0x2000 # AC3
             return 0
@@ -520,7 +519,7 @@
                 if a.id == id:
                     break
             else:
-                self.audio.append(mediainfo.AudioInfo())
+                self.audio.append(core.AudioStream())
                 self.audio[-1]._set('id', id)
 
         elif ord(buffer[3]) & 0xF0 == 0xE0:
@@ -529,7 +528,7 @@
                 if v.id == id:
                     break
             else:
-                self.video.append(mediainfo.VideoInfo())
+                self.video.append(core.VideoStream())
                 self.video[-1]._set('id', id)
 
             # new mpeg starting
@@ -547,7 +546,7 @@
                     if a.id == id:
                         break
                 else:
-                    self.audio.append(mediainfo.AudioInfo())
+                    self.audio.append(core.AudioStream())
                     self.audio[-1]._set('id', id)
                     self.audio[-1].codec = 0x2000 # AC3
 
@@ -859,4 +858,4 @@
         log.debug('done scanning file')
 
 
-factory.register( 'video/mpeg', ('mpeg','mpg','mp4', 'ts'), MpegInfo )
+core.register( 'video/mpeg', ('mpeg','mpg','mp4', 'ts'), MPEG )

Copied: trunk/metadata/src/video/ogm.py (from r2233, 
/trunk/metadata/src/video/ogminfo.py)
==============================================================================
--- /trunk/metadata/src/video/ogminfo.py        (original)
+++ trunk/metadata/src/video/ogm.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# ogminfo.py - ogm/ogg file parser
+# ogm.py - ogm/ogg file parser
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -36,9 +36,8 @@
 import os
 import logging
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -67,12 +66,12 @@
 
 MAXITERATIONS = 10
 
-class OgmInfo(mediainfo.AVInfo):
+class Ogm(core.AVContainer):
 
     table_mapping = { 'VORBISCOMMENT' : VORBISCOMMENT }
 
     def __init__(self, file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.samplerate  = 1
         self.all_streams = []           # used to add meta data to streams
         self.all_header  = []
@@ -82,7 +81,7 @@
             if granule == None:
                 if i == 0:
                     # oops, bad file
-                    raise mediainfo.KaaMetadataParseError()
+                    raise core.ParseError()
                 break
             elif granule > 0:
                 # ok, file started
@@ -146,7 +145,7 @@
                                 pos = int(new_pos)
 
                             c = self.all_header[i][s + 'NAME']
-                            c = mediainfo.ChapterInfo(c, pos)
+                            c = core.Chapter(c, pos)
                             del self.all_header[i][s + 'NAME']
                             del self.all_header[i][s]
                             self.chapters.append(c)
@@ -159,9 +158,9 @@
 
         # If there are no video streams in this ogg container, it
         # must be an audio file.  Raise an exception to cause the
-        # factory to fall back to audio.ogginfo.
+        # factory to fall back to audio.ogg.
         if len(self.video) == 0:
-            raise mediainfo.KaaMetadataParseError
+            raise core.ParseError
 
         # Copy Metadata from tables into the main set of attributes
         for header in self.all_header:
@@ -178,7 +177,7 @@
             return None, None
         if h[:4] != "OggS":
             log.debug("Invalid Ogg")
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         version = ord(h[4])
         if version != 0:
@@ -243,7 +242,7 @@
         flags = ord(header[0])
 
         if headerlen >= 30 and header[1:7] == 'vorbis':
-            ai = mediainfo.AudioInfo()
+            ai = core.AudioStream()
             ai.version, ai.channels, ai.samplerate, bitrate_max, ai.bitrate, \
                         bitrate_min, blocksize, framing = \
                         struct.unpack('<IBIiiiBB',header[7:7+23])
@@ -256,7 +255,7 @@
         elif headerlen >= 7 and header[1:7] == 'theora':
             # Theora Header
             # XXX Finish Me
-            vi = mediainfo.VideoInfo()
+            vi = core.VideoStream()
             vi.codec = 'theora'
             self.video.append(vi)
             self.all_streams.append(vi)
@@ -265,7 +264,7 @@
                  header[1:36] == 'Direct Show Samples embedded in Ogg':
             # Old Directshow format
             # XXX Finish Me
-            vi = mediainfo.VideoInfo()
+            vi = core.VideoStream()
             vi.codec = 'dshow'
             self.video.append(vi)
             self.all_streams.append(vi)
@@ -278,7 +277,7 @@
             if htype[:5] == 'video':
                 sh = header[9:struct.calcsize(STREAM_HEADER_VIDEO)+9]
                 streamheader = struct.unpack( STREAM_HEADER_VIDEO, sh )
-                vi = mediainfo.VideoInfo()
+                vi = core.VideoStream()
                 (type, ssize, timeunit, samplerate, vi.length, buffersize, \
                  vi.bitrate, vi.width, vi.height) = streamheader
 
@@ -293,7 +292,7 @@
             elif htype[:5] == 'audio':
                 sha = header[9:struct.calcsize(STREAM_HEADER_AUDIO)+9]
                 streamheader = struct.unpack( STREAM_HEADER_AUDIO, sha )
-                ai = mediainfo.AudioInfo()
+                ai = core.AudioStream()
                 (type, ssize, timeunit, ai.samplerate, ai.length, buffersize, \
                  ai.bitrate, ai.channels, bloc, ai.bitrate) = streamheader
                 self.samplerate = ai.samplerate
@@ -302,10 +301,8 @@
                 self.all_streams.append(ai)
 
             elif htype[:4] == 'text':
-                subtitle = mediainfo.MediaInfo()
-                subtitle._set('language', None)
-                subtitle.type = 'subtitle'
-                subtitle.length = 0
+                subtitle = core.Subtitle()
+                # FIXME: add more info
                 self.all_streams.append(subtitle)
 
         else:
@@ -321,4 +318,4 @@
 
 
 
-factory.register( 'application/ogg', ('ogm', 'ogg',), OgmInfo )
+core.register( 'application/ogg', ('ogm', 'ogg',), Ogm )

Copied: trunk/metadata/src/video/real.py (from r2233, 
/trunk/metadata/src/video/realinfo.py)
==============================================================================
--- /trunk/metadata/src/video/realinfo.py       (original)
+++ trunk/metadata/src/video/real.py    Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# realinfo.py - parser for real media files
+# real.py - parser for real media files
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -34,9 +34,8 @@
 import string
 import logging
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
 # http://www.pcisys.net/~melanson/codecs/rmff.htm
 # http://www.pcisys.net/~melanson/codecs/
@@ -44,15 +43,15 @@
 # get logging object
 log = logging.getLogger('metadata')
 
-class RealInfo(mediainfo.AVInfo):
+class RealVideo(core.AVContainer):
     def __init__(self,file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         self.mime = 'video/real'
         self.type = 'Real Video'
         h = file.read(10)
         (object_id,object_size,object_version) = struct.unpack('>4sIH',h)
         if not object_id == '.RMF':
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         file_version, num_headers = struct.unpack('>II', file.read(8))
         log.debug("size: %d, ver: %d, headers: %d" % \
@@ -83,12 +82,12 @@
             type_specific = s[pos+4:pos+4+type_specific_len]
             pos += 4+type_specific_len
             if mime[:5] == 'audio':
-                ai = mediainfo.AudioInfo()
+                ai = core.AudioStream()
                 ai.id = mdpr[0]
                 ai.bitrate = mdpr[2]
                 self.audio.append(ai)
             elif mime[:5] == 'video':
-                vi = mediainfo.VideoInfo()
+                vi = core.VideoStream()
                 vi.id = mdpr[0]
                 vi.bitrate = mdpr[2]
                 self.video.append(vi)
@@ -109,4 +108,4 @@
             self.comment = s[pos+2:pos+comment_len+2]
 
 
-factory.register( 'video/real', ('rm', 'ra', 'ram'), RealInfo )
+core.register( 'video/real', ('rm', 'ra', 'ram'), RealVideo )

Copied: trunk/metadata/src/video/riff.py (from r2233, 
/trunk/metadata/src/video/riffinfo.py)
==============================================================================
--- /trunk/metadata/src/video/riffinfo.py       (original)
+++ trunk/metadata/src/video/riff.py    Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# riffinfo.py - riff (avi) file parser
+# riff.py - riff (avi) file parser
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -37,9 +37,8 @@
 import logging
 import time
 
-# kaa imports
-from kaa.metadata import factory
-from kaa.metadata import mediainfo
+# import kaa.metadata.video core
+import core
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -76,16 +75,16 @@
 }
 
 
-class RiffInfo(mediainfo.AVInfo):
+class Riff(core.AVContainer):
 
     table_mapping = { 'AVIINFO' : AVIINFO }
 
     def __init__(self,file):
-        mediainfo.AVInfo.__init__(self)
+        core.AVContainer.__init__(self)
         # read the header
         h = file.read(12)
         if h[:4] != "RIFF" and h[:4] != 'SDSS':
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         self.mime = 'application/x-wave'
         self.has_idx = False
@@ -121,7 +120,7 @@
             if file.readline().find('VobSub index file') > 0:
                 for line in file.readlines():
                     if line.find('id') == 0:
-                        sub = mediainfo.SubtitleInfo()
+                        sub = core.Subtitle()
                         sub.language = line[4:6]
                         sub.trackno = base + '.idx'  # Maybe not?
                         self.subtitles.append(sub)
@@ -147,7 +146,7 @@
           retval['dwLength'] ) = v
         if retval['dwMicroSecPerFrame'] == 0:
             log.warning("ERROR: Corrupt AVI")
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         return retval
 
@@ -205,7 +204,7 @@
               retval['nBlockAlign'],
               retval['nBitsPerSample'],
             ) = struct.unpack('<HHHHHH',t[0:12])
-            ai = mediainfo.AudioInfo()
+            ai = core.AudioStream()
             ai.samplerate = retval['nSamplesPerSec']
             ai.channels = retval['nChannels']
             ai.samplebits = retval['nBitsPerSample']
@@ -229,7 +228,7 @@
               retval['biYPelsPerMeter'],
               retval['biClrUsed'],
               retval['biClrImportant'], ) = v
-            vi = mediainfo.VideoInfo()
+            vi = core.VideoStream()
             vi.codec = t[16:20]
             vi.width = retval['biWidth']
             vi.height = retval['biHeight']
@@ -550,4 +549,4 @@
             return False
         return True
 
-factory.register( 'video/avi', ('avi',), RiffInfo )
+core.register( 'video/avi', ('avi',), Riff )

Copied: trunk/metadata/src/video/vcd.py (from r2233, 
/trunk/metadata/src/video/vcdinfo.py)
==============================================================================
--- /trunk/metadata/src/video/vcdinfo.py        (original)
+++ trunk/metadata/src/video/vcd.py     Fri Dec 15 16:12:40 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------------
-# vcdinfo.py - parse vcd track informations from cue/bin files
+# vcd.py - parse vcd track informations from cue/bin files
 # -----------------------------------------------------------------------------
 # $Id$
 #
@@ -32,13 +32,12 @@
 # python imports
 import os
 
-# kaa imports
-from kaa.metadata import mediainfo
-from kaa.metadata import factory
+# import kaa.metadata.video core
+import core
 
-class VCDInfo(mediainfo.CollectionInfo):
+class VCDFile(core.Collection):
     def __init__(self, file):
-        mediainfo.CollectionInfo.__init__(self)
+        core.Collection.__init__(self)
         self.offset = 0
         self.mime = 'video/vcd'
         self.type = 'vcd video'
@@ -51,12 +50,12 @@
         buffer = file.readline(300)
 
         if not buffer[:6] == 'FILE "':
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         bin = os.path.join(os.path.dirname(file.name),
                            buffer[6:buffer[6:].find('"')+6])
         if not os.path.isfile(bin):
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         # At this point this really is a cue/bin disc
 
@@ -74,7 +73,7 @@
             type = 'VCD'
 
         else:
-            raise mediainfo.KaaMetadataParseError()
+            raise core.ParseError()
 
         counter = 0
         while 1:
@@ -85,7 +84,7 @@
                 counter += 1
                 # the first track is the directory, that doesn't count
                 if counter > 1:
-                    vi = mediainfo.VideoInfo()
+                    vi = core.VideoStream()
                     if type == 'VCD':
                         vi.codec = 'MPEG1'
                     else:
@@ -93,4 +92,4 @@
                     self.tracks.append(vi)
 
 
-factory.register( 'video/vcd', ('cue',), VCDInfo )
+core.register( 'video/vcd', ('cue',), VCDFile )

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