Commit 2d82d1b8eec67df9195b7ebc4b4318a7cdcc1f7f
1 parent
e864beca
修复ssrc释放失败的问题
Showing
3 changed files
with
13 additions
and
10 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
| ... | ... | @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; |
| 15 | 15 | public class VideoStreamSessionManager { |
| 16 | 16 | |
| 17 | 17 | private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>(); |
| 18 | + private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>(); | |
| 18 | 19 | |
| 19 | 20 | public String createPlaySsrc(){ |
| 20 | 21 | return SsrcUtil.getPlaySsrc(); |
| ... | ... | @@ -24,16 +25,18 @@ public class VideoStreamSessionManager { |
| 24 | 25 | return SsrcUtil.getPlayBackSsrc(); |
| 25 | 26 | } |
| 26 | 27 | |
| 27 | - public void put(String ssrc,ClientTransaction transaction){ | |
| 28 | - sessionMap.put(ssrc, transaction); | |
| 28 | + public void put(String streamId,String ssrc,ClientTransaction transaction){ | |
| 29 | + sessionMap.put(streamId, transaction); | |
| 30 | + ssrcMap.put(streamId, ssrc); | |
| 29 | 31 | } |
| 30 | 32 | |
| 31 | - public ClientTransaction get(String ssrc){ | |
| 32 | - return sessionMap.get(ssrc); | |
| 33 | + public ClientTransaction get(String streamId){ | |
| 34 | + return sessionMap.get(streamId); | |
| 33 | 35 | } |
| 34 | 36 | |
| 35 | - public void remove(String ssrc) { | |
| 36 | - sessionMap.remove(ssrc); | |
| 37 | - SsrcUtil.releaseSsrc(ssrc); | |
| 37 | + public void remove(String streamId) { | |
| 38 | + sessionMap.remove(streamId); | |
| 39 | + SsrcUtil.releaseSsrc(ssrcMap.get(streamId)); | |
| 40 | + ssrcMap.remove(streamId); | |
| 38 | 41 | } |
| 39 | 42 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| ... | ... | @@ -388,7 +388,7 @@ public class SIPCommander implements ISIPCommander { |
| 388 | 388 | Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrc); |
| 389 | 389 | |
| 390 | 390 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 391 | - streamSession.put(streamId, transaction); | |
| 391 | + streamSession.put(streamId,ssrc, transaction); | |
| 392 | 392 | |
| 393 | 393 | |
| 394 | 394 | |
| ... | ... | @@ -488,7 +488,7 @@ public class SIPCommander implements ISIPCommander { |
| 488 | 488 | Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null); |
| 489 | 489 | |
| 490 | 490 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 491 | - streamSession.put(streamId, transaction); | |
| 491 | + streamSession.put(streamId, ssrc, transaction); | |
| 492 | 492 | |
| 493 | 493 | } catch ( SipException | ParseException | InvalidArgumentException e) { |
| 494 | 494 | e.printStackTrace(); | ... | ... |
web_src/.postcssrc.js