Commit graph

104 commits

Author SHA1 Message Date
Michael Sevakis
d37bf24d90 Enable setting of global output samplerate on certain targets.
Replaces the NATIVE_FREQUENCY constant with a configurable frequency.

The user may select 48000Hz if the hardware supports it. The default is
still 44100Hz and the minimum is 44100Hz. The setting is located in the
playback settings, under "Frequency".

"Frequency" was duplicated in english.lang for now to avoid having to
fix every .lang file for the moment and throwing everything out of sync
because of the new play_frequency feature in features.txt. The next
cleanup should combine it with the one included for recording and
generalize the ID label.

If the hardware doesn't support 48000Hz, no setting will be available.

On particular hardware where very high rates are practical and desireable,
the upper bound can be extended by patching.

The PCM mixer can be configured to play at the full hardware frequency
range. The DSP core can configure to the hardware minimum up to the
maximum playback setting (some buffers must be reserved according to
the maximum rate).

If only 44100Hz is supported or possible on a given target for playback,
using the DSP and mixer at other samperates is possible if the hardware
offers them.

Change-Id: I6023cf0c0baa8bc6292b6919b4dd3618a6a25622
Reviewed-on: http://gerrit.rockbox.org/479
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-07-06 04:22:04 +02:00
Michael Sevakis
39946a56d8 Fix CPU boosting in test_codec.
Boost only for tests and unboost immediately afterwards. It was leaving
the CPU boosted after exiting.

Change-Id: I010c4b975bd27e8990dc057ddd244dab233411ca
2013-05-21 22:19:57 -04:00
Michael Sevakis
c9bcbe202d Fundamentally rewrite much of the audio DSP.
Creates a standard buffer passing, local data passing and messaging
system for processing stages. Stages can be moved to their own source
files to reduce clutter and ease assimilation of new ones. dsp.c
becomes dsp_core.c which supports an engine and framework for effects.

Formats and change notifications are passed along with the buffer so
that they arrive at the correct time at each stage in the chain
regardless of the internal delays of a particular one.

Removes restrictions on the number of samples that can be processed at
a time and it pays attention to destination buffer size restrictions
without having to limit input count, which also allows pcmbuf to
remain fuller and safely set its own buffer limits as it sees fit.
There is no longer a need to query input/output counts given a certain
number of input samples; just give it the sizes of the source and
destination buffers.

Works in harmony with stages that are not deterministic in terms of
sample input/output ratio (like both resamplers but most notably
the timestretch). As a result it fixes quirks with timestretch hanging
up with certain settings and it now operates properly throughout its
full settings range.
Change-Id: Ib206ec78f6f6c79259c5af9009fe021d68be9734
Reviewed-on: http://gerrit.rockbox.org/200
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-04-29 10:00:56 +02:00
Michael Sevakis
c51fe40a7d test_codec: Fix some problems with writing WAV with DSP
On big-endian architecture, DSP output must be coverted to little-
endian first. DSP output is also always interleaved stereo, 16 bit,
NATIVE_FREQUENCY and wavinfo should be correct for this.

Also, use standard clip_sample_16 already available.

Change-Id: Ifa7b9fc77f0573070c7e79f059dc3000c437c42e
2012-04-26 16:04:43 -04:00
Marcin Bukat
b0df323391 Don't hardcode cpu frequency in test_codec
Change-Id: Idcd7b024edb7a550b42b935fadfb3d869bab14c6
2012-03-22 18:41:05 +01:00
Jean-Louis Biasini
db856890df test_X plugins PLA integration
1) change all keymaps to PLA
2) add alternative exit keymaps

Change-Id: I5cb8b1fcc515d2b6f9934482e72b80767b2c2fb0
Reviewed-on: http://gerrit.rockbox.org/158
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 19:55:51 +01:00
Thomas Martitz
112bc71a0c Fix building test plugins on non-touch targets, for real.
Change-Id: I8f2105fe3357f00d9e085444cd867bec0e2a7143
2012-01-29 22:35:49 +01:00
Thomas Martitz
476fcfa538 Revert "Fix building test plugins on non-touch targets."
This reverts commit 84c77d40f5.

The commit used an unrelated define which doesn't actually work.
2012-01-29 22:35:49 +01:00
Magnus Holmgren
84c77d40f5 Fix building test plugins on non-touch targets.
Change-Id: I6d058099ebb4c9d0aa5b21cb8b2e01bb4a5965d4
2012-01-28 13:41:15 +01:00
Thomas Martitz
93a4b32d03 test_codec/test_fps: Use pluginlib_touchscreen API to make them fit for touchscreen including point mode.
Enable test_fps on RaaA also.

