Ejemplo n.º 1
0
        public override void WriteNextVideoFrame(byte[] frameBytes, int size = -1)
        {
            // the 'movi' element is getting too big (1Gb+).
            // close it and start new RIFF AVIX element
            if (writer.currentElementSize > maxRiffElementSize)
            {
                StartNewRiff();
            }

            if (size < 0)
            {
                size = frameBytes.Length;
            }

            var entry = new AviStreamIndex.Entry();

            entry.chunkOffset = writer.binaryWriter.Seek(0, SeekOrigin.Current) + 8;
            entry.chunkLength = size;
            videoIndex.entries.Add(entry);

            writer.WriteChunk(AviDemux.ID_00dc, frameBytes, size);
            totalFrames++;
            if (!usingMultipleRiffs)
            {
                totalFramesOld++;
            }
        }