Exemplo n.º 1
0
 private void OnMediaStreamSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     using (var frame = _frameGenerator.WaitForNewFrame())
     {
         args.Request.SetActualStartPosition(frame.SystemRelativeTime);
     }
 }
Exemplo n.º 2
0
        async void MSS_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            MediaStreamSourceStartingRequest request = args.Request;

            if ((request.StartPosition != null) && request.StartPosition.Value <= MSS.Duration)
            {
                UInt64 sampleOffset = (UInt64)request.StartPosition.Value.Ticks / (UInt64)sampleDuration.Ticks;
                timeOffset = new TimeSpan((long)sampleOffset * sampleDuration.Ticks);
                byteOffset = sampleOffset * sampleSize;
            }

            // create the RandomAccessStream for the input file for the first time

            if (mssStream == null)
            {
                MediaStreamSourceStartingRequestDeferral deferal = request.GetDeferral();
                try
                {
                    mssStream = await inputMP3File.OpenAsync(FileAccessMode.Read);

                    request.SetActualStartPosition(timeOffset);
                    deferal.Complete();
                }
                catch (Exception)
                {
                    MSS.NotifyError(MediaStreamSourceErrorStatus.FailedToOpenFile);
                    deferal.Complete();
                }
            }
            else
            {
                request.SetActualStartPosition(timeOffset);
            }
        }
        void mss_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            Debug.WriteLine("Starting.");

            _sampleMaker.Initialize(_mss, _videoDesc);

            args.Request.SetActualStartPosition(new TimeSpan(0));
        }
        private void mss_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            //threadSync.WaitOne();//make the codec wait on us to start?

            frameCount = 0;
            //_sampleGenerator.Initialize(_mss, videoDesc);
            args.Request.SetActualStartPosition(new TimeSpan(0));
        }
Exemplo n.º 5
0
 private void OnMediaStreamSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     DrainFramePool();
     using (var frame = GetNextFrame())
     {
         args.Request.SetActualStartPosition(frame.SystemRelativeTime);
     }
 }
 private void OnMSSStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     if (parent != null)
     {
         parent.StartWritingOutput("OnStarting", 1);
     }
     args.Request.SetActualStartPosition(Timestamp);
 }
Exemplo n.º 7
0
 private void OnMediaSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs e)
 {
     if (e.Request.StartPosition.HasValue)
     {
         _currentTime = e.Request.StartPosition.Value.TotalSeconds;
         _mediaDecoder.Seek(e.Request.StartPosition.Value);
     }
     e.Request.SetActualStartPosition(TimeSpan.FromSeconds(_currentTime));
 }
Exemplo n.º 8
0
        void MSS_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            if (!m_hasSetMediaSource || advanced_media_source == null)
            {
                return;
            }

            advanced_media_source.Initialize(media_stream_source, videoDesc, audioDesc);

            args.Request.SetActualStartPosition(new TimeSpan(0));
        }
        void mp4_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            Debug.WriteLine("Starting.");

            //_sampleMaker.Initialize(_mss, _videoDesc);
            var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;

            _mp4Sampler.Initialise(folder.Path + @"\Assets\big_buck_bunny.mp4");

            args.Request.SetActualStartPosition(new TimeSpan(0));
        }
Exemplo n.º 10
0
        async void mss_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            var deferral = args.Request.GetDeferral();

            // TODO: defer starting event until first frame recieved rather than adding a delay here
            await Task.Delay(2000);

            args.Request.SetActualStartPosition(new TimeSpan(0));

            deferral.Complete();
        }
Exemplo n.º 11
0
        /// <summary>
        /// Вызывается, когда источник мультимедиа готов запрашивать сэмплы.
        /// </summary>
        private void MediaSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            var request = args.Request;

            if (request.StartPosition != null && request.StartPosition.Value <= _mediaSource.Duration)
            {
                long sampleOffset = request.StartPosition.Value.Ticks / _sampleDuration.Ticks;
                _timeOffset = TimeSpan.FromTicks(sampleOffset * _sampleDuration.Ticks);
                _byteOffset = sampleOffset * BUFFER_SIZE;
            }

            request.SetActualStartPosition(_timeOffset);
        }
