Improve stream robustness by always retrying worker (#66417)

Improve stream robustness by always retrying in the worker on failure, rather than only when
keepalive is enabled.

This will make cloud cameras like nest more robust, since they have a tendency to be flaky. This
is also needed to improve client side retry behavior because when the client attempts to retry,
the stream token is already revoked because the worker stopped.

The worker will still idle timeout if no streams are present, so it won't go on forever if no
frontend is viewing the stream.
This commit is contained in:
Allen Porter
2022-02-12 20:59:11 -08:00
committed by GitHub
parent 203bda203d
commit 0a128d006f
4 changed files with 27 additions and 9 deletions

View File

@@ -669,8 +669,8 @@ async def test_update_stream_source(hass):
stream = Stream(hass, STREAM_SOURCE, {})
stream.add_provider(HLS_PROVIDER)
# Note that keepalive is not set here. The stream is "restarted" even though
# it is not stopping due to failure.
# Note that retries are disabled by default in tests, however the stream is "restarted" when
# the stream source is updated.
py_av = MockPyAv()
py_av.container.packets = PacketSequence(TEST_SEQUENCE_LENGTH)