IPB

Welcome Guest ( Log In | Register )

New portable Musepack decoder library, including fixed-point mode
Peter
post May 19 2004, 16:40
Post #1





Group: Admin
Posts: 3269
Joined: 30-September 01
Member No.: 84



UPDATE: source posted here is outdated now, newer version is hosted on musepack.net.

Full C++ source in post attachement.

License: LGPL.

Features:
- Switchable fixed-point and floating-point modes - enable/disable "#define MPC_FIXED_POINT" in mpc_math.h
- Endian-safe, verified running correctly on big-endian machines
- Multiinstance and multithread safe
- File access callbacks
- No assembly code used, for full portability

Verified correctly compiling/running under:
- win32 / x86 / MSVC6 + SP5 + processor pack - very fast floating-point mode (goes above 200x on ~2GHz machines), fixed-point mode is significantly slower (~60x)
- win32 / x86 / MSVC7.1 - slightly faster than MSVC6, fixed-point mode still relatively slow
- win32 / x86 / DMCPP - fixed-point mode faster than MSVC, floating-point mode slower than expected with strange slowdowns when compiled with speed optimizations enabled
- wince / ARM (32bit) / eVC4 + SP3 - fixed-point decoding speed on 400MHz XScale CPU is about 10x realtime
- Darwin 7.3.0, MacOS X 10.3.3 / PowerPC970/G5 / GCC 3.3 - about 80x-100x decoding speed in both modes on 2GHz G5, thanks to TrNSZ for testing/feedback

I'm planning to put this in official MPC CVS, unfortunately I can't do that right now because corecodec server has been down for serveral days.
Attached File(s)
Attached File  mpcdec.zip ( 45.56K ) Number of downloads: 1863
 


--------------------
This job would be great if it wasn't for the users.
Go to the top of the page
+Quote Post
 
Start new topic
Replies
caligae
post May 20 2004, 08:56
Post #2





Group: Members
Posts: 186
Joined: 23-January 02
Member No.: 1132



QUOTE (TrNSZ @ May 20 2004, 01:39 AM)
To whomever said the code was non-portable really needs to look into things, I had zero problems with this code on the myriad of CPU and OS combinations I tested.  Most modern compilers will ignore the PC-style new lines, but on a Un*x system that doesn't you can use dos2unix(1), sed 's/^M$//', awk '{sub(/\r$/,"");print}', tr -d '\r', or any of the hundreds of other ways to convert line ends (perl, egrep, ex, etc.)  If you don't have this most basic of basic knowledge, you have no business looking at porting code anyway.

I did not say that I'm not able to fix it - this is pretty trivial.

It isn't that bad for a small project like this but imagine a project with hundreds or thousands of includes that are all inconsistent. Of course it's no problem to use sed to repair this but you probably have to adopt your scripts/patches with every release.

It's similar with the Makefile. It's a trivial case here. But in larger projects it would take quite some time to make it.

Now imagine that people actually want to use the library. There would be quite some different packages whose maintainers all have to do the things above seperately which would be quite a waste of time.

I hope you can now understand why I wanted this fixed in the original source instead of everyone applying their fixes.
Go to the top of the page
+Quote Post

