Some hardware players (including my Samsung SM85) have problems playing those files.
If you have very large MP3 collection reencoding is not a good idea, because of the quality loss.
The program is not fully tested yet. USE IT ON YOUR OWN RISK.
Description:
It basicaly does the following;
- decode file,
- encode it again without block differing,
- scans original file for problematic frames and
- replaces them with same frames from reencoded file.
I file doesn't have frames with different block types between channels, program skips processing them.
Program keeps ID3v1 & v2, but it recreates Xing header for VBR files. For CBR files it doesn't create Xing/Info header.
Program overwrites original file, so make sure you have backup.
Compile/Run:
Make sure that you have LAME instaled.
I managed to compile it and run only on Linux (as I don't develop under Windows).
It uses LAME library file (libmp3lame.so) so you have to compile the program using:
CODE
gcc -l mp3lame -lm -o MBfixer MBfixer.c frame.c
and run it using:
CODE
env LD_LIBRARY_PATH=/usr/local/lib/ ./MBfixer <file list>
I don't know how to compile/run it on Windows, so any help from some kind soul is welcome.
Download:
Download the source code form http://www.ambra.rs.ba/files/MBfixer.tar.gz
-----
If you find some problems/bugs (and you will), please inform me on tmp@ambra.rs.ba.
Keep in mind that I learned C programming couple months ago.
...and remember: ENCODE IN JOINT STEREO :-)