Exemplo n.º 1
0
        public void AddContent(AbstractRtmpMediaMessage msg, bool isClient = false)
        {
            if (!isClient)
            {
                if (_streamName.IsObsClient)
                {
                    HandleObsStream(msg);
                }
                else
                {
                    HandleNonObsStream(msg);
                }
            }
            if (msg is VideoMessage)
            {
                VideoMessage vm = (VideoMessage)msg;
                if (vm.IsAVCDecoderConfigurationRecord())
                {
                    _avcDecoderConfigurationRecord = vm;
                }

                if (vm.IsH264KeyFrame())
                {
                    _content.Clear();
                }
            }

            if (msg is AudioMessage)
            {
                AudioMessage am = (AudioMessage)msg;
                if (am.IsAACAudioSpecificConfig())
                {
                    _aacAudioSpecificConfig = am;
                }
            }

            _content.Add(msg);
            if (RtmpConfig.Instance.IsSaveFlvFile)
            {
                WriteFlv(msg);
            }
            BroadCastToSubscribers(msg);
        }