Example #1
0
        public void MetadataBlock(FlacMetadataBlockType type, byte[] metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            FlushMetaWriter(false);

            metaWriter = new ArrayMetadataBlockWriter(type, metadata);
        }
Example #2
0
        public void StartStream(FlacStreaminfo streaminfo, FlacEncodingPolicy policy)
        {
            if (policy == null)
            {
                throw new ArgumentNullException("policy");
            }
            policy.Validate();
            if (streaminfo == null)
            {
                throw new ArgumentNullException("baseStream");
            }

            this.streaminfo = streaminfo;

            InitializeEstimation(policy);
            InitializeBuffer();

            WriteFlacHeader();

            metaWriter = new StreaminfoWriter(streaminfo);
        }
Example #3
0
        private void FlushMetaWriter(bool last)
        {
            System.Diagnostics.Debug.Assert(metaWriter != null);

            byte type = metaWriter.Type;

            if (last)
            {
                type |= 0x80;
            }
            BaseStream.WriteByte(type);

            int length = metaWriter.Length;

            BaseStream.WriteByte((byte)(length >> 16)); BaseStream.WriteByte((byte)(length >> 8)); BaseStream.WriteByte((byte)(length));

            metaWriter.Write(BaseStream);

            metaWriter = null;

            pageble.EndOfPage(false);
        }
Example #4
0
        private void FlushMetaWriter(bool last)
        {
            System.Diagnostics.Debug.Assert(metaWriter != null);

            byte type = metaWriter.Type;
            if(last) type |= 0x80;
            BaseStream.WriteByte(type);

            int length = metaWriter.Length;
            BaseStream.WriteByte((byte)(length >> 16)); BaseStream.WriteByte((byte)(length >> 8)); BaseStream.WriteByte((byte)(length));

            metaWriter.Write(BaseStream);

            metaWriter = null;

            pageble.EndOfPage(false);
        }
Example #5
0
        public void StartStream(FlacStreaminfo streaminfo, FlacEncodingPolicy policy)
        {
            if (policy == null) throw new ArgumentNullException("policy");
            policy.Validate();
            if (streaminfo == null) throw new ArgumentNullException("baseStream");

            this.streaminfo = streaminfo;

            InitializeEstimation(policy);
            InitializeBuffer();

            WriteFlacHeader();

            metaWriter = new StreaminfoWriter(streaminfo);
        }
Example #6
0
        public void MetadataBlock(FlacMetadataBlockType type, byte[] metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            FlushMetaWriter(false);

            metaWriter = new ArrayMetadataBlockWriter(type, metadata);
        }