From 3aac15df62260fc626410f07dfc3716bb25a9761 Mon Sep 17 00:00:00 2001 From: Matthew Skinner Date: Sun, 9 Oct 2022 06:26:51 +1100 Subject: [PATCH] Fix mjpeg wont open multiple streams when port is not 80 (#13502) Signed-off-by: Matthew Skinner --- .../binding/ipcamera/internal/handler/IpCameraHandler.java | 6 ++++-- .../binding/ipcamera/internal/servlet/CameraServlet.java | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java index 08fd53083..1e15c3380 100644 --- a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java +++ b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java @@ -1406,7 +1406,7 @@ public class IpCameraHandler extends BaseThingHandler { } } - boolean streamIsStopped(String url) { + private boolean streamIsStopped(String url) { ChannelTracking channelTracking = channelTrackingMap.get(url); if (channelTracking != null) { if (channelTracking.getChannel().isActive()) { @@ -1732,7 +1732,9 @@ public class IpCameraHandler extends BaseThingHandler { localFfmpeg.stopConverting(); ffmpegSnapshot = null; } - onvifCamera.disconnect(); + if (!thing.getThingTypeUID().getId().equals(GENERIC_THING)) {// generic cameras do not have ONVIF support + onvifCamera.disconnect(); + } openChannels.close(); } diff --git a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/servlet/CameraServlet.java b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/servlet/CameraServlet.java index dfe9af68d..a7e4c57a9 100644 --- a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/servlet/CameraServlet.java +++ b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/servlet/CameraServlet.java @@ -187,11 +187,10 @@ public class CameraServlet extends IpCameraServlet { if (handler.mjpegUri.isEmpty() || "ffmpeg".equals(handler.mjpegUri)) { output = new StreamOutput(resp); } else { - ChannelTracking tracker = handler.channelTrackingMap.get(handler.mjpegUri); + ChannelTracking tracker = handler.channelTrackingMap.get(handler.getTinyUrl(handler.mjpegUri)); if (tracker == null || !tracker.getChannel().isOpen()) { logger.debug("Not the first stream requested but the stream from camera was closed"); handler.openCamerasStream(); - openStreams.closeAllStreams(); } output = new StreamOutput(resp, handler.mjpegContentType); }