public int ConnectEx(PinEx pReceivePinEx, AMMediaType pmt) { var eventArg = new PinConnectEventArg(pmt); if (PinConnecting != null) { PinConnecting(this, eventArg); } var result = Pin.Connect(pReceivePinEx.Pin, eventArg.Reset ?? pmt); if (result == 0) { pReceivePinEx.InitAMMediaType(); if (PinConnectSuccess != null) { PinConnectSuccess(this, new EventArgsEx <AMMediaType>(pmt)); } } else { Console.WriteLine(string.Format("DSError:{0} {1}", result, DsError.GetErrorText(result))); if (PinConnectFailure != null) { PinConnectFailure(this, new EventArgsEx <AMMediaType>(pmt)); } } return(result); }
public static AMMediaType FindAMMediaType(PinEx pinex, int width, int height) { //e436eb7d-524f-11ce-9f53-0020af0ba770 RGB24 //32595559-0000-0010-8000-00aa00389b71 YUY2 return(FindAMMediaType(pinex, width, height, new Guid[] { Guid.Parse("e436eb7d-524f-11ce-9f53-0020af0ba770"), Guid.Parse("32595559-0000-0010-8000-00aa00389b71") })); }
public static AMMediaType FindAMMediaType(PinEx pinex, int width, int height, Guid[] subTypes) { foreach (var mt in pinex.MediaTypes) { var vi = QueryVideoInfoHeader(mt); if (vi.BmiHeader.Width == width && vi.BmiHeader.Height == height && (subTypes == null || (subTypes != null && subTypes.Contains(mt.subType)))) { PrintMediaType(mt); return(mt); } } return(null); }
public bool ConnectEx(PinEx pReceivePinEx) { Disconnect(); if (this.MediaTypes.Count == 0) { InitAMMediaType(); } Console.WriteLine(string.Format("InitAMMediaType():{0}", this.MediaTypes.Count)); foreach (var mt in this.MediaTypes) { var hr = pReceivePinEx.Pin.QueryAccept(mt); Console.WriteLine(string.Format("pReceivePinEx.Pin.QueryAccept(mt):{0} {1}", hr, DsError.GetErrorText(hr))); if (hr != 0) { continue; } if (hr == 0 && ConnectEx(pReceivePinEx, mt) == 0) { return(true); } } return(false); }
public static AMMediaType FindAMMediaType(PinEx pinex, VSizeMode mode) { var size = GetVSize(mode); return(FindAMMediaType(pinex, size.Width, size.Height)); }