stream listener backup upstream

This commit is contained in:
zuckerberg 2021-06-08 08:12:12 -04:00
parent 2445bd1e83
commit 8bf430e040
3 changed files with 16 additions and 5 deletions

View File

@ -76,8 +76,6 @@ def queue():
return str(list(r.queue.queue)) return str(list(r.queue.queue))
def run(): def run():
r.addToQueue('https://www.youtube.com/watch?v=BaW_jenozKc')
r.playIfSongAvailable()
app.run(host="0.0.0.0") app.run(host="0.0.0.0")
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -11,10 +11,11 @@ from time import sleep
# #
class StreamListener(Thread): class StreamListener(Thread):
def __init__(self, upstream, downstream): def __init__(self, upstream, downstream, backupUpstream=None):
Thread.__init__(self) Thread.__init__(self)
self.setUpstream(upstream) self.setUpstream(upstream)
self.setDownstream(downstream) self.setDownstream(downstream)
self.setBackupUpstream(backupUpstream)
self.quit = False self.quit = False
def setUpstream(self, upstream): def setUpstream(self, upstream):
@ -23,6 +24,12 @@ class StreamListener(Thread):
else: else:
self.stream = None self.stream = None
def setBackupUpstream(self, upstream):
if not upstream is None:
self.backupStream = upstream.getStream()
else:
self.backupStream = None
def setDownstream(self, downstream): def setDownstream(self, downstream):
self.listener = downstream self.listener = downstream
@ -44,6 +51,11 @@ class StreamListener(Thread):
if not self.stream is None: if not self.stream is None:
output = non_block_read(self.stream) output = non_block_read(self.stream)
if output == None or output == b'': 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) self.listener.write(output)
sleep(0.1) sleep(0.1)

View File

@ -2,6 +2,7 @@ import ffmpeg
from logger import logger from logger import logger
import sys import sys
from stream_listener import StreamListener from stream_listener import StreamListener
import nullsrc
class Uploader(object): class Uploader(object):
@ -15,7 +16,7 @@ class Uploader(object):
.run_async(pipe_stdin=True, pipe_stderr=True) .run_async(pipe_stdin=True, pipe_stderr=True)
) )
logger.add(self.process.stderr, "uploader.log") logger.add(self.process.stderr, "uploader.log")
self.listener = StreamListener(None, self) self.listener = StreamListener(None, self, backupUpstream=nullsrc.NullSrc())
self.listener.start() self.listener.start()
def reconnect(self): def reconnect(self):