Change-Id: Ifeb60d5ad30bde1f8a645cd9e9d5d5ae34f4425d
2012-01-27 09:15:05 +01:00
Thomas Martitz
20b662a946 rbpaths: Add new special dir HOME_DIR for RaaA.
HOME_DIR is intended for not-so-advanced files which shall be user
visible, and thus not in /.rockbox. Therefore HOME_DIR is translated
to $HOME on RaaA, /sdcard on android, the internal memory on ypr0
and "/" on native targets.

ROCKBOX_DIR ("/.rockbox") already existed as special and is translated
to whatever the real rockbox dir is on the target (e.g. /sdcard/rockbox
on android), but it's not suitable for some files we generate
(e.g. battery-bench.txt).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31430 a1c6a512-1295-4272-9138-f99709370657
2011-12-25 20:11:18 +00:00
Thomas Martitz
249bba03f1 Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system,
but is the only application. It therefore can implement lots of stuff that
native targets also implement, while leveraging the underlying linux kernel.

The port is quite advanced. User interface, audio playback, plugins work
mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page).

Included in utils/ypr0tools are scripts and programs required to generate
a patched firmware. The patched firmware has the rootfs modified to load
Rockbox. It includes a early/safe USB mode.

This port needs a new toolchain, one that includes glibc headers and libraries.
rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may
also work.

Most of the initial effort is done by Lorenzo Miori and others (on ABI),
including reverse engineering and patching of the original firmware,
initial drivers, and more. Big thanks to you.

Flyspray: FS#12348
Author: Lorenzo Miori, myself

Merry christmas to ypr0 owners! :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 11:56:46 +00:00
Nils Wallménius
f0f24a3b4a Fix building of test_codec
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31343 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 13:43:54 +00:00
Marcin Bukat
6d5671a8d8 rk27xx - enable a few test plugins
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30459 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:49 +00:00
Andree Buschmann
e88d24a840 Submit parts of FS#12189 regarding codec API. Replaces access to global settings with a dedicated function to determine if the current track shall be looped. Used by several synthesizer codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30391 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 19:40:09 +00:00
Andree Buschmann
152c4fb819 Final commit to get test_codec working properly for both freq-scaling and non-freq-scaling targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30375 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 13:48:31 +00:00
Andree Buschmann
656625b30e Fix logic of test_codec for targets with HAVE_ADJUSTABLE_CPU_FREQ.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30374 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 13:00:35 +00:00
Michael Sevakis
c949d69f4b test_codec: Allow user to abort tests using target-defined TESTCODEC_EXITBUTTON.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29881 a1c6a512-1295-4272-9138-f99709370657
2011-05-15 01:41:25 +00:00
Michael Sevakis
c537d5958e Commit FS#12069 - Playback rework - first stages. Gives as thorough as possible a treatment of codec management, track change and metadata logic as possible while maintaining fairly narrow focus and not rewriting everything all at once. Please see the rockbox-dev mail archive on 2011-04-25 (Playback engine rework) for a more thorough manifest of what was addressed. Plugins and codecs become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29785 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 03:08:23 +00:00
Michael Sevakis
a4098e6174 Sync test_codec to r29595.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29596 a1c6a512-1295-4272-9138-f99709370657
2011-03-16 05:59:46 +00:00
Michael Sevakis
6510973223 Give playback engine better control over the codec. Codec simply follows commands and doesn't concern itself with audio state. Get track change notification in on the actual last buffer insert of the track because now audio simply waits for a track change notify from PCM on the last track and it must be sent reliably. This is still at an intermediate stage but works. Codecs and plugins become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29387 a1c6a512-1295-4272-9138-f99709370657
2011-02-23 14:31:13 +00:00
Andree Buschmann
e3abdb1a52 Undo unwanted commit r29310.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29311 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:10:50 +00:00
Andree Buschmann
237ca504e1 All AAC-HE files will double the frame sample count, not only AAC-HE files with SBR upsampling. This change fixes issues with some m4a files reported in the forums.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29310 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:00:28 +00:00
Szymon Dziok
290e27b401 HDD6330: add missing button for test_codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28721 a1c6a512-1295-4272-9138-f99709370657
2010-12-02 20:25:04 +00:00
Marcin Bukat
dd61702fb0 HD300 - plugins keymaps
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28712 a1c6a512-1295-4272-9138-f99709370657
2010-11-30 10:52:14 +00:00
Nils Wallménius
05434ebaf8 test_codec: fix menu broken in r28637
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28659 a1c6a512-1295-4272-9138-f99709370657
2010-11-24 16:42:40 +00:00
Michael Giacomelli
3f932318e2 Fix mistake on targets without frequency scaling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28638 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 02:28:12 +00:00
Michael Giacomelli
7094181157 Add option to run test_codec unboosted on players with boosting.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28637 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 02:22:56 +00:00
Nils Wallménius
60c640b549 test_codec: Align the codec buffer to pointer size, since tlsf wants that. Fixes a crash when running tremor in test_codec on 64 bit sim. (The tlsf init bailed out but tremor doesn't check the return and went on to alloc memory anyway)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28365 a1c6a512-1295-4272-9138-f99709370657
2010-10-27 15:07:05 +00:00
Nils Wallménius
8123dffaea Remove some inconsistent guarding around cpucache_* functions to fix a test_codec crash on coldfire, breaks plugin api compatibility so sorted and bumped version numbers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28287 a1c6a512-1295-4272-9138-f99709370657
2010-10-16 12:30:06 +00:00
Thomas Martitz
bf301fdbb6 Fix a few div0 cases forgotten in r27684 to enable enabling asm optimizations for android builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28235 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 14:43:40 +00:00
Rafaël Carré
a92d316972 fix test_codec broken after r27968
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27985 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 12:10:37 +00:00
Thomas Martitz
cae4ae2c71 Second try: Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also make exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex() introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases rb->default_event_handler_ex() was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27873 a1c6a512-1295-4272-9138-f99709370657
2010-08-24 14:30:46 +00:00
Thomas Martitz
93cb949372 Revert "Introduce plugin_crt0.c that every plugin links."
Too much errors and no time to fix them now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27863 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 17:12:26 +00:00
Thomas Martitz
abdc5935be Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also it makes exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases it was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27862 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 16:56:49 +00:00
Michael Giacomelli
35717ec06e Commit FS#11458 by me. Fixes test_codec to work on files larger then the available audio buffer. Allows test_codec to work normally on the AMS Sansas as well as D2, etc.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27303 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 00:11:30 +00:00
Rafaël Carré
5c50021b90 test_codec: allocate wavbuffer/dspbuffer dynamically
It'll build on targets with small plugin buffer, the buffer for each of
them will be a little smaller than 32kB. "should be enough"

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27050 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 10:43:50 +00:00
Rafaël Carré
7aee79162b test_codec: remove 2 static string buffers and put them on the stack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27049 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 10:43:45 +00:00
Rafaël Carré
34aac0e20d test_codec: fix DEBUGF pointer format specifier
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27040 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 06:58:17 +00:00
Thomas Martitz
35e8b1429a Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently).
The simulator defines PLATFORM_HOSTED, as RaaA will do (RaaA will not define SIMULATOR).
The new define is to (de-)select code to compile on hosted platforms generally.

