summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer (follow)
Commit message (Collapse)AuthorAge
* New crossfeed algorithm for Rockbox: "Meier" crossfeedBertrik Sikken2012-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emulates the basic "Meier" crossfeed (2 capacitors, 3 resistors) as discussed in http://www.meier-audio.homepage.t-online.de/passivefilter.htm This crossfeed blends a bit of low-pass filtered L signal into the R signal (and vice versa) while adding about 300 us delay to the crossfed-signal. A difference with the crossfeed already present in rockbox, is that this algorithm keeps the total spectrum flat (the one currently in rockbox accentuates low-frequency signals, making it sound a bit muffled). This implementation is quite lightweight, just 3 multiplies per left-right pair of samples. Has a default C implementation and optimized assembly versions for ARM and Coldfire. The crossfeed effect is quite subtle and is noticeable mostly one albums that have very strong left-right separation (e.g. one instrument only on the left, another only on the right). In the user interface, the new crossfeed option appears as "Meier" and is not configureable. The existing crossfeed is renamed to "Custom" as it allows itself to be customised. There is no entry for the user manual yet. Change-Id: Iaa100616fe0fcd7e16f08cdb9a7f41501973eee1
* Rename HAVE_PITCHSCREEN to HAVE_PITCHCONTROLNils Wallménius2012-05-09
| | | | | | | | Also move the definition to config.h Change-Id: I36bb5020c5e06b2344292bc05e8c13ccc7a6a1ff Reviewed-on: http://gerrit.rockbox.org/234 Reviewed-by: Nils Wallménius <nils@rockbox.org>
* Don't reinvent ctype.h functionsNils Wallménius2012-05-07
| | | | | | | Remove ctype.h functions in text_editor and rockboy, fix #define name clash in mpegplayer. Change-Id: Icb40cf45e27b793c62cb095197757a27f508f344
* Fundamentally rewrite much of the audio DSP.Michael Sevakis2012-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* MPEGPlayer: Fixup typecasting for PCM buffer a bit.Michael Sevakis2012-04-26
| | | | Change-Id: I96cca97c1effe5fe2cf84271b123928ebe38e2a7
* hm801: Add support for plugins.Andrew Ryabinin2012-04-19
| | | | Change-Id: I81654db87d38324d8680a56bcdb7e9922ee5b619
* hm60x: Add support for plugins.Andrew Ryabinin2012-04-19
| | | | Change-Id: I4cad0881c8249f163680a280f70d1a0b36248da8
* Correct actionable offense for misappropriation of action context.Michael Sevakis2012-03-03
| | | | | | | Just use a bool to indicate raw button instead of action code. No bother with plugin version yet again so soon. Change-Id: I4aa075c0c1fb5308c9d49bebb30ac76f671b2335
* Change keyclick_click so that it may accept raw buttons or actions.Michael Sevakis2012-03-03
| | | | | | | | Adds a new context, CONTEXT_RAWBUTTON, that I hope is out of the way of everything. Unfortunately have to increment min plugin API version for the second time today to accomodate additional parameter. Change-Id: Iaa46b926e57cf377fd4906f2d42bb98e87215033
* Revise the PCM callback system after adding multichannel audio.Michael Sevakis2012-03-03
| | | | | | | | | | | | | | | | | | Additional status callback is added to pcm_play/rec_data instead of using a special function to set it. Status includes DMA error reporting to the status callback. Playback and recording callback become more alike except playback uses "const void **addr" (because the data should not be altered) and recording uses "void **addr". "const" is put in place throughout where appropriate. Most changes are fairly trivial. One that should be checked in particular because it isn't so much is telechips, if anyone cares to bother. PP5002 is not so trivial either but that tested as working. Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2 Reviewed-on: http://gerrit.rockbox.org/166 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
* Initial commit of the Samsung YP-R0 port.Thomas Martitz2011-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Commit to certain names for cache coherency APIs and discard the aliases.Michael Sevakis2011-12-17
| | | | | | | Wouldn't surprise me a bit to get some non-green. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31339 a1c6a512-1295-4272-9138-f99709370657
* Sandisk Sansa Connect port (FS #12363)Tomasz Moń2011-11-16
| | | | | | | | Included are drivers for buttons, backlight, lcd, audio and storage. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31000 a1c6a512-1295-4272-9138-f99709370657
* fix redRafaël Carré2011-10-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30740 a1c6a512-1295-4272-9138-f99709370657
* mpegplayer sync_audio_setting(): simplify / clarifyRafaël Carré2011-10-10
| | | | | | fix fuze+ yellow git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30739 a1c6a512-1295-4272-9138-f99709370657
* fuze+°: add mpeg keymapAmaury Pouly2011-10-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30698 a1c6a512-1295-4272-9138-f99709370657
* MIPS uses GCC 4.1.2 which was wrongly detected as supporting ↵Andree Buschmann2011-09-08
| | | | | | '-fgnu89-inline'. Now only set this parameter if GCCNUM > 401. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30471 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#12261. Only set '-fgnu89-inline' if GCC >= 4.1.3 is used.Andree Buschmann2011-09-07
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30467 a1c6a512-1295-4272-9138-f99709370657
* Do not set '-fgnu89-inline' for MIPS targets.Andree Buschmann2011-09-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30421 a1c6a512-1295-4272-9138-f99709370657
* FS#12256: Use '-fgnu89-inline' for mpegplayer and doom. Resolves compiler ↵Andree Buschmann2011-09-03
| | | | | | warnings when using mingw32. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30420 a1c6a512-1295-4272-9138-f99709370657
* GSoC/Buflib: Enable compaction in buflib.Thomas Martitz2011-08-30
| | | | | | | | | | | | | | | | | | | This enables the ability to allocate (and free) memory dynamically without fragmentation, through compaction. This means allocations can move and fragmentation be reduced. Most changes are preparing Rockbox for this, which many times means adding a move callback which can temporarily disable movement when the corresponding code is in a critical section. For now, the audio buffer allocation has a central role, because it's the one having allocated most. This buffer is able to shrink itself, for which it needs to stop playback for a very short moment. For this, audio_buffer_available() returns the size of the audio buffer which can possibly be used by other allocations because the audio buffer can shrink. lastfm scrobbling and timestretch can now be toggled at runtime without requiring a reboot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
* Cleanup tree.c cache handling a bit.Thomas Martitz2011-08-03
| | | | | | | | * Rename stuff to not re-use the term dircache * Move cache to own struct * Encapsulate retrieving entries a bit git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30242 a1c6a512-1295-4272-9138-f99709370657
* Have mpegplayer use the mixer (the playback channel, since it's mutually ↵Michael Sevakis2011-07-08
| | | | | | exclusive to audio playback) so the clicks and skip beep can be used according to user settings. Introduce some system sound functions to make easier playing event sounds from various places and convert files calling 'beep_play' to use 'system_sound_play' and 'keyclick_click'. Event sound could be become themeable. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30130 a1c6a512-1295-4272-9138-f99709370657
* mpegplayer: Adapt to new pause_rewind setting and apply it for allMichael Hohmuth2011-05-13
| | | | | | kinds of pause, not just pause on headphone unplug. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29878 a1c6a512-1295-4272-9138-f99709370657
* Fix a bunch of 'variable set but not used' warnings reported from GCC 4.6.0.Andree Buschmann2011-05-08
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29841 a1c6a512-1295-4272-9138-f99709370657
* Anti-Aliased Fonts support.Thomas Martitz2011-03-05
| | | | | | | | | | | | | This enables Rockbox to render anti-aliased fonts using an alpha blending method. The input font bitmaps are 4bit, i.e. 4x larger, but the metadata size stays the same. A tool, convttf, for converting ttf fonts directly to the Rockbox fnt format is provided. It has a useful help output, but the parameter that works best is -c1 or -c2 (2 for larger font sizes). Flyspray: FS#8961 Author: Initial work by Jonas Hurrelmann, further work by Fred Bauer, Andrew Mahone, Teruaki Kawashima and myself. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29523 a1c6a512-1295-4272-9138-f99709370657
* Change the thread api a bit.Thomas Martitz2011-03-05
| | | | | | | * Remove THREAD_ID_CURRENT macro in favor of a thread_self() function, this allows thread functions to be simpler. * thread_self_entry() shortcut for kernel.c. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29521 a1c6a512-1295-4272-9138-f99709370657
* mpegplayer: Move libmpeg2 files into their own subdirectory so things are ↵Michael Sevakis2011-02-22
| | | | | | less cluttered. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29381 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Try out a different frame drop scheme meant to skip in a more ↵Michael Sevakis2011-02-03
| | | | | | uniform way rather than running up late and jumping forward; will often drop more in long term to keep up in short term. Some other obscure fixes included: wait for 2 ref pics before decoding B-pics again after P or I frame drop or seeking (issue with open GOPs); draw the frame the decoder already has when beginning playback after a seek; rename a few vars. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29198 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Account for drivers that pass pointers to their internal state ↵Michael Sevakis2011-01-25
| | | | | | variables to the audio callback. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29135 a1c6a512-1295-4272-9138-f99709370657
* * Rename backlight_force_on to backlight_ignore_timeout to make it clear ↵Teruaki Kawashima2011-01-24
| | | | | | | | | | | what the function does. * Add backlight_force_on() which forces to turn on backlight even when the setting is set to Off. use this in lamp. No functional change except lamp. See aslo FS#9883. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29128 a1c6a512-1295-4272-9138-f99709370657
* SA9200: Add YUV blitting, do full-screen updates more efficiently and ↵Michael Sevakis2011-01-11
| | | | | | properly clip partial updates. Plugin struct becomes incompatible for this target but leave version alone since it's still dev-only. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29028 a1c6a512-1295-4272-9138-f99709370657
* Put illustrative switch case back, because it clarifies intention...maybe ;).Michael Sevakis2011-01-07
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28985 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlyaer: A bit of audio mutation. Remove a useless thread state. Take ↵Michael Sevakis2011-01-07
| | | | | | some control over the buffer away from the audio thread itself. Some atomicity corrections. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28984 a1c6a512-1295-4272-9138-f99709370657
* Fix another comment typoAlexander Levin2011-01-04
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28969 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Give the parser a little stronger going over this time so it ↵Michael Sevakis2011-01-04
| | | | | | tolerates odd audio timestamps better. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28965 a1c6a512-1295-4272-9138-f99709370657
* mpeg_parser: fix a typo in the commentAlexander Levin2011-01-04
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28964 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Try a few timestamps for all streams at the beginning, not just ↵Michael Sevakis2011-01-03
| | | | | | video, to help deal with anomalous start PTS values in a stream. Hopefully the hardcoded number gives it enough tolerance. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28961 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer graphics mutation: Implement a more visible FPS display and ↵Michael Sevakis2011-01-03
| | | | | | remove the debugging info from it. Tweak thumbnailing and printing of unavailable frames. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28960 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Some UI tweaking and bugfixingMichael Sevakis2010-12-22
| | | | | | | | | | * Allow skip-to-beginning in single-play mode; there is no 3-second delay in that case. * Properly handle and keep track of pauses caused by headphone removal. * Improve skipping over bad files - search in skip direction and allow it to be ended with the stop key. * Add the system message processing done elsewhere to all button queue waits. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28875 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Fix a bug where seeking a stream into the same frame more than ↵Michael Sevakis2010-12-20
| | | | | | once in a row causes it to report itself at the end in error; to fix it, pause streams rather than stopping them if the playback isn't stopped. Also, add one check so the engine can at rewind unseekable files to time 0. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28862 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Move some code that's probably better situated in the stream ↵Michael Sevakis2010-12-19
| | | | | | manager rather than the parser. Fix visibility checking in video out. Extra message sending for new stream isn't needed; just do full decoder sequence reset when requesting dimensions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28855 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Skip to next file when there is a problem with a video file in ↵Michael Sevakis2010-12-19
| | | | | | all-play mode, otherwise exit as usual. Only consider failures such as engine init issues or no file to view to be a plugin error but not problems with the video files themselves; the user is adequately informed already. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28854 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer: Fix leakage of file decriptors if file wasn't accepted by ↵Michael Sevakis2010-12-19
| | | | | | playback engine-- code is now getting tested that couldn't be before. Also reset parser in stream init when it doesn't like the file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28853 a1c6a512-1295-4272-9138-f99709370657
* MPEGPlayer playlist should as well support all viewer-handled file ↵Michael Sevakis2010-12-18
| | | | | | extensions...indeed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28850 a1c6a512-1295-4272-9138-f99709370657
* HD300 - plugins keymapsMarcin Bukat2010-11-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28712 a1c6a512-1295-4272-9138-f99709370657
* FS#8607: MPEG video playlistTeruaki Kawashima2010-11-26
| | | | | | | Add mode to play multiple mpeg files in the same directory in the order the file browser shows. In this mode, Mpegplayer exits after finishing the last .mpg file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28667 a1c6a512-1295-4272-9138-f99709370657
* These should be the last of the plugin keymaps requiredRobert Menes2010-11-03
| | | | | | | for the GoGear HDD6330. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28467 a1c6a512-1295-4272-9138-f99709370657
* MPIO HD200: rename button defines to adhere how they are labeled on the device.Marcin Bukat2010-11-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28443 a1c6a512-1295-4272-9138-f99709370657
* Make disabling HAVE_PITCHSCREEN actually work without breaking the buildFrank Gevaerts2010-09-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28102 a1c6a512-1295-4272-9138-f99709370657