public RemoteVideoSourceStats(IntPtr obj) { objPtr = obj; List <LocalRendererStreamStats> csLocalRendererStreams = new List <LocalRendererStreamStats>(); int nLocalRendererStreamsSize = 0; IntPtr nLocalRendererStreams = VidyoRemoteVideoSourceStatsGetlocalRendererStreamsArrayNative(VidyoRemoteVideoSourceStatsGetlocalRendererStreamsNative(objPtr), ref nLocalRendererStreamsSize); int nLocalRendererStreamsIndex = 0; while (nLocalRendererStreamsIndex < nLocalRendererStreamsSize) { LocalRendererStreamStats csTlocalRendererStreams = new LocalRendererStreamStats(Marshal.ReadIntPtr(nLocalRendererStreams + (nLocalRendererStreamsIndex * Marshal.SizeOf(nLocalRendererStreams)))); csLocalRendererStreams.Add(csTlocalRendererStreams); nLocalRendererStreamsIndex++; } codecFir = VidyoRemoteVideoSourceStatsGetcodecFirNative(objPtr); codecIFrames = VidyoRemoteVideoSourceStatsGetcodecIFramesNative(objPtr); codecLayers = VidyoRemoteVideoSourceStatsGetcodecLayersNative(objPtr); codecNacks = VidyoRemoteVideoSourceStatsGetcodecNacksNative(objPtr); codecName = Marshal.PtrToStringAnsi(VidyoRemoteVideoSourceStatsGetcodecNameNative(objPtr)); fpsDecoded = VidyoRemoteVideoSourceStatsGetfpsDecodedNative(objPtr); fpsDecoderInput = VidyoRemoteVideoSourceStatsGetfpsDecoderInputNative(objPtr); fpsRendered = VidyoRemoteVideoSourceStatsGetfpsRenderedNative(objPtr); height = VidyoRemoteVideoSourceStatsGetheightNative(objPtr); id = Marshal.PtrToStringAnsi(VidyoRemoteVideoSourceStatsGetidNative(objPtr)); lastFrameMs = VidyoRemoteVideoSourceStatsGetlastFrameMsNative(objPtr); localRendererStreams = csLocalRendererStreams; maxStreamFrameRate = VidyoRemoteVideoSourceStatsGetmaxStreamFrameRateNative(objPtr); maxStreamHeight = VidyoRemoteVideoSourceStatsGetmaxStreamHeightNative(objPtr); maxStreamWidth = VidyoRemoteVideoSourceStatsGetmaxStreamWidthNative(objPtr); name = Marshal.PtrToStringAnsi(VidyoRemoteVideoSourceStatsGetnameNative(objPtr)); receiveNetworkBitRate = VidyoRemoteVideoSourceStatsGetreceiveNetworkBitRateNative(objPtr); receiveNetworkPacketsConcealed = VidyoRemoteVideoSourceStatsGetreceiveNetworkPacketsConcealedNative(objPtr); receiveNetworkPacketsLost = VidyoRemoteVideoSourceStatsGetreceiveNetworkPacketsLostNative(objPtr); receiveNetworkPacketsReordered = VidyoRemoteVideoSourceStatsGetreceiveNetworkPacketsReorderedNative(objPtr); receiveNetworkRecoveredWithFec = VidyoRemoteVideoSourceStatsGetreceiveNetworkRecoveredWithFecNative(objPtr); showFrameRate = VidyoRemoteVideoSourceStatsGetshowFrameRateNative(objPtr); showHeight = VidyoRemoteVideoSourceStatsGetshowHeightNative(objPtr); showPixelRate = VidyoRemoteVideoSourceStatsGetshowPixelRateNative(objPtr); showState = Marshal.PtrToStringAnsi(VidyoRemoteVideoSourceStatsGetshowStateNative(objPtr)); showWidth = VidyoRemoteVideoSourceStatsGetshowWidthNative(objPtr); videoDeltaFromAudioMs = VidyoRemoteVideoSourceStatsGetvideoDeltaFromAudioMsNative(objPtr); width = VidyoRemoteVideoSourceStatsGetwidthNative(objPtr); VidyoRemoteVideoSourceStatsFreelocalRendererStreamsArrayNative(nLocalRendererStreams, nLocalRendererStreamsSize); }
public LocalVideoSourceStats(IntPtr obj) { objPtr = obj; List <LocalRendererStreamStats> csLocalRendererStreams = new List <LocalRendererStreamStats>(); int nLocalRendererStreamsSize = 0; IntPtr nLocalRendererStreams = VidyoLocalVideoSourceStatsGetlocalRendererStreamsArrayNative(VidyoLocalVideoSourceStatsGetlocalRendererStreamsNative(objPtr), ref nLocalRendererStreamsSize); int nLocalRendererStreamsIndex = 0; while (nLocalRendererStreamsIndex < nLocalRendererStreamsSize) { LocalRendererStreamStats csTlocalRendererStreams = new LocalRendererStreamStats(Marshal.ReadIntPtr(nLocalRendererStreams + (nLocalRendererStreamsIndex * Marshal.SizeOf(nLocalRendererStreams)))); csLocalRendererStreams.Add(csTlocalRendererStreams); nLocalRendererStreamsIndex++; } List <RemoteRendererStreamStats> csRemoteRendererStreams = new List <RemoteRendererStreamStats>(); int nRemoteRendererStreamsSize = 0; IntPtr nRemoteRendererStreams = VidyoLocalVideoSourceStatsGetremoteRendererStreamsArrayNative(VidyoLocalVideoSourceStatsGetremoteRendererStreamsNative(objPtr), ref nRemoteRendererStreamsSize); int nRemoteRendererStreamsIndex = 0; while (nRemoteRendererStreamsIndex < nRemoteRendererStreamsSize) { RemoteRendererStreamStats csTremoteRendererStreams = new RemoteRendererStreamStats(Marshal.ReadIntPtr(nRemoteRendererStreams + (nRemoteRendererStreamsIndex * Marshal.SizeOf(nRemoteRendererStreams)))); csRemoteRendererStreams.Add(csTremoteRendererStreams); nRemoteRendererStreamsIndex++; } format = VidyoLocalVideoSourceStatsGetformatNative(objPtr); frameIntervalMeasured = VidyoLocalVideoSourceStatsGetframeIntervalMeasuredNative(objPtr); frameIntervalSet = VidyoLocalVideoSourceStatsGetframeIntervalSetNative(objPtr); height = VidyoLocalVideoSourceStatsGetheightNative(objPtr); id = Marshal.PtrToStringAnsi(VidyoLocalVideoSourceStatsGetidNative(objPtr)); localRendererStreams = csLocalRendererStreams; name = Marshal.PtrToStringAnsi(VidyoLocalVideoSourceStatsGetnameNative(objPtr)); remoteRendererStreams = csRemoteRendererStreams; targetBitRate = VidyoLocalVideoSourceStatsGettargetBitRateNative(objPtr); totalFrames = VidyoLocalVideoSourceStatsGettotalFramesNative(objPtr); width = VidyoLocalVideoSourceStatsGetwidthNative(objPtr); VidyoLocalVideoSourceStatsFreeremoteRendererStreamsArrayNative(nRemoteRendererStreams, nRemoteRendererStreamsSize); VidyoLocalVideoSourceStatsFreelocalRendererStreamsArrayNative(nLocalRendererStreams, nLocalRendererStreamsSize); }