Beispiel #1
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();
            options.fccType  = (uint)Avi.streamtypeVIDEO;
            options.lpParms  = IntPtr.Zero;
            options.lpFormat = IntPtr.Zero;
            Avi.AVISaveOptions(IntPtr.Zero, Avi.ICMF_CHOOSE_KEYFRAME | Avi.ICMF_CHOOSE_DATARATE, 1, ref this.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
            this.compressOptions = options.ToStruct();
            int result = Avi.AVIMakeCompressedStream(out this.compressedStream, this.aviStream, ref this.compressOptions,
                                                     0);

            if (result != 0)
            {
                throw new Exception("Exception in AVIMakeCompressedStream: " + result.ToString());
            }
            this.SetFormat(this.compressedStream);
        }
Beispiel #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();
            opts.fccType  = (uint)Avi.streamtypeVIDEO;
            opts.lpParms  = IntPtr.Zero;
            opts.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);
        }
Beispiel #3
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);
        }
        /// <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();
             * opts.fccType         = (UInt32)Avi.mmioStringToFOURCC("vids", 0);
             * opts.fccHandler      = (UInt32)Avi.mmioStringToFOURCC("CVID", 0);
             * opts.dwKeyFrameEvery = 0;
             * opts.dwQuality       = 0;
             * opts.dwFlags         = 0;
             * opts.dwBytesPerSecond= 0;
             * opts.lpFormat        = new IntPtr(0);
             * opts.cbFormat        = 0;
             * opts.lpParms         = new IntPtr(0);
             * opts.cbParms         = 0;
             * opts.dwInterleaveEvery = 0;*/

            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 aviStream, ref opts);
            Avi.AVISaveOptionsFree(1, ref opts);

            Avi.AVISaveV(fileName, 0, 0, 1, ref aviStream, ref opts);
        }