Should be no functional change to targets or the simulator.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27019 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 16:53:00 +00:00
Nils Wallménius
10719ef649 test_codec: print crc's that start with 0 properly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26890 a1c6a512-1295-4272-9138-f99709370657
2010-06-17 15:27:42 +00:00
Rob Purchase
550ca6464a test_codec: close the log file before attempting to open a new one, and clear the button queue before displaying the menu a second time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26437 a1c6a512-1295-4272-9138-f99709370657
2010-05-31 21:07:25 +00:00
Thomas Martitz
0a1d7c28b7 Make open() posix compliant api-wise. A few calls (those with O_CREAT) need the additional optional mode parameter so add it. Impact for the core is almost zero, as open() is a wrapper macro for the real open function which doesn't take the variable parameter.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25844 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 17:35:13 +00:00
Thomas Martitz
c61e89c0ed Make creat() posix compliant API-wise. Shouldn't affect the core as it's wrapped via a static inline.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25843 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 17:35:04 +00:00
Nils Wallménius
d0a170c176 Use the same output func for wav writing and checksum calculation, simplifying the code and possibly speeding up checksum calculation slightly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25068 a1c6a512-1295-4272-9138-f99709370657
2010-03-08 12:08:29 +00:00
Szymon Dziok
7074a64d8a Packard Bell Vibe 500: Finish plugin keymaps. Rockbox compiles clean now for the target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24658 a1c6a512-1295-4272-9138-f99709370657
2010-02-14 21:56:53 +00:00
Tomer Shalev
47ddbaa47b Cowon D2: Rename COWOND2_PAD -> COWON_D2_PAD to match macro used in manual, and
to target naming conventions in general


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24010 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 20:51:41 +00:00
Nils Wallménius
4279c9f4aa Give test_codec the ability to checksum files or folders of files, usefull to verify output integrity.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23711 a1c6a512-1295-4272-9138-f99709370657
2009-11-22 18:48:07 +00:00
Jeffrey Goode
0db3308cb5 pcmbuf: bug fix with pcmbuf flush, code cleanup, added comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23608 a1c6a512-1295-4272-9138-f99709370657
2009-11-11 07:02:18 +00:00
Karl Kurbjun
26348fb9cb Test codec: Add exit button for touchscreens
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23563 a1c6a512-1295-4272-9138-f99709370657
2009-11-07 22:56:00 +00:00