From c5f2aba9b20089f184ce175b58a33a881ea9e0b1 Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期五, 16 四月 2021 18:23:13 +0800
Subject: [PATCH] 修复 流已经关闭后,再次调用关闭流的接口,返回超时

---
 src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java |    1 +
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java    |    3 ++-
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java      |    4 ++--
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
index 360472f..b6c0dfc 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
@@ -44,5 +44,6 @@
 		sessionMap.remove(deviceId + "_" + channelId);
 		SsrcUtil.releaseSsrc(ssrcMap.get(deviceId + "_" + channelId));
 		ssrcMap.remove(deviceId + "_" + channelId);
+		streamIdMap.remove(deviceId + "_" + channelId);
 	}
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index e0d0bf3..4263a78 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -581,8 +581,9 @@
 			if (transaction == null) {
 				StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId);
 				if (streamInfo != null) {
-
+					redisCatchStorage.stopPlay(streamInfo);
 				}
+				okEvent.response(null);
 				return;
 			}
 			
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
index f9b6a35..3d4c64c 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
@@ -99,8 +99,8 @@
 			StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId);
 			if (streamInfo == null) {
 				RequestMessage msg = new RequestMessage();
-				msg.setId(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid);
-				msg.setData("streamId not found");
+				msg.setId(DeferredResultHolder.CALLBACK_CMD_STOP + uuid);
+				msg.setData("鐐规挱鏈壘鍒�");
 				resultHolder.invokeResult(msg);
 			}else {
 				redisCatchStorage.stopPlay(streamInfo);

--
Gitblit v1.8.0