648540858
2023-06-12 fa80ba6f2bf4b69c0c6ad64e164f21f0bad72fa4
修复sdp解析错误
1个文件已修改
12 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -207,22 +207,18 @@
        if (mediaDescriptionIndex == 0 && ssrcIndex == 0) {
            sdp = SdpFactory.getInstance().createSessionDescription(sdpStr);
        }else {
            int baseSdpIndex = Math.min(mediaDescriptionIndex, ssrcIndex);
            //ssrc规定长度为10字节,不取余下长度以避免后续还有“f=”字段
            String substring = sdpStr.substring(0, baseSdpIndex);
            sdp = SdpFactory.getInstance().createSessionDescription(substring);
            String lines[] = sdpStr.split("\\r?\\n");
            StringBuilder sdpBuffer = new StringBuilder();
            for (String line : lines) {
                if (line.trim().startsWith("y=")) {
                    ssrc = line.substring(2);
                }else if (line.trim().startsWith("f=")) {
                    mediaDescription = line.substring(2);
                }
                if (ssrc != null && mediaDescription != null) {
                    break;
                }else {
                    sdpBuffer.append(line.trim()).append("\r\n");
                }
            }
            sdp = SdpFactory.getInstance().createSessionDescription(sdpBuffer.toString());
        }
        return Gb28181Sdp.getInstance(sdp, ssrc, mediaDescription);
    }