Author: dmeyer
Date: Mon Jun 18 18:25:25 2007
New Revision: 2712

Modified:
   trunk/metadata/src/video/flv.py

Log:
do not crash on bad files

Modified: trunk/metadata/src/video/flv.py
==============================================================================
--- trunk/metadata/src/video/flv.py     (original)
+++ trunk/metadata/src/video/flv.py     Mon Jun 18 18:25:25 2007
@@ -32,6 +32,7 @@
 __all__ = ['Parser']
 
 # python imports
+import sys
 import struct
 import string
 import logging
@@ -127,17 +128,21 @@
             elif chunk[0] == FLV_TAG_TYPE_META:
                 log.info('metadata %s', str(chunk))
                 metadata = file.read(size)
-                while metadata:
-                    length, value = self._parse_value(metadata)
-                    if isinstance(value, dict):
-                        if value.get('duration'):
-                            self.length = value.get('duration')
-                        self._appendtable('FLVINFO', value)
-                    if not length:
-                        # parse error
-                        break
-                    metadata = metadata[length:]
-
+                try:
+                    while metadata:
+                        length, value = self._parse_value(metadata)
+                        if isinstance(value, dict):
+                            if value.get('duration'):
+                                self.length = value.get('duration')
+                            self._appendtable('FLVINFO', value)
+                        if not length:
+                            # parse error
+                            break
+                        metadata = metadata[length:]
+                except (KeyboardInterrupt, SystemExit):
+                    sys.exit(0)
+                except:
+                    pass
             else:
                 log.info('unkown %s', str(chunk))
                 file.seek(size, 1)

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to