Просмотр исходного кода

修复 流已经关闭后,再次调用关闭流的接口,返回超时

panlinlin 4 лет назад
Родитель
Сommit
c5f2aba9b2

+ 1 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java

@@ -44,5 +44,6 @@ public class VideoStreamSessionManager {
 		sessionMap.remove(deviceId + "_" + channelId);
 		SsrcUtil.releaseSsrc(ssrcMap.get(deviceId + "_" + channelId));
 		ssrcMap.remove(deviceId + "_" + channelId);
+		streamIdMap.remove(deviceId + "_" + channelId);
 	}
 }

+ 2 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java

@@ -581,8 +581,9 @@ public class SIPCommander implements ISIPCommander {
 			if (transaction == null) {
 				StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId);
 				if (streamInfo != null) {
-
+					redisCatchStorage.stopPlay(streamInfo);
 				}
+				okEvent.response(null);
 				return;
 			}
 			

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java

@@ -99,8 +99,8 @@ public class PlayController {
 			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);