Esempio 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();
        }
Esempio n. 2
0
 private void AddCallback(object pCallback)
 {
     try
     {
         if (_lmvCallBkPlay == null)
         {
             foreach (Processor vp in _captureCtrl.VideoProcessors)
             {
                 if (vp.FriendlyName.Equals("LEAD Video Callback Filter (2.0)"))
                 {
                     _captureCtrl.SelectedVideoProcessors.Add(vp);
                     _lmvCallBkPlay = _captureCtrl.GetSubObject(CaptureObject.SelVideoProcessor) as ILMVCallback;
                     _lmvCallBkPlay.ReceiveProcObj = pCallback;
                 }
             }
         }
         else
         {
             _lmvCallBkPlay.ReceiveProcObj = pCallback;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }