Commit fa80ba6f2bf4b69c0c6ad64e164f21f0bad72fa4

Authored by 648540858
1 parent 52f9c295

修复sdp解析错误

src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -207,22 +207,18 @@ public class SipUtils { @@ -207,22 +207,18 @@ public class SipUtils {
207 if (mediaDescriptionIndex == 0 && ssrcIndex == 0) { 207 if (mediaDescriptionIndex == 0 && ssrcIndex == 0) {
208 sdp = SdpFactory.getInstance().createSessionDescription(sdpStr); 208 sdp = SdpFactory.getInstance().createSessionDescription(sdpStr);
209 }else { 209 }else {
210 - int baseSdpIndex = Math.min(mediaDescriptionIndex, ssrcIndex);  
211 - //ssrc规定长度为10字节,不取余下长度以避免后续还有“f=”字段  
212 - String substring = sdpStr.substring(0, baseSdpIndex);  
213 - sdp = SdpFactory.getInstance().createSessionDescription(substring);  
214 -  
215 String lines[] = sdpStr.split("\\r?\\n"); 210 String lines[] = sdpStr.split("\\r?\\n");
  211 + StringBuilder sdpBuffer = new StringBuilder();
216 for (String line : lines) { 212 for (String line : lines) {
217 if (line.trim().startsWith("y=")) { 213 if (line.trim().startsWith("y=")) {
218 ssrc = line.substring(2); 214 ssrc = line.substring(2);
219 }else if (line.trim().startsWith("f=")) { 215 }else if (line.trim().startsWith("f=")) {
220 mediaDescription = line.substring(2); 216 mediaDescription = line.substring(2);
221 - }  
222 - if (ssrc != null && mediaDescription != null) {  
223 - break; 217 + }else {
  218 + sdpBuffer.append(line.trim()).append("\r\n");
224 } 219 }
225 } 220 }
  221 + sdp = SdpFactory.getInstance().createSessionDescription(sdpBuffer.toString());
226 } 222 }
227 return Gb28181Sdp.getInstance(sdp, ssrc, mediaDescription); 223 return Gb28181Sdp.getInstance(sdp, ssrc, mediaDescription);
228 } 224 }