From 5a7a7a12bde268c104610d3e81a08df06ccab5eb Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 27 六月 2023 16:46:26 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into main-dev --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java | 38 +++++++++++++++++++++----------------- 1 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java index 0d4b113..d63a656 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java @@ -9,6 +9,11 @@ import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForRtpServerTimeout; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.hook.HookParam; +import com.genersoft.iot.vmp.media.zlm.dto.hook.OnRtpServerTimeoutHookParam; +import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; +import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForRtpServerTimeout; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -228,7 +233,7 @@ int localPort = 0; if (userSetting.getGbSendStreamStrict()) { if (userSetting.getGbSendStreamStrict()) { - localPort = keepPort(serverItem, ssrc, null); + localPort = keepPort(serverItem, ssrc, localPort); if (localPort == 0) { return null; } @@ -264,7 +269,7 @@ // 榛樿涓洪殢鏈虹鍙� int localPort = 0; if (userSetting.getGbSendStreamStrict()) { - localPort = keepPort(serverItem, ssrc, null); + localPort = keepPort(serverItem, ssrc, localPort); if (localPort == 0) { return null; } @@ -290,9 +295,6 @@ */ public int keepPort(MediaServerItem serverItem, String ssrc, Integer localPort) { Map<String, Object> param = new HashMap<>(3); - if (localPort == null) { - localPort = 0; - } param.put("port", localPort); param.put("enable_tcp", 1); param.put("stream_id", ssrc); @@ -302,22 +304,24 @@ HookSubscribeForRtpServerTimeout hookSubscribeForRtpServerTimeout = HookSubscribeFactory.on_rtp_server_timeout(ssrc, null, serverItem.getId()); Integer finalLocalPort = localPort; hookSubscribe.addSubscribe(hookSubscribeForRtpServerTimeout, - (MediaServerItem mediaServerItem, JSONObject response)->{ - if (ssrc.equals(response.getString("ssrc"))) { - logger.info("[涓婄骇鐐规挱] {}->鐩戝惉绔彛鍒版湡缁х画淇濇寔鐩戝惉", ssrc); - int port = keepPort(serverItem, ssrc, finalLocalPort); - if (port == 0) { - logger.info("[涓婄骇鐐规挱] {}->鐩戝惉绔彛澶辫触锛岀Щ闄ょ洃鍚�", ssrc); - hookSubscribe.removeSubscribe(hookSubscribeForRtpServerTimeout); - } + (MediaServerItem mediaServerItem, HookParam hookParam)->{ + logger.info("[涓婄骇鐐规挱] {}->鐩戝惉绔彛鍒版湡缁х画淇濇寔鐩戝惉: {}", ssrc, finalLocalPort); + OnRtpServerTimeoutHookParam rtpServerTimeoutHookParam = (OnRtpServerTimeoutHookParam) hookParam; + if (!ssrc.equals(rtpServerTimeoutHookParam.getSsrc())) { + return; + } + int port = keepPort(serverItem, ssrc, finalLocalPort); + if (port == 0) { + logger.info("[涓婄骇鐐规挱] {}->鐩戝惉绔彛澶辫触锛岀Щ闄ょ洃鍚�", ssrc); + hookSubscribe.removeSubscribe(hookSubscribeForRtpServerTimeout); } }); - logger.info("[淇濇寔绔彛] {}->鐩戝惉绔彛: {}", ssrc, localPort); - logger.info("[淇濇寔绔彛] {}->鐩戝惉绔彛: {}", ssrc, localPort); + logger.info("[涓婄骇鐐规挱] {}->鐩戝惉绔彛: {}", ssrc, localPort); + return localPort; }else { - logger.info("[淇濇寔绔彛] 鐩戝惉绔彛澶辫触: {}", ssrc); + logger.info("[涓婄骇鐐规挱] 鐩戝惉绔彛澶辫触: {}->{}", ssrc, localPort); + return 0; } - return localPort; } /** -- Gitblit v1.8.0