Example #1
0
        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") }));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        public static AMMediaType FindAMMediaType(PinEx pinex, VSizeMode mode)
        {
            var size = GetVSize(mode);

            return(FindAMMediaType(pinex, size.Width, size.Height));
        }