Commit graph

107 commits

Author SHA1 Message Date
Jens Arnold
31245682b3 Put some arrays used in the decoder into IRAM for a few percent speedup (mainly on coldfire).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15182 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 10:04:43 +00:00
Dave Chapman
c5263a4a13 Use the core codec thread's stack for the mpegplayer audio thread - this will free up another 9KB of IRAM for use by mpegplayer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15181 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 08:56:32 +00:00
Jens Arnold
1cca3ceeef Less stack hogging in the coldfire IDCT for mpegplayer. Speedup might or might not be measurable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15175 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 00:14:22 +00:00
Nils Wallménius
702600cbdb Move some tables that aren't performance critical out of iram, const police
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15172 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 18:23:34 +00:00
Jens Arnold
e1b4bf7a4d Mpegplayer: Assembler optimised motion compensation for coldfire (just the variants that are assemblerised for ARM) for a nice speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15168 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 15:46:09 +00:00
Jens Arnold
98d186ce80 Try to fix the non-working $ replacement.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15164 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 10:06:29 +00:00
Jens Arnold
45d4345405 Mpegplayer: Convert the assembler optimised ARM IDCT into a proper assembler file. Clean up the CPU selection in idct.c.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15158 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 00:29:44 +00:00
Jens Arnold
fc43b9df82 Mpegplayer: Assembler optimised IDCT for coldfire, based on FS #5995 by Karim Boucher. Put the IDCT block buffer in IRAM for better performance. The whole libmpeg2 decoder struct doesn't fit without throwing some libmad buffers out of IRAM, but then doesn't change performance significantly. Mpegplayer is quite usable now on X5; H300 is sort-of usable for widescreen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15156 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 22:55:40 +00:00
Robert Kukla
0b911fefea FS#7971 - mpegplayer - start menu loads quicker - menu clean up - code clean up
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15143 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 14:23:50 +00:00
Michael Sevakis
a9b2fb5ee3 Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:25:17 +00:00
Peter D'Hoye
8714b75d2b Delay boosting and backlight on until after the menu selection is done. Fixes FS #7964. There remains an issue with the movie being loaded before the menu is shown.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15123 a1c6a512-1295-4272-9138-f99709370657
2007-10-15 19:29:33 +00:00
Antoine Cellerier
57418b2192 Use the CLOCK_RATE define instead of 44100.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15110 a1c6a512-1295-4272-9138-f99709370657
2007-10-14 21:05:26 +00:00
Dave Chapman
e88ac4ce4a Cosmetic change - change the "loading ..." splashes to "Loading...", as used everywhere else in Rockbox
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15081 a1c6a512-1295-4272-9138-f99709370657
2007-10-11 23:06:05 +00:00
Robert Kukla
83ec896586 FS#7931 - mpegplayer - resume on idle off - play files without start time of zero
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15079 a1c6a512-1295-4272-9138-f99709370657
2007-10-11 22:38:16 +00:00
Robert Kukla
a07e93938c fix yellow and some house cleaning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15056 a1c6a512-1295-4272-9138-f99709370657
2007-10-09 21:28:51 +00:00
Robert Kukla
fd3fe45bc1 FS#7487 - mpegplayer - video start time seek with resume
by John S. Gwynne & Brian J. Morey
This should stop the patch from breaking again and give them opportunity to improve it further.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15052 a1c6a512-1295-4272-9138-f99709370657
2007-10-09 20:42:20 +00:00
Michael Sevakis
f6de0d4083 Discontinue any use of 'swp(b)' on PP5020. While clocking is stable, some testing revealed this instruction can still cause problems without concurrent access. Make sure mpegplayer is safe while not using spinlock (no longer atomic) between cores to protect the stream byte counters - use nonwrapping head and tail pointers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15005 a1c6a512-1295-4272-9138-f99709370657
2007-10-06 15:01:37 +00:00
Steve Bavin
5a78a06073 Just temporarily disable talk menus, in case the player is reset whilst in mpegplayer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14970 a1c6a512-1295-4272-9138-f99709370657
2007-10-03 16:17:36 +00:00
Michael Sevakis
51a8a1e3f3 This should fix the voice issues in menus in mpegplayer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14962 a1c6a512-1295-4272-9138-f99709370657
2007-10-02 20:24:25 +00:00
Steve Bavin
6d0ee558e8 Fix signed/unsigned warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14952 a1c6a512-1295-4272-9138-f99709370657
2007-10-02 08:39:55 +00:00
Michael Sevakis
d7cb90722f Get the plugins synced up with the threading changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14881 a1c6a512-1295-4272-9138-f99709370657
2007-09-28 11:12:45 +00:00
Michael Sevakis
7e891aa4d3 Oops. Actually add the IDCT file for ARM. :p
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14852 a1c6a512-1295-4272-9138-f99709370657
2007-09-25 03:14:06 +00:00
Michael Sevakis
287d6223d3 Dithering option for mpegplayer on gigabeat-f/x and e200. Assembly IDCT for ARm just to make it all work more nicely. Move UI simulator YUV code to its core to adapt it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14851 a1c6a512-1295-4272-9138-f99709370657
2007-09-25 02:59:42 +00:00
Marianne Arnold
12ddb8ea0d Enable plugins on the Sansa C200. Large parts taken from patch FS#7749 by Max Kelley with tweaks, bit of cleanup and additional bitmaps by me. Some of the now enabled plugins could still be improved in regard to screen size adaptation or keymaps but this way it can easily be done later and one by one. The rather ugly 'ifndef's I added temporaryly in plugins/SOURCES will also go one by one. Plugin button actions cause some quirks in a few plugins (e.g. 'clock') but since it's not critical , the bitmaps were already done and it makes a good example for discussing plugin button actions, I thought it could go in.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14771 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 10:49:48 +00:00
Jens Arnold
2e305c6381 Repair mpegplayer on 64 bit sims. No reason for doing fancy bitshifting opts, this is all compile time...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14659 a1c6a512-1295-4272-9138-f99709370657
2007-09-09 22:47:28 +00:00
Peter D'Hoye
767c0ec589 Pass plugin api pointer to funtion directly, fixes crashes when doing incremental builds. Fix incorrect backlight changes in rockblox introduced recently.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14373 a1c6a512-1295-4272-9138-f99709370657
2007-08-16 23:01:18 +00:00
Peter D'Hoye
cb53e3cef4 Bring mpegplayer backlight fix to the other plugins, this also fixes some wrongly ifdef'd backlight calls.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14352 a1c6a512-1295-4272-9138-f99709370657
2007-08-15 12:42:09 +00:00
Peter D'Hoye
a5d4d67763 Also keep the backlight on in mpegplayer when plugged in. Fixes FS #7584. Created two helper functions for this, because this issue also exists in other plugins (to do). The helper functions are in the pluginlib in helper.[ch], where other common stuff can be put.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14321 a1c6a512-1295-4272-9138-f99709370657
2007-08-13 22:31:11 +00:00
Michael Sevakis
ffbbc60f38 Mpegplayer: Clear up some other cache issues. Use the better sleep loops for message sending. I still won't promise 100% trouble-free operation on dual-core since adding a thread to the COP from the CPU is a race condition anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14173 a1c6a512-1295-4272-9138-f99709370657
2007-08-04 00:48:57 +00:00
Jens Arnold
b701322fea Rockbox compiles and boots now on the 2nd gen, but doesn't work properly yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14021 a1c6a512-1295-4272-9138-f99709370657
2007-07-27 09:57:27 +00:00
Dave Chapman
b97c00dc8e Remove the mad_frame_overlap[] buffer from the main (IRAM) stack in order to prevent the reported stack overflows. On Coldfire, there is enough room to keep it in IRAM, but not on PortalPlayer. However, this should not cause problems as the audio thread has an entire core to itself (except for buffering) and IRAM doesn't make much difference on PP502x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13968 a1c6a512-1295-4272-9138-f99709370657
2007-07-23 23:01:47 +00:00
Michael Sevakis
930278bcc0 mpegplayer: Refine the earlier additions and be more explicit about a message intent by renaming it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13938 a1c6a512-1295-4272-9138-f99709370657
2007-07-20 03:56:59 +00:00
Michael Sevakis
b8bd1ee557 MpegPlayer: Add a simple messaging scheme for sending stream commands. Remove the need to disable FIQ when adding to PCM buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13931 a1c6a512-1295-4272-9138-f99709370657
2007-07-19 19:32:29 +00:00
Marcoen Hirschberg
3585ee7a3f change the fps calculation so setting changes are visible without delay
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13678 a1c6a512-1295-4272-9138-f99709370657
2007-06-19 21:30:45 +00:00
Marcoen Hirschberg
95d414542c move button_loop to prepare for the next commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13677 a1c6a512-1295-4272-9138-f99709370657
2007-06-19 21:29:34 +00:00
Michael Sevakis
4597ebe24b Plugins that play sound must be sure to set inputs and outputs on audio muxed targets. Add strict adherence to the interface protocols. Make sure playback sets the playback output as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13604 a1c6a512-1295-4272-9138-f99709370657
2007-06-10 02:10:47 +00:00
Marcoen Hirschberg
a7168feeac attempt to make the Gigabeat button mappings in the plugins more logical and in line with the mapping in rockbox itself
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13436 a1c6a512-1295-4272-9138-f99709370657
2007-05-19 23:38:09 +00:00
Linus Nielsen Feltzing
fcbc699dca Prevent idle poweroff in the MPEG video player plugin. Fixes FS#6091.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13413 a1c6a512-1295-4272-9138-f99709370657
2007-05-19 17:02:55 +00:00
Jonathan Gordon
77a458a464 Move the old api out of the core and into the plugin lib.
ew plugins shuold use the new api and not this one.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13358 a1c6a512-1295-4272-9138-f99709370657
2007-05-08 11:55:43 +00:00
Michael Sevakis
72e6dd5e0c Do the clamping a little better.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13254 a1c6a512-1295-4272-9138-f99709370657
2007-04-24 03:38:19 +00:00
Michael Sevakis
0d032d1fa1 mpeglayer: Give the simulator YCbCr blit similar behavior to the target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13253 a1c6a512-1295-4272-9138-f99709370657
2007-04-24 02:46:32 +00:00
Michael Sevakis
8676dc25f5 Missed a couple. Hopefully fix all warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13234 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 19:07:15 +00:00
Michael Sevakis
26d242ae65 General housekeeping: Make plugin buffer functions take size_t * instead of int * to match the parameter type of the buffer functions called in the core. Get rid of unsafe int * <==> size_t * casting. Use ssize_t where int was used and size_t where unsigned int was used in the buffer calls to not alter signedness in the plugins. No API version change since it should only be an issue for 64-bit sim builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13233 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 18:38:25 +00:00
Michael Sevakis
045d3cc9b5 mpegplayer: Fix jumping past the frame waiting if Limit FPS is on but Skip Frames is not. Fixes FS#7055 though this was just a general mistake and not limited to the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13227 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 05:27:45 +00:00
Michael Sevakis
01c0fb492f mpegplayer: Better frame dropping code adapted to the using correct timestamps change. Even smoother frames. Higher FPS and smoother when having to drop than before (Around 15fps regulated for Elephants Dream on x5 which is a dismal situation, up from around 12 or so).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13205 a1c6a512-1295-4272-9138-f99709370657
2007-04-18 23:23:18 +00:00
Michael Sevakis
7afe2e8693 Oops. Have to do dropping based on future frame type but based upon the current one's lateness otherwise nice screen garbage can result from dropping/drawing the wrong ones. A small amount of refinement will be needed here later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13176 a1c6a512-1295-4272-9138-f99709370657
2007-04-16 04:14:58 +00:00
Michael Sevakis
eb4dcd80b7 mpegplayer: Better sync, smoother frames - corrected a few minor flaws. Keep timestamps 32-bit in stead of 33 - a 45kHz clock is good enough for humans. Increase pts queue size since the mpeg buffer is now filled when buffering the audio stream. Cleanup frame drop code a little too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13175 a1c6a512-1295-4272-9138-f99709370657
2007-04-16 03:34:56 +00:00
Michael Sevakis
291be034e8 Woops forgot a file
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13160 a1c6a512-1295-4272-9138-f99709370657
2007-04-14 16:55:40 +00:00
Michael Sevakis
f4b5a723b0 mpeg2dec in mpegplayer: Do a little code slashing and organizing. Much more to come I think.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13159 a1c6a512-1295-4272-9138-f99709370657
2007-04-14 16:35:44 +00:00
Michael Sevakis
9bfa237869 mpegplayer: Get it in better shape for dual core targets. Utilize the newly added cache stuff. Add a mutex to core shared buffer variables. I'd prefer to have a true spinlock there but this will do for the moment and protect the data. Nonetheless I can't seem to crash it on an e200 any longer and the display garbage is gone.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13153 a1c6a512-1295-4272-9138-f99709370657
2007-04-14 02:46:15 +00:00