Esempio n. 1
0
        private static bool SupportsVideoCompressor(ref ICINFO icInfo)
        {
#if COMPATIBILITY
            if (icInfo.fccHandler == FourCC.x264)
            {
                return(true);
            }
#endif

            const VideoCompressorFlags unsupportedFlags = VideoCompressorFlags.Quality |
                                                          VideoCompressorFlags.Crunch |
                                                          VideoCompressorFlags.CompressFrames;

            if ((icInfo.dwFlags & unsupportedFlags) != 0)
            {
                return(false);
            }

            bool requiresPreviousFrame = (icInfo.dwFlags & VideoCompressorFlags.Temporal) != 0 &&
                                         (icInfo.dwFlags & VideoCompressorFlags.FastTemporalC) == 0;

            return(!requiresPreviousFrame);
        }
Esempio n. 2
0
 public static extern bool ICInfo(
     int fccType,
     int fccHandler,
     ref ICINFO lpicinfo
     );
Esempio n. 3
0
 static extern int ICGetInfo(IntPtr hic, ref ICINFO lpicinfo, int cb);
Esempio n. 4
0
 public static extern int ICGetInfo(IntPtr hic, out ICINFO pciinfo, uint cb);
Esempio n. 5
0
 public static extern int ICInfo(uint fccType, uint fccHandler, ref ICINFO lpicinfo);
Esempio n. 6
0
 public static extern Int32 ICGetInfo(IntPtr hic, ref ICINFO picinfo, Int32 size);
Esempio n. 7
0
 public static extern IntPtr ICGetInfo(VideoCompressorHandle hic,
                                       ref ICINFO lpicinfo,
                                       uint cb);
Esempio n. 8
0
 internal VideoCompressorInfo(ref ICINFO icInfo)
 {
     _icInfo = icInfo;
 }
Esempio n. 9
0
 public static extern int ICGetInfo(IntPtr hic, out ICINFO pciinfo, uint cb);
Esempio n. 10
0
			private static Codec[] LoadInstalledCodecs()
			{
				List<Codec> codecs = new List<Codec>();

				int fccType = mmioStringToFOURCC("VIDC", 0);

				int i = 0;
				ICINFO handlerInfo = new ICINFO();
				handlerInfo.dwSize = Marshal.SizeOf(handlerInfo);

				while (0 != ICInfo(fccType, i++, ref handlerInfo))
				{
					IntPtr handle = ICOpen(fccType, handlerInfo.fccHandler, (Int32)ICModeFlags.ICMODE_QUERY);
					if (handle == IntPtr.Zero)
						continue;

					ICINFO queryHandlerInfo = new ICINFO();
					queryHandlerInfo.dwSize = Marshal.SizeOf(queryHandlerInfo);
					if (0 != ICGetInfo(handle, ref queryHandlerInfo, queryHandlerInfo.dwSize))
					{
						Codec codec = new Codec(queryHandlerInfo);
						if (!String.IsNullOrEmpty(codec.Name) &&
							null == codecs.Find(delegate(Codec test) { return test.Name == codec.Name; }))
						{
							codecs.Add(codec);
						}
					}

					ICClose(handle);
				}

				return codecs.ToArray();
			}
Esempio n. 11
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;

				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;
			}
Esempio n. 12
0
			private Codec(ICINFO icInfo)
			{
				_icInfo = icInfo;
				_fourCCCode = mmioFourCCToString(FourCCHandler); 
			}
Esempio n. 13
0
File: Avi.cs Progetto: nhannd/Xian
		public static extern Int32 ICGetInfo(IntPtr hic, ref ICINFO picinfo, Int32 size);
Esempio n. 14
0
File: Avi.cs Progetto: nhannd/Xian
		public static extern int ICInfo(
			Int32 fccType,
			Int32 fccHandler,
			ref ICINFO icInfo);
Esempio n. 15
0
 public static extern int ICGetInfo(
     int hic,
     ref ICINFO lpicinfo,
     int cb
     );
Esempio n. 16
0
 private Codec(ICINFO icInfo)
 {
     _icInfo     = icInfo;
     _fourCCCode = mmioFourCCToString(FourCCHandler);
 }
Esempio n. 17
0
 public static extern int ICInfo(uint fccType, uint fccHandler, ref ICINFO lpicinfo);
Esempio n. 18
0
 public static extern int ICInfo(
     Int32 fccType,
     Int32 fccHandler,
     ref ICINFO icInfo);
Esempio n. 19
0
 public static extern bool ICInfo(uint fccType,
                                  uint fccHandler,
                                  out ICINFO lpicinfo);