Fix wrong media values in SDP for some cameras #1278

This commit is contained in:
Alex X
2024-07-26 17:00:16 +03:00
parent ed99025bd6
commit d559ec0208
2 changed files with 50 additions and 2 deletions
+8 -2
View File
@@ -38,8 +38,14 @@ func UnmarshalSDP(rawSDP []byte) ([]*core.Media, error) {
// Fix invalid media type (errSDPInvalidValue) caused by
// some TP-LINK IP camera, e.g. TL-IPC44GW
m := regexp.MustCompile("m=application/[^ ]+")
rawSDP = m.ReplaceAll(rawSDP, []byte("m=application"))
m := regexp.MustCompile("m=[^ ]+ ")
for _, i := range m.FindAll(rawSDP, -1) {
switch string(i[2 : len(i)-1]) {
case "audio", "video", "application":
default:
rawSDP = bytes.Replace(rawSDP, i, []byte("m=application "), 1)
}
}
if err == io.EOF {
rawSDP = append(rawSDP, '\n')