}
}
- boolean streamIsStopped(String url) {
+ private boolean streamIsStopped(String url) {
ChannelTracking channelTracking = channelTrackingMap.get(url);
if (channelTracking != null) {
if (channelTracking.getChannel().isActive()) {
localFfmpeg.stopConverting();
ffmpegSnapshot = null;
}
- onvifCamera.disconnect();
+ if (!thing.getThingTypeUID().getId().equals(GENERIC_THING)) {// generic cameras do not have ONVIF support
+ onvifCamera.disconnect();
+ }
openChannels.close();
}
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);
}