This project has moved. For the latest updates, please go here.


Version 2?


I rebuilt the frame parser logic and some of the "glue" components so it's easier to work with. Please see the attached (especially README.txt).

Everything in the root of the archive is "new" (though I did have to copy some code from the existing decoder).

Start with NLayer.MpegFile (only public class to new API) and read through from there. It should be pretty similar to NVorbis.

file attachments

Closed Sep 12, 2014 at 3:20 PM by ioctlLR
Re-written. :)


ioctlLR wrote Dec 12, 2012 at 4:26 PM

3 Bugs:

1) In MpegStreamReader::FindNextFrame(), immediately after the line that sets _vbrFrame, add "return FindNextFrame();"
2) In MpegFrame::ReadBits(int), throw EndOfStreamException instead of InvalidDataException
3) In MpegFile::DecodeNextFrame(), catch EndOfStreamException if thrown by _currentDecoder.DecodeFrame(frame);

Otherwise I think it's good. It definitely behaves better than the code I was using before.

markheath wrote Dec 13, 2012 at 3:26 PM

hi, will try to get round to looking at this. I actually have been doing bits of refactoring on the side as I really don't like the structure of the existing code either.

markheath wrote Jan 29, 2013 at 10:58 AM

hi ioctlLR, might be good to add you as a contributor so you can make these changes yourself, since I've not really had time to work on this project recently. Send me an email (can use the Codeplex contact button if you don't know my email)

wrote Feb 13, 2013 at 11:11 PM

wrote Sep 12, 2014 at 3:20 PM