浏览代码

修复错误的使用stream作为ssrc导致的无法stop问题

panlinlin 4 年之前
父节点
当前提交
74c9e0400d

+ 3 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java

@@ -121,7 +121,9 @@ public class SipLayer implements SipListener {
 		logger.debug(evt.getRequest().toString());
 		// 由于jainsip是单线程程序,为提高性能并发处理
 		processThreadPool.execute(() -> {
-			processorFactory.createRequestProcessor(evt).process();
+			if (processorFactory != null) {
+				processorFactory.createRequestProcessor(evt).process();
+			}
 		});
 	}
 

+ 4 - 16
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java

@@ -290,12 +290,8 @@ public class SIPCommander implements ISIPCommander {
 	@Override
 	public void playStreamCmd(Device device, String channelId, ZLMHttpHookSubscribe.Event event, SipSubscribe.Event errorEvent) {
 		try {
-			String ssrc = "";
-			if (rtpEnable) {
-				ssrc = String.format("gb_play_%s_%s", device.getDeviceId(), channelId);
-			}else {
-				ssrc = streamSession.createPlaySsrc();
-			}
+
+			String ssrc = streamSession.createPlaySsrc();
 			String streamId = null;
 			if (rtpEnable) {
 				streamId = String.format("gb_play_%s_%s", device.getDeviceId(), channelId);
@@ -412,16 +408,8 @@ public class SIPCommander implements ISIPCommander {
 			, SipSubscribe.Event errorEvent) {
 		try {
 			MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
-			String ssrc = null;
-			String streamId = null;
-			if (rtpEnable) {
-				ssrc = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId);
-				streamId = ssrc;
-			}else {
-				ssrc = streamSession.createPlayBackSsrc();
-				streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
-			}
-
+			String ssrc = streamSession.createPlayBackSsrc();
+			String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
 			// 添加订阅
 			JSONObject subscribeKey = new JSONObject();
 			subscribeKey.put("app", "rtp");