private void RegisterBufferStatusChangedCallback()
        {
            _mediaPacketBufferStatusChangedCallback = (sourceId_, state, _) =>
            {
                Log.Info(WebRTCLog.Tag, $"sourceId:{sourceId_}, state:{state}");

                BufferStatusChanged?.Invoke(this, new MediaPacketBufferStatusChangedEventArgs(sourceId_, state));
            };

            NativeWebRTC.SetBufferStateChangedCb(Handle, SourceId, _mediaPacketBufferStatusChangedCallback, IntPtr.Zero).
            ThrowIfFailed("Failed to set buffer status changed callback.");
        }
예제 #2
0
        private void RegisterBufferStatusChanged()
        {
            _bufferStatusCb = (statusCode, _) =>
            {
                Debug.Assert(Enum.IsDefined(typeof(MediaCodecStatus), statusCode),
                             $"{ statusCode } is not defined in MediaCodecStatus!");

                BufferStatusChanged?.Invoke(this, new BufferStatusChangedEventArgs(statusCode));
            };

            Native.SetBufferStatusCb(_handle, _bufferStatusCb).
            ThrowIfFailed("Failed to set buffer status callback.");
        }
예제 #3
0
        private void RegisterBufferStatusChanged()
        {
            _bufferStatusCb = (statusCode, _) =>
            {
                Debug.Assert(Enum.IsDefined(typeof(MediaCodecStatus), statusCode),
                             $"{ statusCode } is not defined in MediaCodecStatus!");

                BufferStatusChanged?.Invoke(this,
                                            new BufferStatusChangedEventArgs((MediaCodecStatus)statusCode));
            };

            int ret = Interop.MediaCodec.SetBufferStatusCb(_handle, _bufferStatusCb);

            MultimediaDebug.AssertNoError(ret);
        }
예제 #4
0
 private void MediaStreamBufferStatusChanged(object sender, MediaStreamBufferStatusChangedEventArgs e)
 {
     BufferStatusChanged?.Invoke(this, e);
 }