platypush/platypush/plugins/camera/model/writer/preview/__init__.py

32 lines
857 B
Python

import logging
from abc import ABC
from platypush.plugins.camera.model.writer import VideoWriter
logger = logging.getLogger('cam-preview')
class PreviewWriter(VideoWriter, ABC):
"""
Abstract class for camera previews.
"""
class PreviewWriterFactory:
@staticmethod
def get(*args, **kwargs) -> PreviewWriter:
try:
import wx
# noinspection PyUnresolvedReferences
from platypush.plugins.camera.model.writer.preview.wx import WxPreviewWriter
return WxPreviewWriter(*args, **kwargs)
except ImportError:
logger.warning('wxPython not available, using ffplay as a fallback for camera previews')
from platypush.plugins.camera.model.writer.preview.ffplay import FFplayPreviewWriter
return FFplayPreviewWriter(*args, **kwargs)
# vim:sw=4:ts=4:et: