public void RTCRtpSendParametersCreateAndDeletePtr() { RTCRtpSendParametersInternal parametersInternal = new RTCRtpSendParametersInternal(); int encodingsLength = 2; RTCRtpEncodingParametersInternal[] encodings = new RTCRtpEncodingParametersInternal[encodingsLength]; for (int i = 0; i < encodingsLength; i++) { encodings[i].active = true; encodings[i].hasValueMaxBitrate = true; encodings[i].maxBitrate = 10000000; encodings[i].hasValueMaxFramerate = true; encodings[i].maxFramerate = 30; encodings[i].hasValueScaleResolutionDownBy = true; encodings[i].scaleResolutionDownBy = 1.0; encodings[i].rid = Marshal.StringToCoTaskMemAnsi(string.Empty); } parametersInternal.transactionId = Marshal.StringToCoTaskMemAnsi(string.Empty); parametersInternal.encodingsLength = encodingsLength; parametersInternal.encodings = IntPtrExtension.ToPtr(encodings); RTCRtpSendParameters parameter = new RTCRtpSendParameters(parametersInternal); IntPtr ptr = parameter.CreatePtr(); RTCRtpSendParameters.DeletePtr(ptr); }
public void RTCRtpSendParametersCreateAndDeletePtr() { RTCRtpSendParametersInternal parametersInternal = default; int encodingsLength = 2; RTCRtpEncodingParametersInternal[] encodings = new RTCRtpEncodingParametersInternal[encodingsLength]; for (int i = 0; i < encodingsLength; i++) { encodings[i].active = true; encodings[i].maxBitrate = 10000000; encodings[i].minBitrate = 10000000; encodings[i].maxFramerate = 30; encodings[i].scaleResolutionDownBy = 1.0; encodings[i].rid = Marshal.StringToCoTaskMemAnsi(string.Empty); } parametersInternal.transactionId = Marshal.StringToCoTaskMemAnsi(string.Empty); parametersInternal.encodings = encodings; RTCRtpSendParameters parameter = new RTCRtpSendParameters(ref parametersInternal); parameter.CreateInstance(out var instance); instance.Dispose(); }