From d48f89eee40c58b2f0b69aaf4d7fab469dc4657b Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 24 七月 2023 09:04:47 +0800
Subject: [PATCH] 修复端口分配的并发问题
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 24 +++++++++++++-----------
1 files changed, 13 insertions(+), 11 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 c0a1fec..df87e46 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
@@ -153,7 +153,7 @@
// 鏌ヨ骞冲彴涓嬫槸鍚︽湁璇ラ�氶亾
DeviceChannel channel = storager.queryChannelInParentPlatform(requesterId, channelId);
GbStream gbStream = storager.queryStreamInParentPlatform(requesterId, channelId);
- PlatformCatalog catalog = storager.getCatalog(channelId);
+ PlatformCatalog catalog = storager.getCatalog(requesterId, channelId);
MediaServerItem mediaServerItem = null;
StreamPushItem streamPushItem = null;
@@ -476,16 +476,8 @@
}
});
}else {
- sendRtpItem.setPlayType(InviteStreamType.PLAY);
- String streamId = null;
- if (mediaServerItem.isRtpEnable()) {
- streamId = String.format("%s_%s", device.getDeviceId(), channelId);
- }else {
- streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
- }
- sendRtpItem.setStreamId(streamId);
- redisCatchStorage.updateSendRTPSever(sendRtpItem);
- playService.play(mediaServerItem, device.getDeviceId(), channelId, ((code, msg, data) -> {
+
+ SSRCInfo ssrcInfo = playService.play(mediaServerItem, device.getDeviceId(), channelId, ssrc, ((code, msg, data) -> {
if (code == InviteErrorCode.SUCCESS.getCode()){
hookEvent.run(code, msg, data);
}else if (code == InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode() || code == InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode()){
@@ -496,6 +488,16 @@
errorEvent.run(code, msg, data);
}
}));
+ sendRtpItem.setPlayType(InviteStreamType.PLAY);
+ String streamId = null;
+ if (mediaServerItem.isRtpEnable()) {
+ streamId = String.format("%s_%s", device.getDeviceId(), channelId);
+ }else {
+ streamId = String.format("%08x", Integer.parseInt(ssrcInfo.getSsrc())).toUpperCase();
+ }
+ sendRtpItem.setStreamId(streamId);
+ sendRtpItem.setSsrc(ssrcInfo.getSsrc());
+ redisCatchStorage.updateSendRTPSever(sendRtpItem);
}
} else if (gbStream != null) {
--
Gitblit v1.8.0