From e1fcc1f21f6622871a5507fcd50aacfa99181879 Mon Sep 17 00:00:00 2001
From: 64850858 <648540858@qq.com>
Date: 星期四, 08 七月 2021 14:48:00 +0800
Subject: [PATCH] 补充swf文件
---
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 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 65e1e5f..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
@@ -16,6 +16,7 @@
private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>();
private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>();
+ private ConcurrentHashMap<String, String> streamIdMap = new ConcurrentHashMap<>();
public String createPlaySsrc(){
return SsrcUtil.getPlaySsrc();
@@ -25,18 +26,26 @@
return SsrcUtil.getPlayBackSsrc();
}
- public void put(String streamId,String ssrc,ClientTransaction transaction){
- sessionMap.put(streamId, transaction);
- ssrcMap.put(streamId, ssrc);
+ 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 streamId){
- return sessionMap.get(streamId);
+ 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 streamId) {
- sessionMap.remove(streamId);
- SsrcUtil.releaseSsrc(ssrcMap.get(streamId));
- ssrcMap.remove(streamId);
+ 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