From df11956c3c203434d3ef54955a502c466f1382dd Mon Sep 17 00:00:00 2001
From: 64850858 <648540858@qq.com>
Date: 星期一, 07 六月 2021 15:42:01 +0800
Subject: [PATCH] 取出错误配置

---
 src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 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 f8b9350..5ea57c1 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
@@ -8,34 +8,44 @@
 
 /**    
  * @Description:瑙嗛娴乻ession绠$悊鍣紝绠$悊瑙嗛棰勮銆侀瑙堝洖鏀剧殑閫氫俊鍙ユ焺 
- * @author: songww
+ * @author: swwheihei
  * @date:   2020骞�5鏈�13鏃� 涓嬪崍4:03:02     
  */
 @Component
 public class VideoStreamSessionManager {
 
 	private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>();
+	private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>();
+	private ConcurrentHashMap<String, String> streamIdMap = new ConcurrentHashMap<>();
 
 	public String createPlaySsrc(){
-		String ssrc = SsrcUtil.getPlaySsrc();
-		return ssrc;
+		return SsrcUtil.getPlaySsrc();
 	}
 	
 	public String createPlayBackSsrc(){
-		String ssrc = SsrcUtil.getPlayBackSsrc();
-		return ssrc;
+		return SsrcUtil.getPlayBackSsrc();
 	}
 	
-	public void put(String ssrc,ClientTransaction transaction){
-		sessionMap.put(ssrc, transaction);
+	public void put(String deviceId, String channelId ,String ssrc, String streamId, ClientTransaction transaction){
+		sessionMap.put(deviceId + "_" + channelId, transaction);
+		ssrcMap.put(deviceId + "_" + channelId, ssrc);
+		streamIdMap.put(deviceId + "_" + channelId, streamId);
 	}
 	
-	public ClientTransaction get(String ssrc){
-		return sessionMap.get(ssrc);
+	public ClientTransaction getTransaction(String deviceId, String channelId){
+		return sessionMap.get(deviceId + "_" + channelId);
+	}
+
+	public String getStreamId(String deviceId, String channelId){
+		return streamIdMap.get(deviceId + "_" + channelId);
 	}
 	
-	public void remove(String ssrc) {
-		sessionMap.remove(ssrc);
-		SsrcUtil.releaseSsrc(ssrc);
+	public void remove(String deviceId, String channelId) {
+		sessionMap.remove(deviceId + "_" + channelId);
+		if (ssrcMap.get(deviceId + "_" + channelId) != null) {
+			SsrcUtil.releaseSsrc(ssrcMap.get(deviceId + "_" + channelId));
+		}
+		ssrcMap.remove(deviceId + "_" + channelId);
+		streamIdMap.remove(deviceId + "_" + channelId);
 	}
 }

--
Gitblit v1.8.0