Commit graph

867 commits

Author SHA1 Message Date
Andrew Mahone
668a769ca4 Add new asmdefs mechanism for exporting information only available to the C compiler for use in asm files, and use it in arm jpeg idct. See apps/apps.make, apps/core_asmdefs.c, and apps/recorder/jpeg_idct_arm.S for details.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21831 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 00:40:35 +00:00
Jonathan Gordon
f1034e00f6 FS#10406 - split the statusbar setting into one for each display, and allow the bar to be at the top or bottom of the display
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21665 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 18:07:58 +00:00
Andrew Mahone
10803a7480 JPEG IDCT8 ARMv6 assembly, slight speedup vs ARMv5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21620 a1c6a512-1295-4272-9138-f99709370657
2009-07-03 10:03:17 +00:00
Andrew Mahone
017c1a1027 Core JPEG IDCT8 optimizations for ARMv5+, small optimizations for ARMv4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21612 a1c6a512-1295-4272-9138-f99709370657
2009-07-02 09:57:03 +00:00
Andrew Mahone
815dcfdd35 Use hand-written constants table on ARMv5+ for JPEG IDCT, and load four 16-bit constants at a time with ldrd. Not useful for ARMv4, since one load per constant would still be needed, and limited range of ldrsh would force multiple copies of table.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21535 a1c6a512-1295-4272-9138-f99709370657
2009-06-28 02:32:43 +00:00
Andrew Mahone
89eb14ea56 Use single-instruction shift-and-saturate in place of range_limit for JPEG on ARMv6. Only affects the 16-point horizontal-pass IDCT.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21528 a1c6a512-1295-4272-9138-f99709370657
2009-06-27 10:01:24 +00:00
Andrew Mahone
3152bfc39a ARM assembly 8-point IDCT, both passes. No ARMv5/6 optimizations yet, aside from usat for final output.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21526 a1c6a512-1295-4272-9138-f99709370657
2009-06-27 09:21:22 +00:00
Rob Purchase
e2b018e7fe Fix a typo in jpeg_idct4h which caused garbled JPEGs on ARMv5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21520 a1c6a512-1295-4272-9138-f99709370657
2009-06-26 07:12:21 +00:00
Rafaël Carré
1910d026b1 fix a typo in comments (audio CD duration is not 74 or 80 hours)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21479 a1c6a512-1295-4272-9138-f99709370657
2009-06-23 21:22:06 +00:00
Thomas Martitz
659425f23e Redo r21460 and r21462 so that it doesn't introduce a new #define. Patch by Jeffrey Goode, taken from FS#10366.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21467 a1c6a512-1295-4272-9138-f99709370657
2009-06-22 18:40:49 +00:00
Thomas Martitz
ee1d8d1676 FS#10365 - Optional debug output for albumart.c
Same as r21460 just for albumart.c

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21462 a1c6a512-1295-4272-9138-f99709370657
2009-06-21 22:00:11 +00:00
Marianne Arnold
78c3f1c8b3 Forgot to commit the change to keyboard.c to make the line edit mode acctually work on the c200. (belongs to r21373)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21381 a1c6a512-1295-4272-9138-f99709370657
2009-06-20 11:03:52 +00:00
Andrew Mahone
498ad469c9 2-point and 1-point JPEG IDCT ARM assembly, remove comment in jpeg_load.c about inline asm, change loop condition to be a bit safer in case of bad values being passed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21349 a1c6a512-1295-4272-9138-f99709370657
2009-06-19 08:26:05 +00:00
Andrew Mahone
6a0d931f38 Core JPEG decoder improvements:
For >8-point vertical IDCT, transpose the coefficients while decoding them, so that the vertical IDCT can read in rows rather than columns. This improves speed a bit for this size even using the C IDCT.
Remove inline ARM asm, replacing it with an external file containing pure asm IDCT functions.
Add jpeg_ prefix to JPEG IDCT functions since some of them will now be visible globally.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21345 a1c6a512-1295-4272-9138-f99709370657
2009-06-19 02:56:00 +00:00
Andrew Mahone
021deacade Remove explicit counter for rows/columns in IDCT, instead testing against a pointer calculated in store_row_jpeg.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21284 a1c6a512-1295-4272-9138-f99709370657
2009-06-14 02:28:35 +00:00
Andrew Mahone
e40075e5b7 Adjust AC decode such that decode *always* stops before storing an unneeded coefficient. Remove extra lines from zag[] as it should not be possible to store a coefficient for k>63, even for corrupted files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21283 a1c6a512-1295-4272-9138-f99709370657
2009-06-14 01:19:16 +00:00
Andrew Mahone
9e3255fdb0 Fix red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21257 a1c6a512-1295-4272-9138-f99709370657
2009-06-12 00:02:18 +00:00
Andrew Mahone
ba2225cb51 ARMv4 and ARMv5 inline assembly for 4-point IDCT.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21256 a1c6a512-1295-4272-9138-f99709370657
2009-06-11 23:48:45 +00:00
Andrew Mahone
57ccbdd198 Move +128 offset out of range_limit, and add it to the DC coefficient in each idct*h routine, for a small binsize improvement on idct4h, idct8h, and idct16h, and a negligible speed increase.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21255 a1c6a512-1295-4272-9138-f99709370657
2009-06-11 23:48:37 +00:00
Andrew Mahone
235305e6ac Don't compensate for lack of shift in second IDCT stage, allowing quantization table to be reduced to 16-bit. Reduce IDCT workspace to 16-bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21254 a1c6a512-1295-4272-9138-f99709370657
2009-06-11 23:48:30 +00:00
Jens Arnold
d5842005c0 Undo the delta on ARM but making the loop variables signed as before r21205. GCC is weird...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21206 a1c6a512-1295-4272-9138-f99709370657
2009-06-07 22:50:12 +00:00
Jens Arnold
1d6df54df2 Convert a number of places in core and plugins to use the BIT_N() macro instead of 1<<n. Speeds up things on SH1, and also reduces core binsize. Most notable speedups: 1 bit lcd driver: drawpixel +20%, drawline + 27%, hline +5%; jpeg viewer: +8% for 1/8 scaling. Other targets are unaffected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21205 a1c6a512-1295-4272-9138-f99709370657
2009-06-07 21:27:05 +00:00
Andrew Mahone
2bedde17b6 Don't perform YUV->RGB conversion before row output for unscaled loads of greyscale JPEG, as store_row_jpeg already does this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21174 a1c6a512-1295-4272-9138-f99709370657
2009-06-03 06:35:10 +00:00
Andrew Mahone
b41208fffd Don't recheck for track art when checking track art first.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21127 a1c6a512-1295-4272-9138-f99709370657
2009-05-29 10:58:23 +00:00
Andrew Mahone
84106fd917 Change the search_albumart_files "ignore track art" option to check track art last.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21126 a1c6a512-1295-4272-9138-f99709370657
2009-05-29 10:31:56 +00:00
Alexander Levin
a484054d55 Describe the magic of search_albumart_files (still not complete)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21120 a1c6a512-1295-4272-9138-f99709370657
2009-05-28 20:05:31 +00:00
Andrew Mahone
f51189cd5e Suggested by Thomas Martitz, don't check for track-specific files when searching for covers in PictureFlow.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21111 a1c6a512-1295-4272-9138-f99709370657
2009-05-28 04:34:07 +00:00
Andrew Mahone
00d6cfd389 Fix yellow when building with HAVE_ALBUMART, without HAVE_JPEG/HAVE_BMP_SCALING.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21092 a1c6a512-1295-4272-9138-f99709370657
2009-05-26 20:26:05 +00:00
Andrew Mahone
92785b8f2f Use pre-multiplication in scaler to save one multiply per color component on ARM and Coldfire, at the cost of an extra add/shift in the horizontal scaler to reduce values to a workable range. SH-1 retains the same basic math, as
the use of 16x16->32 hardware multiplication in the earlier scaler stages saves more than removing the 32x32->40 multiply to descale output.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21091 a1c6a512-1295-4272-9138-f99709370657
2009-05-26 20:00:47 +00:00
Maurus Cuelenaere
d2ea7db6f5 Should fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21082 a1c6a512-1295-4272-9138-f99709370657
2009-05-25 20:15:02 +00:00
Maurus Cuelenaere
0bddb7eb65 Fix FORMAT_RETURN_SIZE in read_bmp_*() when scaling (thanks to Andrew Mahone)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21078 a1c6a512-1295-4272-9138-f99709370657
2009-05-25 15:19:34 +00:00
Maurus Cuelenaere
aec37aa5fe * read_bmp_*(): add FORMAT_RETURN_SIZE
* Lua: add luaL_checkboolean() & luaL_optboolean()
* Lua: add read_bmp_file


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21074 a1c6a512-1295-4272-9138-f99709370657
2009-05-25 11:12:27 +00:00
Marc Guay
814b3dbfbc FS#10230 - Remove 'start new file if not recording' functionality from ACTION_REC_NEWFILE
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21034 a1c6a512-1295-4272-9138-f99709370657
2009-05-22 13:51:56 +00:00
Bertrik Sikken
0023943439 Fix duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20977 a1c6a512-1295-4272-9138-f99709370657
2009-05-17 14:50:19 +00:00
Bertrik Sikken
8d5dbf4c14 Clean up some unused #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20975 a1c6a512-1295-4272-9138-f99709370657
2009-05-17 11:56:06 +00:00
Andrew Mahone
f7ec9c0fad Clean up albumart.c a bit, reducing use of USE_JPEG_COVER inside search_albumart_files to only around the folder.jpg test and a strlen call. 0 delta vs previous code for #undef HAVE_JPEG.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20958 a1c6a512-1295-4272-9138-f99709370657
2009-05-16 08:20:47 +00:00
Alexander Levin
98bcb0a8a8 Define a symbol and use it instead of repeating the condition
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20956 a1c6a512-1295-4272-9138-f99709370657
2009-05-16 07:34:36 +00:00
Alexander Levin
e7ab26535a Make variables static where possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20955 a1c6a512-1295-4272-9138-f99709370657
2009-05-16 06:59:29 +00:00
Andrew Mahone
d59bff092d FS#10201, skip folder.jpg in search_albumart_files if size_string is not empty.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20951 a1c6a512-1295-4272-9138-f99709370657
2009-05-15 23:26:37 +00:00
Alexander Levin
3eb6da3c1d Remove unneeded function call (radio_load_presets does clear the memory)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20941 a1c6a512-1295-4272-9138-f99709370657
2009-05-15 07:56:15 +00:00
Andrew Mahone
c8b67c3ca0 Flag EOF and empty buffer conditions as UNLIKELY in JPEG decoder.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20907 a1c6a512-1295-4272-9138-f99709370657
2009-05-11 00:16:57 +00:00
Andrew Mahone
b5c356be85 Fix a bug reading JPEG when the output data is smaller than sizeof(struct jpeg), and add more optional debugging output in the decoder.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20906 a1c6a512-1295-4272-9138-f99709370657
2009-05-11 00:16:48 +00:00
Bertrik Sikken
09085a30f6 Remove unneeded #include "backdrop.h"
Remove unneeded #include "statusbar.h"


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20891 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 18:09:14 +00:00
Andrew Mahone
74e4d17910 Don't build 16-point IDCT on greyscale targets, since it's only used for chroma components.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20887 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 10:32:13 +00:00
Andrew Mahone
59e70b50d8 Inline output_row_8_native when building bmp.c in core without HAVE_JPEG or HAVE_BMP_SCALING.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20886 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 10:32:07 +00:00
Andrew Mahone
e3b1d78dfc Fix test for direct JPEG output, bump plugin API as r20884 changed struct custom_format.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20885 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 10:10:26 +00:00
Andrew Mahone
91efc16256 Split 8-bit-to-native conversion in bmp.c into a function, add support for plugging unscaled output in BMP and JPEG loaders, use output_row_8_native in JPEG decoder when possible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20884 a1c6a512-1295-4272-9138-f99709370657
2009-05-09 07:31:27 +00:00
Andrew Mahone
7b81cd0caf Convert Huffman decode from inline function to macro, for small code size saving on ARM and on Coldfire color, only finish DC decode on greyscale targets if decoding luma channel.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20874 a1c6a512-1295-4272-9138-f99709370657
2009-05-08 07:21:35 +00:00
Andrew Mahone
0af7494b37 Small size improvement for JPEG on ARM/Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20873 a1c6a512-1295-4272-9138-f99709370657
2009-05-08 04:19:10 +00:00
Andrew Mahone
cda907435b Fix red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20872 a1c6a512-1295-4272-9138-f99709370657
2009-05-08 03:59:51 +00:00