Commit graph

292 commits

Author SHA1 Message Date
Michael Sevakis
5c2dd0785d Put illustrative switch case back, because it clarifies intention...maybe ;).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28985 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 05:30:22 +00:00
Michael Sevakis
39107956ab MPEGPlyaer: A bit of audio mutation. Remove a useless thread state. Take some control over the buffer away from the audio thread itself. Some atomicity corrections.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28984 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 05:17:28 +00:00
Alexander Levin
95e6e31703 Fix another comment typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28969 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 21:28:20 +00:00
Michael Sevakis
df6b414515 MPEGPlayer: Give the parser a little stronger going over this time so it tolerates odd audio timestamps better.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28965 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 20:28:00 +00:00
Alexander Levin
92f602f48f mpeg_parser: fix a typo in the comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28964 a1c6a512-1295-4272-9138-f99709370657
2011-01-04 19:02:01 +00:00
Michael Sevakis
a31b3701f8 MPEGPlayer: Try a few timestamps for all streams at the beginning, not just video, to help deal with anomalous start PTS values in a stream. Hopefully the hardcoded number gives it enough tolerance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28961 a1c6a512-1295-4272-9138-f99709370657
2011-01-03 20:13:05 +00:00
Michael Sevakis
b664f62e36 MPEGPlayer graphics mutation: Implement a more visible FPS display and remove the debugging info from it. Tweak thumbnailing and printing of unavailable frames.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28960 a1c6a512-1295-4272-9138-f99709370657
2011-01-03 16:41:19 +00:00
Michael Sevakis
9b4522bace MPEGPlayer: Some UI tweaking and bugfixing
* Allow skip-to-beginning in single-play mode; there is no 3-second delay in that case.
* Properly handle and keep track of pauses caused by headphone removal.
* Improve skipping over bad files - search in skip direction and allow it to be ended with the stop key.
* Add the system message processing done elsewhere to all button queue waits.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28875 a1c6a512-1295-4272-9138-f99709370657
2010-12-22 11:20:07 +00:00
Michael Sevakis
ea568794e7 MPEGPlayer: Fix a bug where seeking a stream into the same frame more than once in a row causes it to report itself at the end in error; to fix it, pause streams rather than stopping them if the playback isn't stopped. Also, add one check so the engine can at rewind unseekable files to time 0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28862 a1c6a512-1295-4272-9138-f99709370657
2010-12-20 07:58:02 +00:00
Michael Sevakis
31af1a3ac2 MPEGPlayer: Move some code that's probably better situated in the stream manager rather than the parser. Fix visibility checking in video out. Extra message sending for new stream isn't needed; just do full decoder sequence reset when requesting dimensions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28855 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 08:28:03 +00:00
Michael Sevakis
fd01bf3e4c MPEGPlayer: Skip to next file when there is a problem with a video file in all-play mode, otherwise exit as usual. Only consider failures such as engine init issues or no file to view to be a plugin error but not problems with the video files themselves; the user is adequately informed already.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28854 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 03:28:43 +00:00
Michael Sevakis
6b1fcc67c2 MPEGPlayer: Fix leakage of file decriptors if file wasn't accepted by playback engine-- code is now getting tested that couldn't be before. Also reset parser in stream init when it doesn't like the file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28853 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 02:11:35 +00:00
Michael Sevakis
6032ff1730 MPEGPlayer playlist should as well support all viewer-handled file extensions...indeed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28850 a1c6a512-1295-4272-9138-f99709370657
2010-12-18 21:20:53 +00:00
Marcin Bukat
dd61702fb0 HD300 - plugins keymaps
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28712 a1c6a512-1295-4272-9138-f99709370657
2010-11-30 10:52:14 +00:00
Teruaki Kawashima
043ebca136 FS#8607: MPEG video playlist
Add mode to play multiple mpeg files in the same directory in the order the file browser shows.
In this mode, Mpegplayer exits after finishing the last .mpg file.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28667 a1c6a512-1295-4272-9138-f99709370657
2010-11-26 12:32:00 +00:00
Robert Menes
c638e96738 These should be the last of the plugin keymaps required
for the GoGear HDD6330.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28467 a1c6a512-1295-4272-9138-f99709370657
2010-11-03 02:45:53 +00:00
Marcin Bukat
59ba8fea22 MPIO HD200: rename button defines to adhere how they are labeled on the device.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28443 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 10:44:34 +00:00
Frank Gevaerts
f366090562 Make disabling HAVE_PITCHSCREEN actually work without breaking the build
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28102 a1c6a512-1295-4272-9138-f99709370657
2010-09-17 20:28:47 +00:00
Rafaël Carré
da16248e47 Plugins: modify IRAM copying code
Move to plugin_crt0.c, plugins don't need PLUGIN_IRAM_* macros anymore
IRAM is no longered zeroed before copying (as it is at the same address
than BSS) -> Fix FS#11581
Use cpucache_invalidate() (and not cpucache_flush), needed for self-modifying code on cached IRAM

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27948 a1c6a512-1295-4272-9138-f99709370657
2010-08-30 20:47:53 +00:00
Thomas Martitz
cae4ae2c71 Second try: Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also make exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex() introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases rb->default_event_handler_ex() was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27873 a1c6a512-1295-4272-9138-f99709370657
2010-08-24 14:30:46 +00:00
Thomas Martitz
93cb949372 Revert "Introduce plugin_crt0.c that every plugin links."
Too much errors and no time to fix them now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27863 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 17:12:26 +00:00
Thomas Martitz
abdc5935be Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also it makes exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases it was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27862 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 16:56:49 +00:00
Rafaël Carré
5574af8334 mpegplayer mad: apply r27655 fix
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27659 a1c6a512-1295-4272-9138-f99709370657
2010-08-01 16:38:58 +00:00
Frank Gevaerts
63011c6743 Revert accidental commit of "%z" support in r26071 (the implementation assumed size_t==long, which is not always the case in hosted environments)
Remove four remaining uses of %z, three of which were in DEBUGF


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27479 a1c6a512-1295-4272-9138-f99709370657
2010-07-18 12:42:47 +00:00
Michael Sevakis
7195f3a30c r27159 broke mpegplayer but not the mpa codec because its libmad init wasn't also updated to be compatible with the changes. Fix that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27171 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 10:07:04 +00:00
Rafaël Carré
e3263b70c3 CPP substitution isn't made inside " ", but we need " " when using , in a gas macro argument
Modify HIGH_REGS macro to store/load only one range of registers
When the range isn't contigous (in MC_put_x_8*), shift registers to make
it contigous (r4 and r5 are now unused by these functions)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26759 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 05:15:17 +00:00
Rafaël Carré
45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be
modified if we are returning to a thumb function
Code running on ARMv4t should use the new ldrpc / ldmpc macros instead
of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc}
No modification on pure ARM builds and ARMv5+

