2020-05-18 16:50:50 +00:00
|
|
|
from ..filters import FFmpegInput, FFmpegChain, FFmpegFilter
|
2020-05-17 02:29:43 +00:00
|
|
|
from .base import OBSSource
|
|
|
|
|
|
|
|
|
|
|
|
@OBSSource.type('image_source')
|
|
|
|
class ImageSource(OBSSource):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super().__init__(*args, **kwargs)
|
|
|
|
self.infile = None
|
|
|
|
|
|
|
|
def load(self, data):
|
|
|
|
self.infile = data['settings']['file']
|
|
|
|
|
|
|
|
def to_ffmpeg(self, scene):
|
2020-05-18 16:50:50 +00:00
|
|
|
return [FFmpegChain(inputs=[FFmpegInput(self.infile)])]
|
2020-05-17 02:29:43 +00:00
|
|
|
|
|
|
|
@OBSSource.type('ffmpeg_source')
|
|
|
|
class FFmpegSource(OBSSource):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super().__init__(*args, **kwargs)
|
|
|
|
self.infile = None
|
|
|
|
self.loop = False
|
|
|
|
|
|
|
|
def load(self, data):
|
|
|
|
self.infile = data['settings']['local_file']
|
|
|
|
self.loop = data['settings']['looping']
|
|
|
|
|
|
|
|
def to_ffmpeg(self, scene):
|
2020-05-18 16:50:50 +00:00
|
|
|
return [FFmpegChain(
|
|
|
|
FFmpegFilter('realtime'),
|
|
|
|
inputs=[FFmpegInput(self.infile, re=None)]
|
2020-05-17 02:29:43 +00:00
|
|
|
)]
|