From 1c6d0d138d4c37902c26a5092d7c93012bfedb9e Mon Sep 17 00:00:00 2001 From: uvjustin <46082645+uvjustin@users.noreply.github.com> Date: Mon, 12 Oct 2020 00:55:13 +0800 Subject: [PATCH] Adjust dts warning messages in stream (#41467) * Adjust dts warning messages * Wait for second packet with overflow dts condition * Rename dts gap watch variable * Remove out of order packet warning --- homeassistant/components/stream/worker.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/stream/worker.py b/homeassistant/components/stream/worker.py index 9e2d2221602..52fc9043470 100644 --- a/homeassistant/components/stream/worker.py +++ b/homeassistant/components/stream/worker.py @@ -88,6 +88,8 @@ def _stream_worker_internal(hass, stream, quit_event): last_dts = None # Keep track of consecutive packets without a dts to detect end of stream. last_packet_was_without_dts = False + # Keep track of consecutive packets with a large dts gap to detect an overflow. + last_packet_had_large_negative_dts_gap = False # Holds the buffers for each stream provider outputs = None # Keep track of the number of segments we've processed @@ -247,18 +249,17 @@ def _stream_worker_internal(hass, stream, quit_event): if (last_dts[packet.stream] - packet.dts) > ( packet.time_base * MAX_TIMESTAMP_GAP ): - _LOGGER.warning( - "Timestamp overflow detected: dts = %s, resetting stream", - packet.dts, - ) - finalize_stream() - break - _LOGGER.warning( - "Dropping out of order packet: %s <= %s", - packet.dts, - last_dts[packet.stream], - ) + if last_packet_had_large_negative_dts_gap: + _LOGGER.warning( + "Timestamp overflow detected: last dts %s, dts = %s, resetting stream", + last_dts[packet.stream], + packet.dts, + ) + finalize_stream() + break + last_packet_had_large_negative_dts_gap = True continue + last_packet_had_large_negative_dts_gap = False # Check for end of segment if packet.stream == video_stream and packet.is_keyframe: