Cgw.Channel.MonitorChannel.AddMediaData C# (CSharp) Method

AddMediaData() public method

发送码流添加进队列
public AddMediaData ( MediaData data ) : void
data MediaData
return void
        public void AddMediaData(MediaData data)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);

            // 通道失效,不发送码流
            if (isValid == false)
            {
                if (flag == false)
                {
                    logEx.Error("AddMediaData label={0} is invalid.");
                    flag = true;
                }

                return;
            }

            try
            {
                bool successed = this.meidaDataQueueLocker.TryEnterWriteLock(CgwConst.ENTER_LOCK_WAIT_TIME);
                // 申请互斥
                if (successed)
                {
                    try
                    {
                        this.mediaDataQueue.Enqueue(data);
                    }
                    finally
                    {
                        // 释放互斥量
                        this.meidaDataQueueLocker.ExitWriteLock();
                    }
                }
                else
                {
                    // 日志
                    logEx.Error("AddRtp: Enert Write Lock Failed.WaitingReadCount:{0};WaitingWriteCount:{1}.", this.meidaDataQueueLocker.WaitingReadCount, this.meidaDataQueueLocker.WaitingWriteCount);
                }
            }
            catch (Exception ex)
            {
                // 日志
                logEx.Error(ex, "AddRtp: Enert Write Lock Exception.");
            }

            this.waitEvent.Set();
        }