aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/flac_decoder_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-02-11decoder_plugin: scan tags with callback tableMax Kellermann1-17/+13
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
2012-02-11decoder/flac: check for errors only after _process_single()Max Kellermann1-8/+6
The only other libFLAC call (seek) does not produce fatal errors.
2012-02-11decoder/flac: symmetric FLAC__stream_decoder_finish() callsMax Kellermann1-1/+3
Call it in the function that also invokved FLAC__stream_decoder_init_*().
2012-02-11decoder/flac: use error messages from libFLACMax Kellermann1-27/+7
2012-02-11decoder/flac: eliminate the remaining "gotos"Max Kellermann1-42/+54
https://www.xkcd.com/292/
2011-09-16input_stream: non-blocking I/OMax Kellermann1-4/+5
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-03-23decoder/flac: fix enum mismatch in flac_tell_cb()Max Kellermann1-1/+1
Fix clang warning.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-03-21Add support for MixRamp tagsTim Phipps1-1/+6
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
2010-01-06decoder/flac: support streams without STREAMINFO blockMax Kellermann1-0/+12
2010-01-06decoder/flac: moved decoder initialization to _flac_common.cMax Kellermann1-15/+4
Invoke decoder_initialized() in the libFLAC metadata callback. This merges code from the FLAC and the OggFLAC decoder plugin into the common library.
2010-01-06decoder/flac: remember audio_format, not stream_infoMax Kellermann1-3/+3
2010-01-06decoder/flac: removed CUE sheet supportMax Kellermann1-295/+1
This feature has been moved to the "flac" playlist plugin.
2010-01-06decoder/flac: moved flac_tag_load() to flac_metadata.cMax Kellermann1-53/+0
Make this code is reusable.
2010-01-04renamed decoder plugin sourcesMax Kellermann1-0/+0
Make it X_decoder_plugin.c.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-29decoder/{ffmpeg,flac,vorbis}: added more flac/vorbis MIME typesMax Kellermann1-2/+8
Support deprecated MIME types such as "audio/x-ogg". Support new types such as "audio/flac".
2009-12-15input_stream: return errors with GErrorMax Kellermann1-2/+2
2009-11-11decoder/flac: check "seekable" in libFLAC callbacksMax Kellermann1-0/+6
Return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED if this input stream does not support seeking.
2009-11-11decoder/flac: moved code to flac_data_get_audio_format()Max Kellermann1-12/+4
Remove the audio_format attribute, add "frame_size" instead. The audio_format initialization and check is moved both to flac_data_get_audio_format().
2009-11-11decoder/flac: use stream_info instead of audio_formatMax Kellermann1-2/+2
Use the sample rate stored in the stream_info struct instead of the audio_format struct.
2009-11-11decoder/flac: calculate time stamp from current frameMax Kellermann1-7/+2
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.
2009-11-11decoder/flac: calculate bit rate in flac_common_write()Max Kellermann1-11/+12
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.
2009-11-11decoder/flac: store the whole stream info object, not durationMax Kellermann1-4/+10
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.
2009-11-11decoder/flac: merge code into flac_decoder_initialize()Max Kellermann1-50/+39
Wrapper for FLAC__stream_decoder_process_until_end_of_metadata(), decoder_initialized().
2009-11-11decoder/flac: merged code into flac_decoder_new()Max Kellermann1-28/+27
Convenience wrapper for FLAC__stream_decoder_new() and FLAC__stream_decoder_set_metadata_respond().
2009-11-11decoder/flac: free the "pathname" variable earlierMax Kellermann1-31/+15
Free the pointer right after its last use, i.e. after the FLAC__stream_decoder_init_file() call.
2009-11-11decoder/flac: emulate FLAC__stream_decoder_init_stream()Max Kellermann1-30/+12
Remove the wrapper flac_init().
2009-11-11decoder/flac: use the new API functionsMax Kellermann1-45/+52
Use the type and function names of the libFLAC 1.1.3 API. Map the new API to the old one with macros.
2009-11-11decoder/flac: removed the fake flac_ogg_init() fallbackMax Kellermann1-0/+4
Don't even try to call it with an old libFLAC API.
2009-11-11decoder/flac: moved code to flac_compat.hMax Kellermann1-0/+5
2009-11-11decoder/{flac,vorbis}: include config.h for LFSMax Kellermann1-0/+1
Allow those plugins to open large files on 32 bit platforms.
2009-11-11decoder/flac: merged code into flac_decoder_loop()Max Kellermann1-101/+55
The decoder loop of flac_decode_internal(), flac_container_decode() and flac_filedecode_internal() is merged into this one function. This unifies the code, and uses the frame number to identify the end of a CUE sub song.
2009-11-11decoder/flac: keep track of current frame numberMax Kellermann1-0/+3
We need this for more exact end-of-subsong detection for CUE files.
2009-11-11decoder/flac: fixed CUE seeking range checkMax Kellermann1-14/+8
If flac_container_decode() gets a seek destination which is out of range, it ignores the SEEK command (never finishes it). This leads to MPD lockup, because the player thread waits for completion.
2009-11-11decoder/flac: removed redundant NULL checksMax Kellermann1-9/+3
After the decoder loop, "flac_dec" is always set.
2009-11-11decoder/flac: moved code to flac_metadata.cMax Kellermann1-0/+1
2009-11-11decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann1-12/+4
2009-11-10decoder/flac: don't use float to calculate song durationMax Kellermann1-5/+2
Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway.
2009-11-10decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann1-2/+4
2009-11-10decoder/flac: added function flac_data_deinit()Max Kellermann1-8/+3
Clean up tag and replay_gain_info there.
2009-10-16decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann1-2/+3
Don't initialize "vc" and "cs" with FLAC__metadata_object_new(); that value is overwritten by FLAC__metadata_get_tags() and FLAC__metadata_get_cuesheet().
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann1-5/+2
2009-07-09flac: load external cue sheet when no internal oneSerge Ziryukin1-0/+14
External cue sheet file for "file.flac" should be named as "file.flac.cue".
2009-07-06decoder/flac: fix assertion failure in tag_free() callMax Kellermann1-2/+1
Initialize flac_data.tag right after flac_data_init(). This way, the "goto fail" won't jump to the point where tag_free(NULL) can be called.
2009-04-01flac: fixed "unused variable" warning without libcueMax Kellermann1-2/+2
Move the declaration of "i" into the "for" loop.
2009-03-31Tag subtracks according to "cuesheet" vorbis comment valueJochen Keil1-4/+32
Cuesheets are often saved as vorbis comment flac files (CUESHEET=.. case doesn't matter). We can parse this now and use the information to tag the subtracks (from the embedded cuesheets).
2009-03-31track length is computed correctly nowJochen Keil1-2/+1
2009-03-31free previously allocated flac metadata objectJochen Keil1-0/+1
2009-03-31remove old commented codeJochen Keil1-8/+0