Posts in this topic
- Peter   New portable Musepack decoder library   May 19 2004, 16:40
- - jarsonic   sweet, Peter! Should make it easier for (pote...   May 19 2004, 17:08
- - caligae   Not very portable at the moment though. No Makefi...   May 19 2004, 18:11
- - Peter   Package updated with stdafx.cpp/.h names changed t...   May 19 2004, 18:24
- - Gecko   Ah! Thx, Peter! Someone should show this ...   May 19 2004, 18:29
- - dev0   Already happened apparently: http://ipodlinux.sou...   May 19 2004, 18:33
- - xmixahlx   QUOTE (caligae @ May 19 2004, 09:11 AM)Not ve...   May 19 2004, 19:44
- - ak   Well, dsw2mak can be utilized for converting .dsw/...   May 19 2004, 20:53
- - soellman   i can verify that it works on mac osx 10.3.3.. now...   May 19 2004, 22:45
- - Tec9SD   Wow, Peter! I'm thoroughly impressed! ...   May 19 2004, 23:07
- - atici   That's great news indeed. We've had enough...   May 19 2004, 23:45
- - rjamorim   Is the integer part based on c.b.2000's intege...   May 20 2004, 00:11
- - Peter   Fixed-point mode has been added from scratch and i...   May 20 2004, 00:23
- - TrNSZ   I have now tested this code on PPC970, SPARC64, MI...   May 20 2004, 00:39
- - BetaBoy   zZzZzZz.... On CoreCodec.org.... we were in the mi...   May 20 2004, 01:39
- - caligae   QUOTE (TrNSZ @ May 20 2004, 01:39 AM)To whome...   May 20 2004, 08:56
- - Althalus   Thank you zZzZzZz.   May 20 2004, 09:31
- - Slo Mo Snail   QUOTE (TrNSZ @ May 20 2004, 01:39 AM)The code...   May 20 2004, 09:58
- - caligae   Doesn't work on Alpha. CODEProgram received s...   May 20 2004, 10:30
- - picard   thank zZzZzZz! i added this library to BetaPl...   Jun 30 2004, 10:08
- - Atlantis   QUOTE (picard @ Jun 30 2004, 11:08 AM)thank z...   Jun 30 2004, 10:16
- - harad   Using VC++ 3.0 [LOG]: --------------------Configu...   Aug 23 2004, 18:06
- - Axon   Excellent work! But I have a licensing nitpick...   Aug 23 2004, 18:23
- - Peter   I personally don't care whatever you do with t...   Aug 23 2004, 18:48
- - harad   i think that someone should merge the mpc decoder ...   Aug 24 2004, 16:41
- - Sebastian Andersson   Hello! Is there any way to get the bits per s...   Aug 28 2004, 21:46
|- - Sebastian Andersson   QUOTE (Sebastian Andersson @ Aug 28 2004, 10:...   Aug 29 2004, 13:06
|- - Sebastian Andersson   OK   Aug 29 2004, 13:11
- - dev0   Why would you want to know the BPS of the source f...   Aug 28 2004, 22:06
- - dev0   QUOTE (Garf)Why would the decoder care at all what...   Aug 29 2004, 13:09
- - Sebastian Mares   So, is it possible or not?   Sep 17 2004, 21:45
- - Tang   Great news, thanks Mr Peter! I wonder there i...   Oct 20 2004, 20:58
- - Tang   EDIT: i've just understood how the Rockbox WiK...   Nov 3 2004, 01:42
- - kuniklo   I've just finished a first rough port of this ...   Dec 12 2004, 17:34
|- - Tang   QUOTE (kuniklo @ Dec 12 2004, 08:34 AM)I...   Dec 14 2004, 18:55
- - picard   I updated the old library in BetaPlayer's MPC ...   Dec 14 2004, 18:37
|- - kuniklo   QUOTE (picard @ Dec 14 2004, 05:37 PM)I updat...   Dec 14 2004, 18:40
|- - Lefungus   QUOTE (picard @ Dec 14 2004, 07:37 PM)I updat...   Dec 14 2004, 18:45
- - picard   Yes, I'am using the C++ version and the SeekTa...   Dec 14 2004, 18:49
|- - Lefungus   Some files have huge frame dependencies. There...   Dec 14 2004, 18:56
- - Tang   The codec section of the Rockbox iRiverport wiki i...   Feb 12 2005, 17:54
- - xmixahlx   someone on teh MDT should submit info for the ...   Feb 14 2005, 20:47
|- - Tang   QUOTE (xmixahlx @ Feb 14 2005, 11:47 AM)someo...   Feb 14 2005, 20:50
|- - Florian   QUOTE (Tang @ Feb 14 2005, 08:50 PM)QUOTE (xm...   Feb 14 2005, 20:52
- - Tang   Thanks Ganymed...   Feb 15 2005, 18:43


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 17th April 2014 - 09:17