tzachshabtay / nvorbis Goto Github PK
View Code? Open in Web Editor NEWThis project forked from adamslair/nvorbis
Forked from Duality's version of NVorbis, to compile for PCL Profile 7.
License: Microsoft Public License
This project forked from adamslair/nvorbis
Forked from Duality's version of NVorbis, to compile for PCL Profile 7.
License: Microsoft Public License
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.