diff --git a/homeassistant/components/amcrest/camera.py b/homeassistant/components/amcrest/camera.py index 5ac6acb2071..a8aabc233d1 100644 --- a/homeassistant/components/amcrest/camera.py +++ b/homeassistant/components/amcrest/camera.py @@ -236,7 +236,7 @@ class AmcrestCam(Camera): # streaming via ffmpeg streaming_url = self._rtsp_url - stream = CameraMjpeg(self._ffmpeg.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._ffmpeg.binary) await stream.open_camera(streaming_url, extra_cmd=self._ffmpeg_arguments) try: diff --git a/homeassistant/components/arlo/camera.py b/homeassistant/components/arlo/camera.py index 6f7e3796309..36e32181702 100644 --- a/homeassistant/components/arlo/camera.py +++ b/homeassistant/components/arlo/camera.py @@ -88,7 +88,7 @@ class ArloCam(Camera): _LOGGER.error(error_msg) return - stream = CameraMjpeg(self._ffmpeg.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._ffmpeg.binary) await stream.open_camera(video.video_url, extra_cmd=self._ffmpeg_arguments) try: diff --git a/homeassistant/components/canary/camera.py b/homeassistant/components/canary/camera.py index a90eb5a2825..c3fd2a6ff00 100644 --- a/homeassistant/components/canary/camera.py +++ b/homeassistant/components/canary/camera.py @@ -128,7 +128,7 @@ class CanaryCamera(CoordinatorEntity, Camera): """Return a still image response from the camera.""" await self.hass.async_add_executor_job(self.renew_live_stream_session) - ffmpeg = ImageFrame(self._ffmpeg.binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self._ffmpeg.binary) image = await asyncio.shield( ffmpeg.get_image( self._live_stream_session.live_stream_url, @@ -143,7 +143,7 @@ class CanaryCamera(CoordinatorEntity, Camera): if self._live_stream_session is None: return - stream = CameraMjpeg(self._ffmpeg.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._ffmpeg.binary) await stream.open_camera( self._live_stream_session.live_stream_url, extra_cmd=self._ffmpeg_arguments ) diff --git a/homeassistant/components/ezviz/camera.py b/homeassistant/components/ezviz/camera.py index 701af451496..b9b2463314b 100644 --- a/homeassistant/components/ezviz/camera.py +++ b/homeassistant/components/ezviz/camera.py @@ -217,7 +217,7 @@ class HassEzvizCamera(Camera): async def async_camera_image(self): """Return a frame from the camera stream.""" - ffmpeg = ImageFrame(self._ffmpeg.binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self._ffmpeg.binary) image = await asyncio.shield( ffmpeg.get_image(self._rtsp_stream, output_format=IMAGE_JPEG) diff --git a/homeassistant/components/ffmpeg/__init__.py b/homeassistant/components/ffmpeg/__init__.py index bf44828cdb0..4b67f06ba23 100644 --- a/homeassistant/components/ffmpeg/__init__.py +++ b/homeassistant/components/ffmpeg/__init__.py @@ -97,7 +97,7 @@ async def async_get_image( ): """Get an image from a frame of an RTSP stream.""" manager = hass.data[DATA_FFMPEG] - ffmpeg = ImageFrame(manager.binary, loop=hass.loop) + ffmpeg = ImageFrame(manager.binary) image = await asyncio.shield( ffmpeg.get_image(input_source, output_format=output_format, extra_cmd=extra_cmd) ) @@ -123,7 +123,7 @@ class FFmpegManager: async def async_get_version(self): """Return ffmpeg version.""" - ffversion = FFVersion(self._bin, self.hass.loop) + ffversion = FFVersion(self._bin) self._version = await ffversion.get_version() self._major_version = None diff --git a/homeassistant/components/ffmpeg/camera.py b/homeassistant/components/ffmpeg/camera.py index 6aea28d6509..4cd8b0d1453 100644 --- a/homeassistant/components/ffmpeg/camera.py +++ b/homeassistant/components/ffmpeg/camera.py @@ -61,7 +61,7 @@ class FFmpegCamera(Camera): async def handle_async_mjpeg_stream(self, request): """Generate an HTTP MJPEG stream from the camera.""" - stream = CameraMjpeg(self._manager.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._manager.binary) await stream.open_camera(self._input, extra_cmd=self._extra_arguments) try: diff --git a/homeassistant/components/ffmpeg/manifest.json b/homeassistant/components/ffmpeg/manifest.json index aee0b85d056..4e160687d8d 100644 --- a/homeassistant/components/ffmpeg/manifest.json +++ b/homeassistant/components/ffmpeg/manifest.json @@ -2,6 +2,6 @@ "domain": "ffmpeg", "name": "FFmpeg", "documentation": "https://www.home-assistant.io/integrations/ffmpeg", - "requirements": ["ha-ffmpeg==2.0"], + "requirements": ["ha-ffmpeg==3.0.2"], "codeowners": [] } diff --git a/homeassistant/components/ffmpeg_motion/binary_sensor.py b/homeassistant/components/ffmpeg_motion/binary_sensor.py index 9dbe08ec649..314fbbd2210 100644 --- a/homeassistant/components/ffmpeg_motion/binary_sensor.py +++ b/homeassistant/components/ffmpeg_motion/binary_sensor.py @@ -90,9 +90,7 @@ class FFmpegMotion(FFmpegBinarySensor): """Initialize FFmpeg motion binary sensor.""" super().__init__(config) - self.ffmpeg = ffmpeg_sensor.SensorMotion( - manager.binary, hass.loop, self._async_callback - ) + self.ffmpeg = ffmpeg_sensor.SensorMotion(manager.binary, self._async_callback) async def _async_start_ffmpeg(self, entity_ids): """Start a FFmpeg instance. diff --git a/homeassistant/components/ffmpeg_noise/binary_sensor.py b/homeassistant/components/ffmpeg_noise/binary_sensor.py index 8425ed173b4..6c84c5973f1 100644 --- a/homeassistant/components/ffmpeg_noise/binary_sensor.py +++ b/homeassistant/components/ffmpeg_noise/binary_sensor.py @@ -53,9 +53,7 @@ class FFmpegNoise(FFmpegBinarySensor): """Initialize FFmpeg noise binary sensor.""" super().__init__(config) - self.ffmpeg = ffmpeg_sensor.SensorNoise( - manager.binary, hass.loop, self._async_callback - ) + self.ffmpeg = ffmpeg_sensor.SensorNoise(manager.binary, self._async_callback) async def _async_start_ffmpeg(self, entity_ids): """Start a FFmpeg instance. diff --git a/homeassistant/components/homekit/type_cameras.py b/homeassistant/components/homekit/type_cameras.py index fc9d20d61aa..b61a2c57612 100644 --- a/homeassistant/components/homekit/type_cameras.py +++ b/homeassistant/components/homekit/type_cameras.py @@ -370,7 +370,7 @@ class Camera(HomeAccessory, PyhapCamera): if self.config[CONF_SUPPORT_AUDIO]: output = output + " " + AUDIO_OUTPUT.format(**output_vars) _LOGGER.debug("FFmpeg output settings: %s", output) - stream = HAFFmpeg(self._ffmpeg.binary, loop=self.driver.loop) + stream = HAFFmpeg(self._ffmpeg.binary) opened = await stream.open( cmd=[], input_source=input_source, output=output, stdout_pipe=False ) diff --git a/homeassistant/components/onvif/camera.py b/homeassistant/components/onvif/camera.py index 595924fe40d..50390464df8 100644 --- a/homeassistant/components/onvif/camera.py +++ b/homeassistant/components/onvif/camera.py @@ -136,7 +136,7 @@ class ONVIFCameraEntity(ONVIFBaseEntity, Camera): ) if image is None: - ffmpeg = ImageFrame(self.hass.data[DATA_FFMPEG].binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self.hass.data[DATA_FFMPEG].binary) image = await asyncio.shield( ffmpeg.get_image( self._stream_uri, @@ -154,7 +154,7 @@ class ONVIFCameraEntity(ONVIFBaseEntity, Camera): LOGGER.debug("Handling mjpeg stream from camera '%s'", self.device.name) ffmpeg_manager = self.hass.data[DATA_FFMPEG] - stream = CameraMjpeg(ffmpeg_manager.binary, loop=self.hass.loop) + stream = CameraMjpeg(ffmpeg_manager.binary) await stream.open_camera( self._stream_uri, diff --git a/homeassistant/components/ring/camera.py b/homeassistant/components/ring/camera.py index a313bcf03ba..bd5950b81a9 100644 --- a/homeassistant/components/ring/camera.py +++ b/homeassistant/components/ring/camera.py @@ -103,7 +103,7 @@ class RingCam(RingEntityMixin, Camera): async def async_camera_image(self): """Return a still image response from the camera.""" - ffmpeg = ImageFrame(self._ffmpeg.binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self._ffmpeg.binary) if self._video_url is None: return @@ -121,7 +121,7 @@ class RingCam(RingEntityMixin, Camera): if self._video_url is None: return - stream = CameraMjpeg(self._ffmpeg.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._ffmpeg.binary) await stream.open_camera(self._video_url) try: diff --git a/homeassistant/components/xiaomi/camera.py b/homeassistant/components/xiaomi/camera.py index 97a0aca20f7..359d6c8b896 100644 --- a/homeassistant/components/xiaomi/camera.py +++ b/homeassistant/components/xiaomi/camera.py @@ -149,7 +149,7 @@ class XiaomiCamera(Camera): url = await self.hass.async_add_executor_job(self.get_latest_video_url, host) if url != self._last_url: - ffmpeg = ImageFrame(self._manager.binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self._manager.binary) self._last_image = await asyncio.shield( ffmpeg.get_image( url, output_format=IMAGE_JPEG, extra_cmd=self._extra_arguments @@ -162,7 +162,7 @@ class XiaomiCamera(Camera): async def handle_async_mjpeg_stream(self, request): """Generate an HTTP MJPEG stream from the camera.""" - stream = CameraMjpeg(self._manager.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._manager.binary) await stream.open_camera(self._last_url, extra_cmd=self._extra_arguments) try: diff --git a/homeassistant/components/yi/camera.py b/homeassistant/components/yi/camera.py index e669f530197..c130532a2e1 100644 --- a/homeassistant/components/yi/camera.py +++ b/homeassistant/components/yi/camera.py @@ -123,12 +123,11 @@ class YiCamera(Camera): """Return a still image response from the camera.""" url = await self._get_latest_video_url() if url and url != self._last_url: - ffmpeg = ImageFrame(self._manager.binary, loop=self.hass.loop) + ffmpeg = ImageFrame(self._manager.binary) self._last_image = await asyncio.shield( ffmpeg.get_image( url, output_format=IMAGE_JPEG, extra_cmd=self._extra_arguments ), - loop=self.hass.loop, ) self._last_url = url @@ -139,7 +138,7 @@ class YiCamera(Camera): if not self._is_on: return - stream = CameraMjpeg(self._manager.binary, loop=self.hass.loop) + stream = CameraMjpeg(self._manager.binary) await stream.open_camera(self._last_url, extra_cmd=self._extra_arguments) try: diff --git a/requirements_all.txt b/requirements_all.txt index 5567a30a054..024e15f509a 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -720,7 +720,7 @@ gstreamer-player==1.1.2 guppy3==3.1.0 # homeassistant.components.ffmpeg -ha-ffmpeg==2.0 +ha-ffmpeg==3.0.2 # homeassistant.components.philips_js ha-philipsjs==0.0.8 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index a6a404ebb00..94b279722e0 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -367,7 +367,7 @@ griddypower==0.1.0 guppy3==3.1.0 # homeassistant.components.ffmpeg -ha-ffmpeg==2.0 +ha-ffmpeg==3.0.2 # homeassistant.components.hangouts hangups==0.4.11 diff --git a/tests/components/ffmpeg/test_sensor.py b/tests/components/ffmpeg/test_sensor.py index 5a89daa624c..a6c9c1f441a 100644 --- a/tests/components/ffmpeg/test_sensor.py +++ b/tests/components/ffmpeg/test_sensor.py @@ -61,7 +61,7 @@ class TestFFmpegNoiseSetup: entity = self.hass.states.get("binary_sensor.ffmpeg_noise") assert entity.state == "off" - self.hass.add_job(mock_ffmpeg.call_args[0][2], True) + self.hass.add_job(mock_ffmpeg.call_args[0][1], True) self.hass.block_till_done() entity = self.hass.states.get("binary_sensor.ffmpeg_noise") @@ -123,7 +123,7 @@ class TestFFmpegMotionSetup: entity = self.hass.states.get("binary_sensor.ffmpeg_motion") assert entity.state == "off" - self.hass.add_job(mock_ffmpeg.call_args[0][2], True) + self.hass.add_job(mock_ffmpeg.call_args[0][1], True) self.hass.block_till_done() entity = self.hass.states.get("binary_sensor.ffmpeg_motion")