Author: tack
Date: Thu Mar 22 14:16:50 2007
New Revision: 2581

Modified:
   trunk/metadata/src/__init__.py
   trunk/metadata/src/audio/ac3.py
   trunk/metadata/src/audio/adts.py
   trunk/metadata/src/audio/flac.py
   trunk/metadata/src/audio/m4a.py
   trunk/metadata/src/audio/mp3.py
   trunk/metadata/src/audio/ogg.py
   trunk/metadata/src/audio/pcm.py
   trunk/metadata/src/audio/webradio.py
   trunk/metadata/src/disc/audio.py
   trunk/metadata/src/disc/data.py
   trunk/metadata/src/disc/dvd.py
   trunk/metadata/src/disc/vcd.py
   trunk/metadata/src/factory.py
   trunk/metadata/src/games/gameboy.py
   trunk/metadata/src/games/snes.py
   trunk/metadata/src/image/bmp.py
   trunk/metadata/src/image/gif.py
   trunk/metadata/src/image/jpg.py
   trunk/metadata/src/image/png.py
   trunk/metadata/src/image/tiff.py
   trunk/metadata/src/misc/directory.py
   trunk/metadata/src/misc/xmlfile.py
   trunk/metadata/src/video/asf.py
   trunk/metadata/src/video/flv.py
   trunk/metadata/src/video/mkv.py
   trunk/metadata/src/video/mp4.py
   trunk/metadata/src/video/mpeg.py
   trunk/metadata/src/video/ogm.py
   trunk/metadata/src/video/real.py
   trunk/metadata/src/video/riff.py
   trunk/metadata/src/video/vcd.py

