From cad5f97c2f23435783886b6b5a4f1182391c529f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 26 三月 2024 10:28:08 +0800
Subject: [PATCH] 优化流变化处理位置
---
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 29 +++++++++++++++++++++++++----
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java | 23 ++++++++++++++++++++++-
2 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
index 85d481a..eda660e 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
@@ -2,6 +2,7 @@
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
+import com.genersoft.iot.vmp.media.event.MediaArrivalEvent;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.utils.DateUtil;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -151,7 +152,7 @@
- DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(streamPushItem.getCreateTime())).intValue();
}
- public StreamPushItem instance(StreamInfo streamInfo) {
+ public StreamPushItem getInstance(StreamInfo streamInfo) {
StreamPushItem streamPushItem = new StreamPushItem();
streamPushItem.setApp(streamInfo.getApp());
streamPushItem.setMediaServerId(streamInfo.getMediaServerId());
@@ -172,6 +173,26 @@
}
+ public static StreamPushItem getInstance(MediaArrivalEvent event, String serverId){
+ StreamPushItem streamPushItem = new StreamPushItem();
+ streamPushItem.setApp(event.getApp());
+ streamPushItem.setMediaServerId(event.getMediaServer().getId());
+ streamPushItem.setStream(event.getStream());
+ streamPushItem.setAliveSecond(event.getMediaInfo().getAliveSecond());
+// streamPushItem.setOriginSock(streamInfo.getMediaInfo().getOriginSock());
+ streamPushItem.setTotalReaderCount(event.getMediaInfo().getReaderCount() + "");
+ streamPushItem.setOriginType(event.getMediaInfo().getOriginType());
+// streamPushItem.setOriginTypeStr(streamInfo.getMediaInfo().getOriginTypeStr());
+// streamPushItem.setOriginUrl(streamInfo.getMediaInfo().getOriginUrl());
+ streamPushItem.setCreateTime(DateUtil.getNow());
+ streamPushItem.setAliveSecond(event.getMediaInfo().getAliveSecond());
+ streamPushItem.setStatus(true);
+ streamPushItem.setStreamType("push");
+// streamPushItem.setVhost(streamInfo.getVhost());
+ streamPushItem.setServerId(serverId);
+ return streamPushItem;
+ }
+
public static class MediaSchema {
private String schema;
private Long bytesSpeed;
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 2c1a476..c3128e8 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
@@ -13,7 +13,6 @@
import com.genersoft.iot.vmp.media.bean.MediaInfo;
import com.genersoft.iot.vmp.media.event.MediaArrivalEvent;
import com.genersoft.iot.vmp.media.event.MediaDepartureEvent;
-import com.genersoft.iot.vmp.media.event.MediaServerChangeEvent;
import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
@@ -114,8 +113,30 @@
streamAuthorityInfo.setOriginType(mediaInfo.getOriginType());
}
redisCatchStorage.updateStreamAuthorityInfo(event.getApp(), event.getStream(), streamAuthorityInfo);
-
-
+ StreamPushItem transform = StreamPushItem.getInstance(event, userSetting.getServerId());
+ transform.setPushIng(true);
+ transform.setUpdateTime(DateUtil.getNow());
+ transform.setPushTime(DateUtil.getNow());
+ transform.setSelf(true);
+ StreamPushItem pushInDb = getPush(event.getApp(), event.getStream());
+ if (pushInDb == null) {
+ transform.setCreateTime(DateUtil.getNow());
+ streamPushMapper.add(transform);
+ }else {
+ streamPushMapper.update(transform);
+ gbStreamMapper.updateMediaServer(event.getApp(), event.getStream(), event.getMediaServer().getId());
+ }
+// 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);
}
/**
@@ -141,7 +162,7 @@
String key = streamInfo.getApp() + "_" + streamInfo.getStream();
StreamPushItem streamPushItem = result.get(key);
if (streamPushItem == null) {
- streamPushItem = streamPushItem.instance(streamInfo);
+ streamPushItem = streamPushItem.getInstance(streamInfo);
result.put(key, streamPushItem);
}
}
--
Gitblit v1.8.0