diff --git a/video_streamer_mpeg/camera.py b/video_streamer_mpeg/camera.py index 960021f39d53b514eff516a7ffddee4c6af3c671..839aaf1690e7da356f49845ecc5d79b90befb482 100644 --- a/video_streamer_mpeg/camera.py +++ b/video_streamer_mpeg/camera.py @@ -30,6 +30,7 @@ class CameraBase(ABC): """Base camera frame grabber""" _formats = { + "YUV422PACKED": "yuyv422", "BAYER_RG16": "bayer_rggb8", "BAYER_BG16": "bayer_bggr8", "BAYER_RG8": "bayer_rggb8", @@ -55,9 +56,12 @@ class CameraBase(ABC): """ raw = self.raw_frame() - if raw.dtype == np.uint16: + if self.pix_format() in ["BAYER_RG16", "BAYER_BG16"]: return lut_display(raw, 0, 255) + if self.pix_format() == "YUV422PACKED": + return raw.byteswap() + return raw def format(self): diff --git a/video_streamer_mpeg/lima.py b/video_streamer_mpeg/lima.py index 1e1e82ec470af18a9ea3434d2b0a3d83e20dae23..d55976bea4357fdc0281881c9a3fd55b0558b53c 100644 --- a/video_streamer_mpeg/lima.py +++ b/video_streamer_mpeg/lima.py @@ -17,6 +17,7 @@ class LimaCamera(CameraBase): def __init__(self, device): self.image_width = None self.image_height = None + self.video_mode = None self.lima = tango.DeviceProxy(device) @@ -36,7 +37,10 @@ class LimaCamera(CameraBase): return (self.image_width, self.image_height) def pix_format(self): - return self.lima.video_mode + if self.video_mode is None: + self.video_mode = self.lima.video_mode + + return self.video_mode def raw_frame(self): # Thieved from Bliss https://gitlab.esrf.fr/bliss/bliss/blob/master/bliss/data/lima.py#L79