Exemplo n.º 12
0
 private void OnMediaStreamSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     Debug.Assert(Dispatcher.HasThreadAccess == false);
     if (sender == localVideoSource)
     {
         LogMessage("Starting local A/V stream...");
         //webRTCNativePlugin.Peer.AddStream(audio: true, video_device_index: _video_device_index);
     }
     else if (sender == remoteVideoSource)
     {
         LogMessage("Starting remote A/V stream...");
     }
     args.Request.SetActualStartPosition(TimeSpan.Zero);
 }
Exemplo n.º 13
0
        void mkvStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            MediaStreamSourceStartingRequest request = args.Request;

            if (request.StartPosition.HasValue && sender.CanSeek)
            {
                var deferal = request.GetDeferral();
                var mkvFs   = mediaStreamFileSource as CCPlayer.HWCodecs.Matroska.MKV.MKVFileSource;
                if (mkvFs != null)
                {
                    var newTime = mkvFs.Seek((ulong)request.StartPosition.Value.Ticks / 10000);
                    request.SetActualStartPosition(newTime);
                }

                deferal.Complete();
            }
        }
Exemplo n.º 14
0
        private void flvStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            MediaStreamSourceStartingRequest request = args.Request;

            if (request.StartPosition.HasValue && sender.CanSeek)
            {
                var deferal = request.GetDeferral();
                var flvFile = mediaStreamFileSource as FlvFile;

                if (flvFile != null)
                {
                    var newTime = SeekForFlv(flvFile, (long)(request.StartPosition.Value.TotalMilliseconds * 10000));
                    request.SetActualStartPosition(TimeSpan.FromTicks(newTime));
                }

                deferal.Complete();
            }
        }
Exemplo n.º 15
0
        public void Starting(MediaStreamSource s, MediaStreamSourceStartingEventArgs e)
        {
            var req  = e.Request;
            var spos = req.StartPosition;

            Debug.WriteLine("Starting:" + lk);
            if (lk && (spos != null) && spos.Value <= s.Duration)
            {
                if (!Reload(spos.GetValueOrDefault().TotalSeconds))
                {
                    lk = false;
                    Task.Run(async() => {
                        await Task.Delay(3000);
                        lk = true;
                        Debug.WriteLine("Starting:END\n\n");
                        req.SetActualStartPosition(spos.GetValueOrDefault());
                    });
                }
            }
        }
Exemplo n.º 16
0
        public async void Starting(MediaStreamSource s, MediaStreamSourceStartingEventArgs e)
        {
            if (lock1)
            {
                return;
            }
            lock1 = true;
            var req     = e.Request;
            var deferal = req.GetDeferral();
            var spos    = req.StartPosition;

            Debug.WriteLine("Starting:START");
            if ((spos != null) && spos.Value <= s.Duration)
            {
                await Task.Run(async() => {
                    var res = Reload(spos.Value.TotalSeconds);
                    await Task.Delay(1000);
                    req.SetActualStartPosition(spos.Value);
                });
            }
            lock1 = false;
            deferal.Complete();
        }
 private void MediaStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     //todo fire an event?
 }
Exemplo n.º 18
0
 private void Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 19
0
 private void Mss_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     Debug.WriteLine("Mss_Starting");
 }
 private void OnStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     m_generator.Start(args.Request);
 }
 private void OnMediaStreamSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     //Debug.Assert(Dispatcher.HasThreadAccess == false);
     Logger.Log("Video playback stream source starting...");
     args.Request.SetActualStartPosition(TimeSpan.Zero);
 }
Exemplo n.º 22
0
 void _mss_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     _sampleGenerator.Initialize(_mss, _videoDesc);
     args.Request.SetActualStartPosition(new TimeSpan(0));
 }
