aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/mp3_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2006-08-26Replace strdup and {c,re,m}alloc with x* variants to check for OOM errorsEric Wong1-3/+3
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-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
2006-08-23Skip layer 2 frames in mp3s and vice versa. Also drop support for layer 1, ↵J. Alexander Treuman1-3/+15
since it hasn't been tested. git-svn-id: https://svn.musicpd.org/mpd/trunk@4669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20trivial: labels should be on the left-most column, no tabbingEric Wong1-2/+2
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
2006-08-13Stop decoding once we've dropped samples at the end (it messes up the audio ↵J. Alexander Treuman1-1/+3
if there's more mp3 to decode) git-svn-id: https://svn.musicpd.org/mpd/trunk@4619 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-13Presume that the Xing frame count is accurate, and stop decoding when we hit ↵J. Alexander Treuman1-2/+9
the last frame git-svn-id: https://svn.musicpd.org/mpd/trunk@4618 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01Several fixes uncovered with -pedanticEric Wong1-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
2006-07-26Silence a gcc warning... Properly.J. Alexander Treuman1-1/+3
git-svn-id: https://svn.musicpd.org/mpd/trunk@4469 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-26Silence a gcc warningJ. Alexander Treuman1-0/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@4468 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-26jat's second tip of the day: when you change a ternary operator to an if, ↵J. Alexander Treuman1-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
2006-07-26Screw this found_* stuff, just wrap parse_*() in an ifJ. Alexander Treuman1-11/+6
git-svn-id: https://svn.musicpd.org/mpd/trunk@4465 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-26Don't decode the first frame if it has a xing tag, not only if it has a xing ↵J. Alexander Treuman1-1/+2
tag with a frame count git-svn-id: https://svn.musicpd.org/mpd/trunk@4464 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-26Use the lame tag's encoder delay/padding to implement gapless mp3 playbackJ. Alexander Treuman1-0/+53
git-svn-id: https://svn.musicpd.org/mpd/trunk@4462 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25Parse lame tag for encoder delay/padding so we can later implement gaplessJ. Alexander Treuman1-0/+67
git-svn-id: https://svn.musicpd.org/mpd/trunk@4460 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25jat's tip of the day: remember to remove your silly debug messages before ↵J. Alexander Treuman1-1/+0
committing git-svn-id: https://svn.musicpd.org/mpd/trunk@4459 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25Add support for mp1/2. Thanks to Stephan Beyer for the patch.J. Alexander Treuman1-2/+5
git-svn-id: https://svn.musicpd.org/mpd/trunk@4458 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25Removing my stupid debug messages for testing xingJ. Alexander Treuman1-2/+0
git-svn-id: https://svn.musicpd.org/mpd/trunk@4457 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25Reworking xing parsing so lame tags will fit in betterJ. Alexander Treuman1-20/+19
git-svn-id: https://svn.musicpd.org/mpd/trunk@4456 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-25Thanks for making my code totally unreadable indent!J. Alexander Treuman1-80/+54
git-svn-id: https://svn.musicpd.org/mpd/trunk@4455 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20Add mpd-indent.shAvuton Olrich1-6/+4
Add a few new options for indent to try to make things a bit cleaner git-svn-id: https://svn.musicpd.org/mpd/trunk@4411 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20Add mpd-indent.shAvuton Olrich1-357/+440
Indent the entire tree, hopefully we can keep it indented. git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-18Fix VBR mp3 seek accuracy bugJ. Alexander Treuman1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4399 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-18Cleaned up parse_xing, added support for Info magic, and added a ↵J. Alexander Treuman1-15/+54
parse_extension_headers function for when LAME tag support is added git-svn-id: https://svn.musicpd.org/mpd/trunk@4398 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-18Reindenting parse_xing, since I need to work on it and it's a messJ. Alexander Treuman1-42/+41
git-svn-id: https://svn.musicpd.org/mpd/trunk@4397 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-17inputPlugins/*_plugin.c: static-ficationEric Wong1-18/+18
Nothing here is ever exported for linkage besides the InputPlugin structure, so mark them static to save a few bytes. git-svn-id: https://svn.musicpd.org/mpd/trunk@4382 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-16Remove hosted libid3tag & libmadAvuton Olrich1-8/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@4369 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14Change shank's email addressJ. Alexander Treuman1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13Huge header update, update the copyright and addAvuton Olrich1-1/+1
the GPL header where necessary git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-06-21Cleanup id3 ReplayGain parsing code.J. Alexander Treuman1-13/+19
git-svn-id: https://svn.musicpd.org/mpd/trunk@4280 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-06-21Silly jat, don't use newMpdTag as a variable name!J. Alexander Treuman1-4/+4
git-svn-id: https://svn.musicpd.org/mpd/trunk@4279 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-06-21Cleanup mp3_parseId3Tag to only modify the MpdTag if we have something new ↵J. Alexander Treuman1-7/+11
to replace it with. git-svn-id: https://svn.musicpd.org/mpd/trunk@4278 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-06-21Rewrote id3Dup to search for tags manually. Now libid3tag will actually ↵J. Alexander Treuman1-0/+2
tell us the version of the tag we got. As an added benefit we also do fewer reads/mallocs when scanning mp3s during database update/creation. git-svn-id: https://svn.musicpd.org/mpd/trunk@4277 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-05-15Work around a stupid bug in libmad so VBR MP3s with CRC protection have the ↵J. Alexander Treuman1-4/+17
correct length. git-svn-id: https://svn.musicpd.org/mpd/trunk@4184 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-03-16merge with mpd/trunk up to r3925Eric Wong1-0/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@3926 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-01-21fix for mp3 replaygaineQball Cow1-4/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@3852 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-01-14Replay gain for mp3. (Patch cleaned up and provided by Jat)Qball Cow1-18/+70
git-svn-id: https://svn.musicpd.org/mpd/trunk@3826 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-09-08Patch to make the configure flag for mpd-mad and mpd-libid3tag more logic ↵Qball Cow1-0/+3
(from ticho) git-svn-id: https://svn.musicpd.org/mpd/trunk@3477 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-02-14when filling mp3 buffer, check if its already full. If it is, then give up ↵Warren Dukes1-0/+4
trying to read in a potential mp3 frame, cause no mp3 frame should be bigger than the input buffer git-svn-id: https://svn.musicpd.org/mpd/trunk@2950 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-10merge changes from metadata-rewrite branchWarren Dukes1-7/+13
git-svn-id: https://svn.musicpd.org/mpd/trunk@2589 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02rewrite replaygain code, needs testingWarren Dukes1-2/+4
git-svn-id: https://svn.musicpd.org/mpd/trunk@2482 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-07-241) fix bug, id3_tag_parse does may return NULL if there's an error in ↵Warren Dukes1-2/+6
decoding the id3v2 tag 2) in the same place, delete the id3Tag (fixes a memory leak) 3) version: 0.12.0 -> 0.11.4 git-svn-id: https://svn.musicpd.org/mpd/trunk@1903 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-07-03for mp3's, skip all initial frames that aren't layer 3 so we can be sure toWarren Dukes1-0/+3
get the correct bitrate for computing the song length git-svn-id: https://svn.musicpd.org/mpd/trunk@1783 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-07-03fix for when trying to seek past the end of an mp3Warren Dukes1-5/+6
git-svn-id: https://svn.musicpd.org/mpd/trunk@1782 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20fix poping at the beginng of mp3'sWarren Dukes1-12/+17
Theory: in previous versions, dither struct was static, which by definetion means its initiallized as all O's. However, i removed static from the dither structbut then its not initialized. Thus dithering started with some random stuff in the bit buckets. Should be fixed now. git-svn-id: https://svn.musicpd.org/mpd/trunk@1578 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20put CHUNK_SIZE backWarren Dukes1-2/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@1577 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-19fix a few bugs in mp3_decode and minimize alsa underruns by playing silence ↵Warren Dukes1-5/+4
when switch songs git-svn-id: https://svn.musicpd.org/mpd/trunk@1572 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-19DEBUG messageWarren Dukes1-2/+7
git-svn-id: https://svn.musicpd.org/mpd/trunk@1571 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07icy metadata! wahooWarren Dukes1-3/+36
still lots some debug code with print out's, so don't bitch about it! git-svn-id: https://svn.musicpd.org/mpd/trunk@1364 09075e82-0dd4-0310-85a5-a0d7c8717e4f