| 1 | #!/usr/bin/python |
|---|
| 2 | # -*- coding: utf-8 -*- |
|---|
| 3 | # |
|---|
| 4 | # Copyright (C) 2006-2009 Guillaume Pellerin |
|---|
| 5 | |
|---|
| 6 | # <yomguy@parisson.com> |
|---|
| 7 | |
|---|
| 8 | # This software is a computer program whose purpose is to stream audio |
|---|
| 9 | # and video data through icecast2 servers. |
|---|
| 10 | |
|---|
| 11 | # This software is governed by the CeCILL license under French law and |
|---|
| 12 | # abiding by the rules of distribution of free software. You can use, |
|---|
| 13 | # modify and/ or redistribute the software under the terms of the CeCILL |
|---|
| 14 | # license as circulated by CEA, CNRS and INRIA at the following URL |
|---|
| 15 | # "http://www.cecill.info". |
|---|
| 16 | |
|---|
| 17 | # As a counterpart to the access to the source code and rights to copy, |
|---|
| 18 | # modify and redistribute granted by the license, users are provided only |
|---|
| 19 | # with a limited warranty and the software's author, the holder of the |
|---|
| 20 | # economic rights, and the successive licensors have only limited |
|---|
| 21 | # liability. |
|---|
| 22 | |
|---|
| 23 | # In this respect, the user's attention is drawn to the risks associated |
|---|
| 24 | # with loading, using, modifying and/or developing or reproducing the |
|---|
| 25 | # software by the user in light of its specific status of free software, |
|---|
| 26 | # that may mean that it is complicated to manipulate, and that also |
|---|
| 27 | # therefore means that it is reserved for developers and experienced |
|---|
| 28 | # professionals having in-depth computer knowledge. Users are therefore |
|---|
| 29 | # encouraged to load and test the software's suitability as regards their |
|---|
| 30 | # requirements in conditions enabling the security of their systems and/or |
|---|
| 31 | # data to be ensured and, more generally, to use and operate it in the |
|---|
| 32 | # same conditions as regards security. |
|---|
| 33 | |
|---|
| 34 | # The fact that you are presently reading this means that you have had |
|---|
| 35 | # knowledge of the CeCILL license and that you accept its terms. |
|---|
| 36 | |
|---|
| 37 | # Author: Guillaume Pellerin <yomguy@parisson.com> |
|---|
| 38 | |
|---|
| 39 | import os |
|---|
| 40 | |
|---|
| 41 | class Recorder: |
|---|
| 42 | """A file streaming iterator""" |
|---|
| 43 | |
|---|
| 44 | def __init__(self, path): |
|---|
| 45 | self.path = path |
|---|
| 46 | |
|---|
| 47 | def open(self, filename): |
|---|
| 48 | self.filename = filename |
|---|
| 49 | self.media = open(self.path + os.sep + self.filename, 'w') |
|---|
| 50 | |
|---|
| 51 | def write(self, chunk): |
|---|
| 52 | self.media.write(chunk) |
|---|
| 53 | self.media.flush() |
|---|
| 54 | |
|---|
| 55 | def close(self): |
|---|
| 56 | self.media.close() |
|---|