|
|
@@ -459,9 +459,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;
|
|
|
}
|
|
|
logger.info("[点播开始] deviceId: {}, channelId: {},码流类型:{}, 收流端口: {}, 码流:{}, 收流模式:{}, SSRC: {}, SSRC校验:{}",
|
|
|
@@ -473,8 +475,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
// 释放ssrc
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
streamSession.remove(device.getDeviceId(), channel.getChannelId(), 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.getChannelId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_RESOURCE_EXHAUSTION.getCode(), "点播端口分配异常", null);
|
|
|
return;
|
|
|
@@ -494,8 +497,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
logger.info("[点播超时] 收流超时 deviceId: {}, channelId: {},码流:{},端口:{}, SSRC: {}",
|
|
|
device.getDeviceId(), channel.getChannelId(), 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.getChannelId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_STREAM_TIMEOUT.getMsg(), null);
|
|
|
inviteStreamService.removeInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, device.getDeviceId(), channel.getChannelId());
|
|
|
@@ -531,14 +535,19 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
// hook响应
|
|
|
StreamInfo streamInfo = onPublishHandlerForPlay(hookData.getMediaServer(), hookData.getMediaInfo(), device.getDeviceId(), channel.getChannelId());
|
|
|
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.getChannelId(), 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.getChannelId(), null,
|
|
|
InviteErrorCode.SUCCESS.getCode(),
|
|
|
InviteErrorCode.SUCCESS.getMsg(),
|
|
|
@@ -558,8 +567,9 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
|
|
|
streamSession.remove(device.getDeviceId(), channel.getChannelId(), 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.getChannelId(), null,
|
|
|
InviteErrorCode.ERROR_FOR_RESET_SSRC.getCode(),
|
|
|
String.format("点播失败, 错误码: %s, %s", event.statusCode, event.msg), null);
|
|
|
@@ -575,9 +585,10 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
|
|
|
|
|
|
streamSession.remove(device.getDeviceId(), channel.getChannelId(), ssrcInfo.getStream());
|
|
|
-
|
|
|
- callback.run(InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getCode(),
|
|
|
- InviteErrorCode.ERROR_FOR_SIP_SENDING_FAILED.getMsg(), 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);
|