Skip to content

Chamuth/mp3-decoder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MP3 Decoder

An unoptimized floating point decoder for MPEG-1 Layer 3.

Status

  1. Reads most of the content in ID3v2 tags.
  2. Ignores XING or INFO tags.
  3. Ignores ID3v1 entirely.
  4. Final PCM stream might still have some errors.
  5. Several TODOs remaining throughout the source.

I wrote a summary titled MP3 Decoding in C++, although the source should be fairly straightforward. Feel free to make suggestions, fork, or whatever.

Development

Once the first byte of the MP3 file is found, most of the complexity lies in understanding the ISO (e.g. the ISO never mentions scalefac_mult but used it in the dequantizer formula). Although there exist several open source decoders like MAD and MPG123, they are fairly heavily optimized.

Determining correct output is straightforward. Either the PCM or configuration is wrong if the audio sounds distorted. The output from a decoder such as MPG123 can be used as a reference for debugging purposes.

Licencing

This project is a form of speech. Actually converging the source into a working program might require the purchase of a patent license. A compiled version of this project wouldn't be very suitable in real world applications, considering that there are plenty of better and optimized options like MAD.

About

Decodes MPEG-1 Layer 3 files

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.2%
  • C 46.7%
  • Makefile 0.1%