Exemple #1
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;
            IVMRFilterConfig9 filterConfig = this.videoRenderer as IVMRFilterConfig9;

            // Configure VMR-9 in Windowsless mode
            hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            // With 1 input stream
            hr = filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            IVMRWindowlessControl9 windowlessControl = this.videoRenderer as IVMRWindowlessControl9;

            // The main form is hosting the VMR-9
            hr = windowlessControl.SetVideoClippingWindow(this.hostingControl.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Keep the aspect-ratio OK
            hr = windowlessControl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);

            // Init the VMR-9 with default size values
            ResizeMoveHandler(null, null);

            // Add Windows Messages handlers
            AddHandlers();
        }
Exemple #2
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

            IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)vmr9;

            // Not really needed for VMR9 but don't forget calling it with VMR7
            hr = filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            // Change VMR9 mode to Windowless
            hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            windowlessCtrl = (IVMRWindowlessControl9)vmr9;

            // Set "Parent" window
            hr = windowlessCtrl.SetVideoClippingWindow(this.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);

            // Add delegates for Windowless operations
            AddHandlers();

            // Call the resize handler to configure the output size
            MainForm_ResizeMove(null, null);
        }
    private void SetSize()
    {
        var srcRect = new DsRect();
        var dstRect = new DsRect(ClientRectangle);
        int arWidth, arHeight;

        _windowlessControl.GetNativeVideoSize(out srcRect.right, out srcRect.bottom, out arWidth, out arHeight);
        _windowlessControl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
        _windowlessControl.SetVideoPosition(srcRect, dstRect);
    }
        private void SetupRenderWindow(IVMRFilterConfig9 renderer, Control target)
        {
            IVMRFilterConfig9 config = renderer;

            // Not really needed for VMR9 but don't forget calling it with VMR7
            config.SetNumberOfStreams(1);
            // Change VMR9 mode to Windowless
            config.SetRenderingMode(VMR9Mode.Windowless);
            IVMRWindowlessControl9 winless_ctrl = (IVMRWindowlessControl9)renderer;

            // Set "Parent" window
            winless_ctrl.SetVideoClippingWindow(target.Handle);
            // Set Aspect-Ratio
            winless_ctrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            winless_ctrl.SetVideoPosition(null, DsRect.FromRectangle(target.ClientRectangle));
            winless_ctrl = null;
        }
Exemple #5
0
        protected override void Initialize(IGraphBuilder pGraphBuilder, IntPtr hMediaWindow)
        {
            // QUERY the VMR9 interfaces
            try
            {
                _pVMRFilterConfig9 = (IVMRFilterConfig9)BaseFilter;
                _pVMRFilterConfig9.SetRenderingMode(VMR9Mode.VMR9Mode_Windowless);
                _pVMRFilterConfig9.SetNumberOfStreams(NUMBER_OF_STREAMS);
                _pVMRWindowlessControl9 = (IVMRWindowlessControl9)BaseFilter;
                _pVMRWindowlessControl9.SetVideoClippingWindow(hMediaWindow);

                _pVMRWindowlessControl9.SetAspectRatioMode(VMR9AspectRatioMode.VMR9ARMode_None);
            }
            catch (Exception e)
            {
                throw new FilterGraphBuilderException(GraphBuilderError.ConfigureVMR9, e);
            }
        }
Exemple #6
0
        /// <summary>
        /// Adds VMR9 (renderer) filter to the filter graph.
        /// </summary>
        private void AddFilter_Renderer()
        {
            VMRenderer = (IBaseFilter) new VideoMixingRenderer9();

            IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)VMRenderer;

            // Not really needed for vmr but don't forget calling it with VMR7
            int hr = filterConfig.SetNumberOfStreams(1);

            DsError.ThrowExceptionForHR(hr);

            // Change vmr mode to Windowless
            hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            // video renderer
            WindowlessCtrl = (IVMRWindowlessControl9)VMRenderer;

            // set clipping window
            hr = WindowlessCtrl.SetVideoClippingWindow(_DisplayPanel.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = WindowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);

            // Add delegates for Windowless operations
            _DisplayPanel.Paint  += new PaintEventHandler(HostingControl_Paint);                          // for WM_PAINT
            _DisplayPanel.Resize += new EventHandler(HostingControl_ResizeMove);                          // for WM_SIZE
            _DisplayPanel.Move   += new EventHandler(HostingControl_ResizeMove);                          // for WM_MOVE
            SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged); // for WM_DISPLAYCHANGE
            _bHandlersAdded = true;

            // Call the resize handler to configure the output size
            HostingControl_ResizeMove(null, null);

            hr = FilterGraph.AddFilter(VMRenderer, "Video Mixing Renderer 9");
            DsError.ThrowExceptionForHR(hr);
        }
