public override bool Equals(System.Object object_Renamed)
        {
            bool isEqual = false;

            if (base.Equals(object_Renamed) && (object_Renamed is SoundStreamHead))
            {
                SoundStreamHead soundStreamHead = (SoundStreamHead)object_Renamed;

                if ((soundStreamHead.playbackRate == this.playbackRate) && (soundStreamHead.playbackSize == this.playbackSize) && (soundStreamHead.playbackType == this.playbackType) && (soundStreamHead.compression == this.compression) && (soundStreamHead.streamRate == this.streamRate) && (soundStreamHead.streamSize == this.streamSize) && (soundStreamHead.streamType == this.streamType) && (soundStreamHead.streamSampleCount == this.streamSampleCount) && (soundStreamHead.latencySeek == this.latencySeek))
                {
                    isEqual = true;
                }
            }

            return(isEqual);
        }
		public override void  soundStreamHead2(SoundStreamHead tag)
		{
			tags.Add(tag);
		}
		public virtual void  soundStreamHead2(SoundStreamHead tag)
		{
		}
		private Tag decodeSoundStreamHead(int code)
		{
			SoundStreamHead t;
			t = new SoundStreamHead(code);
			r.syncBits();
			
			// mixFormat
			r.readUBits(4); // reserved
			t.playbackRate = r.readUBits(2);
			t.playbackSize = r.readUBits(1);
			t.playbackType = r.readUBits(1);
			
			// format
			t.compression = r.readUBits(4);
			t.streamRate = r.readUBits(2);
			t.streamSize = r.readUBits(1);
			t.streamType = r.readUBits(1);
			
			t.streamSampleCount = r.readUI16();
			
			if (t.compression == SoundStreamHead.sndCompressMP3)
			{
				t.latencySeek = r.readSI16();
			}
			return t;
		}