Michael Sevakis
7ad2cad173
Commit work started in FS#12153 to put timing/position information in PCM
...
buffer chunks.
* Samples and position indication is closely associated with audio data
instead of compensating by a latency constant. Alleviates problems with
using the elapsed as a track indicator where it could be off by several
steps.
* Timing is accurate throughout track even if resampling for pitch shift,
whereas before it updated during transition latency at the normal 1:1 rate.
* Simpler PCM buffer with a constant chunk size, no linked lists.
In converting crossfade, a minor change was made to not change the WPS until
the fade-in of the incoming track, whereas before it would change upon the
start of the fade-out of the outgoing track possibly having the WPS change
with far too much lead time.
Codec changes are to set elapsed times *before* writing next PCM frame because
time and position data last set are saved in the next committed PCM chunk.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30366 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 07:45:35 +00:00
Andree Buschmann
e75018ad66
Fix several 'variable set but not used' warnings reported from GCC 4.6.0.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29805 a1c6a512-1295-4272-9138-f99709370657
2011-05-01 11:42:41 +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
85e40257dc
Enforce that codecs wait for their metadata in a proper-ish and consistent manner. Sort of a halfway patch; best would be to give them an internal copy of the current track information which lasts unaltered by playback until a track switch or unload.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29348 a1c6a512-1295-4272-9138-f99709370657
2011-02-20 15:27:10 +00:00
Rafaël Carré
fc243f8e55
aiff codec: small clean up
...
- Use printf format width specifier for printing codecs
- Use sizeof() to get the number of supported formats
- Avoid a useless comparison
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27571 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 08:59:21 +00:00
Yoshihisa Uchida
7a3822c8b0
fix bug: WAV file playback does not resume (FS#11077)
...
Not only WAV but also Sun audio, SMAF, vox and WAV64 can resume.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25289 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 10:02:05 +00:00
Yoshihisa Uchida
2a9c42d1ed
libpcm: output depth corrects for the sign 1bit. linear pcm corrects bits shift.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25131 a1c6a512-1295-4272-9138-f99709370657
2010-03-12 11:34:09 +00:00
Yoshihisa Uchida
f640b89a12
wave codec
...
- does not get dwAvgBytesPerSec
wave/aiff/smaf/wave64 codec
- corrects the problem that codec_main() returns invalid value.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25051 a1c6a512-1295-4272-9138-f99709370657
2010-03-07 07:15:21 +00:00
Yoshihisa Uchida
8050d47a4e
When seek action failed, play time is invalid.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25041 a1c6a512-1295-4272-9138-f99709370657
2010-03-06 08:13:56 +00:00
Yoshihisa Uchida
ff733b5f89
libpcm: decoded pcm depth corrects.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25040 a1c6a512-1295-4272-9138-f99709370657
2010-03-06 05:51:24 +00:00
Yoshihisa Uchida
aa58715a54
libpcm: deletes PCM_CHUNK_SIZE.
...
aiif.c/wav.c: deletes #include <inttypes.h>.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24877 a1c6a512-1295-4272-9138-f99709370657
2010-02-24 11:30:16 +00:00
Yoshihisa Uchida
3716abba92
commit FS#10424 and FS#10425
...
- wav(RIFF) supports Microsoft ADPCM, Dialogic OKI ADPCM, YAMAHA ADPCM, Adobe SWF ADPCM.
- AIFF supports QuickTime IMA ADPCM.
- DVI ADPCM(IMA ADPCM) reworks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24782 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 02:04:56 +00:00
Michael Giacomelli
e04e2938e7
Commit FS#10423 by Yoshihisa Uchida. Adds support for floating point PCM to libpcm.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24348 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 18:10:08 +00:00
Michael Giacomelli
4de4a3fa1c
Fix warnings on 32 bit sim.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24347 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 18:05:28 +00:00
Michael Giacomelli
c9183bf15e
Commit FS#10422 by Yoshihisa Uchida. Seperates WAV and AIFF parsing from PCM decoding by introducing libpcm, a library for decoding linear and non-uniform PCM independently of the container format.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24346 a1c6a512-1295-4272-9138-f99709370657
2010-01-27 17:25:10 +00:00
Björn Stenberg
6427d127aa
Calculate watermark from bitrate and harddisk spinup time.
...
Use a smaller PCM buffer on targets with 2MB or less ram.
(FS#9703)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19743 a1c6a512-1295-4272-9138-f99709370657
2009-01-10 21:10:56 +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
Magnus Holmgren
87842ca0e7
Change to (or add) 'standard' codec startup delay, fixing potential startup problems for APE and MPC files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16410 a1c6a512-1295-4272-9138-f99709370657
2008-02-24 19:12:15 +00:00
Brandon Low
3379440a4b
Remove conf_filechunk, it should never have been a setting and its implementation doesn't do what it claims any way
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15478 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 17:48:21 +00:00
Jens Arnold
27b4a64f9b
AIFF COMM chunks might be larger than 18 bytes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13249 a1c6a512-1295-4272-9138-f99709370657
2007-04-23 23:11:33 +00:00
Jens Arnold
bd5c0ad7bb
Cast some more to keep both 32 bit and 64 bit simulator platforms happy.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12819 a1c6a512-1295-4272-9138-f99709370657
2007-03-17 10:50:58 +00:00
Jens Arnold
f68362ad6f
Fix simulator builds, and some debugf() format strings.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12817 a1c6a512-1295-4272-9138-f99709370657
2007-03-17 09:54:28 +00:00
Michael Sevakis
9b9e22731c
SWCODEC: Fix the problem of replaygain not being applied unless the menu is entered. Make all codecs set the replay gain or else formats that do not have replaygain will not set the gain back to default if a file with gain applied proceeded them.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12498 a1c6a512-1295-4272-9138-f99709370657
2007-02-26 17:15:04 +00:00
Michael Sevakis
97f369a587
SWCODEC: Annoying neatness update. Use intptr_t for codec_configure_callback and dsp_configure and stop all the silly type casting of intergral types to pointers to set dsp configuration and watermarks. Shouldn't have any effect on already compiled codecs at all. Will fix any important patches in the tracker so they compile.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12259 a1c6a512-1295-4272-9138-f99709370657
2007-02-10 16:34:16 +00:00
Michael Sevakis
aba6ca0881
Fix resampling clicking as much as possible at the moment. 1) Upsampling clicked because of size inaccuracies returned by DSP. Fix by simplifying audio system to use per-channel sample count from codec to pcm buffer. 2) Downsampling affected by 1) and was often starting passed the end of the data when not enough was available to generate an output sample. Fix by clamping input range to last sample in buffer and using the last sample value in the buffer. A perfect fix will require a double buffering scheme on the resampler to sufficient data during small data transients on both ends at all times of the down ratio on input and the up ratio on output.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12218 a1c6a512-1295-4272-9138-f99709370657
2007-02-07 00:51:50 +00:00
Tomasz Malesinski
80da8b141c
FS#6357, patch 1: let iramcopy and bss share the same space in codecs and
...
plugins. Currently, in case of plugins using IRAM bss is cleared twice,
once in the loader, once in PLUGIN_IRAM_INIT. For codecs, bss is cleared only
during codec initialization. Also, removed double variables in codecs
storing a pointer to codec_api.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11606 a1c6a512-1295-4272-9138-f99709370657
2006-11-26 18:31:41 +00:00
Michael Sevakis
bbef13eddf
SWCODEC: Stop clicks between tracks when resampler is active by only switching the DSP frequency and not resetting the resampler at track boundaries. Will make sure DSP is correctly flushed at dicontinuities but don't hear any problems currently.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11600 a1c6a512-1295-4272-9138-f99709370657
2006-11-26 12:02:47 +00:00
Michael Sevakis
cee9d3b47b
Fixed header parsing in AIFF. The minimum header size is 54 bytes for an audio file. SSND chunk block_size and offset are 32-bit values, not 16-bit; this bug would probably never even matter since most sound data isn't block aligned.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11596 a1c6a512-1295-4272-9138-f99709370657
2006-11-25 21:27:46 +00:00
Thom Johansen
354770088e
Re-enable the currently unused and broken dithering and noise shaping code already in Rockbox, and make it a user option instead of a codec-controlled option. The majority of people probably will not even hear any difference with this enabled, but feedback is welcome. Save your settings!
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11368 a1c6a512-1295-4272-9138-f99709370657
2006-10-27 20:41:33 +00:00
Brandon Low
f3bc1efc49
First commit of reworking voice to be mroe stable on swcodec
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9758 a1c6a512-1295-4272-9138-f99709370657
2006-04-22 14:40:13 +00:00
Brandon Low
ebadcc633a
Put new_track on the codec_api, and use it instead of the reload_codec variable in most places. Should help with problems people have had with GUI vs. playback sync.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9670 a1c6a512-1295-4272-9138-f99709370657
2006-04-15 02:03:11 +00:00
Brandon Low
c76904be53
Fix warnings
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9230 a1c6a512-1295-4272-9138-f99709370657
2006-03-24 14:02:27 +00:00
Thom Johansen
d8eaefe29a
Code policed. Converted to generate internal s3.28 format directly (next
...
task is removing use of interleaved audio). Fixed broken handling of 8
bit files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9135 a1c6a512-1295-4272-9138-f99709370657
2006-03-20 20:19:40 +00:00
Linus Nielsen Feltzing
f5f000fe03
Minor code policing
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8525 a1c6a512-1295-4272-9138-f99709370657
2006-02-01 17:58:10 +00:00
Dave Chapman
fbd8e5d29c
Patch #1421483 - AIFF codec by Jvo Studer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8524 a1c6a512-1295-4272-9138-f99709370657
2006-02-01 16:42:02 +00:00