|
|
@@ -461,9 +461,11 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
ErrorCallback<Object> callback) {
|
|
|
|
|
|
if (mediaServerItem == null || ssrcInfo == null) {
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_PARAMETER_ERROR.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_PARAMETER_ERROR.getMsg(),
|
|
|
- null);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.ERROR_FOR_PARAMETER_ERROR.getCode(),
|
|
|
+ InviteErrorCode.ERROR_FOR_PARAMETER_ERROR.getMsg(),
|
|
|
+ null);
|
|
|
+ }
|
|
|
return;
|
|
|
}
|
|
|
log.info("[点播开始] deviceId: {}, channelId: {},码流类型:{}, 收流端口: {}, 码流:{}, 收流模式:{}, SSRC: {}, SSRC校验:{}",
|
|
|
@@ -475,8 +477,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
// 释放ssrc
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
streamSession.remove(device.getDeviceId(), channel.getDeviceId(), ssrcInfo.getStream());
|
|
|
-
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getCode(), "点播端口分配异常", null);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getCode(), "点播端口分配异常", null);
|
|
|
+ }
|
|
|
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getCode(), "点播端口分配异常", null);
|
|
|
return;
|
|
|
@@ -496,8 +499,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
log.info("[点播超时] 收流超时 deviceId: {}, channelId: {},码流:{},端口:{}, SSRC: {}",
|
|
|
device.getDeviceId(), channel.getDeviceId(), channel.getStreamIdentification(),
|
|
|
ssrcInfo.getPort(), ssrcInfo.getSsrc());
|
|
|
-
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getMsg(), null);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getMsg(), null);
|
|
|
+ }
|
|
|
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getMsg(), null);
|
|
|
inviteStreamService.removeInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId());
|
|
|
@@ -533,14 +537,19 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
// hook响应
|
|
|
StreamInfo streamInfo = onPublishHandlerForPlay(hookData.getMediaServer(), hookData.getMediaInfo(), device.getDeviceId(), channel.getDeviceId());
|
|
|
if (streamInfo == null){
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getMsg(), null);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getCode(),
|
|
|
+ InviteErrorCode.ERROR_FOR_STREAM_PARSING_EXCEPTIONS.getMsg(), null);
|
|
|
+ }
|
|
|
+
|
|
|
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), 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);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo);
|
|
|
+ }
|
|
|
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), null,
|
|
|
InviteErrorCode.SUCCESS.getCode(),
|
|
|
InviteErrorCode.SUCCESS.getMsg(),
|
|
|
@@ -560,8 +569,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
|
|
|
streamSession.remove(device.getDeviceId(), channel.getDeviceId(), ssrcInfo.getStream());
|
|
|
-
|
|
|
- callback.run(event.statusCode, event.msg, null);
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(event.statusCode, event.msg, null);
|
|
|
+ }
|
|
|
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_RESET_SSRC.getCode(),
|
|
|
String.format("点播失败, 错误码: %s, %s", event.statusCode, event.msg), null);
|
|
|
@@ -577,10 +587,11 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
|
|
|
streamSession.remove(device.getDeviceId(), channel.getDeviceId(), ssrcInfo.getStream());
|
|
|
-
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getMsg(), null);
|
|
|
- inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getDeviceId(), null,
|
|
|
+ if (callback != null) {
|
|
|
+ callback.run(InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getCode(),
|
|
|
+ InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getMsg(), null);
|
|
|
+ }
|
|
|
+ inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getChannelId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getCode(),
|
|
|
InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getMsg(), null);
|
|
|
|