aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Disable looping MOD files played with libmikmod. Many MODs will loopJ. Alexander Treuman2007-03-311-0/+3
| | | | | forever without this. git-svn-id: https://svn.musicpd.org/mpd/trunk@5790 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Support for libmikmod 3.2.0 betas.J. Alexander Treuman2007-03-021-2/+7
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5492 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* flac: workaround for type inconsistency between new/old read callbackEric Wong2007-01-142-1/+3
| | | | | | size_t (1.1.3) makes a lot more sense, but older flac used unsigned here... git-svn-id: https://svn.musicpd.org/mpd/trunk@5258 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't initialize globals to zero (or NULL)Eric Wong2007-01-149-110/+11
| | | | | | | | Some compilers and linkers aren't smart enough to optimize this, as global variables are implictly initialized to zero. As a result, binaries are a bit smaller as more goes in the .bss and less in the text section. git-svn-id: https://svn.musicpd.org/mpd/trunk@5254 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* flac/ogg/oggflac: keep old mime-types in addition to the new onesEric Wong2007-01-143-4/+15
| | | | | | We'll be dealing with legacy server configurations for a long time to come. git-svn-id: https://svn.musicpd.org/mpd/trunk@5253 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mp3: sparse: fix warnings reported with -WshadowEric Wong2007-01-141-8/+7
| | | | | | sendDataToOutputBuffer returns an int (and always has), and using the existing 'ret' is fine in mp3Read(). git-svn-id: https://svn.musicpd.org/mpd/trunk@5246 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* flac: sparse: mismatched enum type for seekEric Wong2007-01-141-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5244 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* flac: fix a stupid mistake newer preprocessors don't complain aboutEric Wong2007-01-141-2/+2
| | | | | FLAC__{seekable_,}_stream_decoder_new() takes no arguments git-svn-id: https://svn.musicpd.org/mpd/trunk@5241 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix the mime types for flac & oggflac, see mantis bug #1423 for more informationAvuton Olrich2007-01-062-3/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5222 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Accept application/x-ogg as valid mime typeQball Cow2006-12-271-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5165 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Added gapless_mp3_playback option. Setting to "no" will disable gaplessJ. Alexander Treuman2006-12-231-2/+15
| | | | | | | MP3 playback, thus allowing songs that run longer than the Xing frame claims (f.e., an MP3 created by catting two MP3s together) to continue playing past the end. git-svn-id: https://svn.musicpd.org/mpd/trunk@5157 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Only parse gapless info if the input stream is seekable, under theJ. Alexander Treuman2006-12-231-1/+2
| | | | | | assumption that non-seekable streams are live and any gapless info is incorrect. git-svn-id: https://svn.musicpd.org/mpd/trunk@5150 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't stop decoding if we're at maxFrames just because there's a Xing tag.J. Alexander Treuman2006-12-231-4/+3
| | | | | | Instead, stop decoding as soon as we've found the frames/samples at the "end" that we want drop. git-svn-id: https://svn.musicpd.org/mpd/trunk@5149 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up some damn near unreadable wrapping caused by indent.J. Alexander Treuman2006-12-231-25/+8
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5148 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Properly calculate the number of remaining samples in the MP3 frame, evenJ. Alexander Treuman2006-12-231-5/+7
| | | | | though in practice it should never matter. git-svn-id: https://svn.musicpd.org/mpd/trunk@5147 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Add OggFLAC support when using the new 1.1.3 FLAC libraryEric Wong2006-12-042-22/+119
| | | | | | | This means that when using libFLAC as a shared object, OggFLAC support is dependent on the compile-time options of the libFLAC library loaded. git-svn-id: https://svn.musicpd.org/mpd/trunk@5112 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Introduce backwards compatibility with pre-1.1.3 FLACEric Wong2006-12-043-61/+205
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5111 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* inputPlugins/flac_plugin: switch to the new (1.1.3) APIEric Wong2006-12-041-106/+60
| | | | | | We will restore compatibility with the old API in the next few commits; along with OggFLAC support. git-svn-id: https://svn.musicpd.org/mpd/trunk@5110 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* inputPlugins/flac_plugin: cleanup static declarationsEric Wong2006-12-041-149/+122
| | | | | | move flac_decode to the bottom, so we don't have to declare all of our static functions. git-svn-id: https://svn.musicpd.org/mpd/trunk@5109 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* jack patch from anarch (and some type fixes for mp4 and acc plugins)Warren Dukes2006-10-182-3/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4912 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mp3_plugin.c: fix compilation with -pedantic and/or gcc 2.95Eric Wong2006-10-061-16/+20
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4876 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* handle invalid xing tags better.Warren Dukes2006-10-031-18/+26
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4866 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Replace strdup and {c,re,m}alloc with x* variants to check for OOM errorsEric Wong2006-08-264-10/+10
| | | | | | | | | | | | | | | | | | | I'm checking for zero-size allocations and assert()-ing them, so we can more easily get backtraces and debug problems, but we'll also allow -DNDEBUG people to live on the edge if they wish. We do not rely on errno when checking for OOM errors because some implementations of malloc do not set it, and malloc is commonly overridden by userspace wrappers. I've spent some time looking through the source and didn't find any obvious places where we would explicitly allocate 0 bytes, so we shouldn't trip any of those assertions. We also avoid allocating zero bytes because C libraries don't handle this consistently (some return NULL, some not); and it's dangerous either way. git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix an esoteric gcc warningJ. Alexander Treuman2006-08-251-3/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4684 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audiofile_plugin: use afSetVirtualSampleFormat, tooEric Wong2006-08-241-0/+2
| | | | | | | | | | | | | | | | | | This finally fixes a bug from over two years ago playing a wave file (oprah.wav) with the following characteristics (from sfinfo): File Format Microsoft RIFF WAVE Format (wave) Data Format 8-bit integer (unsigned, little endian) Audio Data 986827 bytes begins at offset 58 (3a hex) 1 channel, 986827 frames Sampling Rate 22050.00 Hz Duration 44.754 seconds Of course, this has been regression tested with all the files that the previous commit got working. Thanks to Michael Pruett (audiofile author) for the hint and shame on me for forgetting about it for over two years :x git-svn-id: https://svn.musicpd.org/mpd/trunk@4682 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audiofile_plugin: fix for playing mono .au files with 8000Hz sample rateEric Wong2006-08-241-3/+3
| | | | | | | | | | | | | | | | Use the 'Virtual' variants of afGetSampleFormat, afGetChannels, afGetVirtualFrameSize in the audiofile library, since it already does the necessary abstraction for us. Of course, I've regression tested these changes against my standard 44100Hz/2ch/16bit wave files and they continue to play fine. Files tested: english.au (Linus Torvalds pronouncing 'Linux' in English) B01.Red_Bright_Heart.au (Chinese opera, sounds correct to me even though I don't actually understand the words) git-svn-id: https://svn.musicpd.org/mpd/trunk@4681 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Use strcasecmp to check for replaygain id3v2 tags, since apparently some ↵J. Alexander Treuman2006-08-231-4/+4
| | | | | apps write them in all caps. git-svn-id: https://svn.musicpd.org/mpd/trunk@4672 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Instead of ignoring mp2/mp3 files that start with a layer 1 frame, just skip ↵J. Alexander Treuman2006-08-231-2/+1
| | | | | the layer 1 frames looking for a layer 2 or 3 frame. git-svn-id: https://svn.musicpd.org/mpd/trunk@4671 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* If a frame header decode loses sync, just try again instead of trying to ↵J. Alexander Treuman2006-08-231-7/+3
| | | | | decode a frame (which will automatically decode the next header without allowing us to do some checks on it). git-svn-id: https://svn.musicpd.org/mpd/trunk@4670 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Skip layer 2 frames in mp3s and vice versa. Also drop support for layer 1, ↵J. Alexander Treuman2006-08-231-3/+15
| | | | | since it hasn't been tested. git-svn-id: https://svn.musicpd.org/mpd/trunk@4669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix Replay Gain reading for FLAC and OggFLACEric Wong2006-08-221-6/+6
| | | | | | | | | | | This bug was NOT introduced in my OggFLAC additions, honest! As far as I can see, it was introduced way back in r2482, but nobody ever noticed until the post here: http://www.musicpd.org/forum/index.php?topic=1152.0 While we're at it, clean up some of the variable typing. git-svn-id: https://svn.musicpd.org/mpd/trunk@4664 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* oggvorbis_plugin.c: update message to match changed function nameEric Wong2006-08-201-2/+2
| | | | | | I'm not using __FUNCTION__ or __func__ because compiler support for these is still a bit iffy as far as I know... git-svn-id: https://svn.musicpd.org/mpd/trunk@4662 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* trivial: labels should be on the left-most column, no tabbingEric Wong2006-08-203-5/+5
| | | | | | | | | | | | Unfortunately there doesn't seem to be an indent switch for this, but we have find + perl: find src -name '*.[ch]' | xargs perl -i -p -e \ 's/^\s+(\w+):/$1:/g unless /^\s+default:/' This is a followup to r4605, and there are no actual code changes in this. git-svn-id: https://svn.musicpd.org/mpd/trunk@4661 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* inputPlugins/_ogg_common.c: check for read errors correctlyEric Wong2006-08-201-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4660 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* This fixes 5 potential bugs where the conditional would always be true.Avuton Olrich2006-08-202-3/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4659 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Stop decoding once we've dropped samples at the end (it messes up the audio ↵J. Alexander Treuman2006-08-131-1/+3
| | | | | if there's more mp3 to decode) git-svn-id: https://svn.musicpd.org/mpd/trunk@4619 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Presume that the Xing frame count is accurate, and stop decoding when we hit ↵J. Alexander Treuman2006-08-131-2/+9
| | | | | the last frame git-svn-id: https://svn.musicpd.org/mpd/trunk@4618 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mpc_plugin: fix seeking bugEric Wong2006-08-081-0/+1
| | | | | remember to reset our chunk pointer when seeking git-svn-id: https://svn.musicpd.org/mpd/trunk@4597 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mpc_plugin.c: fix compilation error with MPC_FIXED_POINTEric Wong2006-08-071-1/+1
| | | | | (It sounds like crap though) git-svn-id: https://svn.musicpd.org/mpd/trunk@4596 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Several fixes uncovered with -pedanticEric Wong2006-08-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | playerData.c: proper error checking directory.c: properly check myFgets() for errors (it returns NULL on error) inputPlugins/mp3_plugin.c get rid of commas at the end of enums interface.c: we weren't using long long, so strtoll isn't needed get rid of void-pointer arithmetic sllist.c: get rid of void-pointer arithmetic compress.c: get rid of C++ comments, some compilers don't accept them Note that I personally like void pointer arithmetic, but some ancient compilers don't support them :( git-svn-id: https://svn.musicpd.org/mpd/trunk@4510 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Now fix the mp4 plugin warnings to what they were before the dynamic linkingAvuton Olrich2006-07-301-3/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4490 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Silence a gcc warning... Properly.J. Alexander Treuman2006-07-261-1/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4469 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Silence a gcc warningJ. Alexander Treuman2006-07-261-0/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4468 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* jat's second tip of the day: when you change a ternary operator to an if, ↵J. Alexander Treuman2006-07-261-1/+1
| | | | | don't forget to take out everything after the :. And don't forget my first tip either. git-svn-id: https://svn.musicpd.org/mpd/trunk@4467 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Screw this found_* stuff, just wrap parse_*() in an ifJ. Alexander Treuman2006-07-261-11/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4465 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't decode the first frame if it has a xing tag, not only if it has a xing ↵J. Alexander Treuman2006-07-261-1/+2
| | | | | tag with a frame count git-svn-id: https://svn.musicpd.org/mpd/trunk@4464 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Use the lame tag's encoder delay/padding to implement gapless mp3 playbackJ. Alexander Treuman2006-07-261-0/+53
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4462 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Put mp4ff back into the treeAvuton Olrich2006-07-261-30/+25
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4461 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Parse lame tag for encoder delay/padding so we can later implement gaplessJ. Alexander Treuman2006-07-251-0/+67
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4460 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* jat's tip of the day: remember to remove your silly debug messages before ↵J. Alexander Treuman2006-07-251-1/+0
| | | | | committing git-svn-id: https://svn.musicpd.org/mpd/trunk@4459 09075e82-0dd4-0310-85a5-a0d7c8717e4f