1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins/mpegplayer
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
..
libmpeg2 mpegplayer: Move libmpeg2 files into their own subdirectory so things are less cluttered. 2011-02-22 21:44:15 +00:00
alloc.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
audio_thread.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
disk_buf.c mpegplayer fix warnings 2018-11-26 01:51:09 -05:00
disk_buf.h mpegplayer: use OFF_T_MIN/MAX instead of LONG_MIN/MAX in one spot. Define OFF_T_MIN as well if not already defined. 2010-05-21 14:01:22 +00:00
mpeg_alloc.h Bring libmpeg2 portions that we use up to date with the latest libmpeg2 CVS. Fix up some file headers and add a revision history to the libmpeg2 files detailing to which CVS file revisions things were synced. This makes it easier to start in the right place by hand in the future. Hopefully no mistakes and everything works. :-) 2008-07-01 10:27:48 +00:00
mpeg_misc.c do_menu pass internal synclist reference to callback 2020-07-19 22:10:26 +00:00
mpeg_misc.h do_menu pass internal synclist reference to callback 2020-07-19 22:10:26 +00:00
mpeg_parser.c Fix another comment typo 2011-01-04 21:28:20 +00:00
mpeg_settings.c [3/4] Completely remove HWCODEC support 2020-07-24 21:20:13 +00:00
mpeg_settings.h SA9200: Add YUV blitting, do full-screen updates more efficiently and properly clip partial updates. Plugin struct becomes incompatible for this target but leave version alone since it's still dev-only. 2011-01-11 01:21:31 +00:00
mpeg_stream.h Updated our source code header to explicitly mention that we are GPL v2 or 2008-06-28 18:10:04 +00:00
mpegplayer.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
mpegplayer.h Speech feedback in mpegplayer menus 2019-08-04 22:47:00 +02:00
mpegplayer.make MIPS uses GCC 4.1.2 which was wrongly detected as supporting '-fgnu89-inline'. Now only set this parameter if GCCNUM > 401. 2011-09-08 06:23:33 +00:00
parser.h 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. 2010-12-19 08:28:03 +00:00
pcm_output.c Speech feedback in mpegplayer menus 2019-08-04 22:47:00 +02:00
pcm_output.h MPEGPlayer: Fixup typecasting for PCM buffer a bit. 2012-04-26 16:04:42 -04:00
SOURCES mpegplayer: Move libmpeg2 files into their own subdirectory so things are less cluttered. 2011-02-22 21:44:15 +00:00
stream_mgr.c mpegplayer fix warnings 2018-11-26 01:51:09 -05:00
stream_mgr.h MPEGPlayer graphics mutation: Implement a more visible FPS display and remove the debugging info from it. Tweak thumbnailing and printing of unavailable frames. 2011-01-03 16:41:19 +00:00
stream_thread.h 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. 2011-01-07 05:17:28 +00:00
video_out.h MPEGPlayer graphics mutation: Implement a more visible FPS display and remove the debugging info from it. Tweak thumbnailing and printing of unavailable frames. 2011-01-03 16:41:19 +00:00
video_out_rockbox.c mpegplayer: Fix aliasing rules violation on multi-core targets 2020-07-25 02:57:35 +00:00
video_thread.c Commit to certain names for cache coherency APIs and discard the aliases. 2011-12-17 07:27:24 +00:00