コード例 #1
0
            public static Codec Find(BITMAPINFOHEADER format, Codec preferredCodec)
            {
                ICModeFlags flags = ICModeFlags.ICMODE_COMPRESS | ICModeFlags.ICMODE_FASTCOMPRESS;
                Codec       codec = Find(format, flags, preferredCodec);

                if (codec != null)
                {
                    return(codec);
                }

                flags = ICModeFlags.ICMODE_COMPRESS;
                codec = Find(format, flags, preferredCodec);
                if (codec != null)
                {
                    return(codec);
                }

                flags = 0;
                codec = Find(format, flags, preferredCodec);
                if (codec != null)
                {
                    return(codec);
                }

                return(null);
            }
コード例 #2
0
            private static Codec Find(BITMAPINFOHEADER format, ICModeFlags flags, Codec preferredCodec)
            {
                int fccType = mmioStringToFOURCC("VIDC", 0);

                int preferredFccHandler = 0;

                if (preferredCodec != null)
                    preferredFccHandler = preferredCodec.FourCCHandler; }
コード例 #3
0
ファイル: AviCodec.cs プロジェクト: nhannd/Xian
			private static Codec Find(BITMAPINFOHEADER format, ICModeFlags flags, Codec preferredCodec)
			{
				int fccType = mmioStringToFOURCC("VIDC", 0);

				int preferredFccHandler = 0;
				if (preferredCodec != null)
					preferredFccHandler = preferredCodec.FourCCHandler;

				IntPtr handle = ICLocate(fccType, preferredFccHandler, ref format, IntPtr.Zero, (short)flags);
				GC.KeepAlive(format);

				if (handle != IntPtr.Zero)
				{
					ICINFO icInfo = new ICINFO();
					icInfo.dwSize = Marshal.SizeOf(icInfo);

					if (0 == ICGetInfo(handle, ref icInfo, icInfo.dwSize))
					{
						ICClose(handle);
						return null;
					}

					ICClose(handle);

					return CollectionUtils.SelectFirst(
						_installedCodecs, 
						delegate(Codec codec) { return codec.FourCCHandler == icInfo.fccHandler; });
				}

				return null;
			}