Commit f61051c46361c4863faf73db81062de0889900d4
1 parent
0eee65bc
优化streamchannge hook以及对推流的识别
Showing
14 changed files
with
129 additions
and
66 deletions
src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
| ... | ... | @@ -30,7 +30,7 @@ public class StreamInfo { |
| 30 | 30 | private String rtsps; |
| 31 | 31 | private String rtc; |
| 32 | 32 | private String mediaServerId; |
| 33 | - private JSONArray tracks; | |
| 33 | + private Object tracks; | |
| 34 | 34 | |
| 35 | 35 | public static class TransactionInfo{ |
| 36 | 36 | public String callId; |
| ... | ... | @@ -105,11 +105,11 @@ public class StreamInfo { |
| 105 | 105 | this.rtsp = rtsp; |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | - public JSONArray getTracks() { | |
| 108 | + public Object getTracks() { | |
| 109 | 109 | return tracks; |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | - public void setTracks(JSONArray tracks) { | |
| 112 | + public void setTracks(Object tracks) { | |
| 113 | 113 | this.tracks = tracks; |
| 114 | 114 | } |
| 115 | 115 | ... | ... |
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
| ... | ... | @@ -3,11 +3,13 @@ package com.genersoft.iot.vmp.media.zlm; |
| 3 | 3 | import java.util.List; |
| 4 | 4 | import java.util.UUID; |
| 5 | 5 | |
| 6 | +import com.alibaba.fastjson.JSON; | |
| 6 | 7 | import com.alibaba.fastjson.JSONArray; |
| 7 | 8 | import com.genersoft.iot.vmp.common.StreamInfo; |
| 8 | 9 | import com.genersoft.iot.vmp.conf.MediaConfig; |
| 9 | 10 | import com.genersoft.iot.vmp.conf.UserSetup; |
| 10 | 11 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 12 | +import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; | |
| 11 | 13 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 12 | 14 | import com.genersoft.iot.vmp.service.IMediaServerService; |
| 13 | 15 | import com.genersoft.iot.vmp.service.IMediaService; |
| ... | ... | @@ -258,12 +260,13 @@ public class ZLMHttpHookListener { |
| 258 | 260 | */ |
| 259 | 261 | @ResponseBody |
| 260 | 262 | @PostMapping(value = "/on_stream_changed", produces = "application/json;charset=UTF-8") |
| 261 | - public ResponseEntity<String> onStreamChanged(@RequestBody JSONObject json){ | |
| 263 | + public ResponseEntity<String> onStreamChanged(@RequestBody MediaItem item){ | |
| 262 | 264 | |
| 263 | 265 | if (logger.isDebugEnabled()) { |
| 264 | - logger.debug("ZLM HOOK on_stream_changed API调用,参数:" + json.toString()); | |
| 266 | + logger.debug("ZLM HOOK on_stream_changed API调用,参数:" + JSONObject.toJSONString(item)); | |
| 265 | 267 | } |
| 266 | - String mediaServerId = json.getString("mediaServerId"); | |
| 268 | + String mediaServerId = item.getMediaServerId(); | |
| 269 | + JSONObject json = (JSONObject) JSON.toJSON(item); | |
| 267 | 270 | ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, json); |
| 268 | 271 | if (subscribe != null ) { |
| 269 | 272 | MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId); |
| ... | ... | @@ -272,13 +275,12 @@ public class ZLMHttpHookListener { |
| 272 | 275 | } |
| 273 | 276 | |
| 274 | 277 | } |
| 275 | - | |
| 276 | 278 | // 流消失移除redis play |
| 277 | - String app = json.getString("app"); | |
| 278 | - String streamId = json.getString("stream"); | |
| 279 | - String schema = json.getString("schema"); | |
| 280 | - JSONArray tracks = json.getJSONArray("tracks"); | |
| 281 | - boolean regist = json.getBoolean("regist"); | |
| 279 | + String app = item.getApp(); | |
| 280 | + String streamId = item.getStream(); | |
| 281 | + String schema = item.getSchema(); | |
| 282 | + List<MediaItem.MediaTrack> tracks = item.getTracks(); | |
| 283 | + boolean regist = item.isRegist(); | |
| 282 | 284 | if (tracks != null) { |
| 283 | 285 | logger.info("[stream: " + streamId + "] on_stream_changed->>" + schema); |
| 284 | 286 | } |
| ... | ... | @@ -298,24 +300,34 @@ public class ZLMHttpHookListener { |
| 298 | 300 | redisCatchStorage.stopPlayback(streamInfo); |
| 299 | 301 | } |
| 300 | 302 | }else { |
| 301 | - if (!"rtp".equals(app) ){ | |
| 302 | - // 发送流变化redis消息 | |
| 303 | - JSONObject jsonObject = new JSONObject(); | |
| 304 | - jsonObject.put("serverId", userSetup.getServerId()); | |
| 305 | - jsonObject.put("app", app); | |
| 306 | - jsonObject.put("stream", streamId); | |
| 307 | - jsonObject.put("register", regist); | |
| 308 | - jsonObject.put("mediaServerId", mediaServerId); | |
| 309 | - redisCatchStorage.sendStreamChangeMsg(jsonObject); | |
| 303 | + if (!"rtp".equals(app)){ | |
| 304 | + | |
| 305 | + boolean pushChange = false; | |
| 310 | 306 | |
| 311 | 307 | MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId); |
| 312 | 308 | if (regist) { |
| 313 | - zlmMediaListManager.addMedia(mediaServerItem, app, streamId); | |
| 314 | - StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(mediaServerItem, app, streamId, tracks); | |
| 315 | - redisCatchStorage.addStream(mediaServerItem, app, streamId, streamInfo); | |
| 309 | + if ((item.getOriginType() == 1 || item.getOriginType() == 2 || item.getOriginType() == 8)) { | |
| 310 | + pushChange = true; | |
| 311 | + zlmMediaListManager.addMedia(item); | |
| 312 | + StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(mediaServerItem, app, streamId, tracks); | |
| 313 | + redisCatchStorage.addPushStream(mediaServerItem, app, streamId, streamInfo); | |
| 314 | + } | |
| 316 | 315 | }else { |
| 317 | - zlmMediaListManager.removeMedia( app, streamId); | |
| 318 | - redisCatchStorage.removeStream(mediaServerItem, app, streamId); | |
| 316 | + int result = zlmMediaListManager.removeMedia( app, streamId); | |
| 317 | + redisCatchStorage.removePushStream(mediaServerItem, app, streamId); | |
| 318 | + if (result > 0) { | |
| 319 | + pushChange = true; | |
| 320 | + } | |
| 321 | + } | |
| 322 | + if(pushChange) { | |
| 323 | + // 发送流变化redis消息 | |
| 324 | + JSONObject jsonObject = new JSONObject(); | |
| 325 | + jsonObject.put("serverId", userSetup.getServerId()); | |
| 326 | + jsonObject.put("app", app); | |
| 327 | + jsonObject.put("stream", streamId); | |
| 328 | + jsonObject.put("register", regist); | |
| 329 | + jsonObject.put("mediaServerId", mediaServerId); | |
| 330 | + redisCatchStorage.sendStreamChangeMsg(jsonObject); | |
| 319 | 331 | } |
| 320 | 332 | } |
| 321 | 333 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
| 1 | 1 | package com.genersoft.iot.vmp.media.zlm; |
| 2 | 2 | |
| 3 | 3 | import com.alibaba.fastjson.JSONObject; |
| 4 | +import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; | |
| 4 | 5 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 5 | 6 | import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; |
| 6 | 7 | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; |
| ... | ... | @@ -87,6 +88,10 @@ public class ZLMMediaListManager { |
| 87 | 88 | updateMedia(mediaServerItem, app, streamId); |
| 88 | 89 | } |
| 89 | 90 | |
| 91 | + public void addMedia(MediaItem mediaItem) { | |
| 92 | + storager.updateMedia(streamPushService.transform(mediaItem)); | |
| 93 | + } | |
| 94 | + | |
| 90 | 95 | |
| 91 | 96 | public void updateMedia(MediaServerItem mediaServerItem, String app, String streamId) { |
| 92 | 97 | //使用异步更新推流 |
| ... | ... | @@ -113,14 +118,16 @@ public class ZLMMediaListManager { |
| 113 | 118 | } |
| 114 | 119 | |
| 115 | 120 | |
| 116 | - public void removeMedia(String app, String streamId) { | |
| 121 | + public int removeMedia(String app, String streamId) { | |
| 117 | 122 | // 查找是否关联了国标, 关联了不删除, 置为离线 |
| 118 | 123 | StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(app, streamId); |
| 124 | + int result = 0; | |
| 119 | 125 | if (streamProxyItem == null) { |
| 120 | - storager.removeMedia(app, streamId); | |
| 126 | + result = storager.removeMedia(app, streamId); | |
| 121 | 127 | }else { |
| 122 | - storager.mediaOutline(app, streamId); | |
| 128 | + result =storager.mediaOutline(app, streamId); | |
| 123 | 129 | } |
| 130 | + return result; | |
| 124 | 131 | } |
| 125 | 132 | |
| 126 | 133 | // public void clearAllSessions() { | ... | ... |
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaItem.java
| ... | ... | @@ -5,6 +5,11 @@ import java.util.List; |
| 5 | 5 | public class MediaItem { |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | + * 注册/注销 | |
| 9 | + */ | |
| 10 | + private boolean regist; | |
| 11 | + | |
| 12 | + /** | |
| 8 | 13 | * 应用名 |
| 9 | 14 | */ |
| 10 | 15 | private String app; |
| ... | ... | @@ -54,6 +59,11 @@ public class MediaItem { |
| 54 | 59 | private String originUrl; |
| 55 | 60 | |
| 56 | 61 | /** |
| 62 | + * 服务器id | |
| 63 | + */ | |
| 64 | + private String mediaServerId; | |
| 65 | + | |
| 66 | + /** | |
| 57 | 67 | * GMT unix系统时间戳,单位秒 |
| 58 | 68 | */ |
| 59 | 69 | private Long createStamp; |
| ... | ... | @@ -78,6 +88,14 @@ public class MediaItem { |
| 78 | 88 | */ |
| 79 | 89 | private String vhost; |
| 80 | 90 | |
| 91 | + public boolean isRegist() { | |
| 92 | + return regist; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public void setRegist(boolean regist) { | |
| 96 | + this.regist = regist; | |
| 97 | + } | |
| 98 | + | |
| 81 | 99 | /** |
| 82 | 100 | * 是否是docker部署, docker部署不会自动更新zlm使用的端口,需要自己手动修改 |
| 83 | 101 | */ |
| ... | ... | @@ -376,4 +394,12 @@ public class MediaItem { |
| 376 | 394 | public void setDocker(boolean docker) { |
| 377 | 395 | this.docker = docker; |
| 378 | 396 | } |
| 397 | + | |
| 398 | + public String getMediaServerId() { | |
| 399 | + return mediaServerId; | |
| 400 | + } | |
| 401 | + | |
| 402 | + public void setMediaServerId(String mediaServerId) { | |
| 403 | + this.mediaServerId = mediaServerId; | |
| 404 | + } | |
| 379 | 405 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java
| ... | ... | @@ -17,6 +17,7 @@ public class StreamProxyItem extends GbStream { |
| 17 | 17 | private boolean enable; |
| 18 | 18 | private boolean enable_hls; |
| 19 | 19 | private boolean enable_mp4; |
| 20 | + private boolean enable_remove_none_reader; // 无人观看时删除 | |
| 20 | 21 | private String platformGbId; |
| 21 | 22 | private String createTime; |
| 22 | 23 | |
| ... | ... | @@ -142,4 +143,12 @@ public class StreamProxyItem extends GbStream { |
| 142 | 143 | public void setCreateTime(String createTime) { |
| 143 | 144 | this.createTime = createTime; |
| 144 | 145 | } |
| 146 | + | |
| 147 | + public boolean isEnable_remove_none_reader() { | |
| 148 | + return enable_remove_none_reader; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public void setEnable_remove_none_reader(boolean enable_remove_none_reader) { | |
| 152 | + this.enable_remove_none_reader = enable_remove_none_reader; | |
| 153 | + } | |
| 145 | 154 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/IMediaService.java
| ... | ... | @@ -32,7 +32,7 @@ public interface IMediaService { |
| 32 | 32 | * @param stream |
| 33 | 33 | * @return |
| 34 | 34 | */ |
| 35 | - StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaServerItem, String app, String stream, JSONArray tracks); | |
| 35 | + StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaServerItem, String app, String stream, Object tracks); | |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | 38 | * 根据应用名和流ID获取播放地址, 只是地址拼接,返回的ip使用远程访问ip,适用与zlm与wvp在一台主机的情况 |
| ... | ... | @@ -40,5 +40,5 @@ public interface IMediaService { |
| 40 | 40 | * @param stream |
| 41 | 41 | * @return |
| 42 | 42 | */ |
| 43 | - StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, JSONArray tracks, String addr); | |
| 43 | + StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, Object tracks, String addr); | |
| 44 | 44 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java
| 1 | 1 | package com.genersoft.iot.vmp.service; |
| 2 | 2 | |
| 3 | 3 | import com.genersoft.iot.vmp.gb28181.bean.GbStream; |
| 4 | +import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; | |
| 4 | 5 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 5 | 6 | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; |
| 6 | 7 | import com.github.pagehelper.PageInfo; |
| ... | ... | @@ -32,4 +33,6 @@ public interface IStreamPushService { |
| 32 | 33 | * @return |
| 33 | 34 | */ |
| 34 | 35 | PageInfo<StreamPushItem> getPushList(Integer page, Integer count); |
| 36 | + | |
| 37 | + StreamPushItem transform(MediaItem item); | |
| 35 | 38 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
| ... | ... | @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; |
| 5 | 5 | import com.alibaba.fastjson.JSONObject; |
| 6 | 6 | import com.genersoft.iot.vmp.common.StreamInfo; |
| 7 | 7 | import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; |
| 8 | +import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; | |
| 8 | 9 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 9 | 10 | import com.genersoft.iot.vmp.service.IMediaServerService; |
| 10 | 11 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| ... | ... | @@ -31,7 +32,7 @@ public class MediaServiceImpl implements IMediaService { |
| 31 | 32 | |
| 32 | 33 | |
| 33 | 34 | @Override |
| 34 | - public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, JSONArray tracks) { | |
| 35 | + public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, Object tracks) { | |
| 35 | 36 | return getStreamInfoByAppAndStream(mediaInfo, app, stream, tracks, null); |
| 36 | 37 | } |
| 37 | 38 | |
| ... | ... | @@ -69,7 +70,7 @@ public class MediaServiceImpl implements IMediaService { |
| 69 | 70 | } |
| 70 | 71 | |
| 71 | 72 | @Override |
| 72 | - public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, JSONArray tracks, String addr) { | |
| 73 | + public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, Object tracks, String addr) { | |
| 73 | 74 | StreamInfo streamInfoResult = new StreamInfo(); |
| 74 | 75 | streamInfoResult.setStreamId(stream); |
| 75 | 76 | streamInfoResult.setApp(app); | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
| ... | ... | @@ -51,33 +51,38 @@ public class StreamPushServiceImpl implements IStreamPushService { |
| 51 | 51 | for (MediaItem item : mediaItems) { |
| 52 | 52 | |
| 53 | 53 | // 不保存国标推理以及拉流代理的流 |
| 54 | - if (item.getOriginType() == 3 || item.getOriginType() == 4 || item.getOriginType() == 5) { | |
| 55 | - continue; | |
| 56 | - } | |
| 57 | - String key = item.getApp() + "_" + item.getStream(); | |
| 58 | - StreamPushItem streamPushItem = result.get(key); | |
| 59 | - if (streamPushItem == null) { | |
| 60 | - streamPushItem = new StreamPushItem(); | |
| 61 | - streamPushItem.setApp(item.getApp()); | |
| 62 | - streamPushItem.setMediaServerId(mediaServerItem.getId()); | |
| 63 | - streamPushItem.setStream(item.getStream()); | |
| 64 | - streamPushItem.setAliveSecond(item.getAliveSecond()); | |
| 65 | - streamPushItem.setCreateStamp(item.getCreateStamp()); | |
| 66 | - streamPushItem.setOriginSock(item.getOriginSock()); | |
| 67 | - streamPushItem.setTotalReaderCount(item.getTotalReaderCount()); | |
| 68 | - streamPushItem.setOriginType(item.getOriginType()); | |
| 69 | - streamPushItem.setOriginTypeStr(item.getOriginTypeStr()); | |
| 70 | - streamPushItem.setOriginUrl(item.getOriginUrl()); | |
| 71 | - streamPushItem.setCreateStamp(item.getCreateStamp()); | |
| 72 | - streamPushItem.setAliveSecond(item.getAliveSecond()); | |
| 73 | - streamPushItem.setStatus(true); | |
| 74 | - streamPushItem.setVhost(item.getVhost()); | |
| 75 | - result.put(key, streamPushItem); | |
| 54 | + if (item.getOriginType() == 1 || item.getOriginType() == 2 || item.getOriginType() == 8) { | |
| 55 | + String key = item.getApp() + "_" + item.getStream(); | |
| 56 | + StreamPushItem streamPushItem = result.get(key); | |
| 57 | + if (streamPushItem == null) { | |
| 58 | + streamPushItem = transform(item); | |
| 59 | + result.put(key, streamPushItem); | |
| 60 | + } | |
| 76 | 61 | } |
| 62 | + | |
| 77 | 63 | } |
| 78 | 64 | |
| 79 | 65 | return new ArrayList<>(result.values()); |
| 80 | 66 | } |
| 67 | + @Override | |
| 68 | + public StreamPushItem transform(MediaItem item) { | |
| 69 | + StreamPushItem streamPushItem = new StreamPushItem(); | |
| 70 | + streamPushItem.setApp(item.getApp()); | |
| 71 | + streamPushItem.setMediaServerId(item.getMediaServerId()); | |
| 72 | + streamPushItem.setStream(item.getStream()); | |
| 73 | + streamPushItem.setAliveSecond(item.getAliveSecond()); | |
| 74 | + streamPushItem.setCreateStamp(item.getCreateStamp()); | |
| 75 | + streamPushItem.setOriginSock(item.getOriginSock()); | |
| 76 | + streamPushItem.setTotalReaderCount(item.getTotalReaderCount()); | |
| 77 | + streamPushItem.setOriginType(item.getOriginType()); | |
| 78 | + streamPushItem.setOriginTypeStr(item.getOriginTypeStr()); | |
| 79 | + streamPushItem.setOriginUrl(item.getOriginUrl()); | |
| 80 | + streamPushItem.setCreateStamp(item.getCreateStamp()); | |
| 81 | + streamPushItem.setAliveSecond(item.getAliveSecond()); | |
| 82 | + streamPushItem.setStatus(true); | |
| 83 | + streamPushItem.setVhost(item.getVhost()); | |
| 84 | + return streamPushItem; | |
| 85 | + } | |
| 81 | 86 | |
| 82 | 87 | @Override |
| 83 | 88 | public PageInfo<StreamPushItem> getPushList(Integer page, Integer count) { | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
| ... | ... | @@ -135,7 +135,7 @@ public interface IRedisCatchStorage { |
| 135 | 135 | * @param app |
| 136 | 136 | * @param streamId |
| 137 | 137 | */ |
| 138 | - void addStream(MediaServerItem mediaServerItem, String app, String streamId, StreamInfo streamInfo); | |
| 138 | + void addPushStream(MediaServerItem mediaServerItem, String app, String streamId, StreamInfo streamInfo); | |
| 139 | 139 | |
| 140 | 140 | /** |
| 141 | 141 | * 移除流信息从redis |
| ... | ... | @@ -143,5 +143,5 @@ public interface IRedisCatchStorage { |
| 143 | 143 | * @param app |
| 144 | 144 | * @param streamId |
| 145 | 145 | */ |
| 146 | - void removeStream(MediaServerItem mediaServerItem, String app, String streamId); | |
| 146 | + void removePushStream(MediaServerItem mediaServerItem, String app, String streamId); | |
| 147 | 147 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
| ... | ... | @@ -353,7 +353,7 @@ public interface IVideoManagerStorager { |
| 353 | 353 | * @param app |
| 354 | 354 | * @param stream |
| 355 | 355 | */ |
| 356 | - void removeMedia(String app, String stream); | |
| 356 | + int removeMedia(String app, String stream); | |
| 357 | 357 | |
| 358 | 358 | |
| 359 | 359 | /** |
| ... | ... | @@ -366,7 +366,7 @@ public interface IVideoManagerStorager { |
| 366 | 366 | * @param app |
| 367 | 367 | * @param streamId |
| 368 | 368 | */ |
| 369 | - void mediaOutline(String app, String streamId); | |
| 369 | + int mediaOutline(String app, String streamId); | |
| 370 | 370 | |
| 371 | 371 | /** |
| 372 | 372 | * 设置平台在线/离线 | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
| ... | ... | @@ -53,7 +53,7 @@ public interface GbStreamMapper { |
| 53 | 53 | @Update("UPDATE gb_stream " + |
| 54 | 54 | "SET status=${status} " + |
| 55 | 55 | "WHERE app=#{app} AND stream=#{stream}") |
| 56 | - void setStatus(String app, String stream, boolean status); | |
| 56 | + int setStatus(String app, String stream, boolean status); | |
| 57 | 57 | |
| 58 | 58 | @Select("SELECT gs.*, pgs.platformId FROM gb_stream gs LEFT JOIN platform_gb_stream pgs ON gs.app = pgs.app AND gs.stream = pgs.stream WHERE mediaServerId=#{mediaServerId} ") |
| 59 | 59 | List<GbStream> selectAllByMediaServerId(String mediaServerId); | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
| ... | ... | @@ -308,13 +308,13 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { |
| 308 | 308 | } |
| 309 | 309 | |
| 310 | 310 | @Override |
| 311 | - public void addStream(MediaServerItem mediaServerItem, String app, String streamId, StreamInfo streamInfo) { | |
| 311 | + public void addPushStream(MediaServerItem mediaServerItem, String app, String streamId, StreamInfo streamInfo) { | |
| 312 | 312 | String key = VideoManagerConstants.WVP_SERVER_STREAM_PUSH_PREFIX + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| 313 | 313 | redis.set(key, streamInfo); |
| 314 | 314 | } |
| 315 | 315 | |
| 316 | 316 | @Override |
| 317 | - public void removeStream(MediaServerItem mediaServerItem, String app, String streamId) { | |
| 317 | + public void removePushStream(MediaServerItem mediaServerItem, String app, String streamId) { | |
| 318 | 318 | String key = VideoManagerConstants.WVP_SERVER_STREAM_PUSH_PREFIX + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| 319 | 319 | redis.del(key); |
| 320 | 320 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
| ... | ... | @@ -605,8 +605,8 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { |
| 605 | 605 | } |
| 606 | 606 | |
| 607 | 607 | @Override |
| 608 | - public void removeMedia(String app, String stream) { | |
| 609 | - streamPushMapper.del(app, stream); | |
| 608 | + public int removeMedia(String app, String stream) { | |
| 609 | + return streamPushMapper.del(app, stream); | |
| 610 | 610 | } |
| 611 | 611 | |
| 612 | 612 | @Override |
| ... | ... | @@ -615,8 +615,8 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { |
| 615 | 615 | } |
| 616 | 616 | |
| 617 | 617 | @Override |
| 618 | - public void mediaOutline(String app, String streamId) { | |
| 619 | - gbStreamMapper.setStatus(app, streamId, false); | |
| 618 | + public int mediaOutline(String app, String streamId) { | |
| 619 | + return gbStreamMapper.setStatus(app, streamId, false); | |
| 620 | 620 | } |
| 621 | 621 | |
| 622 | 622 | @Override | ... | ... |