public EsStreamController(EsPlayerPacketStorage storage, Window window) { if (SynchronizationContext.Current == null) { throw new ArgumentNullException(nameof(SynchronizationContext.Current)); } _syncCtx = SynchronizationContext.Current; // Create placeholder to data streams & chunk states esStreams = new EsStream[(int)StreamType.Count]; playbackErrorSubs = new IDisposable[(int)StreamType.Count]; _playerClock = new PlayerClockProvider(_clockScheduler); dataSynchronizer = new Synchronizer(_playerClock); _dataClock = new DataClockProvider(_clockScheduler, _playerClock); _dataClock.SynchronizerClock = dataSynchronizer.Pts(); packetStorage = storage; displayWindow = window; try { player = new ESPlayer.ESPlayer(); OpenPlayer(); } catch (Exception e) { logger.Error(e); } }
public EsStreamController(EsPlayerPacketStorage storage, Window window) { _playerClock = new PlayerClockProvider(_clockScheduler); _dataClock = new DataClockProvider(_clockScheduler); _suspendResumeLogic = new SuspendResumeLogic(SuspendPlayback, ResumePlayback, SetPlayerState, GetVideoPlayerState, SetDataTransferState, activeTaskCts.Token); displayWindow = window; CreatePlayer(); packetStorage = storage; // Create placeholder to data streams & chunk states esStreams = new EsStream[(int)StreamType.Count]; streamReconfigureSubs = new IDisposable[(int)StreamType.Count]; playbackErrorSubs = new IDisposable[(int)StreamType.Count]; dataSynchronizer = new Synchronizer(_playerClock); AttachEventHandlers(); }