This repository has been archived by the owner on May 1, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Forked from http://nvorbis.codeplex.com/
License
AdamsLair/nvorbis
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NVorbis ------- NVorbis is a .Net library for decoding Xiph.org Vorbis files. It is purely managed code, and should run correctly in partial-trust environments. This implementation is based on the Vorbis specification found on xiph.org. The MDCT and Huffman codeword generator were borrowed from public domain implementations at http://nothings.org/stb_vorbis/. Currently the only container supported is Xiph.org Ogg. Matroska and RTP are planned. To use: - Create an instance of NVorbis.VorbisReader (pass the Ogg Vorbis filename in) - Use these properties to gather data about the logical stream: - Channels - SampleRate - TotalTime - A TimeSpan indicating the total length of the audio data - DecodedTime - A TimeSpan indicating the last returned sample's timestamp - NominalBitrate, UpperBitrate, and LowerBitrate - These are the encoder's reported bitrates - Vendor - The encoder's vendor string - Comments - An array of comments in the file (usually tags) - Call "int ReadSamples(float[], int, int)" to retrieve the next batch of samples. It will return 0 when the logical Vorbis stream is done. - For NAudio support: - Reference NVorbis.NAudioSupport.dll - Create an instance of NVorbis.NAudioSupport.VorbisWaveReader - VorbisWaveReader implements NAudio.Wave.WaveStream. History ------- 0.1 - 08/03/2012 * Initial Release 0.2 - 08/07/2012 * Swapped out LGPL code for public domain implementations * Relicensed under Ms-PL * Added NAudio support project * Added test files & app * Performance improvements 0.3 - 08/08/2012 * Fixed Page / Packet decode (packets overlapping 2 pages) * Fixed "no energy" packet handling * Fixed packet reader not merging when unsolicited packets are added * Added .gitignore * Added initial multi-stream support * Added statistics (see VorbisReader.Stats) 0.4 - 08/14/2012 * Refactoring to clean up code and make room for later improvements * Changed lapping algorithm to be simpler * Switched to higher-performance clipping algorithm * Some cleanup 0.4.1 - 09/11/2012 * Fixed a couple Ogg container bugs * Optimized memory allocations for better performance / memory usage 0.5 - 09/20/2012 * Added seeking support * Changed OggPacketReader to use a doubly-linked list for the packet queue / history * Changed OggPacketReader.GetTotalPageCount() to count pages directly instead of making .AddPacket(...) keep a list * Fixed a few bugs (mostly race conditions in multi-threaded playback scenarios) * Added multi-stream support to VorbisWaveReader * Added several info properties to VorbisWaveReader 0.5.5 - 11/15/2012 * Added OpenTK support * Added makefiles for Mono * Added constructor to NAudioSupport for already opened Stream instances * Made Ogg container logic thread-safe * Cleanup & Optimization 0.6.0 - 06/27/2013 * Remove ACache from project * Make clipping optional (default: on) * Set clipping to clamp at +/-.99999994 instead of +/-1 as a courtesy to those not outputing float samples * Performance improvements for RingBuffer * Performance improvements in ThreadSafeStream 0.7.0 - 07/15/2013 * Rewrite Ogg Reader buffering logic to vastly improve memory usage * Reorganize to more easily support other container types / work with other Ogg stream decoders * Exposed Ogg reading types * Performance improvements * Bugfix: Don't throw on Vorbis streams that only have a single mode 0.7.1 - 07/18/2013 * Removed use of generics & lambda from Huffman decoder * Reduced computation by only processing samples that are required for output * Bugfix: Seeking now works again * Bugfix: OpenTKSupport.OggStream now only queues as many source buffers as it filled 0.7.2 - 07/22/2013 * Bugfix: Floor 0 implementation is now correct * Bugfix: Residue 0 & 1 implementation is now correct * Bugfix: Seeking back less than the current buffer size no longer corrupts the read buffer 0.7.3 - 08/02/2013 * Bugfix: Fix residue 1 0.7.4 - 09/16/2013 * Bugfix: Some stereo files with sound on only one channel decoded noise on the silent channel.
Releases
No releases published
Packages 0
No packages published