From 7b46769a1674a59d4e243c1f3b6d8b481099b645 Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期四, 13 六月 2024 23:15:51 +0800
Subject: [PATCH] 修复国标录像下载后负载统计未清除的BUG
---
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 3 ++-
src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java | 14 +++++++++++---
src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java | 2 ++
src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java | 16 ++++++++++++++--
4 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
index 0770172..a9ea67f 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
@@ -27,7 +27,7 @@
@Value("${media.ip}")
private String ip;
- @Value("${media.wan_ip}")
+ @Value("${media.wan_ip:}")
private String wanIp;
@Value("${media.hook-ip:127.0.0.1}")
@@ -36,10 +36,10 @@
@Value("${sip.domain}")
private String sipDomain;
- @Value("${media.sdp-ip:${media.wan_ip}}")
+ @Value("${media.sdp-ip:${media.wan_ip:}}")
private String sdpIp;
- @Value("${media.stream-ip:${media.wan_ip}}")
+ @Value("${media.stream-ip:${media.wan_ip:}}")
private String streamIp;
@Value("${media.http-port:0}")
@@ -283,4 +283,12 @@
}
return false;
}
+
+ public String getWanIp() {
+ return wanIp;
+ }
+
+ public void setWanIp(String wanIp) {
+ this.wanIp = wanIp;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
index c06400d..e54fa92 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
@@ -14,6 +14,8 @@
*/
void updateInviteInfo(InviteInfo inviteInfo);
+ void updateInviteInfo(InviteInfo inviteInfo, Long time);
+
InviteInfo updateInviteInfoForStream(InviteInfo inviteInfo, String stream);
/**
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
index 6e00960..e5847f6 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
@@ -24,6 +24,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
@Service
@DS("master")
@@ -64,9 +65,13 @@
}
}
}
-
@Override
public void updateInviteInfo(InviteInfo inviteInfo) {
+ updateInviteInfo(inviteInfo, null);
+ }
+
+ @Override
+ public void updateInviteInfo(InviteInfo inviteInfo, Long time) {
if (inviteInfo == null || (inviteInfo.getDeviceId() == null || inviteInfo.getChannelId() == null)) {
logger.warn("[鏇存柊Invite淇℃伅]锛屽弬鏁颁笉鍏細 {}", JSON.toJSON(inviteInfo));
return;
@@ -118,7 +123,11 @@
":" + inviteInfoForUpdate.getChannelId() +
":" + inviteInfoForUpdate.getStream()+
":" + inviteInfoForUpdate.getSsrcInfo().getSsrc();
- redisTemplate.opsForValue().set(key, inviteInfoForUpdate);
+ if (time != null && time > 0) {
+ redisTemplate.opsForValue().set(key, inviteInfoForUpdate, time, TimeUnit.SECONDS);
+ }else {
+ redisTemplate.opsForValue().set(key, inviteInfoForUpdate);
+ }
}
@Override
@@ -243,6 +252,9 @@
String keyStr = (String) keyObj;
InviteInfo inviteInfo = (InviteInfo) redisTemplate.opsForValue().get(keyStr);
if (inviteInfo != null && inviteInfo.getStreamInfo() != null && inviteInfo.getStreamInfo().getMediaServerId().equals(mediaServerId)) {
+ if (inviteInfo.getType().equals(InviteSessionType.DOWNLOAD) && inviteInfo.getStreamInfo().getProgress() == 1) {
+ continue;
+ }
count++;
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index bc85ecf..39c67c2 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -1038,7 +1038,8 @@
InviteInfo inviteInfoForNew = inviteStreamService.getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId()
, inviteInfo.getChannelId(), inviteInfo.getStream());
inviteInfoForNew.getStreamInfo().setDownLoadFilePath(downloadFileInfo);
- inviteStreamService.updateInviteInfo(inviteInfoForNew);
+ // 涓嶅彲浠ラ┈涓婄Щ闄や細瀵艰嚧鍚庣画鎺ュ彛鎷夸笉鍒颁笅杞藉湴鍧�
+ inviteStreamService.updateInviteInfo(inviteInfoForNew, 60*15L);
};
Hook hook = Hook.getInstance(HookType.on_record_mp4, "rtp", ssrcInfo.getStream(), mediaServerItem.getId());
// 璁剧疆杩囨湡鏃堕棿锛屼笅杞藉け璐ユ椂鑷姩澶勭悊璁㈤槄鏁版嵁
--
Gitblit v1.8.0