/// <summary>
        /// Registers the plugin so that it can be managed.
        /// </summary>
        /// <param name="plugin">The plugin to register.</param>
        /// <param name="priority">The priority of the specified plugin.</param>
        public void RegisterPlugin(IAdaptiveMediaPlugin plugin, int priority)
        {
            if (_settings == null)
            {
                _settings = ReadSettings();
            }

            BalancedPriorityGroupMonitor priorityGroup = _priorityGroups.Where(i => i.Priority == priority)
                .FirstOrDefault();

            if (priorityGroup == null)
            {
                priorityGroup = new BalancedPriorityGroupMonitor(priority, _settings);
                priorityGroup.AllowBitrateIncreases = true;
                _priorityGroups.Add(priorityGroup);
            }

            priorityGroup.RegisterPlugin(plugin);
        }
        /// <summary>
        /// Registers the plugin so that it can be managed.
        /// </summary>
        /// <param name="plugin">The plugin to register.</param>
        /// <param name="priority">The priority of the specified plugin.</param>
        public void RegisterPlugin(IAdaptiveMediaPlugin plugin, int priority)
        {
            if (_settings == null)
            {
                _settings = ReadSettings();
            }

            BalancedPriorityGroupMonitor priorityGroup = _priorityGroups.Where(i => i.Priority == priority)
                                                         .FirstOrDefault();

            if (priorityGroup == null)
            {
                priorityGroup = new BalancedPriorityGroupMonitor(priority, _settings);
                priorityGroup.AllowBitrateIncreases = true;
                _priorityGroups.Add(priorityGroup);
            }

            priorityGroup.RegisterPlugin(plugin);
        }