aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Added gapless_mp3_playback option. Setting to "no" will disable gaplessJ. Alexander Treuman2006-12-233-2/+17
| | | | | | | 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
* Use the existing define for the default value of save_absolute_playlistsJ. Alexander Treuman2006-12-231-1/+1
| | | | | instead of a hardcoded value. git-svn-id: https://svn.musicpd.org/mpd/trunk@5151 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
* Making "list any" fail with an error instead of OK with no results.J. Alexander Treuman2006-12-111-0/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5139 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Moving LOCATE_TAG_{FILE,ANY}_TYPE defines to dbUtils.h, so that we canJ. Alexander Treuman2006-12-112-2/+3
| | | | | compare the return value of getLocateTagItemType() to them. git-svn-id: https://svn.musicpd.org/mpd/trunk@5138 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fixing "find any" and "list * any" to actually find matches.J. Alexander Treuman2006-12-111-2/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5137 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Oops, forgot to add an interface to stored playlist editing. Here it is.J. Alexander Treuman2006-12-071-0/+20
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5128 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
* Check that the APE tag length is valid before allocating a buffer for it.J. Alexander Treuman2006-11-261-0/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@5098 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding functions for clearing/adding to stored playlists. Commands to makeJ. Alexander Treuman2006-11-204-0/+121
| | | | | use of these functions are still being worked on. git-svn-id: https://svn.musicpd.org/mpd/trunk@5075 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audioOutput_alsa: print out the bitrate we wanted to setEric Wong2006-11-071-1/+1
| | | | | ..and not the enum value that corresponds to that bitrate git-svn-id: https://svn.musicpd.org/mpd/trunk@5030 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* add support for: list fileWarren Dukes2006-10-273-6/+13
| | | | | This behaves the same as: list filename git-svn-id: https://svn.musicpd.org/mpd/trunk@4952 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* remove some unneccesary includes from the audioOutput'sWarren Dukes2006-10-187-21/+0
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4913 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* jack patch from anarch (and some type fixes for mp4 and acc plugins)Warren Dukes2006-10-185-4/+387
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4912 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* an attempted fix for bug 1368Warren Dukes2006-10-171-20/+26
| | | | | - don't close and reopen an audioOutput when it has a fixed output format, and closing and reopening the device is unneccessary when the input audio format changes git-svn-id: https://svn.musicpd.org/mpd/trunk@4908 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* path.c: speling fix (I coulda sworn I fixed this before... in -ke)Eric Wong2006-10-141-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4904 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audioOutput_shout: use shout_set_nonblockingEric Wong2006-10-111-3/+17
| | | | | | | | | | | | This patch should continue to allow mpd to play as well as possible to icecast servers while avoiding stalls on local devices. This has eliminated ALSA underrun errors for me while streaming to a remote host while the network connection was bad. Of course, this makes opening a connection non-blocking, too, so myShout_openShoutConn is a bit more complex. git-svn-id: https://svn.musicpd.org/mpd/trunk@4898 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Allow an ogg quality of -1 to be specified.J. Alexander Treuman2006-10-101-5/+5
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4893 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* buffer2array: extra unit tests (for PHP magic quote escapes)Eric Wong2006-10-101-9/+21
| | | | | | | | Make the unit tests compile correctly without using xstrdup. Also, use "static inline" instead of "inline static": certain compilers or cflags are likely to complain about the latter. git-svn-id: https://svn.musicpd.org/mpd/trunk@4892 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
* put back np's supperrior buffer2array, and fix my bug fix from change 4872Warren Dukes2006-10-064-122/+69
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4875 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Revert buffer2array() behavior back to tried and true 0.11.x versionEric Wong2006-10-064-70/+122
| | | | | | | | | | | | | | | | | Warren's fix in r4872 made phpMp work again, but also broke the unit tests completely (they work in this version). The version in 0.12.0 is far too buggy (it was from mpd-ke, what do you expect?). This one passes all the unit tests that the mpd-ke one passed, and should also work with phpMp when used with PHP magic quotes. This also means we can search on 100 (or more) tags at once, so no more arbitrary limits other than system memory. To run the unit tests, just do this: gcc -o t -DUNIT_TEST=1 src/buffer2array.c && ./t && echo OK git-svn-id: https://svn.musicpd.org/mpd/trunk@4874 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix escaping in quotes. (Now phpMp works again!)Warren Dukes2006-10-061-12/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4872 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* add a sanity check assertWarren Dukes2006-10-031-0/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4869 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix the segfault for when no audio_output is found and none is detected (bug ↵Warren Dukes2006-10-031-10/+18
| | | | | found by normalperson!!!) git-svn-id: https://svn.musicpd.org/mpd/trunk@4868 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* cleanup flushWarningBuffer() and make some for() loops in audio.c look and ↵Warren Dukes2006-10-032-18/+24
| | | | | do something sane. git-svn-id: https://svn.musicpd.org/mpd/trunk@4867 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
* outputBuffer: avoid out-of-bounds-error in clearOutputBuffer()Eric Wong2006-09-211-3/+3
| | | | | | | I'm still not entirely certain why we index cb->metaChunkSet[] with currentChunk (and not currentMetaChunk), but shank told me that currentChunk is correct... git-svn-id: https://svn.musicpd.org/mpd/trunk@4814 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* signal_check: [trivial] make __caught_signals array staticEric Wong2006-09-151-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4780 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* tag.c: remove unnecessary #includesEric Wong2006-09-111-7/+0
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4762 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Hopefully fix endian problem mac x86/ppcQball Cow2006-09-091-2/+5
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4750 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* utils.c: fix xreallocEric Wong2006-09-071-5/+6
| | | | | | | | | | | (based on suggested patch by Jan-Benedict Glaw): > While hacking mpd, I noticed that an assert()ion in xrealloc is wrong. > A null size is perfectly legal, so we shouldn't assert on that. Since some C libraries return NULL when size == 0, we'll make sure we get a free()-able pointer since some of those C libraries also barf on free(NULL). git-svn-id: https://svn.musicpd.org/mpd/trunk@4740 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* gcc.h: make sure __GNUC__ is defined before checking it's valueEric Wong2006-08-301-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4724 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Rearrange mpd.conf.5 and conf.[ch] to use the more logical ordering of ↵J. Alexander Treuman2006-08-282-44/+44
| | | | | config parameters that the new (yet to be committed) mpdconf.example will use. git-svn-id: https://svn.musicpd.org/mpd/trunk@4715 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Replace strdup and {c,re,m}alloc with x* variants to check for OOM errorsEric Wong2006-08-2648-183/+257
| | | | | | | | | | | | | | | | | | | 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
* audioOutputs_oss: [trivial] make loop interation consistent with othersEric Wong2006-08-261-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audio.c: [trivial] remove unnecessary includeEric Wong2006-08-261-1/+0
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4688 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* command.c: rerun mpd-indent.sh, no code changesEric Wong2006-08-261-136/+76
| | | | | | leave out initCommands to keep jat happy, and keep labels at the left hand side git-svn-id: https://svn.musicpd.org/mpd/trunk@4687 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