2020-09-19 00:50:22 +02:00
|
|
|
import logging
|
|
|
|
|
|
|
|
from abc import ABC
|
|
|
|
|
|
|
|
from platypush.plugins.camera.model.writer import VideoWriter
|
|
|
|
|
2020-09-27 12:51:29 +02:00
|
|
|
logger = logging.getLogger('platypush')
|
2020-09-19 00:50:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
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:
|