Example #1
0
        public async Task CloseAsync()
        {
            TsMediaStreamSource           mediaStreamSource = this._mediaStreamSource;
            TaskCompletionSource <object> pcs = this._playingCompletionSource;

            if (null == mediaStreamSource)
            {
                if (null != this._openCompletionSource)
                {
                    this._openCompletionSource.TrySetCanceled();
                }
                if (null != pcs)
                {
                    pcs.TrySetResult((object)null);
                }
            }
            else
            {
                await mediaStreamSource.CloseAsync().ConfigureAwait(false);

                if (null != pcs)
                {
                    object obj = await pcs.Task.ConfigureAwait(false);
                }
            }
        }
Example #2
0
        public void ValidateEvent(MediaStreamFsm.MediaEvent mediaEvent)
        {
            TsMediaStreamSource mediaStreamSource = this._mediaStreamSource;

            if (null == mediaStreamSource)
            {
                return;
            }
            mediaStreamSource.ValidateEvent(mediaEvent);
        }
Example #3
0
        public void CheckForSamples()
        {
            TsMediaStreamSource mediaStreamSource = this._mediaStreamSource;

            if (null == mediaStreamSource)
            {
                return;
            }
            mediaStreamSource.CheckForSamples();
        }
Example #4
0
        private void CleanupMediaStreamSource()
        {
            TsMediaStreamSource mediaStreamSource = this._mediaStreamSource;

            if (null == mediaStreamSource)
            {
                return;
            }
            this._mediaStreamSource = (TsMediaStreamSource)null;
            DisposeExtensions.DisposeSafe((IDisposable)mediaStreamSource);
        }
Example #5
0
        public void ReportError(string message)
        {
            TsMediaStreamSource mediaStreamSource = this._mediaStreamSource;

            if (null == mediaStreamSource)
            {
                Debug.WriteLine("MediaStreamConfigurator.ReportError() null _mediaStreamSource");
            }
            else
            {
                mediaStreamSource.ReportError(message);
            }
        }
Example #6
0
        public Task <TMediaStreamSource> CreateMediaStreamSourceAsync <TMediaStreamSource>(CancellationToken cancellationToken) where TMediaStreamSource : class
        {
            cancellationToken.ThrowIfCancellationRequested();
            if (null != this._mediaStreamSource)
            {
                throw new InvalidOperationException("MediaStreamSource already exists");
            }
            TsMediaStreamSource mediaStreamSource = this._mediaStreamSourceFactory();
            TMediaStreamSource  result            = mediaStreamSource as TMediaStreamSource;

            if (null == (object)result)
            {
                mediaStreamSource.Dispose();
                this._openCompletionSource.TrySetCanceled();
                this._playingCompletionSource.TrySetResult((object)null);
                throw new InvalidCastException(string.Format("Cannot convert {0} to {1}", (object)mediaStreamSource.GetType().FullName, (object)typeof(TMediaStreamSource).FullName));
            }
            this._mediaStreamSource = mediaStreamSource;
            return(TaskEx.FromResult <TMediaStreamSource>(result));
        }