Package deefuzzer :: Package tools :: Module streamer
[hide private]
[frames] | no frames]

Source Code for Module deefuzzer.tools.streamer

 1  #!/usr/bin/python 
 2  # -*- coding: utf-8 -*- 
 3  # 
 4  # Copyright (C) 2006-2011 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  from threading import Thread 
40   
41   
42 -class HTTPStreamer(Thread):
43 protocol = 'http' 44 host = str 45 port = str 46 mount = str 47 user = str 48 password = str 49 public = str 50 audio_info = dict 51 name = str 52 genre = str 53 decription = str 54 format = str 55 url = str 56 delay = 0 57
58 - def __init__(self):
59 Thread.__init__(self) 60 import pycurl 61 62 self.curl = pycurl.Curl()
63
64 - def set_callback(self, read_callback):
66
67 - def delay(self):
68 return self.delay
69
70 - def open(self):
71 import pycurl 72 73 self.uri = self.protocol + '://' + self.host + ':' + str(self.port) 74 self.uri += self.mount + '?' + 'password=' + self.password 75 self.curl.setopt(pycurl.URL, self.uri) 76 self.curl.setopt(pycurl.UPLOAD, 1) 77 self.curl.setopt(pycurl.READFUNCTION, self.read_callback)
78
79 - def run(self):
80 self.curl.perform()
81
82 - def close(self):
83 self.curl.close()
84