]> git.parisson.com Git - deefuzzer.git/commitdiff
fix ogg metadata, add recorder
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 25 Jan 2010 14:34:29 +0000 (14:34 +0000)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 25 Jan 2010 14:34:29 +0000 (14:34 +0000)
tools/ogg.py
tools/recorder.py [new file with mode: 0644]

index 5c1bbda452256643cf49128815097156013a87d6..1f40f1eb07668b43d3221ab19166b2d12c2404eb 100644 (file)
@@ -9,16 +9,16 @@
 # and video data through icecast2 servers.
 
 # This software is governed by the CeCILL  license under French law and
-# abiding by the rules of distribution of free software.  You can  use, 
+# abiding by the rules of distribution of free software.  You can  use,
 # modify and/ or redistribute the software under the terms of the CeCILL
 # license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info". 
+# "http://www.cecill.info".
 
 # As a counterpart to the access to the source code and  rights to copy,
 # modify and redistribute granted by the license, users are provided only
 # with a limited warranty  and the software's author,  the holder of the
 # economic rights,  and the successive licensors  have only  limited
-# liability. 
+# liability.
 
 # In this respect, the user's attention is drawn to the risks associated
 # with loading,  using,  modifying and/or developing or reproducing the
@@ -27,8 +27,8 @@
 # therefore means  that it is reserved for developers  and  experienced
 # professionals having in-depth computer knowledge. Users are therefore
 # encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or 
-# data to be ensured and,  more generally, to use and operate it in the 
+# requirements in conditions enabling the security of their systems and/or
+# data to be ensured and,  more generally, to use and operate it in the
 # same conditions as regards security.
 
 # The fact that you are presently reading this means that you have had
@@ -45,7 +45,7 @@ from tools import *
 
 class Ogg:
     """An OGG file object"""
-    
+
     def __init__(self, media):
         self.media = media
         self.ogg = OggVorbis(self.media)
@@ -78,7 +78,7 @@ class Ogg:
 
     def get_format(self):
         return 'OGG'
-    
+
     def get_file_extension(self):
         return 'ogg'
 
@@ -106,8 +106,7 @@ class Ogg:
         metadata = {}
         for key in self.keys2ogg.keys():
             try:
-                text = self.ogg[key][0].decode()
-                metadata[key] = text
+                metadata[key] = self.ogg[key][0]
             except:
                 metadata[key] = ''
         return metadata
@@ -121,9 +120,11 @@ class Ogg:
             raise IOError('ExporterError: decoder is not compatible.')
 
     def write_tags(self):
+        self.ogg.add_tags()
+        self.ogg.save()
         for tag in self.metadata.keys():
             self.ogg[tag] = str(self.metadata[tag])
-        ogg.save()
+        self.ogg.save()
 
     def get_args(self,options=None):
         """Get process options and return arguments for the encoder"""
diff --git a/tools/recorder.py b/tools/recorder.py
new file mode 100644 (file)
index 0000000..a1c6314
--- /dev/null
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2006-2009 Guillaume Pellerin
+
+# <yomguy@parisson.com>
+
+# This software is a computer program whose purpose is to stream audio
+# and video data through icecast2 servers.
+
+# This software is governed by the CeCILL license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# "http://www.cecill.info".
+
+# As a counterpart to the access to the source code and  rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+
+# In this respect, the user's attention is drawn to the risks associated
+# with loading, using,  modifying and/or developing or reproducing the
+# software by the user in light of its specific status of free software,
+# that may mean that it is complicated to manipulate, and that also
+# therefore means that it is reserved for developers and  experienced
+# professionals having in-depth computer knowledge. Users are therefore
+# encouraged to load and test the software's suitability as regards their
+# requirements in conditions enabling the security of their systems and/or
+# data to be ensured and, more generally, to use and operate it in the
+# same conditions as regards security.
+
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL license and that you accept its terms.
+
+# Author: Guillaume Pellerin <yomguy@parisson.com>
+
+import os
+
+class Recorder:
+    """A file streaming iterator"""
+
+    def __init__(self, path):
+        self.path = path
+
+    def open(self, filename):
+        self.filename = filename
+        self.media = open(self.path + os.sep + self.filename, 'w')
+
+    def write(self, chunk):
+        self.media.write(chunk)
+
+    def close(self):
+        self.media.close()