Exemplo n.º 23
0
 private void OnStart(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     args.Request.SetActualStartPosition(DateTime.Now - encodingStart);
 }
 void _mss_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     _sampleGenerator.Initialize(_mss, _videoDesc);
     args.Request.SetActualStartPosition(new TimeSpan(0));
 }
 private void MediaStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     //args.Request.SetActualStartPosition(timeOffSet);
     //args.Request.
 }
Exemplo n.º 26
0
        /// <summary>
        /// Occurs when the MediaStreamSource is ready to start requesting MediaStreamSample objects.
        /// </summary>
        /// <param name="sender">Represents a media source that delivers media samples directly to the media pipeline.</param>
        /// <param name="args">Provides data for the MediaStreamSource.Starting event.</param>
        private void OnStreamSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            MediaStreamSourceStartingRequest request = args.Request;
            if ((request.StartPosition != null) && request.StartPosition.Value <= m_mediaStreamSource.Duration)
            {
                UInt64 sampleOffset = (UInt64)request.StartPosition.Value.Ticks / (UInt64)sampleDuration.Ticks;
                this.m_timeOffset = new TimeSpan((long)sampleOffset * sampleDuration.Ticks);
                this.m_byteOffset = sampleOffset * sampleSize;
            }

            if (this.m_mediaStream == null)
            {
                MediaStreamSourceStartingRequestDeferral deferal = request.GetDeferral();
                try
                {
                    this.m_mediaStream = this.m_audioStreamDownloader.Stream;
                    request.SetActualStartPosition(new TimeSpan());
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    deferal.Complete();
                }
            }
            else
            {
                request.SetActualStartPosition(m_timeOffset);
            }
        }
Exemplo n.º 27
0
 private void MediaStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     lastPauseTime = null;
 }
        async void MSS_Starting(Windows.Media.Core.MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            MediaStreamSourceStartingRequest request = args.Request;
            if ((request.StartPosition != null) && request.StartPosition.Value <= MSS.Duration)
            {
                UInt64 sampleOffset = (UInt64)request.StartPosition.Value.Ticks / (UInt64)sampleDuration.Ticks;
                timeOffset = new TimeSpan((long)sampleOffset * sampleDuration.Ticks);
                byteOffset = sampleOffset * sampleSize;
            }

            // create the RandomAccessStream for the input file for the first time 

            if (mssStream == null)
            {
                MediaStreamSourceStartingRequestDeferral deferal = request.GetDeferral();
                try
                {
                    mssStream = await inputMP3File.OpenAsync(FileAccessMode.Read);
                    request.SetActualStartPosition(timeOffset);
                    deferal.Complete();
                }
                catch (Exception)
                {
                    MSS.NotifyError(MediaStreamSourceErrorStatus.FailedToOpenFile);
                    deferal.Complete();
                }
            }
            else
            {
                request.SetActualStartPosition(timeOffset);
            }
        }
Exemplo n.º 29
0
        protected virtual void MssOnStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            Debug.WriteLine("StreamSourceBase.MssOnStarting()");

            if (args.Request.StartPosition.HasValue)
            {
                Time = args.Request.StartPosition.Value;
                Position = (ulong)Math.Round(_encodingProperties.SampleRate * Time.TotalSeconds);
            }

            args.Request.SetActualStartPosition(Time);
        }
Exemplo n.º 30
0
 private void OnMediaSourceStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs e)
 {
     if (e.Request.StartPosition.HasValue)
     {
         _currentTime = e.Request.StartPosition.Value.TotalSeconds;
         _mediaDecoder.Seek(e.Request.StartPosition.Value);
     }
     e.Request.SetActualStartPosition(TimeSpan.FromSeconds(_currentTime));
 }
Exemplo n.º 31
0
        private void OnStarting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
        {
            var request = args.Request;

            request.SetActualStartPosition(TimeSpan.Zero);
        }
Exemplo n.º 32
0
 private void MediaStreamSource_Starting(MediaStreamSource sender, MediaStreamSourceStartingEventArgs args)
 {
     Log("MediaStreamSource_Starting");
     args.Request.SetActualStartPosition(new TimeSpan(0));
 }