From 1af77ab5f7c11a4b3d59c1989b51b9fca29679ce Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 18 十月 2022 22:18:49 +0800 Subject: [PATCH] Merge pull request #645 from IKangXu/wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java | 198 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 160 insertions(+), 38 deletions(-) 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 ca4ebae..ab9a831 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java @@ -1,17 +1,26 @@ package com.genersoft.iot.vmp.storager; import com.alibaba.fastjson.JSONObject; -import com.genersoft.iot.vmp.common.RealVideo; import com.genersoft.iot.vmp.common.StreamInfo; -import com.genersoft.iot.vmp.conf.MediaServerConfig; -import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; -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.zlm.dto.*; +import com.genersoft.iot.vmp.service.bean.GPSMsgInfo; +import com.genersoft.iot.vmp.service.bean.MessageForPushChannel; +import com.genersoft.iot.vmp.service.bean.SSRCInfo; +import com.genersoft.iot.vmp.service.bean.ThirdPartyGB; +import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo; import java.util.List; import java.util.Map; public interface IRedisCatchStorage { + + /** + * 璁℃暟鍣ㄣ�備负cseq杩涜璁℃暟 + * + * @return + */ + Long getCSEQ(); /** * 寮�濮嬫挱鏀炬椂灏嗘祦瀛樺叆 @@ -37,30 +46,17 @@ StreamInfo queryPlayByStreamId(String steamId); - StreamInfo queryPlaybackByStreamId(String steamId); - - StreamInfo queryPlayByDevice(String deviceId, String code); - - /** - * 鏇存柊娴佸獟浣撲俊鎭� - * @param mediaServerConfig - * @return - */ - boolean updateMediaInfo(MediaServerConfig mediaServerConfig); - - /** - * 鑾峰彇娴佸獟浣撲俊鎭� - * @return - */ - MediaServerConfig getMediaInfo(); + StreamInfo queryPlayByDevice(String deviceId, String channelId); Map<String, StreamInfo> queryPlayByDeviceId(String deviceId); - boolean startPlayback(StreamInfo stream); + boolean startPlayback(StreamInfo stream, String callId); - boolean stopPlayback(StreamInfo streamInfo); + boolean stopPlayback(String deviceId, String channelId, String stream, String callId); - StreamInfo queryPlaybackByDevice(String deviceId, String code); + StreamInfo queryPlayback(String deviceId, String channelID, String stream, String callId); + + String queryPlaybackForKey(String deviceId, String channelId, String stream, String callId); void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch); @@ -68,17 +64,13 @@ void delPlatformCatchInfo(String platformGbId); - void updatePlatformKeepalive(ParentPlatform parentPlatform); - void delPlatformKeepalive(String platformGbId); - - void updatePlatformRegister(ParentPlatform parentPlatform); void delPlatformRegister(String platformGbId); - void updatePlatformRegisterInfo(String callId, String platformGbId); + void updatePlatformRegisterInfo(String callId, PlatformRegisterInfo platformRegisterInfo); - String queryPlatformRegisterInfo(String callId); + PlatformRegisterInfo queryPlatformRegisterInfo(String callId); void delPlatformRegisterInfo(String callId); @@ -92,14 +84,16 @@ * @param channelId * @return sendRtpItem */ - SendRtpItem querySendRTPServer(String platformGbId, String channelId); + SendRtpItem querySendRTPServer(String platformGbId, String channelId, String streamId, String callId); + + List<SendRtpItem> querySendRTPServer(String platformGbId); /** * 鍒犻櫎RTP鎺ㄩ�佷俊鎭紦瀛� * @param platformGbId * @param channelId */ - void deleteSendRTPServer(String platformGbId, String channelId); + void deleteSendRTPServer(String platformGbId, String channelId, String callId, String streamId); /** * 鏌ヨ鏌愪釜閫氶亾鏄惁瀛樺湪涓婄骇鐐规挱锛圧TP鎺ㄩ�侊級 @@ -108,14 +102,142 @@ boolean isChannelSendingRTP(String channelId); /** - * 鏇存柊濯掍綋娴佸垪琛� - * @param mediaList + * 娓呯┖鏌愪釜璁惧鐨勬墍鏈夌紦瀛� + * @param deviceId 璁惧ID */ - void updateMediaList(List<RealVideo> mediaList); + void clearCatchByDeviceId(String deviceId); /** - * 鑾峰彇褰撳墠濯掍綋娴佸垪琛� - * @return List<RealVideo> + * 鍦╮edis娣诲姞wvp鐨勪俊鎭� */ - JSONObject getMediaList(int start, int end); + void updateWVPInfo(JSONObject jsonObject, int time); + + /** + * 鍙戦�佹帹娴佺敓鎴愪笌鎺ㄦ祦娑堝け娑堟伅 + * @param jsonObject 娑堟伅鍐呭 + */ + void sendStreamChangeMsg(String type, JSONObject jsonObject); + + /** + * 鍙戦�佹姤璀︽秷鎭� + * @param msg 娑堟伅鍐呭 + */ + void sendAlarmMsg(AlarmChannelMessage msg); + + /** + * 娣诲姞娴佷俊鎭埌redis + * @param mediaServerItem + * @param app + * @param streamId + */ + void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem item); + + /** + * 绉婚櫎娴佷俊鎭粠redis + * @param mediaServerId + * @param app + * @param streamId + */ + void removeStream(String mediaServerId, String type, String app, String streamId); + + + /** + * 绉婚櫎娴佷俊鎭粠redis + * @param mediaServerId + */ + void removeStream(String mediaServerId, String type); + + /** + * 寮�濮嬩笅杞藉綍鍍忔椂瀛樺叆 + * @param streamInfo + */ + boolean startDownload(StreamInfo streamInfo, String callId); + + StreamInfo queryDownload(String deviceId, String channelId, String stream, String callId); + + boolean stopDownload(String deviceId, String channelId, String stream, String callId); + + /** + * 鏌ユ壘绗笁鏂圭郴缁熺暀涓嬬殑鍥芥爣棰勮鍊� + * @param queryKey + * @return + */ + ThirdPartyGB queryMemberNoGBId(String queryKey); + + List<MediaItem> getStreams(String mediaServerId, String pull); + + /** + * 灏哾evice淇℃伅鍐欏叆redis + * @param device + */ + void updateDevice(Device device); + + void removeDevice(String deviceId); + + /** + * 鑾峰彇Device + */ + Device getDevice(String deviceId); + + void resetAllCSEQ(); + + void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo); + + GPSMsgInfo getGpsMsgInfo(String gbId); + List<GPSMsgInfo> getAllGpsMsgInfo(); + + Long getSN(String method); + + void resetAllSN(); + + MediaItem getStreamInfo(String app, String streamId, String mediaServerId); + + void addCpuInfo(double cpuInfo); + + void addMemInfo(double memInfo); + + void addNetInfo(Map<String, String> networkInterfaces); + + void sendMobilePositionMsg(JSONObject jsonObject); + + void sendStreamPushRequestedMsg(MessageForPushChannel messageForPushChannel); + + /** + * 鍒ゆ柇璁惧鐘舵�� + * @param deviceId 璁惧ID + * @return + */ + public boolean deviceIsOnline(String deviceId); + + /** + * 瀛樺偍鎺ㄦ祦鐨勯壌鏉冧俊鎭� + * @param app 搴旂敤鍚� + * @param stream 娴� + * @param streamAuthorityInfo 閴存潈淇℃伅 + */ + void updateStreamAuthorityInfo(String app, String stream, StreamAuthorityInfo streamAuthorityInfo); + + /** + * 绉婚櫎鎺ㄦ祦鐨勯壌鏉冧俊鎭� + * @param app 搴旂敤鍚� + * @param streamId 娴� + */ + void removeStreamAuthorityInfo(String app, String streamId); + + /** + * 鑾峰彇鎺ㄦ祦鐨勯壌鏉冧俊鎭� + * @param app 搴旂敤鍚� + * @param stream 娴� + * @return + */ + StreamAuthorityInfo getStreamAuthorityInfo(String app, String stream); + + /** + * 鍙戦�乺edis娑堟伅 鏌ヨ鎵�鏈夋帹娴佽澶囩殑鐘舵�� + */ + void sendStreamPushRequestedMsgForStatus(); + + List<SendRtpItem> querySendRTPServerByChnnelId(String channelId); + + List<SendRtpItem> querySendRTPServerByStream(String stream); } -- Gitblit v1.8.0