Example #1
0
        public AdvancedSettingsViewModel(AdvancedSettingsModel model, TrackableViewModel parent) : base(parent)
        {
            _model         = model;
            videoVeiwModel = ((StreamViewModel)parent).VideoViewModel;

            var encoders = EncoderHelper.GetVideoEncoders();

            VideoEncoders.AddRange(encoders);

            var encoder = encoders.FirstOrDefault(e => e.Id == _model.EncoderId) ?? encoders.FirstOrDefault();

            this.VideoEncoder = encoder;

            AdjustResolutionCommand = new DelegateCommand(AdjustVideoResolution);
        }
Example #2
0
        //public EncoderItem VideoEncoder { get; set; }

        public void Init(IEnumerable <EncoderItem> encoders = null)
        {
            if (encoders == null)
            {
                encoders = EncoderHelper.GetVideoEncoders();
            }

            var encoder = encoders.FirstOrDefault(e => e.Id == EncoderId) ?? encoders.FirstOrDefault();

            if (encoder == null)
            {
                // Что то пошло не так...
                // throw new Exception...
            }

            if (encoder.Id != EncoderId)
            {
                this.EncoderId = encoder.Id;
            }
        }
Example #3
0
        public bool Init()
        {
            logger.Debug("Init()");

            var     winVersion   = Environment.OSVersion.Version;
            Version minOsVersion = new Version(MinOSVersion);

            if (winVersion < minOsVersion)
            {
                //...

                logger.Warn($"OS version {winVersion} currently not supported!");
                //throw new NotSupportedException($"This version of the operating system currently is not supported.");
            }

            var appVersion    = new Version(AppVersion);
            var configVersion = new Version(ConfigVersion);

            logger.Info("Application Version: " + appVersion);
            logger.Info("Configuration Version: " + configVersion);

            if (appVersion != configVersion)
            {
                if (appVersion.Major != configVersion.Major)
                {
                    logger.Warn("AppVersion is not the same as ConfigVersion: " + AppVersion + " != " + ConfigVersion);
                    //Проверяем совместимость версий...
                }

                //...
            }

            if (StreamList.Count == 0)
            {
                logger.Warn("StreamList.Count == 0");

                StreamList.Add(new MediaStreamModel()
                {
                    Name = $"{Environment.MachineName} (Stream 1)"
                });
            }

            if (MaxStreamCount < 1)
            {
                MaxStreamCount = 4;
            }

            if (StreamList.Count > MaxStreamCount)
            {
                logger.Warn("MaxStreamCountLimit: " + StreamList.Count + " > " + MaxStreamCount);

                StreamList.RemoveAt(MaxStreamCount - 1);
            }

            var videoEncoders = EncoderHelper.GetVideoEncoders();

            if (videoEncoders.Count == 0)
            {
                logger.Warn("videoEncoders.Count == 0");
                //...
            }

            var audioSources = AudioHelper.GetAudioSources();

            if (audioSources.Count == 0)
            {
                logger.Warn("audioSources.Count == 0");
                //...
            }

            var videoSources = ScreenHelper.GetVideoSources();

            if (videoSources.Count == 0)
            {
                logger.Warn("videoSources.Count == 0");
                //...
            }


            foreach (var stream in StreamList)
            {
                stream.Init(videoEncoders, videoSources, audioSources);
            }

            return(true);
        }