Log:
Call each parser class Parser and import that specifically when loading a
parser.  Do not import disc.dvd when determining scheme from an info
object; replace tabs with spaces in gameboy parser; use exec() instead
of __import__() when importing the parser modules (lame, but __import__
didn't work with relative imports); add a FIXME about KeyboardInterrupt
and SystemExit exceptions.


Modified: trunk/metadata/src/__init__.py
==============================================================================
--- trunk/metadata/src/__init__.py      (original)
+++ trunk/metadata/src/__init__.py      Thu Mar 22 14:16:50 2007
@@ -41,45 +41,48 @@
 USE_NETWORK = 1
 
 # Audio parsers
-register('audio/mpeg', ('mp3',), 'audio.mp3.MP3')
-register('audio/ac3', ('ac3',), 'audio.ac3.AC3')
-register('application/adts', ('aac',), 'audio.adts.ADTS')
-register('application/flac', ('flac',), 'audio.flac.Flac')
-register('audio/m4a', ('m4a',), 'audio.m4a.Mpeg4Audio')
-register('application/ogg', ('ogg',), 'audio.ogg.Ogg')
-register('application/pcm', ('aif','voc','au'), 'audio.pcm.PCM')
-register('text/plain', EXTENSION_STREAM, 'audio.webradio.WebRadio')
+register('audio/mpeg', ('mp3',), 'audio.mp3')
+register('audio/ac3', ('ac3',), 'audio.ac3')
+register('application/adts', ('aac',), 'audio.adts')
+register('audio/m4a', ('m4a',), 'audio.m4a')
+register('application/ogg', ('ogg',), 'audio.ogg')
+register('application/pcm', ('aif','voc','au'), 'audio.pcm')
 
 # Video parsers
-register('video/asf', ('asf','wmv','wma'), 'video.asf.Asf')
-register('video/flv', ('flv',), 'video.flv.FlashVideo')
-register('application/mkv', ('mkv', 'mka'), 'video.mkv.Matroska')
-register('video/quicktime', ('mov', 'qt', 'mp4', 'mp4a', '3gp', '3gp2', 
'mk2'), 'video.mp4.MPEG4')
-register('video/mpeg', ('mpeg','mpg','mp4', 'ts'), 'video.mpeg.MPEG')
-register('application/ogg', ('ogm', 'ogg'), 'video.ogm.Ogm')
-register('video/real', ('rm', 'ra', 'ram'), 'video.real.RealVideo')
-register('video/avi', ('wav','avi'), 'video.riff.Riff')
-register('video/vcd', ('cue',), 'video.vcd.VCDFile')
+register('video/asf', ('asf','wmv','wma'), 'video.asf')
+register('video/flv', ('flv',), 'video.flv')
+register('application/mkv', ('mkv', 'mka'), 'video.mkv')
+register('video/quicktime', ('mov', 'qt', 'mp4', 'mp4a', '3gp', '3gp2', 
'mk2'), 'video.mp4')
+register('video/mpeg', ('mpeg','mpg','mp4', 'ts'), 'video.mpeg')
+register('application/ogg', ('ogm', 'ogg'), 'video.ogm')
+register('video/real', ('rm', 'ra', 'ram'), 'video.real')
+register('video/avi', ('wav','avi'), 'video.riff')
+register('video/vcd', ('cue',), 'video.vcd')
 
 # Disc parsers
-register('audio/cd', EXTENSION_DEVICE, 'disc.audio.AudioDisc')
-register('cd/unknown', EXTENSION_DEVICE, 'disc.data.DataDisc')
-register('video/dvd', EXTENSION_DEVICE, 'disc.dvd.DVDInfo')
-register('video/dvd', EXTENSION_DIRECTORY, 'disc.dvd.DVDInfo')
-register('video/dvd', ('iso',), 'disc.dvd.DVDInfo')
-register('video/vcd', EXTENSION_DEVICE, 'disc.vcd.VCD')
+register('audio/cd', EXTENSION_DEVICE, 'disc.audio')
+register('cd/unknown', EXTENSION_DEVICE, 'disc.data')
+register('video/dvd', EXTENSION_DEVICE, 'disc.dvd')
+register('video/dvd', EXTENSION_DIRECTORY, 'disc.dvd')
+register('video/dvd', ('iso',), 'disc.dvd')
+register('video/vcd', EXTENSION_DEVICE, 'disc.vcd')
 
 # Image parsers
-register('image/bmp', ('bmp', ), 'image.bmp.BMP')
-register('image/gif', ('gif', ), 'image.gif.GIF')
-register('image/jpeg', ('jpg','jpeg'), 'image.jpg.JPG')
-register('image/png', ('png',), 'image.png.PNG')
-register('image/tiff', ('tif','tiff'), 'image.tiff.TIFF')
+register('image/bmp', ('bmp', ), 'image.bmp')
+register('image/gif', ('gif', ), 'image.gif')
+register('image/jpeg', ('jpg','jpeg'), 'image.jpg')
+register('image/png', ('png',), 'image.png')
+register('image/tiff', ('tif','tiff'), 'image.tiff')
 
 # Games parsers
-register('games/gameboy', ('gba', 'gb', 'gbc'), 'games.gameboy.Gameboy')
-register('games/snes', ('smc', 'sfc', 'fig'), 'games.snes.SNES')
+register('games/gameboy', ('gba', 'gb', 'gbc'), 'games.gameboy')
+register('games/snes', ('smc', 'sfc', 'fig'), 'games.snes')
 
 # Misc parsers
-register('directory', EXTENSION_DIRECTORY, 'misc.directory.Directory')
-register('text/xml', ('xml', 'fxd', 'html', 'htm'), 'misc.xmlfile.XML')
+register('directory', EXTENSION_DIRECTORY, 'misc.directory')
+register('text/xml', ('xml', 'fxd', 'html', 'htm'), 'misc.xmlfile')
+
+# These parsers are prone to producing false positives, so we use them
+# last.  They should be fixed.
+register('text/plain', EXTENSION_STREAM, 'audio.webradio')
+register('application/flac', ('flac',), 'audio.flac')

Modified: trunk/metadata/src/audio/ac3.py
==============================================================================
--- trunk/metadata/src/audio/ac3.py     (original)
+++ trunk/metadata/src/audio/ac3.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 
@@ -155,3 +157,6 @@
             self.channels += 1
         self.codec = 0x2000 # fourcc code of ac3
         self.mime = 'audio/ac3'
+
+
+Parser = AC3

Modified: trunk/metadata/src/audio/adts.py
==============================================================================
--- trunk/metadata/src/audio/adts.py    (original)
+++ trunk/metadata/src/audio/adts.py    Thu Mar 22 14:16:50 2007
@@ -31,6 +31,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 import struct
 
 # import kaa.metadata.audio core
@@ -74,3 +76,5 @@
        if header[0] != 255 or (header[1] >> 4) != 15:
            raise core.ParseError()
        self.mime = 'audio/aac'
+
+Parser = ADTS

Modified: trunk/metadata/src/audio/flac.py
==============================================================================
--- trunk/metadata/src/audio/flac.py    (original)
+++ trunk/metadata/src/audio/flac.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import re
@@ -112,3 +114,6 @@
     def _extractHeaderString(self,header):
         len = struct.unpack( '<I', header[:4] )[0]
         return (len+4,unicode(header[4:4+len], 'utf-8'))
+
+
+Parser = Flac

Modified: trunk/metadata/src/audio/m4a.py
==============================================================================
--- trunk/metadata/src/audio/m4a.py     (original)
+++ trunk/metadata/src/audio/m4a.py     Thu Mar 22 14:16:50 2007
@@ -32,6 +32,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import logging
 
@@ -180,3 +182,5 @@
                 returnval = 1
         if not self.valid:
             raise core.ParseError()
+
+Parser = Mpeg4Audio

Modified: trunk/metadata/src/audio/mp3.py
==============================================================================
--- trunk/metadata/src/audio/mp3.py     (original)
+++ trunk/metadata/src/audio/mp3.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import os
 import re
@@ -301,3 +303,6 @@
          return
 
       self._set('mode', _modes[mode])
+
+
+Parser = MP3

Modified: trunk/metadata/src/audio/ogg.py
==============================================================================
--- trunk/metadata/src/audio/ogg.py     (original)
+++ trunk/metadata/src/audio/ogg.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import re
 import os
@@ -136,3 +138,6 @@
             log.debug("granule = %d / %d" % (granule_position, absPos))
         # the last one is the one we are interested in
         return (granule_position / self.samplerate)
+
+
+Parser = Ogg

Modified: trunk/metadata/src/audio/pcm.py
==============================================================================
--- trunk/metadata/src/audio/pcm.py     (original)
+++ trunk/metadata/src/audio/pcm.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import sndhdr
 
@@ -56,3 +58,6 @@
             if res:
                 return res
         return None
+
+
+Parser = PCM

Modified: trunk/metadata/src/audio/webradio.py
==============================================================================
--- trunk/metadata/src/audio/webradio.py        (original)
+++ trunk/metadata/src/audio/webradio.py        Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import urlparse
 import string
@@ -97,3 +99,6 @@
     def _finalize(self):
         core.Music._finalize(self)
         self.bitrate = string.atoi(self.bitrate)*1000
+
+
+Parser = WebRadio

Modified: trunk/metadata/src/disc/audio.py
==============================================================================
--- trunk/metadata/src/disc/audio.py    (original)
+++ trunk/metadata/src/disc/audio.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import logging
 
@@ -171,3 +173,6 @@
                 t.title = t.title[len(self.title):].lstrip('/ \t-_')
 
         cdromfd.close()
+
+
+Parser = AudioDisc

Modified: trunk/metadata/src/disc/data.py
==============================================================================
--- trunk/metadata/src/disc/data.py     (original)
+++ trunk/metadata/src/disc/data.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # kaa.metadata.disc imports
 import core
 
@@ -42,3 +44,5 @@
         self.type = 'CD'
         self.subtype = 'data'
 
+
+Parser = DataDisc

Modified: trunk/metadata/src/disc/dvd.py
==============================================================================
--- trunk/metadata/src/disc/dvd.py      (original)
+++ trunk/metadata/src/disc/dvd.py      Thu Mar 22 14:16:50 2007
@@ -31,6 +31,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import os
 import logging
@@ -207,3 +209,6 @@
 
         # OK, try libdvdread
         self._parse(f.name)
+
+
+Parser = DVDInfo

Modified: trunk/metadata/src/disc/vcd.py
==============================================================================
--- trunk/metadata/src/disc/vcd.py      (original)
+++ trunk/metadata/src/disc/vcd.py      Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # kaa.metadata.disc imports
 import core
 import cdrom
@@ -93,3 +95,6 @@
             num += 1
             lmin, lsec = min, sec
         device.close()
+
+
+Parser = VCD

Modified: trunk/metadata/src/factory.py
==============================================================================
--- trunk/metadata/src/factory.py       (original)
+++ trunk/metadata/src/factory.py       Thu Mar 22 14:16:50 2007
@@ -115,21 +115,20 @@
     def get_class(self, name):
         if name not in self.classmap:
             # Import the parser class for the given name.
-            modname, clsname = name.rsplit('.', 1)
-            # FIXME: why aren't relative imports working?
             try:
-                module = __import__('kaa.metadata.' + modname, [], [], 
[clsname])
-                self.classmap[name] = getattr(module, clsname)
+                exec('from %s import Parser' % name)
+                self.classmap[name] = Parser
             except:
-                log.exception('Error importing parser')
+                # Something failed while trying to import this parser.  Rather
+                # than bail altogher, just log the error and use NullParser.
+                log.exception('Error importing parser %s' % name)
                 self.classmap[name] = NullParser
 
         return self.classmap[name]
 
 
     def get_scheme_from_info(self, info):
-        import disc.dvd
-        if isinstance(info, disc.dvd.DVDInfo):
+        if info.__class__.__name__ == 'DVDInfo':
             return 'dvd'
         else:
             return 'file'
@@ -151,6 +150,10 @@
             except core.ParseError:
                 pass
             except (KeyboardInterrupt, SystemExit):
+                # FIXME: kaa.metadata is a library, and it is not its place
+                # to institute behaviour on these exceptions.  Rather it
+                # should bubble up these exceptions and let the caller
+                # deal with them.
                 sys.exit(0)
             except:
                 log.exception('parse error')

Modified: trunk/metadata/src/games/gameboy.py
==============================================================================
--- trunk/metadata/src/games/gameboy.py (original)
+++ trunk/metadata/src/games/gameboy.py Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import logging
@@ -51,10 +53,10 @@
     def __init__(self,file):
         core.Game.__init__(self)
 
-       # Determine if the ROM is a Gameboy Advance ROM.
-       # Compare the Logo Code. All GBA Roms have this code.
-       file.seek(4)
-       if file.read(156) != GBA_LOGOCODE:
+        # Determine if the ROM is a Gameboy Advance ROM.
+        # Compare the Logo Code. All GBA Roms have this code.
+        file.seek(4)
+        if file.read(156) != GBA_LOGOCODE:
 
             # Determine if the ROM is a Standard Gameboy ROM
             # Compare the Logo Code. All GB Roms have this code.
@@ -74,7 +76,7 @@
                 self.mime = 'games/gb'
                 self.type = 'GameBoy game'
 
-       else:
+        else:
 
             self.mime = 'games/gba'
             self.type = 'GameBoyAdvance game'
@@ -93,3 +95,6 @@
             # Check that the Fized Value is 0x96, if not then error.
             if file.read(1) != '\x96':
                 raise core.ParseError()
+
+
+Parser = Gameboy

Modified: trunk/metadata/src/games/snes.py
==============================================================================
--- trunk/metadata/src/games/snes.py    (original)
+++ trunk/metadata/src/games/snes.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import logging
@@ -94,3 +96,5 @@
             # not detected as rom
             raise core.ParseError()
         self.title = romName.strip()
+
+Parser = SNES

Modified: trunk/metadata/src/image/bmp.py
==============================================================================
--- trunk/metadata/src/image/bmp.py     (original)
+++ trunk/metadata/src/image/bmp.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import logging
@@ -56,3 +58,6 @@
 
         if bfType != 'BM' or bfSize != file.tell():
             raise core.ParseError()
+
+
+Parser = BMP

Modified: trunk/metadata/src/image/gif.py
==============================================================================
--- trunk/metadata/src/image/gif.py     (original)
+++ trunk/metadata/src/image/gif.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import logging
@@ -55,3 +57,6 @@
             raise core.ParseError()
 
         self.type = gifType.lower()
+
+
+Parser = GIF

Modified: trunk/metadata/src/image/jpg.py
==============================================================================
--- trunk/metadata/src/image/jpg.py     (original)
+++ trunk/metadata/src/image/jpg.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import logging
@@ -169,3 +171,6 @@
         for key, value in self.meta.items():
             if key.startswith('Thumb:') or key == 'Software':
                 self._set(key, value)
+
+
+Parser = JPG

Modified: trunk/metadata/src/image/png.py
==============================================================================
--- trunk/metadata/src/image/png.py     (original)
+++ trunk/metadata/src/image/png.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import zlib
@@ -122,3 +124,6 @@
         if key is not None and key.lower() == "comment":
             self.comment = self.meta[key]
         return 1
+
+
+Parser = PNG

Modified: trunk/metadata/src/image/tiff.py
==============================================================================
--- trunk/metadata/src/image/tiff.py    (original)
+++ trunk/metadata/src/image/tiff.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import zlib
@@ -110,3 +112,6 @@
 
         if iptc:
             self._appendtable('IPTC', iptc)
+
+
+Parser = TIFF

Modified: trunk/metadata/src/misc/directory.py
==============================================================================
--- trunk/metadata/src/misc/directory.py        (original)
+++ trunk/metadata/src/misc/directory.py        Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import os
 import logging
@@ -81,3 +83,5 @@
                         self._set('image', image)
                     continue
                 self._set(key, value)
+
+Parser = Directory

Modified: trunk/metadata/src/misc/xmlfile.py
==============================================================================
--- trunk/metadata/src/misc/xmlfile.py  (original)
+++ trunk/metadata/src/misc/xmlfile.py  Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import os
 import logging
@@ -87,3 +89,6 @@
         else:
             self.type = 'XML file'
         raise Identified
+
+
+Parser = XML

Modified: trunk/metadata/src/video/asf.py
==============================================================================
--- trunk/metadata/src/video/asf.py     (original)
+++ trunk/metadata/src/video/asf.py     Thu Mar 22 14:16:50 2007
@@ -32,6 +32,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import re
 import struct
@@ -370,3 +372,6 @@
                 u = "%.8X-%.4X-%.4X-%.2X%.2X-%s" % guid
                 log.debug("unknown: %s [%d]" % (u, objsize))
         return r
+
+
+Parser = Asf

Modified: trunk/metadata/src/video/flv.py
==============================================================================
--- trunk/metadata/src/video/flv.py     (original)
+++ trunk/metadata/src/video/flv.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import string
@@ -175,3 +177,6 @@
 
         log.info('unknown code: %x. Stop metadata parser', ord(data[0]))
         return 0, None
+
+
+Parser = FlashVideo

Modified: trunk/metadata/src/video/mkv.py
==============================================================================
--- trunk/metadata/src/video/mkv.py     (original)
+++ trunk/metadata/src/video/mkv.py     Thu Mar 22 14:16:50 2007
@@ -28,6 +28,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import re
@@ -604,3 +606,6 @@
             self.thumbnail = data
 
         log.debug('Attachment "%s" found' % name)
+
+
+Parser = Matroska

Modified: trunk/metadata/src/video/mp4.py
==============================================================================
--- trunk/metadata/src/video/mp4.py     (original)
+++ trunk/metadata/src/video/mp4.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import re
 import struct
@@ -358,3 +360,6 @@
                 return 0
 
         return atomsize
+
+
+Parser = MPEG4

Modified: trunk/metadata/src/video/mpeg.py
==============================================================================
--- trunk/metadata/src/video/mpeg.py    (original)
+++ trunk/metadata/src/video/mpeg.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import re
 import os
@@ -856,3 +858,6 @@
 
         file.close()
         log.debug('done scanning file')
+
+
+Parser = MPEG

Modified: trunk/metadata/src/video/ogm.py
==============================================================================
--- trunk/metadata/src/video/ogm.py     (original)
+++ trunk/metadata/src/video/ogm.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import re
@@ -304,3 +306,5 @@
         except (KeyError, IndexError, UnicodeDecodeError):
             return (len+4,None)
 
+
+Parser = Ogm

Modified: trunk/metadata/src/video/real.py
==============================================================================
--- trunk/metadata/src/video/real.py    (original)
+++ trunk/metadata/src/video/real.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import struct
 import string
@@ -106,3 +108,6 @@
             pos += copyright_len+2
             (comment_len,) = struct.unpack('>H', s[pos:pos+2])
             self.comment = s[pos+2:pos+comment_len+2]
+
+
+Parser = RealVideo

Modified: trunk/metadata/src/video/riff.py
==============================================================================
--- trunk/metadata/src/video/riff.py    (original)
+++ trunk/metadata/src/video/riff.py    Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import re
 import os
@@ -567,3 +569,6 @@
             log.debug("Bad or broken avi")
             return False
         return True
+
+
+Parser = Riff

Modified: trunk/metadata/src/video/vcd.py
==============================================================================
--- trunk/metadata/src/video/vcd.py     (original)
+++ trunk/metadata/src/video/vcd.py     Thu Mar 22 14:16:50 2007
@@ -29,6 +29,8 @@
 #
 # -----------------------------------------------------------------------------
 
+__all__ = ['Parser']
+
 # python imports
 import os
 
@@ -90,3 +92,6 @@
                     else:
                         vi.codec = 'MPEG2'
                     self.tracks.append(vi)
+
+
+Parser = 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