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; } }
private void OnMFormatObjectChanged(IMFormat oldValue, IMFormat newValue) { this.InitDownStream(); UpdateItems(); }