aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2006-12-23Added gapless_mp3_playback option. Setting to "no" will disable gaplessJ. Alexander Treuman3-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
2006-12-23Use the existing define for the default value of save_absolute_playlistsJ. Alexander Treuman1-1/+1
instead of a hardcoded value. git-svn-id: https://svn.musicpd.org/mpd/trunk@5151 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23Only parse gapless info if the input stream is seekable, under theJ. Alexander Treuman1-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
2006-12-23Don't stop decoding if we're at maxFrames just because there's a Xing tag.J. Alexander Treuman1-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
2006-12-23Cleaning up some damn near unreadable wrapping caused by indent.J. Alexander Treuman1-25/+8
git-svn-id: https://svn.musicpd.org/mpd/trunk@5148 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23Properly calculate the number of remaining samples in the MP3 frame, evenJ. Alexander Treuman1-5/+7
though in practice it should never matter. git-svn-id: https://svn.musicpd.org/mpd/trunk@5147 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-11Making "list any" fail with an error instead of OK with no results.J. Alexander Treuman1-0/+6
git-svn-id: https://svn.musicpd.org/mpd/trunk@5139 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-11Moving LOCATE_TAG_{FILE,ANY}_TYPE defines to dbUtils.h, so that we canJ. Alexander Treuman2-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
2006-12-11Fixing "find any" and "list * any" to actually find matches.J. Alexander Treuman1-2/+6
git-svn-id: https://svn.musicpd.org/mpd/trunk@5137 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-07Oops, forgot to add an interface to stored playlist editing. Here it is.J. Alexander Treuman1-0/+20
git-svn-id: https://svn.musicpd.org/mpd/trunk@5128 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04Add OggFLAC support when using the new 1.1.3 FLAC libraryEric Wong2-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
2006-12-04Introduce backwards compatibility with pre-1.1.3 FLACEric Wong3-61/+205
git-svn-id: https://svn.musicpd.org/mpd/trunk@5111 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04inputPlugins/flac_plugin: switch to the new (1.1.3) APIEric Wong1-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
2006-12-04inputPlugins/flac_plugin: cleanup static declarationsEric Wong1-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
2006-11-26Check that the APE tag length is valid before allocating a buffer for it.J. Alexander Treuman1-0/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@5098 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-11-20Adding functions for clearing/adding to stored playlists. Commands to makeJ. Alexander Treuman4-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
2006-11-07audioOutput_alsa: print out the bitrate we wanted to setEric Wong1-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
2006-10-27add support for: list fileWarren Dukes3-6/+13
This behaves the same as: list filename git-svn-id: https://svn.musicpd.org/mpd/trunk@4952 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18remove some unneccesary includes from the audioOutput'sWarren Dukes7-21/+0
git-svn-id: https://svn.musicpd.org/mpd/trunk@4913 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18jack patch from anarch (and some type fixes for mp4 and acc plugins)Warren Dukes5-4/+387
git-svn-id: https://svn.musicpd.org/mpd/trunk@4912 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-17an attempted fix for bug 1368Warren Dukes1-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
2006-10-14path.c: speling fix (I coulda sworn I fixed this before... in -ke)Eric Wong1-2/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@4904 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-11audioOutput_shout: use shout_set_nonblockingEric Wong1-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
2006-10-10Allow an ogg quality of -1 to be specified.J. Alexander Treuman1-5/+5
git-svn-id: https://svn.musicpd.org/mpd/trunk@4893 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-10buffer2array: extra unit tests (for PHP magic quote escapes)Eric Wong1-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
2006-10-06mp3_plugin.c: fix compilation with -pedantic and/or gcc 2.95Eric Wong1-16/+20
git-svn-id: https://svn.musicpd.org/mpd/trunk@4876 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06put back np's supperrior buffer2array, and fix my bug fix from change 4872Warren Dukes4-122/+69
git-svn-id: https://svn.musicpd.org/mpd/trunk@4875 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06Revert buffer2array() behavior back to tried and true 0.11.x versionEric Wong4-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
2006-10-06fix escaping in quotes. (Now phpMp works again!)Warren Dukes1-12/+6
git-svn-id: https://svn.musicpd.org/mpd/trunk@4872 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03add a sanity check assertWarren Dukes1-0/+3
git-svn-id: https://svn.musicpd.org/mpd/trunk@4869 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03fix the segfault for when no audio_output is found and none is detected (bug ↵Warren Dukes1-10/+18
found by normalperson!!!) git-svn-id: https://svn.musicpd.org/mpd/trunk@4868 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03cleanup flushWarningBuffer() and make some for() loops in audio.c look and ↵Warren Dukes2-18/+24
do something sane. git-svn-id: https://svn.musicpd.org/mpd/trunk@4867 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03handle invalid xing tags better.Warren Dukes1-18/+26
git-svn-id: https://svn.musicpd.org/mpd/trunk@4866 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-21outputBuffer: avoid out-of-bounds-error in clearOutputBuffer()Eric Wong1-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
2006-09-15signal_check: [trivial] make __caught_signals array staticEric Wong1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4780 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-11tag.c: remove unnecessary #includesEric Wong1-7/+0
git-svn-id: https://svn.musicpd.org/mpd/trunk@4762 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-09Hopefully fix endian problem mac x86/ppcQball Cow1-2/+5
git-svn-id: https://svn.musicpd.org/mpd/trunk@4750 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-07utils.c: fix xreallocEric Wong1-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
2006-08-30gcc.h: make sure __GNUC__ is defined before checking it's valueEric Wong1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4724 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-28Rearrange mpd.conf.5 and conf.[ch] to use the more logical ordering of ↵J. Alexander Treuman2-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
2006-08-26Replace strdup and {c,re,m}alloc with x* variants to check for OOM errorsEric Wong48-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
2006-08-26audioOutputs_oss: [trivial] make loop interation consistent with othersEric Wong1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26audio.c: [trivial] remove unnecessary includeEric Wong1-1/+0
git-svn-id: https://svn.musicpd.org/mpd/trunk@4688 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26command.c: rerun mpd-indent.sh, no code changesEric Wong1-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
2006-08-25Fix an esoteric gcc warningJ. Alexander Treuman1-3/+4
git-svn-id: https://svn.musicpd.org/mpd/trunk@4684 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-24audiofile_plugin: use afSetVirtualSampleFormat, tooEric Wong1-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
2006-08-24audiofile_plugin: fix for playing mono .au files with 8000Hz sample rateEric Wong1-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
2006-08-23Use strcasecmp to check for replaygain id3v2 tags, since apparently some ↵J. Alexander Treuman1-4/+4
apps write them in all caps. git-svn-id: https://svn.musicpd.org/mpd/trunk@4672 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-23Instead of ignoring mp2/mp3 files that start with a layer 1 frame, just skip ↵J. Alexander Treuman1-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
2006-08-23If a frame header decode loses sync, just try again instead of trying to ↵J. Alexander Treuman1-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