|
|
@@ -158,10 +158,7 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- String streamId = null;
|
|
|
- if (mediaServerItem.isRtpEnable()) {
|
|
|
- streamId = String.format("%s_%s", device.getDeviceId(), channelId);
|
|
|
- }
|
|
|
+ String streamId = String.format("%s_%s", device.getDeviceId(), channelId);;
|
|
|
SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, ssrc, device.isSsrcCheck(), false, 0, false, device.getStreamModeForParam());
|
|
|
if (ssrcInfo == null) {
|
|
|
callback.run(InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getCode(), InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getMsg(), null);
|
|
|
@@ -457,16 +454,13 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
logger.warn("[录像回放] 单端口收流时不支持TCP主动方式收流 deviceId: {},channelId:{}", deviceId, channelId);
|
|
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "单端口收流时不支持TCP主动方式收流");
|
|
|
}
|
|
|
- String stream = null;
|
|
|
- if (newMediaServerItem.isRtpEnable()) {
|
|
|
- String startTimeStr = startTime.replace("-", "")
|
|
|
- .replace(":", "")
|
|
|
- .replace(" ", "");
|
|
|
- String endTimeTimeStr = endTime.replace("-", "")
|
|
|
- .replace(":", "")
|
|
|
- .replace(" ", "");
|
|
|
- stream = deviceId + "_" + channelId + "_" + startTimeStr + "_" + endTimeTimeStr;
|
|
|
- }
|
|
|
+ String startTimeStr = startTime.replace("-", "")
|
|
|
+ .replace(":", "")
|
|
|
+ .replace(" ", "");
|
|
|
+ String endTimeTimeStr = endTime.replace("-", "")
|
|
|
+ .replace(":", "")
|
|
|
+ .replace(" ", "");
|
|
|
+ String stream = deviceId + "_" + channelId + "_" + startTimeStr + "_" + endTimeTimeStr;
|
|
|
SSRCInfo ssrcInfo = mediaServerService.openRTPServer(newMediaServerItem, stream, null, device.isSsrcCheck(), true, 0, false, device.getStreamModeForParam());
|
|
|
playBack(newMediaServerItem, ssrcInfo, deviceId, channelId, startTime, endTime, callback);
|
|
|
}
|
|
|
@@ -628,44 +622,13 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
if (ssrcInResponse != null) {
|
|
|
// 单端口
|
|
|
// 重新订阅流上线
|
|
|
- HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp",
|
|
|
- ssrcInfo.getStream(), true, "rtsp", mediaServerItem.getId());
|
|
|
- subscribe.removeSubscribe(hookSubscribe);
|
|
|
SsrcTransaction ssrcTransaction = streamSession.getSsrcTransaction(inviteInfo.getDeviceId(),
|
|
|
inviteInfo.getChannelId(), null, inviteInfo.getStream());
|
|
|
streamSession.remove(inviteInfo.getDeviceId(),
|
|
|
inviteInfo.getChannelId(), inviteInfo.getStream());
|
|
|
-
|
|
|
- String stream = String.format("%08x", Integer.parseInt(ssrcInResponse)).toUpperCase();
|
|
|
- hookSubscribe.getContent().put("stream", stream);
|
|
|
-
|
|
|
- inviteStreamService.updateInviteInfoForStream(inviteInfo, stream);
|
|
|
+ inviteStreamService.updateInviteInfoForSSRC(inviteInfo, ssrcInResponse);
|
|
|
streamSession.put(device.getDeviceId(), channelId, ssrcTransaction.getCallId(),
|
|
|
- stream, ssrcInResponse, mediaServerItem.getId(), (SIPResponse) responseEvent.getResponse(), inviteSessionType);
|
|
|
- subscribe.addSubscribe(hookSubscribe, (mediaServerItemInUse, hookParam) -> {
|
|
|
- logger.info("[Invite 200OK] ssrc修正后收到订阅消息: " + hookParam);
|
|
|
- dynamicTask.stop(timeOutTaskKey);
|
|
|
- subscribe.removeSubscribe(hookSubscribe);
|
|
|
- // hook响应
|
|
|
- StreamInfo streamInfo = onPublishHandlerForPlay(mediaServerItemInUse, hookParam, device.getDeviceId(), channelId);
|
|
|
- if (streamInfo == null){
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getMsg(), null);
|
|
|
- inviteStreamService.call(inviteSessionType, device.getDeviceId(), channelId, null,
|
|
|
- InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getMsg(), null);
|
|
|
- return;
|
|
|
- }
|
|
|
- callback.run(InviteErrorCode.SUCCESS.getCode(),
|
|
|
- InviteErrorCode.SUCCESS.getMsg(), streamInfo);
|
|
|
- inviteStreamService.call(inviteSessionType, device.getDeviceId(), channelId, null,
|
|
|
- InviteErrorCode.SUCCESS.getCode(),
|
|
|
- InviteErrorCode.SUCCESS.getMsg(),
|
|
|
- streamInfo);
|
|
|
- if (inviteSessionType == InviteSessionType.PLAY) {
|
|
|
- snapOnPlay(mediaServerItemInUse, device.getDeviceId(), channelId, stream);
|
|
|
- }
|
|
|
- });
|
|
|
+ inviteInfo.getStream(), ssrcInResponse, mediaServerItem.getId(), (SIPResponse) responseEvent.getResponse(), inviteSessionType);
|
|
|
}
|
|
|
}
|
|
|
}
|