summaryrefslogtreecommitdiff
path: root/apps/codecs (follow)
Commit message (Collapse)AuthorAge
...
* Clean up speex a bit after the playback changes in r29785. Haven't found any ↵Michael Sevakis2011-05-01
| | | | | | idiosyncracies not present before then. Fix it always returning CODEC_ERROR even when exiting codec_run normally. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29804 a1c6a512-1295-4272-9138-f99709370657
* Remove unneeded update of ci->id3->frequency in aac and raac codec.Andree Buschmann2011-04-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29794 a1c6a512-1295-4272-9138-f99709370657
* Get the NSF internal playlists working again. Fix a few wrongdoings in the ↵Michael Sevakis2011-04-28
| | | | | | metadata parser. Use the larger of track or playlist count to determine 'duration' so that the repeat-one switching to access the raw tracks works. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29793 a1c6a512-1295-4272-9138-f99709370657
* Fix compiler warnings ('variable set ut not used') with GCC 4.6.0.Andree Buschmann2011-04-27
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29792 a1c6a512-1295-4272-9138-f99709370657
* Get NSF fixed up a bit and parse metadata in the core.Michael Sevakis2011-04-27
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29790 a1c6a512-1295-4272-9138-f99709370657
* Having a default weak codec_main symbol doesn't seem to be working out for ↵Michael Sevakis2011-04-27
| | | | | | compiling the sim under cygwin in at least some cases. Just implement it explicitly in all cases. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29789 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#12069 - Playback rework - first stages. Gives as thorough as ↵Michael Sevakis2011-04-27
| | | | | | 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
* Submit FS#12081. Check validity of channel configuration, comment unneeded ↵Andree Buschmann2011-04-26
| | | | | | code that is too inflexible to work with MAX_CHANNELS = 2. Fixes compiler warnings with GCC 4.6.0. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29784 a1c6a512-1295-4272-9138-f99709370657
* Rework of libfaad in several areas. Allow removal of malloc with a new ↵Andree Buschmann2011-04-24
| | | | | | define FAAD_STATIC_ALLOC (in common.h). For now malloc is not fully removed but used by a few arrays needed for AAC-HE SBR+PS only. Reason to keep malloc is to have this amount of memory available for AAC-LC files which might require large m4a tables. The changes make the allocation routines much smaller, better centralized and allow to move duplicated code from aac.c/raa.c to libfaad. The rework includes removal of (now and former) unused code as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29778 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow.Andree Buschmann2011-04-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29777 a1c6a512-1295-4272-9138-f99709370657
* Use dedicated function to internally reset aac decoder synthesis after seek.Andree Buschmann2011-04-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29775 a1c6a512-1295-4272-9138-f99709370657
* Ensure proper termination of m4a lookup table.Andree Buschmann2011-04-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29774 a1c6a512-1295-4272-9138-f99709370657
* Clean up array sizes in the SBR + PS part of libfaad. Add MAX_NTSRPS (=38), ↵Andree Buschmann2011-04-24
| | | | | | use MAX_NTSR and MAX_NTSRHFG at the right places. RAM (IRAM) usage is reduced by 2 KB. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29773 a1c6a512-1295-4272-9138-f99709370657
* get_sample_info() has been removed.Andree Buschmann2011-04-23
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29771 a1c6a512-1295-4272-9138-f99709370657
* Minor speed optimization to m4a lookup table build up.Andree Buschmann2011-04-23
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29770 a1c6a512-1295-4272-9138-f99709370657
* Optimization to latest aac decoder changes. Significantly reduce loop count ↵Andree Buschmann2011-04-19
| | | | | | in m4a_check_sample_offset() during standard playback. Before this change the loop count increased with each decoded chunk and for each frame. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29750 a1c6a512-1295-4272-9138-f99709370657
* Major rework of the m4a parser for aac/alac playback, seek and resume ↵Andree Buschmann2011-04-18
| | | | | | support. As a result the memory consumption was drastically reduced. This allows to play several files with long duration -- especially on low memory targets. The change builds a lookup table from m4a's sample_to_chunk[] and chunk_offset[] and completely removes the allocation of the large tables chunk_offset[] and sample_byte_size[]. To be able to remove reading and allocating sample_byte_offset[] the aac and alac decoder now buffer a fixed amount of bytes for each frame. The generated lookup table is used for seek/resume and skipping bytes in empty chunks (aac decoder only). The precision for seek/resume is somewhat lower but still equals 0.5 sec for the worst case. Fixes FS#8923. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29745 a1c6a512-1295-4272-9138-f99709370657
* Refactor aac decoder as preparation for upcoming m4a changes. The aac ↵Andree Buschmann2011-04-16
| | | | | | decoder does not need to use get_sample_info() to gather frame size or the number of consumed bytes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29727 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow.Andree Buschmann2011-04-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29725 a1c6a512-1295-4272-9138-f99709370657
* Refactor alac decoder as preparation for upcoming m4a changes. The alac ↵Andree Buschmann2011-04-16
| | | | | | decoder does not need to use get_sample_info() to gather frame size or the number of consumed bytes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29724 a1c6a512-1295-4272-9138-f99709370657
* Headroom in AAC SBR HF-generator's fixed point implementation of ↵Andree Buschmann2011-03-20
| | | | | | autocorrelation was too small. Fixes FS#12019. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29622 a1c6a512-1295-4272-9138-f99709370657
* FS#12014 by Huan Zhang fixing some link errors with a recent mips toolchain.Nils Wallménius2011-03-19
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29615 a1c6a512-1295-4272-9138-f99709370657
* Purge buffer and codec APIs existing exclusively in support of mpa.codec and ↵Michael Sevakis2011-03-16
| | | | | | fix that to not require them: buf_get_offset and ci.advance_buffer_loc. Sort APIs; everything must become incompatible. :( git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29595 a1c6a512-1295-4272-9138-f99709370657
* Merge functionality of wakeups and semaphores-- fewer APIs and object types. ↵Michael Sevakis2011-03-02
| | | | | | semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
* r29348 changes can cause certain codecs to jump to code on early track ↵Michael Sevakis2011-03-02
| | | | | | change that assumes initializations have been done. Make sure that track change cleanups are only called if the state is sane to do so. Stops my vorbis data abort issue. Correctness for speex is a guess based on the library calls' source. It appears only speex/vorbis should have been bothered by said revision. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29489 a1c6a512-1295-4272-9138-f99709370657
* Give playback engine better control over the codec. Codec simply follows ↵Michael Sevakis2011-02-23
| | | | | | 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
* Enforce that codecs wait for their metadata in a proper-ish and consistent ↵Michael Sevakis2011-02-20
| | | | | | 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
* Fix standalone demac tool build.Jens Arnold2011-02-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29239 a1c6a512-1295-4272-9138-f99709370657
* Use the very large IRAM of S5L870x to speed up AAC-HE by ~1-5%.Andree Buschmann2011-02-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29212 a1c6a512-1295-4272-9138-f99709370657
* Use MEM_ALIGN_ATTR in libfaad. Remove global array and re-use existing one.Andree Buschmann2011-02-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29211 a1c6a512-1295-4272-9138-f99709370657
* Speed up AAC-HE SBR by 2% on S5L8701. Use MEM_ALIGN on critical arrays and ↵Andree Buschmann2011-02-05
| | | | | | avoid stalls in asm code. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29209 a1c6a512-1295-4272-9138-f99709370657
* Fix #11897 - Multiple 'divide by zero' while playing particular APE on ↵Michael Sevakis2011-02-05
| | | | | | Clip+. Problem and solution observed and checked on Gigabeat S by myself. Fix submitted by Mikhail Titov resolves it. range_decode_short was declared as returing 'int short' rather than 'unsigned short' resulting in unwanted sign extension. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29208 a1c6a512-1295-4272-9138-f99709370657
* Correctly re-initialize wma decoder on next track. This fixes strange ↵Andree Buschmann2011-02-03
| | | | | | observed issues (noise, crashes) which only could be solved through re-entering the wma codec. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29202 a1c6a512-1295-4272-9138-f99709370657
* Submit FS#11918: Add 2 more codec types to be able to differentiate between ↵Andree Buschmann2011-02-03
| | | | | | AAC / AAC-HE and MPC SV7 / SV8. Additionally handle ATARI soundfiles in get_codec_base_type() as intended. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29199 a1c6a512-1295-4272-9138-f99709370657
* Find a more consistent and resilient way to handle SBR upsampled files. The ↵Andree Buschmann2011-02-02
| | | | | | detection is only done in one place (the metadata parser) and takes into account that the m4a header might already report corrected frame/sample sizes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29188 a1c6a512-1295-4272-9138-f99709370657
* Recognize AAC-HE SBR with upsampling and correct duration, bitrate, seek and ↵Andree Buschmann2011-02-02
| | | | | | resume behaviour for such files. When SBR upsampling is used the decoder outputs the double amount of samples per frame. As the seek and resume functions do not know about this fact a special handling is introduced. Fixes issues reported in FS#11916. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29186 a1c6a512-1295-4272-9138-f99709370657
* Add a safety check in the resume seek code, just in case.Magnus Holmgren2011-02-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29181 a1c6a512-1295-4272-9138-f99709370657
* We seeked one chunk too far when resuming m4a files.Andree Buschmann2011-02-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29180 a1c6a512-1295-4272-9138-f99709370657
* Rework m4a seek/resume code. Seek/resume does now also work properly with ↵Andree Buschmann2011-01-31
| | | | | | files having sample_to_chunk of 1 or 2. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29178 a1c6a512-1295-4272-9138-f99709370657
* Fix resume for m4a files. Solves FS#9306.Andree Buschmann2011-01-31
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29175 a1c6a512-1295-4272-9138-f99709370657
* Use __builtin_constant_p() to select the best byteswapping method: constant ↵Michael Sevakis2011-01-30
| | | | | | or target optimized. Same macro can then be used for constant values and inits as well as non-constant. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29171 a1c6a512-1295-4272-9138-f99709370657
* SPC Codec: AS3525 targets should be fast enough for realtime BRR decode and ↵Michael Sevakis2011-01-19
| | | | | | echo. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29089 a1c6a512-1295-4272-9138-f99709370657
* Switch coldfire builds over to new toolchain using gcc 4.5.2 and binutils 2.20.1Nils Wallménius2011-01-12
| | | | | | | Retune codec compiler optimizations with new compiler. Overall speedup with aac and flac getting big speedups. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29042 a1c6a512-1295-4272-9138-f99709370657
* Redo r28026 so that all .S files get the __ASSEMBLER__ define.Thomas Martitz2010-12-27
| | | | | | Patch by Thomas Jarosch. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28913 a1c6a512-1295-4272-9138-f99709370657
* Fix profiling on coldfire with newer Gcc.Nils Wallménius2010-12-27
| | | | | | | | In switch_thread, make the call to profile_thread_stopped from an inline asm block to make sure the sp is pointing to the right place before storing the context. This apparently worked by luck with the old Gcc. The workaround used for coldfire in the codeclib's __cyg_profile_func_enter does not work with newer gcc, however the workaround isn't needed for those so enable it only for coldfire gcc version < 4. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28908 a1c6a512-1295-4272-9138-f99709370657
* Add stdio.h include for SEEK_SET define to various files.Thomas Martitz2010-12-25
| | | | | | Patch by Thomas Jarosch. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28892 a1c6a512-1295-4272-9138-f99709370657
* SPC Codec: Was broken on ARMv6 since EABI switch and somehow I failed to ↵Michael Sevakis2010-12-23
| | | | | | notice in the first place (and so did eveyone else it seems :). Some early-clobber constraints were needed on inline assemebly operands. In some places, they aren't necessary where they were used, so remove those. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28880 a1c6a512-1295-4272-9138-f99709370657
* libwavpack: put some lookup tables in iram, speedup of 8-10% on coldfire (h300).Nils Wallménius2010-12-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28873 a1c6a512-1295-4272-9138-f99709370657
* aac: put two local structs on the stack as they are small and the codec uses ↵Nils Wallménius2010-12-21
| | | | | | little stack anyway ( < 20% on h300) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28872 a1c6a512-1295-4272-9138-f99709370657
* Add a newline to a debugf printing an error.Nils Wallménius2010-12-15
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28838 a1c6a512-1295-4272-9138-f99709370657