Bugfix camera streams (#5306)

* fix mjpeg streams

* fix trow error on close by frontend

* fix ffmpeg
pull/5309/head
Pascal Vizeli 2017-01-14 00:57:38 +01:00 committed by Paulus Schoutsen
parent 6abad6b76e
commit 4b43537801
3 changed files with 18 additions and 4 deletions

View File

@ -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):

View File

@ -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()

View File

@ -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()