From: Matthew Skinner Date: Sat, 8 Oct 2022 19:26:51 +0000 (+1100) Subject: Fix mjpeg wont open multiple streams when port is not 80 (#13502) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=3aac15df62260fc626410f07dfc3716bb25a9761;p=openhab-addons.git Fix mjpeg wont open multiple streams when port is not 80 (#13502) Signed-off-by: Matthew Skinner --- 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 08fd530834..1e15c33803 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 dfe9af68db..a7e4c57a90 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); }