Exemplo n.º 1
0
        public override void Setup()
        {
            base.Setup();

            //create bridge controller
            _bridgeController = new GMFBridgeController();
            //add a video stream to the bridge
            //1 = Video stream 0 = Audio stream, format type, 1 = dispose stream going into disconnected sink 0 = buffer stream going into disconnected sink
            _bridgeController.AddStream(1, eFormatType.eAny, 1);

            _netSrcMediaType           = new AMMediaType();
            _netSrcMediaType.majorType = MediaType.Stream;
//            _netSrcMediaType.subType = new Guid(0x5fe31118, 0x25fb, 0x4d77, 0xbc, 0x62, 0x3d, 0x9c, 0xc3, 0x2b, 0xbe, 0x67);
            _netSrcMediaType.subType = Guid.Empty;
            AddSourceFilter();

            //insert Infinite Pin Tee into playback graph
            _infPinTee = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "Infinite Pin Tee Filter");

            //add a bridge sink to the playback graph
            _bridgeSink = (IBaseFilter)_bridgeController.InsertSinkFilter(_graphBuilder);

            _videoCallbackFilter       = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "LEAD Video Callback Filter (2.0)");
            _callback                  = (ILMVCallback)_videoCallbackFilter;
            _callback.CallInSameThread = false;
            _callback.ReceiveProcObj   = this;

            RenderSource();
        }
Exemplo n.º 2
0
        public override void Setup()
        {
            base.Setup();
            lock (instanceMutex)
            {
                //create bridge controller
                _bridgeController = new GMFBridgeController();
                //add a video stream to the bridge
                //1 = Video stream 0 = Audio stream, format type, 1 = dispose stream going into disconnected sink 0 = buffer stream going into disconnected sink
                _bridgeController.AddStream(1, eFormatType.eAny, 1);

                AddLeadNetSrc();
                AddLeadNetDemux();

                ConnectFilters(_graphBuilder, _netSrc, "Output", _netDmx, "Input 01", true);

                //insert Infinite Pin Tee into playback graph
                _infPinTee = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "Infinite Pin Tee Filter");

                //add a bridge sink to the playback graph
                _bridgeSink = (IBaseFilter)_bridgeController.InsertSinkFilter(_graphBuilder);

                //finish building playback/source graph, so we can negotiate data types on bridge
                RenderNetDemux();

                _telemetryTimer = new System.Threading.Timer(new System.Threading.TimerCallback(TelemetryTimer_Tick));
            }
        }