예제 #1
0
        public BufferingManager(IBufferingPolicy bufferingPolicy, ITsPesPacketPool packetPool)
        {
            if (null == bufferingPolicy)
                throw new ArgumentNullException(nameof(bufferingPolicy));
            if (null == packetPool)
                throw new ArgumentNullException(nameof(packetPool));

            _bufferingPolicy = bufferingPolicy;
            _packetPool = packetPool;

            _refreshTask = new SignalTask(() =>
            {
                RefreshHandler();

                return TplTaskExtensions.CompletedTask;
            }, _disposeCancellationTokenSource.Token);
        }
예제 #2
0
 public BufferingManager(IBufferingPolicy bufferingPolicy, ITsPesPacketPool packetPool)
 {
     if (null == bufferingPolicy)
     {
         throw new ArgumentNullException("bufferingPolicy");
     }
     if (null == packetPool)
     {
         throw new ArgumentNullException("packetPool");
     }
     this._bufferingPolicy = bufferingPolicy;
     this._packetPool      = packetPool;
     this._refreshTask     = new SignalTask((Func <Task>)(() =>
     {
         this.RefreshHandler();
         return(TplTaskExtensions.CompletedTask);
     }), this._disposeCancellationTokenSource.Token);
 }
예제 #3
0
 public static void SetParameter(this IMediaStreamFacadeBase mediaStreamFacade, IBufferingPolicy policy)
 {
     mediaStreamFacade.Builder.RegisterSingleton <IBufferingPolicy>(policy);
 }
 public static void SetParameter(this IMediaStreamFascade mediaStreamFascade, IBufferingPolicy policy);
예제 #5
0
        public AudioTrackStreamer()
        {
            Debug.WriteLine("AudioTrackStreamer ctor");

            _mediaManagerParameters = new MediaManagerParameters
            {
                ProgramStreamsHandler =
                    streams =>
                    {
                        var firstAudio = streams.Streams.FirstOrDefault(x => x.StreamType.Contents == TsStreamType.StreamContents.Audio);

                        var others = null == firstAudio ? streams.Streams : streams.Streams.Where(x => x.Pid != firstAudio.Pid);
                        foreach (
                            var programStream in others)
                            programStream.BlockStream = true;
                    }
            };

            MediaStreamFacadeSettings.Parameters.UseHttpConnection = true;
            //MediaStreamFacadeSettings.Parameters.UseSingleStreamMediaManager = true;

            _bufferingPolicy = new DefaultBufferingPolicy
            {
                BytesMinimumStarting = 24 * 1024,
                BytesMinimum = 64 * 1024
            };

            _metadataHandler = new AudioMetadataHandler(_cancellationTokenSource.Token);
        }
 public static void SetParameter(this IMediaStreamFascade mediaStreamFascade, IBufferingPolicy policy);