Exemple #7
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

            IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)vmr9;

            // Must be called before calling SetImageCompositor
            hr = filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            // Create an instance of the Compositor
            compositor = new Compositor();

            // Configure the filter with the Compositor
            hr = filterConfig.SetImageCompositor(compositor);
            DsError.ThrowExceptionForHR(hr);

            // Change VMR9 mode to Windowless
            hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            windowlessCtrl = (IVMRWindowlessControl9)vmr9;

            // Set rendering window
            hr = windowlessCtrl.SetVideoClippingWindow(renderingPanel.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);

            // Add delegates for Windowless operations
            AddHandlers();

            // Call the resize handler to configure the output size
            MainForm_ResizeMove(null, null);
        }
Exemple #8
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

            IVMRFilterConfig9 _filterConfig = (IVMRFilterConfig9)_vmr9Filter;

            // Not really needed for VMR9 but don't forget calling it with VMR7
            hr = _filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            // Change VMR9 mode to Windowless
            hr = _filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            windowlessCtrl = (IVMRWindowlessControl9)_vmr9Filter;

            // Set "Parent" window
            hr = windowlessCtrl.SetVideoClippingWindow(this.panVideoWin.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);
        }
Exemple #9
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

            IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9) vmr9;

            // Not really needed for VMR9 but don't forget calling it with VMR7
            hr = filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            // Change VMR9 mode to Windowless
            hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            windowlessCtrl = (IVMRWindowlessControl9) vmr9;

            // Set "Parent" window
            hr = windowlessCtrl.SetVideoClippingWindow(this.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);

            // Add delegates for Windowless operations
            AddHandlers();

            // Call the resize handler to configure the output size
            MainForm_ResizeMove(null, null);
        }
Exemple #10
0
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

            IVMRFilterConfig9 _filterConfig = (IVMRFilterConfig9)_vmr9Filter ;

            // Not really needed for VMR9 but don't forget calling it with VMR7
            hr = _filterConfig.SetNumberOfStreams(1);
            DsError.ThrowExceptionForHR(hr);

            // Change VMR9 mode to Windowless
            hr = _filterConfig.SetRenderingMode(VMR9Mode.Windowless);
            DsError.ThrowExceptionForHR(hr);

            windowlessCtrl = (IVMRWindowlessControl9)_vmr9Filter;

            // Set "Parent" window
            hr = windowlessCtrl.SetVideoClippingWindow(this.panVideoWin.Handle);
            DsError.ThrowExceptionForHR(hr);

            // Set Aspect-Ratio
            hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
            DsError.ThrowExceptionForHR(hr);
        }
        private void ConfigureVMR9InWindowlessMode()
        {
            int hr = 0;

              IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)vmr9;

              // Must be called before calling SetImageCompositor
              hr = filterConfig.SetNumberOfStreams(1);
              DsError.ThrowExceptionForHR(hr);

              // Create an instance of the Compositor
              compositor = new Compositor();

              // Configure the filter with the Compositor
              hr = filterConfig.SetImageCompositor(compositor);
              DsError.ThrowExceptionForHR(hr);

              // Change VMR9 mode to Windowless
              hr = filterConfig.SetRenderingMode(VMR9Mode.Windowless);
              DsError.ThrowExceptionForHR(hr);

              windowlessCtrl = (IVMRWindowlessControl9)vmr9;

              // Set rendering window
              hr = windowlessCtrl.SetVideoClippingWindow(renderingPanel.Handle);
              DsError.ThrowExceptionForHR(hr);

              // Set Aspect-Ratio
              hr = windowlessCtrl.SetAspectRatioMode(VMR9AspectRatioMode.LetterBox);
              DsError.ThrowExceptionForHR(hr);

              // Add delegates for Windowless operations
              AddHandlers();

              // Call the resize handler to configure the output size
              MainForm_ResizeMove(null, null);
        }