From cba2e6b90b50c208e3354d4561b40576a251c370 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期六, 04 六月 2022 23:18:01 +0800
Subject: [PATCH] 优化wasm播放器内存占用问题
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 24 +++++++++++-------------
1 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index 7c63279..75b4114 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -40,7 +40,7 @@
import javax.sip.message.Request;
import javax.sip.message.Response;
import java.text.ParseException;
-import java.util.Date;
+import java.time.Instant;
import java.util.Vector;
/**
@@ -180,16 +180,16 @@
Long startTime = null;
Long stopTime = null;
- Date start = null;
- Date end = null;
+ Instant start = null;
+ Instant end = null;
if (sdp.getTimeDescriptions(false) != null && sdp.getTimeDescriptions(false).size() > 0) {
TimeDescriptionImpl timeDescription = (TimeDescriptionImpl)(sdp.getTimeDescriptions(false).get(0));
TimeField startTimeFiled = (TimeField)timeDescription.getTime();
startTime = startTimeFiled.getStartTime();
stopTime = startTimeFiled.getStopTime();
- start = new Date(startTime*1000);
- end = new Date(stopTime*1000);
+ start = Instant.ofEpochSecond(startTime);
+ end = Instant.ofEpochSecond(stopTime);
}
// 鑾峰彇鏀寔鐨勬牸寮�
Vector mediaDescriptions = sdp.getMediaDescriptions(true);
@@ -235,7 +235,7 @@
String username = sdp.getOrigin().getUsername();
String addressStr = sdp.getOrigin().getAddress();
- logger.info("[涓婄骇鐐规挱]鐢ㄦ埛锛歿}锛� 鍦板潃锛歿}:{}锛� ssrc锛歿}", username, addressStr, port, ssrc);
+ logger.info("[涓婄骇鐐规挱]鐢ㄦ埛锛歿}锛� 閫氶亾锛歿}, 鍦板潃锛歿}:{}锛� ssrc锛歿}", username, channelId, addressStr, port, ssrc);
Device device = null;
// 閫氳繃 channel 鍜� gbStream 鏄惁涓簄ull 鍊煎垽鏂潵婧愭槸鐩存挱娴佸悎閫傚浗鏍�
if (channel != null) {
@@ -264,10 +264,7 @@
}
sendRtpItem.setCallId(callIdHeader.getCallId());
sendRtpItem.setPlayType("Play".equals(sessionName)?InviteStreamType.PLAY:InviteStreamType.PLAYBACK);
- byte[] dialogByteArray = SerializeUtils.serialize(evt.getDialog());
- sendRtpItem.setDialog(dialogByteArray);
- byte[] transactionByteArray = SerializeUtils.serialize(evt.getServerTransaction());
- sendRtpItem.setTransaction(transactionByteArray);
+
Long finalStartTime = startTime;
Long finalStopTime = stopTime;
ZLMHttpHookSubscribe.Event hookEvent = (mediaServerItemInUSe, responseJSON)->{
@@ -335,8 +332,8 @@
sendRtpItem.setStreamId(ssrcInfo.getStream());
// 鍐欏叆redis锛� 瓒呮椂鏃跺洖澶�
redisCatchStorage.updateSendRTPSever(sendRtpItem);
- playService.playBack(mediaServerItem, ssrcInfo, device.getDeviceId(), channelId, DateUtil.format.format(start),
- DateUtil.format.format(end), null, result -> {
+ playService.playBack(mediaServerItem, ssrcInfo, device.getDeviceId(), channelId, DateUtil.formatter.format(start),
+ DateUtil.formatter.format(end), null, result -> {
if (result.getCode() != 0){
logger.warn("褰曞儚鍥炴斁澶辫触");
if (result.getEvent() != null) {
@@ -372,11 +369,12 @@
if (mediaServerItem.isRtpEnable()) {
streamId = String.format("%s_%s", device.getDeviceId(), channelId);
}
- SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, true, false);
+ SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, null, device.isSsrcCheck(), false);
sendRtpItem.setStreamId(ssrcInfo.getStream());
// 鍐欏叆redis锛� 瓒呮椂鏃跺洖澶�
redisCatchStorage.updateSendRTPSever(sendRtpItem);
playService.play(mediaServerItem, ssrcInfo, device, channelId, hookEvent, errorEvent, (code, msg)->{
+ logger.info("[涓婄骇鐐规挱]瓒呮椂, 鐢ㄦ埛锛歿}锛� 閫氶亾锛歿}", username, channelId);
redisCatchStorage.deleteSendRTPServer(platform.getServerGBId(), channelId, callIdHeader.getCallId(), null);
}, null);
}else {
--
Gitblit v1.8.0