private void GetNewXY(ref double x, ref double y)
        {
            IMFormat    pFormat = m_objMixer;
            M_VID_PROPS vProps;
            int         nIndex;
            string      strNmae;

            pFormat.FormatVideoGet(eMFormatType.eMFT_Output, out vProps, out nIndex, out strNmae);
            double videoAspectRatio = (double)vProps.nAspectX / (double)vProps.nAspectY;

            if (vProps.nAspectX == 0 && vProps.nAspectY == 0)
            {
                videoAspectRatio = (double)vProps.nWidth / (double)vProps.nHeight;
            }

            double previewAspectRatio = (double)panelPreview.Width / (double)panelPreview.Height;
            double kX = 0;
            double kY = 0;

            if (videoAspectRatio < previewAspectRatio)
            {
                kX = (videoAspectRatio * (double)panelPreview.Height) / (double)panelPreview.Width;
                x  = (x - 0.5) / kX + 0.5;
            }
            else
            {
                kY = (double)panelPreview.Width / (videoAspectRatio * (double)panelPreview.Height);
                y  = (y - 0.5) / kY + 0.5;
            }
        }
Beispiel #2
0
 private void OnMFormatObjectChanged(IMFormat oldValue, IMFormat newValue)
 {
     this.InitDownStream();
     UpdateItems();
 }