From 6f4657fe022504c33ebb09f17a08d33b1fcb76ee Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 12 Dec 2018 11:44:50 +0100 Subject: [PATCH] Revert PR #18602 (#19188) --- homeassistant/components/camera/mjpeg.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/camera/mjpeg.py b/homeassistant/components/camera/mjpeg.py index 5c6d7e18075..2819b0e6ec4 100644 --- a/homeassistant/components/camera/mjpeg.py +++ b/homeassistant/components/camera/mjpeg.py @@ -59,15 +59,21 @@ async def async_setup_platform(hass, config, async_add_entities, def extract_image_from_mjpeg(stream): """Take in a MJPEG stream object, return the jpg from it.""" - data = bytes() - data_start = b"\xff\xd8" - data_end = b"\xff\xd9" - for chunk in stream: - end_idx = chunk.find(data_end) - if end_idx != -1: - return data[data.find(data_start):] + chunk[:end_idx + 2] + data = b'' + for chunk in stream: data += chunk + jpg_end = data.find(b'\xff\xd9') + + if jpg_end == -1: + continue + + jpg_start = data.find(b'\xff\xd8') + + if jpg_start == -1: + continue + + return data[jpg_start:jpg_end + 2] class MjpegCamera(Camera):