Bugzilla – Bug 5720
Gapless MP3 not possible if file has CRC
Last modified: 2009-07-31 10:14:57 UTC
A user in the German forum is reporting issues with gapless playback if there are CRC checksums in the MP3 file. SlimServer-Version: 6.5.3 - 12376 - Windows Server 2003 - DE - cp1252 SlimServer-Version: 6.5.4 - 12568 - Debian - DE - iso-8859-1 Version der Player-Firmware: 81
a file that displays this problem would be welcome
(In reply to comment #1) > a file that displays this problem would be welcome > here is a Example http://rapidshare.com/files/67966900/withCRC.zip
Created attachment 2396 [details] Small batch of MP3s created with dBpoweramp with CRC turned on
Created attachment 2397 [details] Small batch of MP3s created with dBpoweramp with CRC turned off
I created a small batch of gapless MP3s in dBpoweramp with the CRC option on and off. The files with CRC present does have problems with gapless playback in SqueezeCenter but not the one without CRC. According to dBpoweramp this is not a tag but data added to each frame of the MP3 file. From the dBpoweramp help file: CRC Error Protection adds a checksum to each frame, a decoder is able to verify each frame has not corrupted, very few decoders use checksums. The current workaround would be to disable the CRC option when creating MP3s in dBpoweramp.
Note the CRC option is available in LAME as '-p'
I have tested these files with SqueezePlay, and it looks like SC is not sending the full mp3 xing header when the mp3 files include the CRC.
Hmm, these files don't have an offset defined so the entire file should be sent to the player.
Andy says he will look at this again now that he has a dongle.
The Xing header is parsed with: xing_parse(decoder->stream.anc_ptr, decoder->stream.anc_bitlen); When CRC is present, decoder->stream.anc_ptr is pointing two bytes too far, at 'ng' instead of 'Xing'. Is this a MAD bug?
It may be, or a bug in the mad port. Can you try with Squeezeplay 7.2, does the xing_parse function get the correct data in this case?
Found a similar bug in xmms2: http://bugs.xmms2.xmms.se/view.php?id=631 Here is their fix: http://git.xmms.se/?p=xmms2-tru.git;a=blobdiff;f=src/plugins/mad/mad.c;h=945945d22bde9af63633e78b96dc7fa7e5966713;hp=974700b4c468ecc8d9c9d6469d16b69b30ada35b;hb=279bd23a88ba8595ba66089abd9a63355f6f2d3b;hpb=cb96af70234c520b0c715dffcffacaa67586339d Patching our code based on this appears to fix our bug too. Have not tested SP yet.
Created attachment 3478 [details] Patch
Fixed in r4399.
This bug has now been fixed in the 7.1 release version of SqueezeCenter! Please download the new version from http://www.slimdevices.com if you haven't already. If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.
Reduce number of active targets for SC