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
Dave Chapman
266707f818
Build libmad separately for mpegplayer. This provides flexibility to adjust things like IRAM usage independently - use #ifdef MPEGPLAYER in libmad to make any mpegplayer specific changes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13147 a1c6a512-1295-4272-9138-f99709370657
2007-04-13 23:05:42 +00:00
Jens Arnold
47bf6c5a5a
Moved archos backlight code to target tree. Changed old mutlivalue CONFIG_BACKLIGHT to a simple HAVE_BACKLIGHT.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13136 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 22:12:13 +00:00
Michael Sevakis
8b9df97d96
mpegplayer: Recover from audio stream errors better. Correct some sizes. Add some needed extra guard buffer. Add in an important additional wrap check. Stream demuxer needs work on when it looks ahead in the stream and it should wrap though.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13123 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 11:36:12 +00:00
Michael Sevakis
5f1abee2dc
mpegplayer: oops, added an IRAM init/buffer get order switch that should have been reversed before committing
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13120 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 07:57:01 +00:00
Michael Sevakis
4bd827b242
mpegplayer: do some reordering, add some needed volatiles, make sure thread creation failure is handled correctly, make sure audio doesn't attempt to finish remaining data if it was asked to stop.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13118 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 06:02:47 +00:00
Michael Sevakis
dfa9f44034
mpegplayer: Hopefully help some problems on dual core. Make USB mode exit correctly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13109 a1c6a512-1295-4272-9138-f99709370657
2007-04-11 11:02:45 +00:00
Michael Sevakis
69588c3934
mpegplayer: do a little post commit cleanup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13095 a1c6a512-1295-4272-9138-f99709370657
2007-04-10 15:22:17 +00:00
Michael Sevakis
6689cb0f9b
mpegplayer: Get A-V synchronized. Improve frame sync and dropping logic and take advantage of decoder's ability to assist. Straighten out some threading problems. Clean it up a bit. Added some plugin API functions and decided it was a good time to do a good sorting on them so your next update from this build should be a full replacement.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13094 a1c6a512-1295-4272-9138-f99709370657
2007-04-10 14:18:30 +00:00
Marcoen Hirschberg
80d882105e
optimized motion compensation for ARM from the mplayer-w100 project. Elefants Dream plays back 2.3fps faster on the Gigabeat
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13032 a1c6a512-1295-4272-9138-f99709370657
2007-04-05 09:56:28 +00:00
Marcoen Hirschberg
4d9c0012d4
just pass the struct to vo_setup instead of multiple arguments
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13022 a1c6a512-1295-4272-9138-f99709370657
2007-04-04 22:51:57 +00:00
Marcoen Hirschberg
ab9d654c86
add support for non 16x16 frame sizes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13016 a1c6a512-1295-4272-9138-f99709370657
2007-04-04 08:14:03 +00:00
Dave Chapman
6186b556bd
Change file reads from 128KB to 32KB chunks - this prevents audio dropouts on targets with slow disk access (Sansa). Also change FPS display line to include the current a/v delay.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12978 a1c6a512-1295-4272-9138-f99709370657
2007-03-31 08:51:32 +00:00
Dave Chapman
1088f695a2
Another AV sync bugfix - the initial avdelay was being incorrectly calculated in some cases
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12975 a1c6a512-1295-4272-9138-f99709370657
2007-03-30 23:58:12 +00:00
Dave Chapman
16fa5a9f01
Be less aggressive when dropping frames - mpegplayer was dropping any frame which was decoded more than 1/20th of a second late, change that to 3/20th second (150ms), giving noticably smoother video. Also process PTS values when dealing with MPEG-1 program streams
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12967 a1c6a512-1295-4272-9138-f99709370657
2007-03-30 00:03:07 +00:00
Tom Ross
79df16adc1
Use the left and right buttons for changing volume in mpegplayer on the gigabeatsince the screen is rotated.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12953 a1c6a512-1295-4272-9138-f99709370657
2007-03-28 23:09:59 +00:00
Dave Chapman
f2df5b5b53
Those pesky 64-bit simulator builds..
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12931 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 19:54:07 +00:00
Dave Chapman
704b793787
Improved (I hope) A/V sync. mpegplayer now takes account of the difference in the initial audio and video PTS values, and constantly adjusts the av delay to compensate for drift between the audio PTS and the actual duration of the played audio.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12930 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 19:37:48 +00:00
Dave Chapman
5e2984ad80
Fix warning
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12914 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 01:43:10 +00:00
Dave Chapman
a56757137c
mpegplayer for grayscale targets. Note that performance is slow...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12913 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 01:32:31 +00:00
Dave Chapman
465820da22
Initial attempt at rebuffering
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12911 a1c6a512-1295-4272-9138-f99709370657
2007-03-25 18:05:14 +00:00
Dave Chapman
8b40769554
Clamp output when converting from libmad's s3.28 format to 16-bit integers.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12894 a1c6a512-1295-4272-9138-f99709370657
2007-03-22 22:47:04 +00:00
Dave Chapman
8310848421
Some small mpegplayer improvements/bug-fixes, and improved A/V sync. Audio is used as the master clock and video is synced to the number of samples played. This doesn't take account of any PTS difference at the start of the stream. Also enable Limit FPS and Skip Frames by default - these options need to be enabled for A/V sync to work. Adds pcm_get_bytes_waiting() to the plugin API
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12884 a1c6a512-1295-4272-9138-f99709370657
2007-03-22 09:18:46 +00:00
Dave Chapman
f1bf798b8a
Volume control for mpegplayer - based on FS #6814 by Jacob Gardner and Pascal Briehl, modified by me (blame me for any problems). Mapped to the same buttons that are used to control volume in the WPS.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12834 a1c6a512-1295-4272-9138-f99709370657
2007-03-18 17:04:44 +00:00
Jens Arnold
f68362ad6f
Fix simulator builds, and some debugf() format strings.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12817 a1c6a512-1295-4272-9138-f99709370657
2007-03-17 09:54:28 +00:00
Jens Arnold
85a226d4e7
Rename some macros to account for the recently added M5 port. No code changes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12809 a1c6a512-1295-4272-9138-f99709370657
2007-03-16 23:02:39 +00:00
Jens Arnold
4d6374c923
Get rid of the 'center' parameter for splashes. There were only 2 of almost 500 splashes which were not centered.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12807 a1c6a512-1295-4272-9138-f99709370657
2007-03-16 21:56:08 +00:00
Daniel Ankers
82f9056988
Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 20:06:41 +00:00
Jens Arnold
3a37f46fc9
Fix CONFIG_BACKLIGHT warnings.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12393 a1c6a512-1295-4272-9138-f99709370657
2007-02-18 10:07:27 +00:00
Jens Arnold
e393b8e359
Replaced some explicit options for target linking with to be consistent with the sims.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12318 a1c6a512-1295-4272-9138-f99709370657
2007-02-15 20:28:08 +00:00
Dave Chapman
5395246004
Fix audio for Coldfire targets - the EMAC was being initialised in the main thread, not the audio thread. Also fix some comments and kill the video thread if the audio thread can not be created.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11883 a1c6a512-1295-4272-9138-f99709370657
2007-01-02 13:36:17 +00:00
Dave Chapman
4b801b2d3a
Initial implementation of audio support (44.1KHz only, mp2 or mp3, mono/stereo, any bitrate) and .mpg file (MPEG program stream) parsing for mpegplayer - .m2v files are no longer supported. .mpg parser based on patch #6366 from Mathieu Favreaux. Currently limited to only playing files smaller than the available buffer RAM (it will play longer files, but never refills the buffer when it runs empty). There is also no a/v sync implemented, and still no seeking support. Coldfire (iriver H3x0 and iaudio X5) users can use the optimisations provided in patch #5995 to increase the framerate, and PortalPlayer (ipods and iriver H10) users will want to use kernel_on_cop_6.diff from FS#5755 which enables mpegplayer to run the video thread on the second CPU core - video on the second core with audio on the first core runs at the same speed as the old mpegplayer did with no audio.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11877 a1c6a512-1295-4272-9138-f99709370657
2007-01-01 12:59:32 +00:00
Marcoen Hirschberg
6d6eb0816a
fix for the inline asm in CLIP on the gigabeat by Steve Gotthard (fs#6488). Turns out that gcc rearranged the ASM block without volatile
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11873 a1c6a512-1295-4272-9138-f99709370657
2006-12-31 08:56:59 +00:00
Marcoen Hirschberg
d09efac0f2
assume the YUV code rotates on portrait screens
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11864 a1c6a512-1295-4272-9138-f99709370657
2006-12-30 10:44:00 +00:00
Marcoen Hirschberg
d3f50ed396
add a workaround for gigabeat crashes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11863 a1c6a512-1295-4272-9138-f99709370657
2006-12-30 10:43:50 +00:00
Tomasz Malesinski
80da8b141c
FS#6357, patch 1: let iramcopy and bss share the same space in codecs and
...
plugins. Currently, in case of plugins using IRAM bss is cleared twice,
once in the loader, once in PLUGIN_IRAM_INIT. For codecs, bss is cleared only
during codec initialization. Also, removed double variables in codecs
storing a pointer to codec_api.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11606 a1c6a512-1295-4272-9138-f99709370657
2006-11-26 18:31:41 +00:00
Michael Sevakis
acc29d95be
SWCODEC/IRAM: Save voice IRAM when a plugin initializes its IRAM. Defines two macros for declaring and initializing IRAM. Plugins should use these instead. See mp3_encoder, doom, etc. for details. Further tweaks in buffer restoration after other use. Hiding of some interfaces that should only be used by buffer management.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11544 a1c6a512-1295-4272-9138-f99709370657
2006-11-18 02:18:29 +00:00
Karl Kurbjun
cd73d8bf02
one more for the backdrop stuff
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11527 a1c6a512-1295-4272-9138-f99709370657
2006-11-15 06:18:51 +00:00
Jens Arnold
a796260a6b
Next step of Makefile tuning: * Use 'make' internal commands for printing messages. Saves build time especially on cygwin. * SILENT variable used in more places. * Bitmap build system uses one Makefille less.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11369 a1c6a512-1295-4272-9138-f99709370657
2006-10-27 21:48:06 +00:00
Barry Wardell
24f4a2a8cf
Allow the Sansa e200 UI simulator to be built. Thanks to Andre Smith for the nice image of the Sansa. Lots more to be done including testing and tweaking the keymaps and modifying the plugins for the Sansa's 176x220 LCD.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11351 a1c6a512-1295-4272-9138-f99709370657
2006-10-26 13:38:09 +00:00
Jens Arnold
d1ce4e779e
Consistent style of 'make' messages. Always use ranlib after ar.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11322 a1c6a512-1295-4272-9138-f99709370657
2006-10-23 22:33:39 +00:00
Jens Arnold
0cc8b7113c
Speed up build process in general by using internal functions of make instead of spawning sub-shells where possible.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11307 a1c6a512-1295-4272-9138-f99709370657
2006-10-22 00:21:57 +00:00
Barry Wardell
ce74dc0743
Cleaner implementation of the recent OSX simulator build fix. No need to define SHARED_FLAG in each Makefile. Just have configure create it in the root Makefile instead.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11095 a1c6a512-1295-4272-9138-f99709370657
2006-09-29 20:04:36 +00:00
Barry Wardell
64f949f295
Allow UI simulator to be build on OS (Slightly updated version of FS5767)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11094 a1c6a512-1295-4272-9138-f99709370657
2006-09-29 16:15:11 +00:00
Dave Chapman
c8e69dfb71
Move FPS display out of video_out_rockbox.c and into mpegplayer.c. Also add frame-rate limiting and frame-skipping (skipping display only, not decoding) to try and achieve real-time playback. Frame-rate limiting and frame skipping (and FPS display) are enabled via options in a new menu and are currently all off by default.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10669 a1c6a512-1295-4272-9138-f99709370657
2006-08-20 23:12:56 +00:00
Dave Chapman
567cb6e615
Clean up the video output code - remove the final traces of libvo (used by mpeg2dec) and remove unused code-paths from the main decoding loop.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10638 a1c6a512-1295-4272-9138-f99709370657
2006-08-17 18:35:11 +00:00
Dave Chapman
214ce3f096
Allow exiting of plugin whilst paused
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10621 a1c6a512-1295-4272-9138-f99709370657
2006-08-16 21:19:20 +00:00
Dave Chapman
7fe7427de8
Clean up the #ifdefs surrounding the definition of lcd_yuv_blit() and add an initial (untested) implementation for the Gigabeat
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10541 a1c6a512-1295-4272-9138-f99709370657
2006-08-12 09:27:26 +00:00
Rani Hod
bcd94a9b01
Accepted FS #5786 by Michael Sevakis - lcd_yuv_blit() for X5.
...
hard coded to YUV4:2:0 for now, gives ~13.5 fps.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10528 a1c6a512-1295-4272-9138-f99709370657
2006-08-11 14:10:34 +00:00
Hristo Kovachev
9dc0e62229
Patch #5731 by Barry Wardell: more iriver h10 work. Thanks!
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10521 a1c6a512-1295-4272-9138-f99709370657
2006-08-11 08:35:27 +00:00
Marcoen Hirschberg
91022738ee
fix button mappings for the gigabeat
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10502 a1c6a512-1295-4272-9138-f99709370657
2006-08-09 13:25:43 +00:00
Dave Chapman
8d642c302d
Add STOP and PAUSE features (mapped to OFF/ON on iriver H300, MENU/PLAY on ipods and POWER/PLAY on X5) - patch by Jonathan Gordon. Also adapt the buffering to different available memory sizes - we allow libmpeg2 itself 2MB for buffers, and the rest is used to buffer the compressed video data. Note that using PAUSE will break the FPS display - this will be fixed later.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10497 a1c6a512-1295-4272-9138-f99709370657
2006-08-09 10:47:22 +00:00
Jens Arnold
b888fb2531
Do the clipping with inline asm instead of a huge lookup table. Tiny speedup, and saves ~7.5KB of IRAM.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10493 a1c6a512-1295-4272-9138-f99709370657
2006-08-08 22:56:35 +00:00
Dave Chapman
13b23fbcdb
Implementation of lcd_yuv_blit() for the ipod 5g.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10487 a1c6a512-1295-4272-9138-f99709370657
2006-08-08 21:28:08 +00:00
Jens Arnold
c4c56a3da7
mpegplayer FPS display: * Don't count the first frame if we don't know the decode time it took. * Display every 2 seconds independent of actual fps.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10486 a1c6a512-1295-4272-9138-f99709370657
2006-08-08 21:06:01 +00:00
Jens Arnold
b09ba217cc
Fix corrupted videos on target.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10485 a1c6a512-1295-4272-9138-f99709370657
2006-08-08 18:24:01 +00:00
Jens Arnold
c5a309afbd
H300: * Implemented lcd_yuv_blit(). Speeds up video playback by about 7%. No bounds check in lcd_yuv_blit() (by convention), implementations for other targets should be adapted. * Fixed off-by-one bug in lcd_update_rect()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10484 a1c6a512-1295-4272-9138-f99709370657
2006-08-08 13:44:43 +00:00
Dave Chapman
c9d66562af
Initial commit of work-in-progress MPEG video player plugin based on libmpeg2. Works on all targets with colour LCDs, but most optimised for the ipod Color/Photo and Nano. It currently only plays raw MPEG-1 or MPEG-2 video streams (no audio). Also adds a new lcd_yuv_blit() function to the plugin API - currently only implemented for the ipod Color/Photo and Nano.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10479 a1c6a512-1295-4272-9138-f99709370657
2006-08-07 22:11:07 +00:00