Source code for gbvision.utils.cameras.stream_camera

from typing import Tuple, Union

from .camera import Camera
from .camera_data import CameraData
from gbvision.constants.types import Frame
from gbvision.utils.net.stream_receiver import StreamReceiver


[docs]class StreamCamera(Camera): """ A camera class which receives it's frames from a stream receiver :param data: The camera's CameraData object, should match the remote camera's data :param stream_receiver: The stream receiver to use """ def __init__(self, data: CameraData, stream_receiver: StreamReceiver): self.__data = data.copy() self.stream_receiver = stream_receiver
[docs] def release(self) -> None: self.stream_receiver.release()
[docs] def is_opened(self) -> bool: return self.stream_receiver.is_opened()
[docs] def set_exposure(self, exposure: Union[int, float, bool]) -> bool: return False
[docs] def set_auto_exposure(self, auto: Union[int, float, bool]) -> bool: return False
[docs] def get_data(self) -> CameraData: return self.__data
[docs] def get_width(self) -> int: return self.stream_receiver.get_width()
[docs] def get_height(self) -> int: return self.stream_receiver.get_height()
def _set_width(self, width: int) -> None: self.stream_receiver.set_width(width) def _set_height(self, height: int) -> None: self.stream_receiver.set_height(height)
[docs] def read(self) -> Tuple[bool, Frame]: return self.stream_receiver.read()
[docs] def get_fps(self) -> int: return -1
[docs] def set_fps(self, fps: int) -> bool: return False