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
apparently we should be doing this anyway
mark4o> The packets overlap and may reuse state set by other recent packets,
so if you seek to a different position,
resetting the state helps to ensure that the subsequent
packets won't use the state set by the unrelated packets
that were processed before the seek.
remove stack bump WORKAROUND_FS13060
Change-Id: I1c14e23b1721a360b91e3e55202c1557aef0fcc6
* Properly account for ID3v1 tags
* Play time computation fixes
* Add speech feedback
Patch by Igor Poretsky
Change-Id: Ia6df8fb171882a88527cfa9d3b76b705f09becdd
When the starting address of the plugin buffer
is not aligned to 8 bytes crashes occur in tlsf
(on ARM atleast)
Change-Id: I655500c25e1c8f84b4a2418e9ec5c5948e4bea82
opus requires the comment header to be a valid file our codec attemps to skip the comment data
in order to reduce the ram allocated originally it caused files with large album art to skip
the beginning of tracks my first attempt at fixing this then caused files with low bitrates
to do the same while fixing files with large album art
This patch should fix both although the initial start might be a bit slower but
this shouldn't cause too much of an issue
Change-Id: Ia1c3561347894cc45f24bb2659436914f8f03b43
knocks off about .5 second from decode time not a big change but might help a bit on
devices that barely achieve realtime
Change-Id: If6e822b7273613c9449c102ce7dd3543bf975d37
ogg_sync_reset() causes issues on the partial page boundary
due to the next page (already in buffer) being discarded
instead seek next page boundary past complete page
Change-Id: Ic05f188f489b015693d663f131e09cd92ad37ff7
Files with extension "aac" in ADTS or ADIF format are now playable.
Full credit goes to Igor Poretsky.
Change-Id: I413b34e15e5242fea60d3461966ae0984080f530
* More tolerance to the file format variations.
* AC3 coded files in realaudio format are now playable
Full credit to Igor Poretsky
Change-Id: Id24e94bc00623e89fb8c80403efa92f69ab1e5d7
In particular, this solves seeking glitches seen in ~6 hr mp3 files.
(Patch taken from Igor Poretsky's tree)
Change-Id: Id65b6726146b6d2d1a223e90b88e401d1b2d597a
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is
slower than DRAM. Codecs that actually are using regions of IRAM1 runs
faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains
enabled: 48KB for core and 80KB for codecs/plugins.
The next test_codec results shows how decode time is decreased:
file boosted unboosted
*.ra ~1.5% ~0.5%
*.mpc ~21% ~4.5%
*.ogg ~0.5% ~0%
nero_he*.m4a ~8% ~1%
nero*.m4a ~25% ~7%
wmapro*.wma ~4.5% ~0%
wma*.wma ~25% ~7%
In addition there is a small power save when IRAM1 HW is disabled.
Change-Id: I102adee11458e82037f23076d5d5956e23235de8
Just use long so the compiler potentially doesn't complain about
use of other values not in the enum. It's also the type used
around the system for event ids.
Increase min codec API version.
No functional changes.
Change-Id: If4419b42912f5e4ef673adcdeb69313e503f94cc
The new vuprintf makes unnecessary workarounds due to formatting
limitations. I checked grep output for whatever appeared to fit
but it's possible I missed some instances because they weren't
so obvious.
Also, this means sound settings can dynamically work with any
number of decimals rather than the current assumption of one or
two. Add an ipow() function to help and take advantage of dynamic
field width and precision. Consolidate string formatting of sound
settings.
Change-Id: I46caf534859dfd1916cd440cd25e5206b192fcd8
This call was not needed in the first place, but was causing crashes in
sgt-puzzles. Removing it fixes the crashes.
Change-Id: I1149d5600e1c97e0e848fdd34bf65d54c930adab
This should make it build cleanly under -Wcast-align, which should
hopefully avoid any alignment issues on ARM.
Change-Id: Ie147323d2d8cb980dcbb94710387b7ee80826c4d
Most importantly is surround shouldn't operate in mono mode. Have it
watch and (de)activate itself on relevant format changes as it should.
Other changes to better handle buffer allocation failure.
PBE was set internally at 100 by default; SBZ.
Change-Id: I328e0b674e56751a255eae817d7892d685796b06
Simply extends the current isqrt() to be able to do fractional bits
and improves the initial estimate using clz(). iqrt() itself is
no more and is equivalent to fp_sqrt(x, 0). The original also had
a small bug where the guess comparision should have been >=, not >.
Uses no large integer math or division and is very accurate
(simply returns a truncated fraction).
Change-Id: I2ae26e6505df1770dc01e56220f7385369f90ae9
SUPPORTED SERIES:
- NWZ-E450
- NWZ-E460
- NWZ-E470
- NWZ-E580
- NWZ-A10
NOTES:
- bootloader makefile convert an extra font to be installed alongside the bootloader
since sysfont is way too small
- the toolsicon bitmap comes from the Oxygen iconset
- touchscreen driver is untested
TODO:
- implement audio routing driver (pcm is handled by pcm-alsa)
- fix playback: it crashes on illegal instruction in DEBUG builds
- find out why the browser starts at / instead of /contents
- implement radio support
- implement return to OF for usb handling
- calibrate battery curve (NB: of can report a battery level on a 0-5 scale but
probabl don't want to use that ?)
- implement simulator build (we need a nice image of the player)
- figure out if we can detect jack removal
POTENTIAL TODOS:
- try to build a usb serial gadget and gdbserver
Change-Id: Ic77d71e0651355d47cc4e423a40fb64a60c69a80