Bugfix camera streams (#5306)
* fix mjpeg streams * fix trow error on close by frontend * fix ffmpegpull/5309/head
parent
6abad6b76e
commit
4b43537801
|
@ -84,9 +84,15 @@ class FFmpegCamera(Camera):
|
|||
if not data:
|
||||
break
|
||||
response.write(data)
|
||||
|
||||
except asyncio.CancelledError:
|
||||
_LOGGER.debug("Close stream by browser.")
|
||||
response = None
|
||||
|
||||
finally:
|
||||
self.hass.async_add_job(stream.close())
|
||||
yield from response.write_eof()
|
||||
yield from stream.close()
|
||||
if response is not None:
|
||||
yield from response.write_eof()
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
|
|
@ -124,9 +124,13 @@ class MjpegCamera(Camera):
|
|||
except asyncio.TimeoutError:
|
||||
raise HTTPGatewayTimeout()
|
||||
|
||||
except asyncio.CancelledError:
|
||||
_LOGGER.debug("Close stream by browser.")
|
||||
response = None
|
||||
|
||||
finally:
|
||||
if stream is not None:
|
||||
yield from stream.close()
|
||||
stream.close()
|
||||
if response is not None:
|
||||
yield from response.write_eof()
|
||||
|
||||
|
|
|
@ -276,9 +276,13 @@ class SynologyCamera(Camera):
|
|||
_LOGGER.exception("Error on %s", streaming_url)
|
||||
raise HTTPGatewayTimeout()
|
||||
|
||||
except asyncio.CancelledError:
|
||||
_LOGGER.debug("Close stream by browser.")
|
||||
response = None
|
||||
|
||||
finally:
|
||||
if stream is not None:
|
||||
self.hass.async_add_job(stream.release())
|
||||
stream.close()
|
||||
if response is not None:
|
||||
yield from response.write_eof()
|
||||
|
||||
|
|
Loading…
Reference in New Issue