private void FlushPage(bool isLastPage) { if (_pageBuffOffset == 0) return; if (isLastPage) _pageBuff[5] |= 0x04; uint crc = OggCRC.Calculate(_pageBuff, 0, _pageBuffOffset); General.CopyBytes(_pageBuff, 22, BitConverterLE.GetBytes(crc)); _fs.Write(_pageBuff, 0, _pageBuffOffset); _pageBuffOffset = 0; }
private void WriteSpeexHeaderPacket() { var data = new byte[80]; General.CopyBytes(data, 0, General.StringToAscii("Speex ")); // speex_string General.CopyBytes(data, 8, General.StringToAscii("unknown")); // speex_version data[28] = 1; // speex_version_id data[32] = 80; // header_size General.CopyBytes(data, 36, BitConverterLE.GetBytes(_sampleRate)); // rate data[40] = 1; // mode (e.g. narrowband, wideband) data[44] = 4; // mode_bitstream_version data[48] = 1; // nb_channels General.CopyBytes(data, 52, BitConverterLE.GetBytes(unchecked((uint)-1))); // bitrate General.CopyBytes(data, 56, BitConverterLE.GetBytes(_samplesPerFrame)); // frame_size data[60] = 0; // vbr data[64] = 1; // frames_per_packet AddPacket(data, 0, false); }
private void WriteToPage(ulong data) { WriteToPage(BitConverterLE.GetBytes(data), 0, 8); }
private void WriteToPage(uint data) { WriteToPage(BitConverterLE.GetBytes(data), 0, 4); }