From 324ae744d757ad329e79770d1a0fbc4d3dfc4602 Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期五, 23 七月 2021 17:01:52 +0800
Subject: [PATCH] 增加历史媒体下载信令及API支持
---
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 39 ++++++++++++++++++++++++++++++---------
1 files changed, 30 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..9e402e1 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,38 @@
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);
+ }
+
+ public ConcurrentHashMap<String, ClientTransaction> getSessionMap() {
+ return sessionMap;
+ }
+
+ public ConcurrentHashMap<String, String> getSsrcMap() {
+ return ssrcMap;
+ }
+
+ public ConcurrentHashMap<String, String> getStreamIdMap() {
+ return streamIdMap;
}
}
--
Gitblit v1.8.0