Allen Porter 8ca89b10eb
Split StreamState class out of SegmentBuffer (#60423)
This refactoring was pulled out of https://github.com/home-assistant/core/pull/53676 as an
initial step towards reverting the addition of the SegmentBuffer class, which will be
unrolled back into a for loop.

The StreamState class holds the persistent state in stream that is used across stream worker
instantiations, e.g. state across a retry or url expiration, which primarily handles
discontinuities. By itself, this PR is not a large win until follow up PRs further simplify
the SegmentBuffer class.
2021-11-29 22:25:28 -08:00
..
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-26 00:13:27 +01:00
2021-11-29 14:01:03 -08:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-04 10:07:50 -05:00
2021-11-04 10:07:50 -05:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 14:01:03 -08:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-28 00:14:19 +00:00
2021-11-15 00:12:46 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 14:01:03 -08:00
2021-11-25 00:13:33 +00:00
2021-11-04 10:07:50 -05:00
2021-11-29 00:13:08 +00:00
2021-11-29 00:13:08 +00:00
2021-11-29 14:01:03 -08:00
2021-11-29 00:13:08 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 14:01:03 -08:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-09 15:12:04 -05:00
2021-11-29 00:13:08 +00:00
2021-11-29 00:13:08 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-10-22 17:00:00 +02:00
2021-11-28 00:14:19 +00:00
2021-11-08 00:12:31 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 00:13:08 +00:00
2021-11-07 10:35:50 +01:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-10-22 22:09:19 +02:00
2021-11-27 00:12:17 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 20:00:39 -05:00
2021-11-04 10:07:50 -05:00
2021-11-28 00:14:19 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 06:21:33 +01:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-23 00:13:54 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-25 00:13:33 +00:00
2021-11-30 00:13:53 +00:00
2021-11-28 00:14:19 +00:00
2021-11-23 00:13:54 +00:00
2021-11-23 00:13:54 +00:00
2021-11-29 00:13:08 +00:00
2021-11-29 23:03:16 +01:00
2021-11-27 00:12:17 +00:00
2021-10-29 15:59:32 +02:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-23 00:13:54 +00:00
2021-11-29 14:01:03 -08:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-25 00:13:33 +00:00
2021-11-04 10:07:50 -05:00
2021-11-20 00:12:27 +00:00
2021-11-20 00:12:27 +00:00
2021-11-20 00:12:27 +00:00
2021-11-29 00:13:08 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-25 00:13:33 +00:00
2021-10-22 22:17:05 +02:00
2021-11-29 00:13:08 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-25 00:13:33 +00:00
2021-11-23 00:13:54 +00:00
2021-11-28 00:14:19 +00:00
2021-11-23 00:13:54 +00:00
2021-11-04 10:07:50 -05:00
2021-11-29 00:13:08 +00:00
2021-11-26 00:13:27 +01:00
2021-11-26 00:13:27 +01:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-04 10:07:50 -05:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-04 10:07:50 -05:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-19 00:14:01 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-25 00:13:33 +00:00
2021-11-26 00:12:49 +00:00
2021-11-30 00:13:53 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-04 10:07:50 -05:00
2021-11-12 22:09:07 +01:00
2021-11-10 00:17:39 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 14:01:03 -08:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-06 16:43:29 +01:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-26 00:12:49 +00:00
2021-10-26 20:41:12 +02:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-20 00:12:27 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-04 10:07:50 -05:00
2021-11-04 10:07:50 -05:00
2021-11-30 00:13:53 +00:00
2021-11-30 00:13:53 +00:00
2021-11-23 00:13:54 +00:00
2021-11-30 00:13:53 +00:00
2021-11-27 00:12:17 +00:00
2021-11-26 00:12:49 +00:00
2021-11-25 00:13:33 +00:00
2021-11-20 00:12:27 +00:00
2021-11-29 00:13:08 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-29 00:13:08 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-08 18:16:44 +01:00
2021-11-25 00:13:33 +00:00
2021-11-30 00:13:53 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 00:13:08 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-29 00:13:08 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-25 19:55:17 -08:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-04 10:07:50 -05:00
2021-11-26 00:12:49 +00:00
2021-11-27 00:12:17 +00:00
2021-10-22 00:14:10 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-23 00:13:54 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-13 00:11:56 +00:00
2021-11-25 00:13:33 +00:00
2021-11-28 00:14:19 +00:00
2021-11-26 00:12:49 +00:00
2021-11-25 00:13:33 +00:00
2021-11-30 00:13:53 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-27 00:12:17 +00:00
2021-11-25 00:13:33 +00:00
2021-11-26 00:12:49 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-06 16:43:29 +01:00
2021-11-30 00:13:53 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-30 00:13:53 +00:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-29 00:13:08 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-28 00:14:19 +00:00
2021-11-25 00:13:33 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-23 00:13:54 +00:00
2021-11-25 00:13:33 +00:00
2021-11-27 00:12:17 +00:00
2021-11-29 00:13:08 +00:00
2021-11-28 00:14:19 +00:00
2021-11-29 15:15:50 +01:00
2021-11-30 00:13:53 +00:00
2021-11-25 00:13:33 +00:00
2021-11-29 00:13:08 +00:00
2021-11-29 00:13:08 +00:00
2021-11-04 10:07:50 -05:00
2021-11-27 00:12:17 +00:00
2021-11-27 00:12:17 +00:00
2021-11-26 00:13:27 +01:00
2021-11-25 00:13:33 +00:00
2021-11-30 00:13:53 +00:00
2021-11-22 00:13:02 +00:00
2021-11-08 00:12:31 +00:00
2021-11-27 00:12:17 +00:00
2021-11-26 00:13:27 +01:00