648540858
2021-11-23 b1c92cf4e88447fc59a2b0b8b78c0e2c41282141
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.genersoft.iot.vmp.storager;
 
import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.common.StreamInfo;
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.media.zlm.dto.MediaServerItem;
 
import java.util.List;
import java.util.Map;
 
public interface IRedisCatchStorage {
 
    /**
     * 开始播放时将流存入
     *
     * @param stream 流信息
     * @return
     */
    boolean startPlay(StreamInfo stream);
 
 
    /**
     * 停止播放时删除
     *
     * @return
     */
    boolean stopPlay(StreamInfo streamInfo);
 
    /**
     * 查询播放列表
     * @return
     */
    StreamInfo queryPlay(StreamInfo streamInfo);
 
    StreamInfo queryPlayByStreamId(String steamId);
 
    StreamInfo queryPlaybackByStreamId(String steamId);
 
    StreamInfo queryPlayByDevice(String deviceId, String channelId);
 
    Map<String, StreamInfo> queryPlayByDeviceId(String deviceId);
 
    boolean startPlayback(StreamInfo stream);
 
    boolean stopPlayback(StreamInfo streamInfo);
 
    StreamInfo queryPlaybackByDevice(String deviceId, String code);
 
    void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch);
 
    ParentPlatformCatch queryPlatformCatchInfo(String platformGbId);
 
    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);
 
    String queryPlatformRegisterInfo(String callId);
 
    void delPlatformRegisterInfo(String callId);
 
    void cleanPlatformRegisterInfos();
 
    void updateSendRTPSever(SendRtpItem sendRtpItem);
 
    /**
     * 查询RTP推送信息缓存
     * @param platformGbId
     * @param channelId
     * @return sendRtpItem
     */
    SendRtpItem querySendRTPServer(String platformGbId, String channelId);
 
    List<SendRtpItem> querySendRTPServer(String platformGbId);
 
    /**
     * 删除RTP推送信息缓存
     * @param platformGbId
     * @param channelId
     */
    void deleteSendRTPServer(String platformGbId, String channelId);
 
    /**
     * 查询某个通道是否存在上级点播(RTP推送)
     * @param channelId
     */
    boolean isChannelSendingRTP(String channelId);
 
    /**
     * 清空某个设备的所有缓存
     * @param deviceId 设备ID
     */
    void clearCatchByDeviceId(String deviceId);
 
    /**
     * 获取mediaServer节点
     * @param mediaServerId
     * @return
     */
//    MediaServerItem getMediaInfo(String mediaServerId);
 
    /**
     * 设置所有设备离线
     */
    void outlineForAll();
 
    /**
     * 获取所有在线的
     */
    List<String> getOnlineForAll();
 
    /**
     * 在redis添加wvp的信息
     */
    void updateWVPInfo(String id, JSONObject jsonObject, int time);
 
    /**
     * 发送推流生成与推流消失消息
     * @param jsonObject 消息内容
     */
    void sendStreamChangeMsg(JSONObject jsonObject);
 
    /**
     * 添加流信息到redis
     * @param mediaServerItem
     * @param app
     * @param streamId
     */
    void addStream(MediaServerItem mediaServerItem, String app, String streamId, StreamInfo streamInfo);
 
    /**
     * 移除流信息从redis
     * @param mediaServerItem
     * @param app
     * @param streamId
     */
    void removeStream(MediaServerItem mediaServerItem, String app, String streamId);
}