aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/_flac_common.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder_api: added function decoder_replay_gain()Max Kellermann2010-01-041-9/+8
| | | | | | This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over.
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* decoder_api: added function decoder_timestamp()Max Kellermann2009-12-261-8/+1
| | | | | | Remove the data_time parameter from decoder_data(). This patch eliminates the timestamp counting in most decoder plugins, because the MPD core will do it automatically by default.
* audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-021-2/+25
| | | | | | This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
* Merged release 0.15.6 from branch 'v0.15.x'Max Kellermann2009-11-191-3/+3
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/flac: fixed compiler warningMax Kellermann2009-11-191-3/+1
| | | | | | | | | | | | Removed the "vtrack" local variable (which triggered a gcc warning because it was after the newly introduced NULL check), and run strtol() on the original parameter.
| * decoder/flac: fixed NULL pointer dereference in CUE codeMax Kellermann2009-11-181-0/+2
| | | | | | | | The function flac_vtrack_tnum() was missing a strrchr()==NULL check.
* | decoder: use audio_format_init_checked()Max Kellermann2009-11-141-9/+9
| | | | | | | | | | | | Let the audio_check library verify the audio format in all (relevant, i.e. non-hardcoded) plugins.
* | include config.h in all sourcesMax Kellermann2009-11-121-0/+1
| | | | | | | | | | | | After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
* | decoder/flac: moved code to flac_data_get_audio_format()Max Kellermann2009-11-111-7/+28
| | | | | | | | | | | | Remove the audio_format attribute, add "frame_size" instead. The audio_format initialization and check is moved both to flac_data_get_audio_format().
* | decoder/flac: use frame header instead of audio_formatMax Kellermann2009-11-111-3/+3
| | | | | | | | | | | | When calculating the properties of the frame, use sample_rate and other information from the frame header instead of the stored audio_format object.
* | decoder/flac: calculate time stamp from current frameMax Kellermann2009-11-111-2/+9
| | | | | | | | | | | | | | | | | | Don't update a float timestamp, this will make imprecisions add up after a while. We already have the number of the current frame, let's just calculate the float timestamp from that for every decoder_data() command. For this, we need to add the attribute "first_frame", for CUE sheet songs.
* | decoder/flac: calculate bit rate in flac_common_write()Max Kellermann2009-11-111-3/+10
| | | | | | | | | | | | Removed the "bit_rate" attribute from the flac_data struct. Pass the number of bytes since the last call to flac_common_write(), and let it calculate the bit rate.
* | decoder/flac: store the whole stream info object, not durationMax Kellermann2009-11-111-1/+4
| | | | | | | | | | | | | | We don't want to work with floating point values if possible. Get the integer number of frames from the FLAC__StreamMetadata_StreamInfo object, and convert it into a float duration on demand. This patch adds a check if the STREAMINFO packet has been received yet.
* | decoder/flac: keep track of current frame numberMax Kellermann2009-11-111-0/+3
| | | | | | | | We need this for more exact end-of-subsong detection for CUE files.
* | decoder/flac: moved code to flac_pcm.cMax Kellermann2009-11-111-81/+1
| |
* | decoder/flac: moved code to flac_metadata.cMax Kellermann2009-11-111-164/+1
| |
* | decoder/flac: return replay_gain_info object from helper functionMax Kellermann2009-11-111-28/+24
| | | | | | | | | | Make the function more generic by not passing "struct flac_data" to it.
* | decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann2009-11-111-1/+20
| |
* | decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann2009-11-101-7/+5
| |
* | decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann2009-11-101-37/+27
| | | | | | | | | | | | This is a great simplification for flac_common_write(), because we can convert and submit all of the buffer in one turn. No more partial buffers with complicated formulas.
* | decoder/flac: added function flac_data_deinit()Max Kellermann2009-11-101-0/+10
| | | | | | | | Clean up tag and replay_gain_info there.
* | decoder/flac: pass void pointer to flac_convert()Max Kellermann2009-11-101-5/+5
| | | | | | | | | | That function diverts into various bit formats; it doesn't need a typed pointer.
* | decoder/flac: pass audio_format.bits to flac_convert()Max Kellermann2009-11-101-11/+8
| | | | | | | | | | Don't use audio_format_sample_size() for identifying the sample format.
* | tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2009-10-131-3/+3
| |
* | Merged release 0.15.2 from branch 'v0.15.x'Max Kellermann2009-08-151-55/+63
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/flac: don't allocate cuesheet twice (memleak)Max Kellermann2009-08-141-4/+6
| | | | | | | | | | | | | | The function flac_cue_track() first calls FLAC__metadata_object_new(), then overwrites this pointer with FLAC__metadata_get_cuesheet(). This allocate two FLAC__StreamMetadata objects, but the first pointer is lost, and never freed.
| * decoder/flac: fixed indentation of flac_comment_value()Max Kellermann2009-07-221-19/+21
| |
| * decoder/flac: parse all replaygain tagsMax Kellermann2009-07-221-14/+18
| | | | | | | | | | The FLAC replaygain parser used the "||" operator. This made the code stop after the first value which was found.
| * decoder/flac: return early from flac_find_float_comment()Max Kellermann2009-07-221-21/+22
| | | | | | | | | | When one metadata check fails, return quickly. This removes 2 levels of indent.
| * decoder/flac: removed misplaced authorship commentMax Kellermann2009-07-221-1/+0
| | | | | | | | This belongs into "git annotate" or AUTHORS.
* | Add audio_format_init() functionDavid Woodhouse2009-07-191-3/+2
|/ | | | | It makes no difference right now, but we're about to add an endianness flag and will want to make sure it's correctly initialised every time.
* flac/cue: added support for TITLE[n] commentsMario Lenz2009-03-171-2/+9
| | | | | | | | | | | | On 2009/03/17 Max Kellermann<max@duempel.org> wrote: > There doesn't seem to be an "official" standard. I'd say: search for > TITLE[1] first (the most explicit form), then TITLE1, and finally fall > back to TITLE. This makes sure MPD supports every possible standard, > without breaking. I've also added some additional checks to make sure entry is long enough.
* flac: get CUE track titles from additional FLAC commentsMario Lenz2009-03-161-15/+24
| | | | | | | | The cue sheet embedded in a flac file doen't contain any information about track titles and similar. There are three possibilities: Use an external cue sheet that includes these information, use a tag CUESHEET with a cue sheet including these information or use tags. I think the latter is the best option and is already used by other projects.
* all: Update copyright header.Avuton Olrich2009-03-131-9/+11
| | | | | | | | This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
* Initial support for embedded cue sheets found in flac filesJochen Keil2009-03-091-3/+51
| | | | | | | | | So far only seekpoints are supported, so no proper tagging yet except for track number and track length. Tagging should be done by parsing the cue sheet which is often embedded as vorbis comment in flac files. Furthermore the pathname should be configurable like "%A - %t - %T", where %A means Artist, %t track number and %T Title or so.
* flac: parse stream tagsMax Kellermann2009-03-011-0/+4
| | | | | Parse the vorbis comments in libflac's metadata_callback and pass them as tag struct to the decoder API.
* tag: no CamelCaseMax Kellermann2009-02-271-1/+1
| | | | Renamed numOfItems to num_items.
* flac: map "Album Artist" to "AlbumArtist"Rasmus Steinke2009-01-151-1/+3
| | | | | This patch allows mpd to recognise the albumartist tag in the way foobar2000 and others write it to files.
* flac: splitted flac_copy_vorbis_comment()Max Kellermann2009-01-151-37/+38
| | | | | Splitted flac_copy_vorbis_comment() into flac_copy_comment() and flac_copy_comment().
* flac: moved code to flac_comment_value()Max Kellermann2009-01-151-5/+26
| | | | | Simplify flac_copy_vorbis_comment() by moving the comment identification code out.
* flac: always allocate tag objectMax Kellermann2009-01-151-14/+8
| | | | | Free the tag object when it turns out to be empty. This simplifies several functions and APIs.
* flac: use bool instead of intMax Kellermann2009-01-151-15/+15
|
* flac: no CamelCaseMax Kellermann2009-01-151-39/+44
| | | | Renamed types, functions, variables.
* decoder plugins: don't include gcc.hMax Kellermann2009-01-011-1/+3
| | | | Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
* flac, oggflac: use GLib instead of utils.h/log.hMax Kellermann2008-11-211-5/+4
|
* replay_gain: converted struct replay_gain_info elements to an arrayMax Kellermann2008-11-111-4/+4
| | | | | Having an array instead of individual variables allows the use of the replay_gain_mode enum as an array index.
* replay_gain: no CamelCaseMax Kellermann2008-11-111-7/+7
| | | | Renamed functions and variables.
* decoder_api: pass "seekable" flag to decoder_initialized()Max Kellermann2008-11-021-1/+1
| | | | | | Don't pass the "seekable" flag with every decoder_data() invocation. Since that flag won't change within the file, it is enough to pass it to decoder_initialized() once per file.
* input_stream: removed the InputStream typedefMax Kellermann2008-10-261-1/+1
| | | | Everybody should use struct input_stream.