summaryrefslogtreecommitdiffstats
path: root/lib/rbcodec/codecs
AgeCommit message (Collapse)AuthorFilesLines
8 daysrbcodec: Fix typo in makefileAidan MacDonald1-1/+1
Hopefully this will fix all those random build failures. Change-Id: I02ff625c538a21f20b33874b4ab54ed8c893a433
2021-07-15misc: Fix up a few warnings uncovered by LTOSolomon Peachy3-17/+14
* direct use of memcpy() instead of ci->memcpy() in flac and mod * uninitialized variable in mpegplayer Change-Id: I2d08682d5f66c319780e69e3ff63d600c61d8f5a
2021-07-08build: Nuke the ASMFLAGS workaround for gcc 3.4.xSolomon Peachy3-5/+5
Change-Id: I0f21e9539d39afd54916fa8d84ce798eef474a2c
2021-07-08build: Rename SHARED_LDFLAG to SHARED_LDFLAGSSolomon Peachy1-1/+1
Change-Id: Icb81c72fbcfcdad624112a386ba38a40a830d18f
2021-04-23Sync opus codec to upstream gitWilliam Wilgus286-1274/+48927
Change-Id: I0cfcc0005c4ad7bfbb1aaf454188ce70fb043dc1
2021-04-06rbcodec: Fix typo in include guardamachronic1-1/+1
Change-Id: I503ace58fb46e803c66b92113d2be7daebeb8b71
2021-03-04Clean up places that use #if defined(CPU_ARM | CPU_COLDFIRE | CPU_MIPS)Solomon Peachy2-7/+7
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
2021-03-03flac fix dumb typoWilliam Wilgus1-1/+1
Change-Id: Ic6269ca35374bcb1d6a5ad2c1848a1718fa4e01c
2021-03-02Nudge flac towards upstream FS#13266 -- Fix the Yellow still?William Wilgus1-4/+4
Change-Id: I76056b1a682db055857d759d2ebffae111a8a4c0
2021-03-02Nudge flac towards upstream FS#13266 -- Fix YellowWilliam Wilgus1-4/+4
unused variables Change-Id: I69e1435941da6207c75d0f3cb862dee296a5cc1a
2021-03-02Nudge flac towards upstream FS#13266William Wilgus3-138/+198
Some flac encoded files contain junk that our decoder picked up upstream has some sign and overflow fixes too Change-Id: I5857b2fe56906a48f04944cdfee8fe2306f2c3fd
2021-02-28Support MP3 audiostreams embedded in ASF containers.Solomon Peachy3-22/+143
Full credit to Igor Poretsky Change-Id: I54769e33665cada1e1e0ef3a5511b56c8e1b859a
2020-10-28libgme: Fix yellow in hosted MIPS buildsSolomon Peachy1-0/+1
Change-Id: I6d25c014cc519ddc5d1619c25d48331f512c2f2f
2020-10-28wmapro: Backport multiple fixesSolomon Peachy1-39/+91
upstream commits: 780d454 b28c678 9166f48 97a5add b21ba20 f734671 b86dd1 b4027d9 50f0a6b 4c0080b c7a7605 5dcb990 7ad698e Change-Id: I8e6d74316e1eaf22217a57ddb54c1ea8303e6788
2020-10-13Build: Bump all toolchains to GCC 4.9.4 + Binutils 2.26.1Solomon Peachy1-0/+1
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
2020-10-09codecs: Add support for the 'VTX' ZX Spectrum chiptunes format.Solomon Peachy11-0/+1438
This codec requires floating point. Original author: Peter Sovietov Ported to Rockbox: Roman Skylarov Further integration and bugfixes: Solomon Peachy Change-Id: I781ecd3592dfcdbbc694063334350342534f1d6c
2020-07-24[3/4] Completely remove HWCODEC supportSolomon Peachy2-8/+5
'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
2020-07-15Add support for ID3 tags embedded in AIFF filesMoshe Piekarski1-0/+4
Change-Id: I15eb50b6ba1c26052f08e01861f47faede3b9b3b
2020-07-15opus: shrink stack usage by nearly 700 bytesSolomon Peachy1-28/+33
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
2020-07-03Fix logf warnings in more codecsMoshe Piekarski2-6/+7
Change-Id: I7e83a9979aedadf3b7c2b162a8202efdc6227e88
2020-06-28Fix logf build warnings in speex codecMoshe Piekarski1-10/+11
Change-Id: I8ce9473c98f863cc53273c16b2e55321d7b0795a
2020-04-15libedemac: ARMv7 asm code is for NEON-equipped processors onlySolomon Peachy1-1/+1
Change-Id: Ief36c70b47ec25932651a146051a29224bdd2a0b
2020-03-28sid: Fix an out-of-bounds read in the channel mixing codeSolomon Peachy1-1/+0
Change-Id: Ie25b8ab90193e6bb580cd7c04f8c0ce281f7a301
2019-08-14opus reset decoder on seek completion to prevent stack overflowWilliam Wilgus1-0/+3
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
2019-07-31FS#11052 -- SID Playback in StereoSolomon Peachy1-109/+120
Original patch by Stefan Waigand Updated by Igor Poretsky Change-Id: Icaf7beb8349ab90e21b94baee627c9412cb2b55d
2019-07-25fixed alac_set_info() issues.aozima1-1/+1
2019-01-25opus fix playback opustag skippingWilliam Wilgus1-7/+7
Change-Id: I9ec35e276e24ec7b5a2e1199d6264d9f2d5d9fc2
2019-01-25opus fix comment skipping codeWilliam Wilgus1-1/+29
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
2019-01-23opus optimize playback functionWilliam Wilgus1-74/+54
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
2019-01-04Fix Opus FS#13133 - Files with embedded artwork 45.8KiB+ skip near beginningWilliam Wilgus1-2/+27
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
2018-12-28Third attempt to shut up the warble build printf() warning.Solomon Peachy1-1/+1
(resorting to an explicit cast this time) Change-Id: Ib5fc7bcd9e573cd32fc4372003c6c5429e339652
2018-12-28Another attempt to silence the warble build warning on 32-bit hostsSolomon Peachy1-1/+1
Change-Id: Ib83ce41582b18641badb389c3871e501c8be697f
2018-12-25build: Put all codec optiomization definitions in one placeSolomon Peachy5-39/+14
It was already mostly there. Change-Id: I24ff278d9bf18a54be4b67c3075d5ebbe7947f65
2018-12-24Hopefully silence the warning in the warble codec build.Solomon Peachy1-4/+4
Change-Id: I63eef2c33bf3ea31a135cd6336882b600723f946
2018-12-22AAC bitstream format files supportSolomon Peachy3-0/+159
Files with extension "aac" in ADTS or ADIF format are now playable. Full credit goes to Igor Poretsky. Change-Id: I413b34e15e5242fea60d3461966ae0984080f530
2018-12-22Realmedia related codecs fixes and enhancementsSolomon Peachy6-118/+255
* More tolerance to the file format variations. * AC3 coded files in realaudio format are now playable Full credit to Igor Poretsky Change-Id: Id24e94bc00623e89fb8c80403efa92f69ab1e5d7
2018-12-22Improved seeking in a52 codecSolomon Peachy1-9/+28
(Patch by Igor Poretsky) Change-Id: I0cdc2021b44f6cd6e76def190d9f04733b922454
2018-12-08Fix speex warning lsp.c->lsp_to_lpcWilliam Wilgus1-1/+1
I'm pretty sure this was a false positive Change-Id: I0ab375d1d844b3d468c24888c371f588052e1ce9
2018-10-29codecs: Fix elapsed time calculation for large filesSolomon Peachy7-17/+15
In particular, this solves seeking glitches seen in ~6 hr mp3 files. (Patch taken from Igor Poretsky's tree) Change-Id: Id65b6726146b6d2d1a223e90b88e401d1b2d597a
2018-09-02libmad: Back out a change that disabled optimization for libmad.Solomon Peachy1-2/+1
(Caused non-realtime playback on mips..) Change-Id: I878229e16e31d49156f1ae71ab9c7bb627e4c17b
2018-07-30iPod Classic: disable IRAM1Cástor Muñoz7-15/+18
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
2018-06-12Agptek Rocker: Initial commitMarcin Bukat1-1/+2
Change-Id: I26b51106c7b1c36a603fba6d521e917d79b5a95b
2017-12-07Remove explicit 'enum codec_command_action' in codec APIMichael Sevakis44-46/+50
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
2017-11-06libpcm: Get unbranded structure tag out of my way.Michael Sevakis16-36/+36
No functional changes. Change-Id: If372023cb605389a203a635b700eca20685ad49b
2017-09-17fix warning in vorbisAmaury Pouly1-1/+4
Change-Id: I01dd320ac7f4641caaef62363556ca7527dbee19
2017-02-04Fix dangerous castsAmaury Pouly2-4/+4
On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is not valid. In any case, one should use intptr_t and ptrdiff_t when casting to integers. This commit attempts to fix all instances reported by GCC. When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h Change-Id: I2273b0e8465d3c4689824717ed5afa5ed238a2dc
2017-01-15Fix codecs in simulator builds on WindowsAmaury Pouly3-2/+5
The mingw linker uses strlen() in some cases, and codeclib.c redefines it, that leads to mingw runtime init to call into our strlen() and then ci->strlen() which of course crashes. Apply the same fix as for malloc and friends: rename the symbol. The codeclib.h include is necessary for normal builds. Change-Id: Ifa85901a3e4a31cc0e10b4b905df348a239d5c99
2016-12-03Fix DEBUG build codecsAmaury Pouly1-1/+0
In DEBUG build, the codec API struct is consider with DEBUG flag in apps/ but without DEBUG flah in rbcodecs/, leading to unmatched structure and horrible crashes in some cases (mostly encoders). I have no idea why the codecs Makefile removes the DEBUG flag (maybe for performance reasons?) but it cannot be right. Change-Id: Idb2c5f66741408ec2939624590fc39c4cf69fc2b
2016-09-07Opus: update resume offset correctly while playing.Adam Sampson1-0/+1
The codec wasn't calling ci->set_offset() while decoding; as a result, the saved offset in ci.id3->offset was only updated at the start of the file and when seeking. To reproduce the problem in the simulator or on a real device: - Start playing an Opus file. - Let it play until 15s, then turn the player off. - Turn back on and resume playback. This'll resume correctly from 15s (using time-based resume, I think, as the offset was 0?). - Let it play until 30s, then turn the player off again. - Turn back on and resume playback. This'll resume from 15s, based on the initial position from last time, when it should resume from 30s. I believe this will also fix FS#12799 ("Resuming opus file from bookmark is not working correctly"). Change-Id: Iba67368e0029c968ef802693767e0722719bc38b
2016-05-28Fix race conditions in parallel build.Frank Gevaerts2-2/+0
ffmpeg_bitstream.c is included in libcodec, so there doesn't seem to be any reason for individual codecs to also compile it (and clobber any previous copy while they're at it, leading to broken builds) Change-Id: I2bedc277ab109f44a6e8feb3d12ed01a720e00a6