stream listener backup upstream
This commit is contained in:
parent
2445bd1e83
commit
8bf430e040
2
radio.py
2
radio.py
@ -76,8 +76,6 @@ def queue():
|
||||
return str(list(r.queue.queue))
|
||||
|
||||
def run():
|
||||
r.addToQueue('https://www.youtube.com/watch?v=BaW_jenozKc')
|
||||
r.playIfSongAvailable()
|
||||
app.run(host="0.0.0.0")
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -11,10 +11,11 @@ from time import sleep
|
||||
#
|
||||
class StreamListener(Thread):
|
||||
|
||||
def __init__(self, upstream, downstream):
|
||||
def __init__(self, upstream, downstream, backupUpstream=None):
|
||||
Thread.__init__(self)
|
||||
self.setUpstream(upstream)
|
||||
self.setDownstream(downstream)
|
||||
self.setBackupUpstream(backupUpstream)
|
||||
self.quit = False
|
||||
|
||||
def setUpstream(self, upstream):
|
||||
@ -23,6 +24,12 @@ class StreamListener(Thread):
|
||||
else:
|
||||
self.stream = None
|
||||
|
||||
def setBackupUpstream(self, upstream):
|
||||
if not upstream is None:
|
||||
self.backupStream = upstream.getStream()
|
||||
else:
|
||||
self.backupStream = None
|
||||
|
||||
def setDownstream(self, downstream):
|
||||
self.listener = downstream
|
||||
|
||||
@ -44,6 +51,11 @@ class StreamListener(Thread):
|
||||
if not self.stream is None:
|
||||
output = non_block_read(self.stream)
|
||||
if output == None or output == b'':
|
||||
break
|
||||
if not self.backupStream is None:
|
||||
output = non_block_read(self.backupStream)
|
||||
if output == None or output == b'':
|
||||
break
|
||||
else:
|
||||
break
|
||||
self.listener.write(output)
|
||||
sleep(0.1)
|
@ -2,6 +2,7 @@ import ffmpeg
|
||||
from logger import logger
|
||||
import sys
|
||||
from stream_listener import StreamListener
|
||||
import nullsrc
|
||||
|
||||
class Uploader(object):
|
||||
|
||||
@ -15,7 +16,7 @@ class Uploader(object):
|
||||
.run_async(pipe_stdin=True, pipe_stderr=True)
|
||||
)
|
||||
logger.add(self.process.stderr, "uploader.log")
|
||||
self.listener = StreamListener(None, self)
|
||||
self.listener = StreamListener(None, self, backupUpstream=nullsrc.NullSrc())
|
||||
self.listener.start()
|
||||
|
||||
def reconnect(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user