Solomon Peachy
469866b6c9
mpegplayer: Fix aliasing rules violation on multi-core targets
...
As the PP series has no sense of cache coherency between its multiple
cores, we need to ensure the vo_data structure does not share cachelines
with anything else.
This was previously done by defining a uint8_t array and trying to
access it via typecasting hell, triggering a large pile of aliasing
violation warnings on newer toolchains and/or higher optimization
levels.
Instead of violating the C spec in an undefined-behaviour-sort-of-way,
create a union of the right size and alignment, and make one of its members
the structure we care about. Voila, everyone is happy.
Change-Id: Iad78f8132225437cd4aa10e6e5f6ae58ba996c19
2020-07-25 02:57:35 +00:00
Solomon Peachy
d2cef81bba
mips: fix some compile warnings.
...
Change-Id: Ia5e83702313c1c184480290d3b0e6a66f01b7277
2018-10-09 22:35:37 -04:00
Michael Sevakis
652463ecc0
mpegplayer: Move libmpeg2 files into their own subdirectory so things are less cluttered.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29381 a1c6a512-1295-4272-9138-f99709370657
2011-02-22 21:44:15 +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
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
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
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
Daniel Stenberg
2acc0ac542
Updated our source code header to explicitly mention that we are GPL v2 or
...
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Michael Sevakis
05099149f1
Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
2008-04-06 04:34:57 +00:00
Jens Arnold
68a21689ae
Consistent naming scheme the various blit functions. * Removed lcd_blit_mono() for colour targets. Plugin API became incompatible, so sort, clean up & bump. * Implemented lcd_blit_mono() for M3.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16775 a1c6a512-1295-4272-9138-f99709370657
2008-03-24 00:35:53 +00:00
Michael Sevakis
e4bb2bbb05
mpegplayer: make sure 'floating' videos are even-aligned on color displays or else clipping the image could have dead lines while the WVS is shown. Throw in a couple misc cleanups to vo.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16172 a1c6a512-1295-4272-9138-f99709370657
2008-01-26 15:15:50 +00:00
Michael Sevakis
75380fd27d
mpegplayer on grayscale targets: use greylib to display all text and graphics with the video images.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16042 a1c6a512-1295-4272-9138-f99709370657
2008-01-09 22:19:25 +00:00
Jens Arnold
feb5b15e9b
All-new greyscale library, replacing the old one. Features: (1) Drawing/updating is faster than the old grayscale lib at full depth. (2) Always 129 shades instead of 2..33 shades. (3) No graininess caused by frequent updates (mpegplayer, doom, ...). (4) Needs less memory than the old grayscale lib at full depth. * The tradeoff is slightly higher CPU load in the ISR (frames are calculated 'live') and an extra function in the core. * Ported all plugins which used the graylib to use the new one. * Some slight optimisations for archos and H1x0 LCD update.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15998 a1c6a512-1295-4272-9138-f99709370657
2008-01-04 23:42:38 +00:00
Michael Sevakis
dff0deb48c
Ok...really fix the red. :)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15993 a1c6a512-1295-4272-9138-f99709370657
2008-01-03 17:51:25 +00:00
Michael Sevakis
d9a895599e
Fix some warnings/errors.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15992 a1c6a512-1295-4272-9138-f99709370657
2008-01-03 17:30:50 +00:00
Michael Sevakis
a5fc3f4df4
Initial WVS for mpegplayer. Adjusts to the user's preferred font and uses FF/RW preferences set for playback. Picked a random color for the base WVS color but it could be configured. Some engine tweaks to accomodate it since certain nescessities are clearer now. Fix a clipped YUV output bug in the SIM.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15991 a1c6a512-1295-4272-9138-f99709370657
2008-01-03 17:14:28 +00:00
Michael Sevakis
3b1f61a1ff
mpegplayer loose ends: Move gray_release to the exit routine where it should be. All gray handling is on CPU except frame rendering.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15979 a1c6a512-1295-4272-9138-f99709370657
2007-12-29 22:12:10 +00:00
Michael Sevakis
a222f27c4a
mpegplayer: Make playback engine fully seekable and frame-accurate and split into logical parts. Be sure to have all current features work. Actual UI for seeking will be added soon. Recommended GOP size is about 15-30 frames depending on target or seeking can be slow with really long GOPs (nature of MPEG video). More refined encoding recommendations for a particular player should be posted soon.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15977 a1c6a512-1295-4272-9138-f99709370657
2007-12-29 19:46:35 +00:00
Robert Kukla
d4f382252d
FS#7997 - mpegplayer - enable/disable start menu
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15250 a1c6a512-1295-4272-9138-f99709370657
2007-10-21 16:44:13 +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
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
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
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
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
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
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
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
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
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