private void PlayListFailedSink(AVPlayList sender, AVRenderer.CreateFailedReason reason)
 {
     PlayListTable.Remove(sender.GetHashCode());
     if (OnReuseConnectionFailed != null)
     {
         OnReuseConnectionFailed(this, Tag);
     }
 }
        /// <summary>
        /// This is called when PrepareForConnection failed on the renderer
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="reason"></param>
        /// <param name="h"></param>
        protected void FailedSink(AVRenderer sender, AVRenderer.CreateFailedReason reason, object h)
        {
            lock (ConnectionLock)
            {
                if (TableOfHandles.ContainsKey(h) == false)
                {
                    return;
                }
            }

            _AVR.OnCreateConnectionFailed2 -= new AVRenderer.FailedConnectionHandler(FailedSink);
            if (OnFailed != null)
            {
                OnFailed(this, reason);
            }
        }
 protected void PlayListFailedSink(AVPlayList sender, AVRenderer.CreateFailedReason reason)
 {
     PlayListTable.Remove(sender.GetHashCode());
     OnCreateConnectionFailedEvent.Fire(this, reason, sender.PlayListHandle);
 }