]> git.basschouten.com Git - openhab-addons.git/commitdiff
Fix mjpeg wont open multiple streams when port is not 80 (#13502)
authorMatthew Skinner <matt@pcmus.com>
Sat, 8 Oct 2022 19:26:51 +0000 (06:26 +1100)
committerGitHub <noreply@github.com>
Sat, 8 Oct 2022 19:26:51 +0000 (21:26 +0200)
Signed-off-by: Matthew Skinner <matt@pcmus.com>
bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java
bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/servlet/CameraServlet.java

index 08fd5308349329e508ac9717ec5457a4b46e5f15..1e15c338035a8d1c484d44a7c61f85b1fb98bd73 100644 (file)
@@ -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();
     }
 
index dfe9af68dbc41d0e117a6769b693476a78ae4579..a7e4c57a904760d6554af04d381fed5bb515b3ef 100644 (file)
@@ -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);
                     }