Note: USE_THUMB is currently never defined, no targets can currently be
built with -mthumb, see FS#6734

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 04:41:36 +00:00
Michael Sevakis
bc26fe7a96 Add a wrapper header, mylcd.h, in the lib subdirectory, which lets plugins' code automatically call the proper functions depending if compilation is for greylib or color display, also forms proper call to grey_ and xlcd_. mylcd_ub_ call greylib unbuffered routines, regular lcd routines otherwise. Form is mylcd_<fnname>, <fnname> is the symbol name stripped of prefixes lcd_, grey_, or xlcd_. Convert a couple plugins I know well (easy job).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26542 a1c6a512-1295-4272-9138-f99709370657
2010-06-04 08:43:32 +00:00
Michael Sevakis
d7244926f5 mpegplayer: use OFF_T_MIN/MAX instead of LONG_MIN/MAX in one spot. Define OFF_T_MIN as well if not already defined.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26232 a1c6a512-1295-4272-9138-f99709370657
2010-05-21 14:01:22 +00:00
Michael Sevakis
fcf36dd4f9 Simplify mpegplayer a bit and use array-based lists rather than linked lists for stream management. Move a couple useful functions to handle pointer arrays from kernel.c into general.c; mpeglayer now makes use of them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26101 a1c6a512-1295-4272-9138-f99709370657
2010-05-17 12:34:05 +00:00
Michael Sevakis
18b1602797 I think I intended a different expression.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26097 a1c6a512-1295-4272-9138-f99709370657
2010-05-17 07:58:07 +00:00
Michael Sevakis
0da5399c79 How punny. Just one more whack-a-mole to get.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26092 a1c6a512-1295-4272-9138-f99709370657
2010-05-16 15:17:27 +00:00
Michael Sevakis
26230ae048 MPEGPlayer: reconceal the point puns
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26090 a1c6a512-1295-4272-9138-f99709370657
2010-05-16 15:12:23 +00:00
Michael Sevakis
b197c3b0d6 MPEGPlayer: Add a second layer of caching to help speed up byte-wise scanning and seeking a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26088 a1c6a512-1295-4272-9138-f99709370657
2010-05-16 14:41:00 +00:00
Michael Sevakis
80d0d15ca9 Gigabeat S: Fully enable access to hardware tone controls and 3-D effect feature. Under the hood, it's designated a hardware equalizer since it is one. Implement code framework for hardware EQ in general. Menu aspect is well abstracted and so the UI and strings can be changed around if taste doesn't quite suit. So far the emphasis is distinction of the UI labelling from the software EQ so that it's clear the settings are for a different thing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26051 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 13:09:45 +00:00
Jeffrey Goode
f2a56161f7 Fix yellow: missed a cast
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26041 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 03:42:37 +00:00
Jeffrey Goode
6ef04a7f0e Eliminate %zd tag in printf format strings, replace them with %ld. The %z formatter kept generating type mismatch warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26040 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 03:34:31 +00:00
Frank Gevaerts
ed566826f5 Fix various size_t related warnings and errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26035 a1c6a512-1295-4272-9138-f99709370657
2010-05-14 22:19:45 +00:00
Rafaël Carré
9e974e4590 another cast ssize_t -> long
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26034 a1c6a512-1295-4272-9138-f99709370657
2010-05-14 22:16:40 +00:00
Michael Sevakis
eae0cedefe mpegplayer: One last dealie-O for now: Change all "WVS" usage in the code for identifiers to "OSD".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25873 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 13:33:44 +00:00
Michael Sevakis
455c34ab91 mpegplayer: make button timeout half the OSD update interval so that it updates the indicators properly when not holding a key. Add capability to show OSD without changing volume, seeking, etc. Enable this functionality on Gigabeat S using the back (<--) button since it wasn't used in playback mode at all.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25872 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 13:06:42 +00:00
Michael Sevakis
79e7375ddf Add support for the next/prev side buttons to mpegplayer on the Gigabeat S to control seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25871 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 11:47:54 +00:00
Thomas Martitz
54548df56e Fix some size_t related warnings (hopefully, they seem system dependant).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25852 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:17:14 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Jens Arnold
0fd111d431 Improve motion compensation for ARM: * Use less registers in the simple copy routines -> less stack usage. * Save a few instructions in constants + jumptable handling. * ARM6 optimisations. Unfortunately we can't just use uhadd8 because that rounds down, while we have to round up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25776 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 14:55:12 +00:00
Jens Arnold
f2759305a9 Gigabeat S: Reduce stalling in the ARMv6 IDCT. Also save one instruction per loop, and fix comments. Speeds up fullscreen video decoding by about 5% (excluding video output). Still not perfect...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25775 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 12:13:26 +00:00
Marcin Bukat
b09d3aec39 Add MPIO HD200 port - changed files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25724 a1c6a512-1295-4272-9138-f99709370657
2010-04-26 21:40:00 +00:00
Rafaël Carré
35500c22a4 Fuzev2: add dithering option for mpegplayer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25364 a1c6a512-1295-4272-9138-f99709370657
2010-03-28 02:41:29 +00:00
Rafaël Carré
e108d571ba fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25338 a1c6a512-1295-4272-9138-f99709370657
2010-03-25 23:32:29 +00:00
Rafaël Carré
57b3d09525 mpegplayer: align video output data structure only on multicore
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25330 a1c6a512-1295-4272-9138-f99709370657
2010-03-25 18:17:54 +00:00