# 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
# 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
class Ogg:
"""An OGG file object"""
-
+
def __init__(self, media):
self.media = media
self.ogg = OggVorbis(self.media)
def get_format(self):
return 'OGG'
-
+
def get_file_extension(self):
return '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
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"""
--- /dev/null
+#!/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()