* direct use of memcpy() instead of ci->memcpy() in flac and mod
* uninitialized variable in mpegplayer
Change-Id: I2d08682d5f66c319780e69e3ff63d600c61d8f5a
Encountered a file with ~600K of ID3v1 headers.
Optimize the potential overhead by minimizing reverse seeks.
Change-Id: I972dbf1af1c36659f19c7ab4eed0b9149c642880
The old code would seek forward by the frame length, expecting to see a
frame header there, perform a validity check, and then seek back to the
current header.
Unfortunately this doesn't handle situations where there is extra padding
between the frames, leading us to potentially read garbage, causing the
validity tests to fail and rejecting the file outright.
Instead, keep track of the previous valid header/position, and if we find
"valid" headers in a row return the first after seeking back to it.
This change allows the file referenced in FS13299 to be properly parsed, but
further work is needed to get the file to be playable. (file reports itself
as layer 1, variable bit rate, variable sample rate!)
Change-Id: I85f61a6360cc041a172db4b7a6b5516e5b60ceee
This is an MIT-licensed library for reading and writing v7 format
tar files. The version here is my fork, which fixes security issues
in the original code (it hasn't been updated in 4 years, probably
abandoned by the author).
Change-Id: I86d41423dacc46e9fa0514b4fc7386a96c216e86
As per multiple user requests:
https://forums.rockbox.org/index.php/topic,53319.msg
The acceptable size for id3v2 fields currently maxes out at
240 bytes on targets with more than 2MB of memory.
The comments field, especially for Podcasts, can sometimes
contain significantly more characters than Rockbox allows.
The limit for devices with more than 8MB of memory
is increased to 500 bytes for individual fields, and
to 1800 bytes for the buffer containing all fields.
Change-Id: I4593372229158756f102f67bcc4a43e64f632d58
Since that encompasses _all_ of our native targets in a post-archos world,
either replace it with #if (CONFIG_PLATFORM & PLATFORM_NATIVE) or
delete it altogher as appropriate.
Change-Id: I9128a456e850d5c96a9e05806aad3acd923f90c5
Some flac encoded files contain junk that our decoder
picked up
upstream has some sign and overflow fixes too
Change-Id: I5857b2fe56906a48f04944cdfee8fe2306f2c3fd
I think the assumption is that during playback, the DSP is already running
so it assumes PBE needs to be flushed before it is properly enabled.
Change-Id: I2bac3d02c80f97c8d9ce26a575175f6344a8e86a
mp4 files can have multiple 'mdat' chunks. This is common for
audiobooks, where there is often a secondary mdat containing the
chapter names, but it's also legal to have multiple mdat chunks
for a single logical "track"
This confuses the mp4 metadata parser, which assumes there is
only a single mdat, and always uses the last mdat seen to
determine the "filesize" of the data we're trying to decode.
Work around this by appending each mdat's size to result in the final
"filesize"
Change-Id: I3e7a7efb0f05ef965e8d77f79e450c957524a480
GCC 4.9.4 was already used for MIPS and all hosted targets; this enables
it across the board for everything (ie m68k and arm native)
Other changes:
* Use '-Os' as the default optiomization for all targets
(was only disabled for arm native)
* Enable -funit-at-a-time and -Wextra
* Drop all obsolete toolchain patches
* Update ARM multilib/exception patch
* Bump toolchain libs (gmp, mpfr, mpc) to recommended versions, and
add 'isl' to enable better optimization & vectorization opportunities.
(Will revisit optimization for the codecs and plugins at a later date)
Confirmed working:
* armv4t (ipodmini2g and many other PP502x targets)
* arm >= v5 (sansaclipplus, ipod6g, ipodnano2g, sansafuzeplus)
* m68k (ihp100)
Change-Id: If9ed405ae0f289d9adea46d4cf46bfefc2f4250d
This codec requires floating point.
Original author: Peter Sovietov
Ported to Rockbox: Roman Skylarov
Further integration and bugfixes: Solomon Peachy
Change-Id: I781ecd3592dfcdbbc694063334350342534f1d6c
- Avoid use of uname, instead ask the compiler about the binaries it
creates.
- Move platform specific commands used into functions.
- Replace use of echo with make functions.
Change-Id: I365f656e02ddb90ee91ae60fec1230b4aaaf224f
Note: I left behind lcd_bitmap in features.txt, because removing it
would require considerable work in the manual and the translations.
Change-Id: Ia8ca7761f610d9332a0d22a7d189775fb15ec88a
'swcodec' is now always set (and recording_swcodec for recording-capable
units) in feature.txt so the manual and language strings don't need to
all be fixed up.
Change-Id: Ib2c9d5d157af8d33653e2d4b4a12881b9aa6ddb0
By moving three structures to the heap. None are in the hot decode
loop, instead having to do with file sync / header state.
Has neglible impact on performance (within measurement noise) on Clip+,
Rocker, and Xduoo X3.
On PP5022 (ipodmini2g) performance drops from 138.66% to 138.22% realtime.
(0.3%)
Unknown effect on Coldfire which lacks D$.
Stack savings are pretty significant especially on lowmem devices.
Change-Id: Ic8a1e93062ff5a46230e824134032053c4e1986d