From 40d3d640274b4a994c0d356d8c14882ddf6b3b44 Mon Sep 17 00:00:00 2001 From: Jason Hunter Date: Fri, 24 Apr 2020 17:18:58 -0400 Subject: [PATCH] Fix recording duration flag (#34648) --- homeassistant/components/stream/manifest.json | 2 +- homeassistant/components/stream/recorder.py | 12 +++++++++++- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/stream/manifest.json b/homeassistant/components/stream/manifest.json index 873d76cf189..2cc60938a8d 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==6.1.2"], + "requirements": ["av==7.0.1"], "dependencies": ["http"], "codeowners": ["@hunterjm"], "quality_scale": "internal" diff --git a/homeassistant/components/stream/recorder.py b/homeassistant/components/stream/recorder.py index 1dd90b8b804..c28c73c64ac 100644 --- a/homeassistant/components/stream/recorder.py +++ b/homeassistant/components/stream/recorder.py @@ -17,7 +17,8 @@ def async_setup_recorder(hass): def recorder_save_worker(file_out: str, segments: List[Segment]): """Handle saving stream.""" - output = av.open(file_out, "w", options={"movflags": "frag_keyframe"}) + first_pts = None + output = av.open(file_out, "w") output_v = None for segment in segments: @@ -29,13 +30,22 @@ def recorder_save_worker(file_out: str, segments: List[Segment]): # Add output streams if not output_v: output_v = output.add_stream(template=source_v) + context = output_v.codec_context + context.flags |= "GLOBAL_HEADER" # Remux video for packet in source.demux(source_v): if packet is not None and packet.dts is not None: + if first_pts is None: + first_pts = packet.pts + + packet.pts -= first_pts + packet.dts -= first_pts packet.stream = output_v output.mux(packet) + source.close() + output.close() diff --git a/requirements_all.txt b/requirements_all.txt index c51b24ab0b9..cc6f15be0db 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -282,7 +282,7 @@ atenpdu==0.3.0 aurorapy==0.2.6 # homeassistant.components.stream -av==6.1.2 +av==7.0.1 # homeassistant.components.avea avea==1.4 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index aba541eb7a5..620adff681a 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -126,7 +126,7 @@ arcam-fmj==0.4.3 async-upnp-client==0.14.13 # homeassistant.components.stream -av==6.1.2 +av==7.0.1 # homeassistant.components.axis axis==25