Пример #1
0
		public static void MakeFileFromStream(String fileName, AviStream stream) {
			IntPtr newFile = IntPtr.Zero;
			IntPtr streamPointer = stream.StreamPointer;

			Avi.AVICOMPRESSOPTIONS_CLASS opts = new Avi.AVICOMPRESSOPTIONS_CLASS();
			opts.fccType = (uint)Avi.streamtypeVIDEO;
			opts.lpParms = IntPtr.Zero;
			opts.lpFormat = IntPtr.Zero;
			Avi.AVISaveOptions(IntPtr.Zero, Avi.ICMF_CHOOSE_KEYFRAME | Avi.ICMF_CHOOSE_DATARATE, 1, ref streamPointer, ref opts);
			Avi.AVISaveOptionsFree(1, ref opts);

			Avi.AVISaveV(fileName, 0, 0, 1, ref streamPointer, ref opts);
		}
Пример #2
0
		/// <summary>Copy the stream into a new file</summary>
		/// <param name="fileName">Name of the new file</param>
		public override void ExportStream(String fileName) {
			Avi.AVICOMPRESSOPTIONS_CLASS opts = new Avi.AVICOMPRESSOPTIONS_CLASS {
				fccType = (uint)Avi.streamtypeVIDEO,
				lpParms = IntPtr.Zero,
				lpFormat = IntPtr.Zero
			};
			IntPtr streamPointer = StreamPointer;
			Avi.AVISaveOptions(IntPtr.Zero, Avi.ICMF_CHOOSE_KEYFRAME | Avi.ICMF_CHOOSE_DATARATE, 1, ref streamPointer, ref opts);
			Avi.AVISaveOptionsFree(1, ref opts);

			Avi.AVISaveV(fileName, 0, 0, 1, ref aviStream, ref opts);
		}
Пример #3
0
		/// <summary>Copy the stream into a new file</summary>
		/// <param name="fileName">Name of the new file</param>
		public override void ExportStream(String fileName) {
			Avi.AVICOMPRESSOPTIONS_CLASS opts = new Avi.AVICOMPRESSOPTIONS_CLASS {
				fccType = (UInt32) Avi.mmioStringToFOURCC("auds", 0),
				fccHandler = (UInt32) Avi.mmioStringToFOURCC("CAUD", 0),
				dwKeyFrameEvery = 0,
				dwQuality = 0,
				dwFlags = 0,
				dwBytesPerSecond = 0,
				lpFormat = new IntPtr(0),
				cbFormat = 0,
				lpParms = new IntPtr(0),
				cbParms = 0,
				dwInterleaveEvery = 0
			};

			Avi.AVISaveV(fileName, 0, 0, 1, ref aviStream, ref opts);
		}
Пример #4
0
		/// <summary>Create a compressed stream from an uncompressed stream</summary>
		private void CreateCompressedStream() {
			//display the compression options dialog...
			Avi.AVICOMPRESSOPTIONS_CLASS options = new Avi.AVICOMPRESSOPTIONS_CLASS {
				fccType = (uint)Avi.streamtypeVIDEO,
				lpParms = IntPtr.Zero,
				lpFormat = IntPtr.Zero
			};

			Avi.AVISaveOptions(IntPtr.Zero, Avi.ICMF_CHOOSE_KEYFRAME | Avi.ICMF_CHOOSE_DATARATE, 1, ref aviStream, ref options);
			Avi.AVISaveOptionsFree(1, ref options);

			//..or set static options
			/*Avi.AVICOMPRESSOPTIONS opts = new Avi.AVICOMPRESSOPTIONS();
			opts.fccType         = (UInt32)Avi.mmioStringToFOURCC("vids", 0);
			opts.fccHandler      = (UInt32)Avi.mmioStringToFOURCC("CVID", 0);
			opts.dwKeyFrameEvery = 0;
			opts.dwQuality       = 0;  // 0 .. 10000
			opts.dwFlags         = 0;  // AVICOMRPESSF_KEYFRAMES = 4
			opts.dwBytesPerSecond= 0;
			opts.lpFormat        = new IntPtr(0);
			opts.cbFormat        = 0;
			opts.lpParms         = new IntPtr(0);
			opts.cbParms         = 0;
			opts.dwInterleaveEvery = 0;*/

			//get the compressed stream
			compressOptions = options.ToStruct();
			int result = Avi.AVIMakeCompressedStream(out compressedStream, aviStream, ref compressOptions, 0);
			if (result != 0) {
				throw new Exception("Exception in AVIMakeCompressedStream: " + result);
			}

			SetFormat(compressedStream);
		}