Bugzilla – Bug 10855
Problem with MPC files
Last modified: 2011-10-18 05:50:13 UTC
I have a customer that can no longer stream his MPC files properly. He stated that this was possible until recent versions of SqueezeCenter, but he can't recall exactly what version his MPC files last worked, but he himself tested back to SC 7.2.1 and experiences issues. The customer's problems range from his MPC files being skipped when in a playist of multiple formats. His MPC files only play six seconds into the file then get skipped. I have attached server and watchdog logs that the customer has sent to me.
Created attachment 4717 [details] Server Log
Created attachment 4718 [details] Server log from SC 7.3.2 nightly
Created attachment 4719 [details] watchdog log
Created attachment 4720 [details] Sample MPC file from customer
I have tried reproducing this issue with SqueezeCenter 7.3.1 and 7.3.2 and have been unsuccessful.
Steven: Can you look into that one
I have not been able to reproduce either. Does the customer still have this issue? Alan, do you see anything in the logs that might help? I see a lot of pipeline messages, not sure what they mean.
I'm the customer. Coming up on two months since I first reported the problem, and yes I still have the issue. I was able to play MPC files without issue on SlimServer 6.something, but have been unable to do so on SC 7.2.1, 7.3.1, a 7.3.2 nightly, and now the official 7.3.2. If you have some settings you'd like me to try, or specific logs I can try to capture, I'm more than willing to gather more data. You might even say I'm *desperate* to get you more data. Seriously. Name it. All ears.
I do not see anything useful in the logs so far. Steven, did you try reproducing this on Windows? Miguel, You could try running the decoder command by hand, in a DOS (command) window, without the various 'silent' directives. This might tell you if you are getting an error from the transcoders. For example: type "F:/Music/A-Z/A-F/D/Death Cab For Cutie/Plans (2005)/Copy of 08 - Crooked Teeth.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\mppdec.exe" --prev --gain 2 - - | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc
Thanks for your help Alan, Methinks I'm doing something wrong, or there's a problem in your syntax. Copy/paste (changed the file name to the original MPC, I had since deleted the copy) of the command string you posted in comment #9 yields an error message: C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread>"F:/Music/A-Z /A-F/D/Death Cab For Cutie/Plans (2005)/08 - Crooked Teeth.mpc" |"C:\PROGRA~1\SQ UEEZ~1\server\Bin\MSWin32-x86-multi-thread\mppdec.exe" --prev --gain 2 - - |"C:\ PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -c--compression- level-0 - > t.flc C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe: invalid optio n -- - C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe: invalid optio n -- - MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of <stdin> mppdec: write error: Invalid argument, terminating to <stdout> mppdec: Input File is not a MPC file, neither SV 4...6 nor SV 7 (SV 0) which was odd, so I confirmed the file path: C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread>dir "F:\Music\A-Z\A-F\D\Death Cab For Cutie\Plans (2005)\08 - Crooked Teeth.mpc" Volume in drive F has no label. Volume Serial Number is A490-BB00 Directory of F:\Music\A-Z\A-F\D\Death Cab For Cutie\Plans (2005) 04/29/2006 11:33 AM 5,824,644 08 - Crooked Teeth.mpc 1 File(s) 5,824,644 bytes 0 Dir(s) 3,415,752,704 bytes free noticed your command used forward slashes instead of backslashes, but modifying the command had no effect (result was the above error + my default mpc program was launched) C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread>"F:\Music\A-Z \A-F\D\Death Cab For Cutie\Plans (2005)\08 - Crooked Teeth.mpc" |"C:\PROGRA~1\SQ UEEZ~1\server\Bin\MSWin32-x86-multi-thread\mppdec.exe" --prev --gain 2 - - |"C:\ PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -c--compression- level-0 - > t.flc C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe: invalid optio n -- - C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe: invalid optio n -- - MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of <stdin> mppdec: write error: Invalid argument, terminating to <stdout> mppdec: Input File is not a MPC file, neither SV 4...6 nor SV 7 (SV 0) --------------------- In an effort to confirm that the decoding works, went through the process one step at a time, trimmed some of the options (gain, clipping prevention,etc) ***(confirm that the mpc file can be decoded by the server/bin mppdec) C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread>mppdec "F:\Mu sic\A-Z\A-F\D\Death Cab For Cutie\Plans (2005)\08 - Crooked Teeth.mpc" ./out.wav MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of file 'F:\Music\A-Z\A-F\D\Death Cab For Cutie\Plans (2005)\08 - Crook ed Teeth.mpc' to file './out.wav' Death Cab For Cutie: Plans (2005) [08] Crooked Teeth 228.7 kbps, 3:23.76, SV 7.0, Profile 'Insane' (Beta 1.14) 3:23.73 (runtime: 1.52 s speed: 134.48x) ***(confirm that the output wav file could be compressed with server/bin flac) C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread>flac -c --compression-level-0 -o out.flac out.wav flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. out.wav: wrote 25839308 bytes, ratio=0.719 C:\Program Files\SqueezeCenter\server\Bin\MSWin32-x86-multi-thread> both the wav and flac were playable via wmp. -------------------------------------------------------
So there are two problem (damn the line wrapping in Bugzilla). The first is that my command line started with "type". That is, the first command was type "type" command. Abbreviated: type "filename" | mppdec | flac > t.flc The second is that, in the flac command, there should be a space between '-c' and '--compression-level-0' The goal was to test that both mppdec and flac were happy with a transcode from stdin to stdout.
Doh, sorry about that. Gave it another go on some different MPCs, had problems: C:\Documents and Settings\Miguel>type "F:\Music\A-Z\A-F\D\Death Cab For Cutie\Pl ans (2005)\Copy of 11 - Stable Song.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWi n32-x86-multi-thread\mppdec.exe" --prev --gain 2 - - | "C:\PROGRA~1\SQUEEZ~1\ser ver\Bin\MSWin32-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of <stdin> -: WARNING, cannot write back seekpoints when encoding to stdout to <stdout> 0.1 kbps, 3:42.51, SV 7.0, Profile 'Insane' (Beta 1.14), ClipDamp 1 ??? -: 0% complete, ratio=0.641coded ( 0.0%) mppdec: broken frame 84/8518 (decoded size=5865, size in stream=6019) (runtime: 0.23 s speed: 9.33x) -: WARNING: unexpected EOF; expected 1073741823 samples, got 95616 samples -: ERROR during read of data pad byte *** 1 decoded file has errors *** The process tried to write to a nonexistent pipe. ======================= C:\Documents and Settings\Miguel>type "F:\Music\A-Z\M-R\N\Nickel Creek\This Side (2002)\Copy of 03 - Speak.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-m ulti-thread\mppdec.exe" --prev --gain 2 - - | "C:\PROGRA~1\SQUEEZ~1\server\Bin\M SWin32-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson MPC flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of <stdin> -: WARNING, cannot write back seekpoints when encoding to stdout to <stdout> 0.1 kbps, 4:01.45, SV 7.0, Profile 'Xtreme' (Beta 1.14), ClipDamp 1 ??? -: 0% complete, ratio=0.640coded ( 0.0%) mppdec: broken frame 94/9243 (decoded size=5404, size in stream=5432) (runtime: 0.22 s speed: 11.16x) -: WARNING: unexpected EOF; expected 1073741823 samples, got 107136 samples -: ERROR during read of data pad byte *** 1 decoded file has errors *** The process tried to write to a nonexistent pipe. ===================== fwiw, both MPCs play fine in wmp.
Maybe this is the error we are expecting or maybe the type command is screwing up the data (I'm not very good with windows). Could you try it one more way? mppdec options < mppfile | flac options > t.flc That is, using '<' to open the input file instead of pipeing it in with type.
Same two files: C:\Documents and Settings\Miguel>"C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-mu lti-thread\mppdec.exe" --prev --gain 2 - - < "F:\Music\A-Z\A-F\D\Death Cab For C utie\Plans (2005)\Copy of 11 - Stable Song.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\B in\MSWin32-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf decoding of <stdin> -: WARNING, cannot write back seekpoints when encoding to stdout to <stdout> Death Cab For Cutie: Plans (2005) [11] Stable Song 234.5 kbps, 3:42.51, SV 7.0, Profile 'Insane' (Beta 1.14), ClipDamp 1 ??? 3:42.49 (runtime: 2.13 s speed: 104.70x) -: WARNING: unexpected EOF; expected 1073741823 samples, got 9811584 samples -: ERROR during read of data pad byte ===================== "F:\Music\A-Z\M-R\N\Nickel Creek\This Side (2002)\Copy of 03 - Speak.mpc" "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\mppdec.exe" --prev --gain 2 - - < "F:\Music\A-Z\M-R\N\Nickel Creek\This Side (2002)\Copy of 03 - Speak.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc C:\Documents and Settings\Miguel>"C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin32-x86-mu lti-thread\mppdec.exe" --prev --gain 2 - - < "F:\Music\A-Z\M-R\N\Nickel Creek\Th is Side (2002)\Copy of 03 - Speak.mpc" | "C:\PROGRA~1\SQUEEZ~1\server\Bin\MSWin3 2-x86-multi-thread\flac.exe" -c --compression-level-0 - > t.flc MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. Buschmann/Klemm/Piecha/Wolf decoding of <stdin> -: WARNING, cannot write back seekpoints when encoding to stdout to <stdout> Nickel Creek: This Side (2002) [03] Speak 199.5 kbps, 4:01.45, SV 7.0, Profile 'Xtreme' (Beta 1.14), ClipDamp 1 ??? 4:01.42 (runtime: 2.27 s speed: 106.59x) -: WARNING: unexpected EOF; expected 1073741823 samples, got 10646784 samples -: ERROR during read of data pad byte ====================== Not sure if this info made to you from the support folks, but the problem I have playing files is unique to MPCs (though I only have flac, mp3, mpc in my library), but is not consistent -- sometimes MPCs play all the way through, even those that previously were skipped after ~6 seconds. Was hoping that server.nightly.log would somehow show this (my comment on the file was " server.nightly.log shows a playlist containing all the tracks off a single album. Logging was activated while some songs were being skipped. Track 4 (different names for the same thing) played successfully at which point I stopped logging.)
Any news?
Not really. But could you try the following possible workaround? In the convert.conf file, change mpc flc * * # IR [mppdec] --silent --prev --gain 2 - - | [flac] -cs --totally-silent --compression-level-0 - to mpc flc * * # FR [mppdec] --silent --prev --gain 2 $FILE$ - | [flac] -cs --totally-silent --compression-level-0 - That is, change the 'IR' to 'FR', and one of the '-'s to '$FILE$'. You will need to restart SC.
Created attachment 4879 [details] Modified convert.conf
I made the change suggested in comment #16 (see attached convert.conf), then exited/restarted squeezecenter. Problem remains. :-(
Steven, can you try again to reproduce this on the relevant flavour of Windows.
(In reply to comment #19) > Steven, can you try again to reproduce this on the relevant flavour of Windows. Sure Alan. Miguel, I don't recall your hardware and operating system specifics. Could you post them to this bug, thanks.
Alan, Seems I was hasty in stating that the workaround was unsuccessful. I rebooted my system today and it seems that the workaround has indeed helped -- MPCs are no longer skipping at ~6s. Prior to the workaround being applied, rebooting the system did not have any effect on the problem. Steven, Not sure how much info you need, but here goes: HW: Athlon64 3400+ 2GB RAM Squeezebox 3 wirelessly connected via 802.11g OS: WinXP Pro SP2
(In reply to comment #21) > Alan, > > Seems I was hasty in stating that the workaround was unsuccessful. I rebooted > my system today and it seems that the workaround has indeed helped -- MPCs are > no longer skipping at ~6s. Prior to the workaround being applied, rebooting > the system did not have any effect on the problem. Thanks for the conf file. It seems to have fixed the problem on my machine too. Also no more socketwrapper.exe processes are left running (there used to be at least 8 of them running after a while). And thanks to Alan also for providing the fix.
It is only really a workaround, as applying the same change on Linux cause mppdec to crash. But good to hear that it is working for you. Actually, it would be good to get to the bottom of why reading stdin on Linux causes a crash, and why skipping is not supported with stdout, but I guess that those are different bugs.
We are now planning to make a 7.3.3 release. Please review your bugs (all marked open against 7.3.3) to see if they can be fixed in the next few weeks, or if they should be retargeted for 7.4 or future. Thanks!
Since there's now a planned 7.3.3 release, bugs which won't make the cut-off are being moved to the next target out. If you feel that this bug needs to be addressed more (or less) urgently than the 7.4 release, please cc chris@slimdevices.com and leave a comment in the bug to that effect so we can review it. Thanks.
For some reason Bugzilla did not change the target when I did this yesterday. Or maybe it was me. In either case, I'm trying it again.
Alan, any reason to keep this bug still open? In comment 23 you do mention issues with stdin and stdout on Linux, should those be different bugs?
There is a request open to update to the SV8 version of MPC, which uses a different binary, mpcdec. Bug 13031. It will require convert.conf changes as command-line params have been significantly changed. But it may be worth seeing if it could fix this issue.
I have this problem too. Again I don't know when it started but sometime around moving to 7. I have made the changes suggested to convert.conf and they have fixed it. But, of course, when I get a move from 7.4 to the next version presumably it will just get broken again. I'd like to see a proper fix if possible? Is there any other diagnostics I could do to help?
*** Bug 14826 has been marked as a duplicate of this bug. ***
hi there, I see on this bug : "Target Milestone: 7.4.x" but we're on 7.4.1 already. so what's the actual targeted version ?
...and now, since I upgraded to 7.4.2, any fix that I did got erased. oh my....
I would encourage anyone who really cares about MPC support to work on a patch to support the latest mpcdec SV8 binary.
So.... the squeezeserver upgraded to 7.5.1, and voilà ! I have to change this convert.conf file myself again............. So, even if nobody ever comes "to work on a patch to support the latest mpcdec SV8 binary", can you please, pretty pretty plase, edit the source so that mpc flc * * # IR [mppdec] --silent --prev --gain 2 - - | [flac] -cs --totally-silent --compression-level-0 - gets changed to mpc flc * * # FR [mppdec] --silent --prev --gain 2 $FILE$ - | [flac] -cs --totally-silent --compression-level-0 - I would be soooo thankful.
Now at 7.5.3, and workaround still not done...
I don't understand. Here is a bug whose fix is found, which requires 2 lines to be changed in convert.conf, and yet which has not been fixed for more than 2.5 years, and has no target milestone and no asisgnee any more. I'd have thought that SqueezeServer's development is halted, yet I see a v7.7 is in the tracks. Really, I don't understand.
Because Alan reported that the workaround crashes on Linux, so it's not good enough. It's clear to me that almost no one cares about MPC support, even the MPC developers did not want to provide a feature-compatible binary decoder for SV8. We will probably have to remove support for it at some point, so I would advise you to switch to FLAC or another well-supported format.
Thanks for answering. Missed the Linux crash point. And yes, I dropped MPC for my rips 1 year ago, as i't clearly a dying format, but still most of my music library is in MPC format and I don't feel like re-ripping it... I guess I'll have to keep on manualy editing convert.conf at every release...