コード例 #1
0
 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;
 }
コード例 #2
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);
 }
コード例 #3
0
 private void WriteToPage(ulong data)
 {
     WriteToPage(BitConverterLE.GetBytes(data), 0, 8);
 }
コード例 #4
0
 private void WriteToPage(uint data)
 {
     WriteToPage(BitConverterLE.GetBytes(data), 0, 4);
 }