public void HalfChange() { ulong len = (ulong)kSdpFullString.Length + 1; // at least as big as input (+ null terminator) StringBuilder buffer = new StringBuilder((int)len); var audioFilter = new Utils.SdpFilter { CodecName = "opus" }; var videoFilter = new Utils.SdpFilter { CodecName = "a non-existing codec name causing no change" }; uint res = Utils.SdpForceCodecs(kSdpFullString, audioFilter, videoFilter, buffer, ref len); Assert.AreEqual(res, Utils.MRS_SUCCESS); string output = buffer.ToString(); // Audio codec should be "opus" alone { var regex = new Regex("m=audio [^ ]+ [^ ]+ ([^\\r\\n]+)\\r?\\n"); var audioMedia = regex.Match(output); Assert.NotNull(audioMedia); Assert.AreEqual(2, audioMedia.Groups.Count); // [0] is always the entire match Assert.AreEqual("111", audioMedia.Groups[1].Value); // [1] is the first capture } // Video codec should be left unchanged { var regex = new Regex("m=video [^ ]+ [^ ]+ ([^\\r\\n]+)\\r?\\n"); var videoMedia = regex.Match(output); Assert.NotNull(videoMedia); Assert.AreEqual(2, videoMedia.Groups.Count); // [0] is always the entire match Assert.AreEqual("120", videoMedia.Groups[1].Value); // [1] is the first capture } }
public void ShortBuffer() { ulong len = (ulong)kSdpFullString.Length; // missing space for null terminator StringBuilder buffer = new StringBuilder((int)len); var audioFilter = new Utils.SdpFilter(); var videoFilter = new Utils.SdpFilter(); uint res = Utils.SdpForceCodecs(kSdpFullString, audioFilter, videoFilter, buffer, ref len); Assert.AreEqual(Utils.MRS_E_INVALID_PARAMETER, res); }
public void NoOp() { ulong len = (ulong)kSdpFullString.Length + 1; // exact size + null terminator StringBuilder buffer = new StringBuilder((int)len); var audioFilter = new Utils.SdpFilter(); var videoFilter = new Utils.SdpFilter(); uint res = Utils.SdpForceCodecs(kSdpFullString, audioFilter, videoFilter, buffer, ref len); Assert.AreEqual(Utils.MRS_SUCCESS, res); Assert.AreEqual(kSdpFullString, buffer.ToString()); }