From 8cd905487e482e874a384c2e8a02070a53adfb95 Mon Sep 17 00:00:00 2001 From: Jason Hunter Date: Fri, 22 May 2020 12:13:37 -0400 Subject: [PATCH] Bump pyAV and close unclosed outputs (#35960) * bump pyAV and close unclosed outputs * skip stream from coverage for now * fix divide by zero error --- .coveragerc | 1 + homeassistant/components/stream/core.py | 5 ++++- homeassistant/components/stream/manifest.json | 2 +- homeassistant/components/stream/worker.py | 4 ++++ requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.coveragerc b/.coveragerc index c49073f28f0..03c1f9f088e 100644 --- a/.coveragerc +++ b/.coveragerc @@ -733,6 +733,7 @@ omit = homeassistant/components/steam_online/sensor.py homeassistant/components/stiebel_eltron/* homeassistant/components/stookalert/* + homeassistant/components/stream/* homeassistant/components/streamlabswater/* homeassistant/components/suez_water/* homeassistant/components/supervisord/sensor.py diff --git a/homeassistant/components/stream/core.py b/homeassistant/components/stream/core.py index 9282c2cb855..153c006ccb2 100644 --- a/homeassistant/components/stream/core.py +++ b/homeassistant/components/stream/core.py @@ -79,8 +79,11 @@ class StreamOutput: @property def target_duration(self) -> int: """Return the average duration of the segments in seconds.""" + segment_length = len(self._segments) + if not segment_length: + return 0 durations = [s.duration for s in self._segments] - return round(sum(durations) // len(self._segments)) or 1 + return round(sum(durations) // segment_length) or 1 def get_segment(self, sequence: int = None) -> Any: """Retrieve a specific segment, or the whole list.""" diff --git a/homeassistant/components/stream/manifest.json b/homeassistant/components/stream/manifest.json index 2cc60938a8d..e90d93cbfe3 100644 --- a/homeassistant/components/stream/manifest.json +++ b/homeassistant/components/stream/manifest.json @@ -2,7 +2,7 @@ "domain": "stream", "name": "Stream", "documentation": "https://www.home-assistant.io/integrations/stream", - "requirements": ["av==7.0.1"], + "requirements": ["av==8.0.1"], "dependencies": ["http"], "codeowners": ["@hunterjm"], "quality_scale": "internal" diff --git a/homeassistant/components/stream/worker.py b/homeassistant/components/stream/worker.py index 6cd07c7f926..15c1c3c02ff 100644 --- a/homeassistant/components/stream/worker.py +++ b/homeassistant/components/stream/worker.py @@ -164,3 +164,7 @@ def stream_worker(hass, stream, quit_event): # Assign the video packet to the new stream & mux packet.stream = buffer.vstream buffer.output.mux(packet) + + # Close stream + buffer.output.close() + container.close() diff --git a/requirements_all.txt b/requirements_all.txt index aca5464632b..c1f5956e737 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -291,7 +291,7 @@ atenpdu==0.3.0 aurorapy==0.2.6 # homeassistant.components.stream -av==7.0.1 +av==8.0.1 # homeassistant.components.avea avea==1.4 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 9b345ae89fb..96f65820985 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -141,7 +141,7 @@ arcam-fmj==0.4.6 async-upnp-client==0.14.13 # homeassistant.components.stream -av==7.0.1 +av==8.0.1 # homeassistant.components.axis axis==26