From 87c071fd5e774091c7d87f3d7c24fd2360148d58 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 25 六月 2024 10:24:35 +0800
Subject: [PATCH] 合并271分支
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 6 +-
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 18 +++-----
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 14 ++----
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java | 4 +-
src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java | 7 +++
src/main/java/com/genersoft/iot/vmp/media/event/media/MediaArrivalEvent.java | 24 +++++++++++
6 files changed, 47 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index ec6f901..411c40f 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -27,6 +27,7 @@
import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
+import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.IPlayService;
import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.service.IStreamPushService;
@@ -593,12 +594,11 @@
sendRtpItem.setPlayType(InviteStreamType.PUSH);
if (streamPushItem != null) {
// 浠巖edis鏌ヨ鏄惁姝e湪鎺ユ敹杩欎釜鎺ㄦ祦
- StreamPushItem pushListItem = redisCatchStorage.getPushListItem(gbStream.getApp(), gbStream.getStream());
+ OnStreamChangedHookParam pushListItem = redisCatchStorage.getPushListItem(gbStream.getApp(), gbStream.getStream());
if (pushListItem != null) {
- sendRtpItem.setServerId(pushListItem.getServerId());
+ sendRtpItem.setServerId(pushListItem.getSeverId());
sendRtpItem.setMediaServerId(pushListItem.getMediaServerId());
- pushListItem.setSelf(userSetting.getServerId().equals(pushListItem.getServerId()));
redisCatchStorage.updateSendRTPSever(sendRtpItem);
// 寮�濮嬫帹娴�
sendPushStream(sendRtpItem, mediaServerItem, platform, request);
diff --git a/src/main/java/com/genersoft/iot/vmp/media/event/media/MediaArrivalEvent.java b/src/main/java/com/genersoft/iot/vmp/media/event/media/MediaArrivalEvent.java
index 2379321..2f51a3e 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/event/media/MediaArrivalEvent.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/event/media/MediaArrivalEvent.java
@@ -3,6 +3,7 @@
import com.genersoft.iot.vmp.media.bean.MediaInfo;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
+import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
/**
* 娴佸埌鏉ヤ簨浠�
@@ -19,13 +20,18 @@
mediaArrivalEvent.setStream(hookParam.getStream());
mediaArrivalEvent.setMediaServer(mediaServer);
mediaArrivalEvent.setSchema(hookParam.getSchema());
- mediaArrivalEvent.setCallId(hookParam.getCallId());
+ mediaArrivalEvent.setSchema(hookParam.getSchema());
+ mediaArrivalEvent.setHookParam(hookParam);
return mediaArrivalEvent;
}
private MediaInfo mediaInfo;
private String callId;
+
+ private OnStreamChangedHookParam hookParam;
+
+ private StreamContent streamInfo;
public MediaInfo getMediaInfo() {
return mediaInfo;
@@ -43,4 +49,20 @@
public void setCallId(String callId) {
this.callId = callId;
}
+
+ public OnStreamChangedHookParam getHookParam() {
+ return hookParam;
+ }
+
+ public void setHookParam(OnStreamChangedHookParam hookParam) {
+ this.hookParam = hookParam;
+ }
+
+ public StreamContent getStreamInfo() {
+ return streamInfo;
+ }
+
+ public void setStreamInfo(StreamContent streamInfo) {
+ this.streamInfo = streamInfo;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
index a0b3341..d8f5ba9 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
@@ -809,6 +809,13 @@
streamInfoResult.setRtc(addr, mediaServer.getHttpPort(),mediaServer.getHttpSSlPort(), app, stream, callIdParam, isPlay);
streamInfoResult.setMediaInfo(mediaInfo);
+
+ if (!"broadcast".equalsIgnoreCase(app) && !ObjectUtils.isEmpty(mediaServer.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaServer.getTranscodeSuffix())) {
+ String newStream = stream + "_" + mediaServer.getTranscodeSuffix();
+ mediaServer.setTranscodeSuffix(null);
+ StreamInfo transcodeStreamInfo = getStreamInfoByAppAndStream(mediaServer, app, newStream, null, addr, callId, isPlay);
+ streamInfoResult.setTranscodeStream(transcodeStreamInfo);
+ }
return streamInfoResult;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
index 3213eb9..18de78a 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -26,6 +26,7 @@
import com.genersoft.iot.vmp.storager.dao.*;
import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
+import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
@@ -126,18 +127,13 @@
streamPushMapper.update(transform);
gbStreamMapper.updateMediaServer(event.getApp(), event.getStream(), event.getMediaServer().getId());
}
- // TODO 鐩稿叧鐨勪簨浠惰嚜琛岀鐞嗭紝涓嶉渶瑕佸啓鍏LMMediaListManager
-// ChannelOnlineEvent channelOnlineEventLister = getChannelOnlineEventLister(transform.getApp(), transform.getStream());
-// if ( channelOnlineEventLister != null) {
-// try {
-// channelOnlineEventLister.run(transform.getApp(), transform.getStream(), transform.getServerId());;
-// } catch (ParseException e) {
-// logger.error("addPush: ", e);
-// }
-// removedChannelOnlineEventLister(transform.getApp(), transform.getStream());
-// }
// 鍐椾綑鏁版嵁锛岃嚜宸辩郴缁熶腑鑷敤
- redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event);
+ if (!"broadcast".equals(event.getApp()) && !"talk".equals(event.getApp())) {
+ StreamInfo streamInfo = mediaServerService.getStreamInfoByAppAndStream(
+ event.getMediaServer(), event.getApp(), event.getStream(), event.getMediaInfo(), event.getCallId());
+ event.getHookParam().setStreamInfo(new StreamContent(streamInfo));
+ redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event);
+ }
// 鍙戦�佹祦鍙樺寲redis娑堟伅
JSONObject jsonObject = new JSONObject();
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
index 66b483b..869d39b 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -7,7 +7,7 @@
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
-import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
+import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;
import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo;
@@ -216,7 +216,7 @@
void addPushListItem(String app, String stream, MediaArrivalEvent param);
- StreamPushItem getPushListItem(String app, String stream);
+ OnStreamChangedHookParam getPushListItem(String app, String stream);
void removePushListItem(String app, String stream, String mediaServerId);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 9f09e8a..e70e195 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -5,16 +5,13 @@
import com.genersoft.iot.vmp.common.SystemAllInfo;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.UserSetting;
-import com.genersoft.iot.vmp.gb28181.bean.AlarmChannelMessage;
-import com.genersoft.iot.vmp.gb28181.bean.Device;
-import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
-import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
+import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.bean.MediaInfo;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
-import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
+import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
@@ -698,14 +695,13 @@
@Override
public void addPushListItem(String app, String stream, MediaArrivalEvent event) {
String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
- StreamPushItem streamPushItem = StreamPushItem.getInstance(event, userSetting.getServerId());
- redisTemplate.opsForValue().set(key, streamPushItem);
+ redisTemplate.opsForValue().set(key, event.getHookParam());
}
@Override
- public StreamPushItem getPushListItem(String app, String stream) {
+ public OnStreamChangedHookParam getPushListItem(String app, String stream) {
String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
- return (StreamPushItem)redisTemplate.opsForValue().get(key);
+ return (OnStreamChangedHookParam)redisTemplate.opsForValue().get(key);
}
@Override
--
Gitblit v1.8.0