public OggPacket BuildCommentsPacket(Comments comments) { var buffer = new EncodeBuffer(); PackComment(buffer, comments); var bytes = buffer.GetBytes(); return(new OggPacket(bytes, false, 0, 1)); }
public OggPacket BuildBooksPacket(VorbisInfo info) { var buffer = new EncodeBuffer(4096); PackBooks(buffer, info); var bytes = buffer.GetBytes(); return(new OggPacket(bytes, false, 0, 2)); }
public OggPacket BuildInfoPacket(VorbisInfo info) { var buffer = new EncodeBuffer(); PackInfo(buffer, info); var bytes = buffer.GetBytes(); return(new OggPacket(bytes, false, 0, 0)); }
private byte[] PerformAnalysis( float[][] pcm, int pcmEnd) { var channels = pcm.Length; var gmdct = new float[channels][]; var work = new int[channels][]; var floorPosts = new int[channels][][]; var localAmpMax = new float[channels]; var blockType = 0; if (_currentWindow != 0) { if ((_lastWindow != 0) && (_nextWindow != 0)) { blockType = 1; } } else { if (!MarkEnvelope()) { blockType = 1; } } var mapping = _vorbisInfo.CodecSetup.MapParams[_currentWindow]; var psyLookup = _lookups.PsyLookup[blockType + (_currentWindow != 0 ? 2 : 0)]; var buffer = new EncodeBuffer(); TransformPcm(pcm, pcmEnd, work, gmdct, localAmpMax); ApplyMasks(pcm, pcmEnd, mapping, floorPosts, gmdct, psyLookup, localAmpMax); Encode(pcm, pcmEnd, buffer, mapping, work, floorPosts, psyLookup, gmdct); return(buffer.GetBytes()); }