Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2012-02-11 | decoder_plugin: scan tags with callback table | Max Kellermann | 1 | -17/+13 | |
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object. | |||||
2012-02-11 | decoder/flac: check for errors only after _process_single() | Max Kellermann | 1 | -8/+6 | |
The only other libFLAC call (seek) does not produce fatal errors. | |||||
2012-02-11 | decoder/flac: symmetric FLAC__stream_decoder_finish() calls | Max Kellermann | 1 | -1/+3 | |
Call it in the function that also invokved FLAC__stream_decoder_init_*(). | |||||
2012-02-11 | decoder/flac: use error messages from libFLAC | Max Kellermann | 1 | -27/+7 | |
2012-02-11 | decoder/flac: eliminate the remaining "gotos" | Max Kellermann | 1 | -42/+54 | |
https://www.xkcd.com/292/ | |||||
2011-09-16 | input_stream: non-blocking I/O | Max Kellermann | 1 | -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-23 | decoder/flac: fix enum mismatch in flac_tell_cb() | Max Kellermann | 1 | -1/+1 | |
Fix clang warning. | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2010-03-21 | Add support for MixRamp tags | Tim Phipps | 1 | -1/+6 | |
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading. | |||||
2010-01-06 | decoder/flac: support streams without STREAMINFO block | Max Kellermann | 1 | -0/+12 | |
2010-01-06 | decoder/flac: moved decoder initialization to _flac_common.c | Max Kellermann | 1 | -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-06 | decoder/flac: remember audio_format, not stream_info | Max Kellermann | 1 | -3/+3 | |
2010-01-06 | decoder/flac: removed CUE sheet support | Max Kellermann | 1 | -295/+1 | |
This feature has been moved to the "flac" playlist plugin. | |||||
2010-01-06 | decoder/flac: moved flac_tag_load() to flac_metadata.c | Max Kellermann | 1 | -53/+0 | |
Make this code is reusable. | |||||
2010-01-04 | renamed decoder plugin sources | Max Kellermann | 1 | -0/+0 | |
Make it X_decoder_plugin.c. | |||||
2009-12-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-12-29 | decoder/{ffmpeg,flac,vorbis}: added more flac/vorbis MIME types | Max Kellermann | 1 | -2/+8 | |
Support deprecated MIME types such as "audio/x-ogg". Support new types such as "audio/flac". | |||||
2009-12-15 | input_stream: return errors with GError | Max Kellermann | 1 | -2/+2 | |
2009-11-11 | decoder/flac: check "seekable" in libFLAC callbacks | Max Kellermann | 1 | -0/+6 | |
Return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED if this input stream does not support seeking. | |||||
2009-11-11 | decoder/flac: moved code to flac_data_get_audio_format() | Max Kellermann | 1 | -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-11 | decoder/flac: use stream_info instead of audio_format | Max Kellermann | 1 | -2/+2 | |
Use the sample rate stored in the stream_info struct instead of the audio_format struct. | |||||
2009-11-11 | decoder/flac: calculate time stamp from current frame | Max Kellermann | 1 | -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-11 | decoder/flac: calculate bit rate in flac_common_write() | Max Kellermann | 1 | -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-11 | decoder/flac: store the whole stream info object, not duration | Max Kellermann | 1 | -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-11 | decoder/flac: merge code into flac_decoder_initialize() | Max Kellermann | 1 | -50/+39 | |
Wrapper for FLAC__stream_decoder_process_until_end_of_metadata(), decoder_initialized(). | |||||
2009-11-11 | decoder/flac: merged code into flac_decoder_new() | Max Kellermann | 1 | -28/+27 | |
Convenience wrapper for FLAC__stream_decoder_new() and FLAC__stream_decoder_set_metadata_respond(). | |||||
2009-11-11 | decoder/flac: free the "pathname" variable earlier | Max Kellermann | 1 | -31/+15 | |
Free the pointer right after its last use, i.e. after the FLAC__stream_decoder_init_file() call. | |||||
2009-11-11 | decoder/flac: emulate FLAC__stream_decoder_init_stream() | Max Kellermann | 1 | -30/+12 | |
Remove the wrapper flac_init(). | |||||
2009-11-11 | decoder/flac: use the new API functions | Max Kellermann | 1 | -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-11 | decoder/flac: removed the fake flac_ogg_init() fallback | Max Kellermann | 1 | -0/+4 | |
Don't even try to call it with an old libFLAC API. | |||||
2009-11-11 | decoder/flac: moved code to flac_compat.h | Max Kellermann | 1 | -0/+5 | |
2009-11-11 | decoder/{flac,vorbis}: include config.h for LFS | Max Kellermann | 1 | -0/+1 | |
Allow those plugins to open large files on 32 bit platforms. | |||||
2009-11-11 | decoder/flac: merged code into flac_decoder_loop() | Max Kellermann | 1 | -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-11 | decoder/flac: keep track of current frame number | Max Kellermann | 1 | -0/+3 | |
We need this for more exact end-of-subsong detection for CUE files. | |||||
2009-11-11 | decoder/flac: fixed CUE seeking range check | Max Kellermann | 1 | -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-11 | decoder/flac: removed redundant NULL checks | Max Kellermann | 1 | -9/+3 | |
After the decoder loop, "flac_dec" is always set. | |||||
2009-11-11 | decoder/flac: moved code to flac_metadata.c | Max Kellermann | 1 | -0/+1 | |
2009-11-11 | decoder/flac: merged some code into flac_tag_apply_metadata() | Max Kellermann | 1 | -12/+4 | |
2009-11-10 | decoder/flac: don't use float to calculate song duration | Max Kellermann | 1 | -5/+2 | |
Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway. | |||||
2009-11-10 | decoder/flac: pass VorbisComment to comments_to_tag() | Max Kellermann | 1 | -2/+4 | |
2009-11-10 | decoder/flac: added function flac_data_deinit() | Max Kellermann | 1 | -8/+3 | |
Clean up tag and replay_gain_info there. | |||||
2009-10-16 | decoder/flac: fixed two memory leaks in the CUE tag loader | Max Kellermann | 1 | -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-13 | tag: removed the "_ITEM_" suffix from the enum names | Max Kellermann | 1 | -5/+2 | |
2009-07-09 | flac: load external cue sheet when no internal one | Serge Ziryukin | 1 | -0/+14 | |
External cue sheet file for "file.flac" should be named as "file.flac.cue". | |||||
2009-07-06 | decoder/flac: fix assertion failure in tag_free() call | Max Kellermann | 1 | -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-01 | flac: fixed "unused variable" warning without libcue | Max Kellermann | 1 | -2/+2 | |
Move the declaration of "i" into the "for" loop. | |||||
2009-03-31 | Tag subtracks according to "cuesheet" vorbis comment value | Jochen Keil | 1 | -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-31 | track length is computed correctly now | Jochen Keil | 1 | -2/+1 | |
2009-03-31 | free previously allocated flac metadata object | Jochen Keil | 1 | -0/+1 | |
2009-03-31 | remove old commented code | Jochen Keil | 1 | -8/+0 | |