Jens Arnold
dca9f42cdf
Fix decoding of stereo frames with silence in only one channel. * Make the standalone decoder contain debugging information.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19552 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 23:49:02 +00:00
Jens Arnold
0bf6e36628
Fix handling of 8 bit mono and stereo APE files, and also optimise 16 and 24 bit output in the standalone decoder a bit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19517 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 01:29:36 +00:00
Tom Ross
e7afeff072
Sync some changes found in ffmpeg plus a spelling correction I forgot to commit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19503 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 06:40:46 +00:00
Tom Ross
c3615119ba
Don't read a full byte if less than 8 bits are available. The change doesn't fix any problem samples, but the current code makes no sense. Also some spelling corrections in debugfs and comments.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19502 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 06:16:22 +00:00
Michael Giacomelli
6a635b20da
Wrap some of the more ridiculously long lines introduced in the previous revision. Whitespace changes only.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19501 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 05:53:28 +00:00
Michael Giacomelli
2557251351
Correctly implement remaining portions of ffmpeg's r8627 that I'd forgotten about. This fixes a table overflow in low bitrate files that use noise coding, and in theory should be substantial improvement, but I haven't found any files were it makes a difference.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19500 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 05:43:58 +00:00
Michael Giacomelli
7a0baa3aa5
Fix occasional glitch when switching from stereo to mono tracks due to uninitialized m/s coding flag.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19498 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 02:38:35 +00:00
Michael Giacomelli
d909eee0ce
Commit fix by Tom Ross in FS#7488 wherein a silly mistake noise coding initialization is corrected. This sample alone has probably resulted in more WMA fixes then all other combined and I suspect there will still be at least one more.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19496 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 01:49:27 +00:00
Michael Giacomelli
0301ed5594
Fix bug where a mono file using noise coding would be corrupted if it was played immediately after a stereo files using noise coding due to incorrect initialization of the decoder state. Thanks to Tom Ross for pointing out that initialization was incomplete on these files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19494 a1c6a512-1295-4272-9138-f99709370657
2008-12-20 01:38:34 +00:00
Björn Stenberg
0d97a5f021
Better file suffix replacement. Bug fix by Nils Wallménius. Closes FS #9644 .
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19443 a1c6a512-1295-4272-9138-f99709370657
2008-12-15 09:55:20 +00:00
Michael Sevakis
8cfbd3604f
Use cookies for thread identification instead of pointers directly which gives a buffer against wrongly identifying a thread when the slot is recycled (which has been nagging me for awhile). A slot gets 255 uses before it repeats. Everything gets incompatible so a full update is required.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19377 a1c6a512-1295-4272-9138-f99709370657
2008-12-10 08:57:10 +00:00
Jens Arnold
a29b659758
Assembler optimised mono predictor for ARM. Speedup for -c1000 mono is ~5% on PP, ~8% on Gigabeat S (less for higher compression levels). Also fix some overlooked comments in the stereo predictor.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19375 a1c6a512-1295-4272-9138-f99709370657
2008-12-09 23:20:59 +00:00
Jens Arnold
c1cd0469ca
Implement mono predictor in assembler for coldfire, yielding a ~6% speedup for mono -c1000. Apply ideas gained from it back to the stereo predictor, saving 4 instructions. No speed increase for stereo, probably due to cache aliasing effects. * 80-column police.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19296 a1c6a512-1295-4272-9138-f99709370657
2008-12-02 02:26:04 +00:00
Jens Arnold
75bd4adbc2
Shuffling around register allocation allows to keep decoded0 and decoded1 in registers, for a slight speedup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19287 a1c6a512-1295-4272-9138-f99709370657
2008-12-01 13:21:06 +00:00
Nils Wallménius
5f7db212d5
Restore compiler optimization level for libmad, was lost in the buildsystem rework
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19272 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 14:46:38 +00:00
Jens Arnold
89a6fe7ae4
Remove extraneous semicolons, and fix a comment.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19268 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 11:54:20 +00:00
Jens Arnold
b153133682
Remove extraneous semicolons, and fix a comment.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19267 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 11:53:52 +00:00
Jens Arnold
797ef6585a
Fix APE 16-bit mono output: mono signals need to be scaled for rockbox.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19264 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 01:01:04 +00:00
Jens Arnold
88270f7622
Resurrect the ARM7 16-bit packed vector addition/subtraction for ARMv5, giving a nice speedup for the higher compression levels (tested on Cowon D2).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19260 a1c6a512-1295-4272-9138-f99709370657
2008-11-28 23:50:22 +00:00
Michael Sevakis
546d0dd4e6
Recording: Change some encoder code the operation of which was apparantly unclear. It seems clearer now anyway. No functional changes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19255 a1c6a512-1295-4272-9138-f99709370657
2008-11-28 07:23:13 +00:00
Jens Arnold
113c285045
On ARM9TDMI (e.g. Gigabeat F) it's faster to use a ldr/str pair than add+ldmia/stmia for 2 registers. On ARM7TDMI a str pair is equally fast, so go for the simpler macro and use it for all ARMv4.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19250 a1c6a512-1295-4272-9138-f99709370657
2008-11-27 22:07:46 +00:00
Jens Arnold
6d34e33b94
Speed up the predictor a little by using ldrd/strd on ARMv5+. This required shuffling around the register allocation somewhat. Performance on ARMv4 is unaffected.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19248 a1c6a512-1295-4272-9138-f99709370657
2008-11-27 20:52:23 +00:00
Jens Arnold
5b0d74a7d3
Get rid of unused return values, except the one from decode_chunk() which will be used in the dual core split.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19236 a1c6a512-1295-4272-9138-f99709370657
2008-11-26 18:01:18 +00:00
Björn Stenberg
a091d20ba0
Added 'keywords' and 'eol-style' properties.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19218 a1c6a512-1295-4272-9138-f99709370657
2008-11-25 19:54:23 +00:00
Jens Arnold
d7e4e54bcb
Reorder instructions to avoid pipeline stalls on ARMv6 wherever possible (sometimes using different registers to allow this). Speeds up the predictor by almost 20% on ARMv6 (overall speedup for -c1000 is 5%), and might also help a bit on ARMv5. ARMv4 speed is unaffected.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19210 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 23:09:09 +00:00
Jens Arnold
3761c0108c
Branch optimisation in both C (giving hints to gcc - verified using -fprofile-arcs and gcov) and asm files. Biggest effect on coldfire (-c1000: +8%, -c2000: +5%), but ARM also profits a bit (less than 1% on ARM7TDMI, around 1% on ARM1136).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19199 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:49 +00:00
Jens Arnold
66c0cf2eb1
Tweak the ARMv6 filter assembly a bit further.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19198 a1c6a512-1295-4272-9138-f99709370657
2008-11-24 18:40:43 +00:00
Nils Wallménius
95cf600b6c
Macros should be ALL CAPS, so rename (un)likely() to (UN)LIKELY()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19181 a1c6a512-1295-4272-9138-f99709370657
2008-11-22 16:56:20 +00:00
Nils Wallménius
1284c127f8
Introduce likely() and unlikely() macros, use to give gcc hints about which branch is likely to be taken in a conditional, use them in the midi player for a small speedup, use instead of similar EXPECT macros in tremor and use in mpegplayer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19162 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 20:20:43 +00:00
Björn Stenberg
303b455ceb
Remove .a files before running ar, to avoid problems with renamed files remaining in the library.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19160 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 16:49:55 +00:00
Björn Stenberg
4846b30607
codec.link must be created with -DCODEC
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19155 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 15:54:47 +00:00
Björn Stenberg
d273f663a1
Make sure codec directory exists before creating link file.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19151 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 13:45:57 +00:00
Björn Stenberg
8ce3556236
Bug fix again. Moved cp outside of $(shell) to force make to run it sequentially.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19149 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:44:49 +00:00
Björn Stenberg
d96ce0a87d
Bug fix for previous bug fix. Too much copy/paste.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19148 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:17:43 +00:00
Björn Stenberg
838c74f79d
Bug fix for simulator: Plugins and codecs were objcopied isntead of left as ELF.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19147 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 12:09:36 +00:00
Björn Stenberg
c6b3d38a15
New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
...
Many #include lines adjusted to conform to the new standards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 11:27:31 +00:00
Jens Arnold
2a5053f58c
Several tweaks and cleanups: * Use .rept instead of repeated macros for repeating blocks. * Use MUL (variant) instead of MLA (variant) in the first step of the ARM scalarproduct() if there's no loop. * Unroll ARM assembler functions to 32 where not already done, plus the generic scalarproduct().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19144 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 21:31:33 +00:00
Jens Arnold
77934cbc96
Compile-time choice between 16 bit and 32 bit integers for the filters. 32 bit filters are faster on ARMv4 (with assembler code), so use them there. Nice speedup on PP and Gigabeat F/X.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19140 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 00:34:48 +00:00
Jens Arnold
1b14167861
Centralise compile-time configuration.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19121 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:49:37 +00:00
Jens Arnold
66ff812c4a
Make it compile again on linux...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19120 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:44:59 +00:00
Jens Arnold
dfafd67948
Make the standalone decoder actually work on Windows (need to open the output file in binary mode).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19119 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:30:02 +00:00
Jens Arnold
bd49ec97b2
Make the standalone decoder build on cygwin.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19117 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:59:03 +00:00
Jens Arnold
b5c0afc442
Move the contents of rangecoding.h into entropy.c, and remove the former. It was only used there, and defined some variables in the .h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19116 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 12:58:15 +00:00
Jens Arnold
5ba11af855
Avoid unnecessary register copies on ARMv5.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19112 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 10:12:38 +00:00
Dave Chapman
3e8a2bfa12
Make the standalone demac program compile again
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19107 a1c6a512-1295-4272-9138-f99709370657
2008-11-15 00:35:07 +00:00
Jens Arnold
9a0224fd28
Fix comments.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19102 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:20:25 +00:00
Jens Arnold
60e16e8e7a
Tiny speedup by simplifying the filter wrap check.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19101 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:16:27 +00:00
Jens Arnold
1600e4918e
Tiny performance improvement for the (not yet usable) compression levels >= -c2000 on ARM7TDMI, utilizing the multiplier's early termination.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19099 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 09:18:36 +00:00
Jens Arnold
545b51e2e4
ARMv4 unsigned integer division: Using an overflow-safe comparison method in the main calculation allows to put back the 1.5 cyle (average) optimisation. Shaved off another instruction, as we don't need the remainder. * Use the very efficient ffs algorithm from ffs-arm.S for dividing by a power of 2.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19032 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 21:21:33 +00:00
Nils Wallménius
24f551bc75
Correct a comment and police comment style, no functional change
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19030 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 18:49:11 +00:00