Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2013-01-07 | decoder/ogg_codec: convert to C++ | Max Kellermann | 1 | -4/+1 | |
2012-10-04 | decoder/flac: support FLAC files inside archives | Max Kellermann | 1 | -2/+32 | |
Implement the "scan_stream" method that can read tags from any input_stream object. This requires a FLAC__IOCallbacks implementation based on the input_stream API. | |||||
2012-10-04 | decoder/flac: move flac_scan_file2() to main plugin file | Max Kellermann | 1 | -1/+9 | |
2012-10-02 | decoder/flac: move callbacks to class FLACInput | Max Kellermann | 1 | -96/+13 | |
2012-10-02 | decoder/flac: add ctor/dtor to struct flac_data | Max Kellermann | 1 | -6/+1 | |
2012-10-02 | decoder/flac: add method FLACMetadataChain::Scan() | Max Kellermann | 1 | -9/+1 | |
Merge common code. | |||||
2012-10-02 | decoder/flac: add C++ libFLAC wrappers | Max Kellermann | 1 | -13/+8 | |
Not using libFLAC++ because this library adds a lot of overhead due to virtual method calls. This new class library is zero-overhead. | |||||
2012-10-02 | decoder/flac: eliminate the obsolete "track number" code | Max Kellermann | 1 | -3/+2 | |
This has been deprecated by the "embcue" playlist plugin. | |||||
2012-10-02 | decoder/flac: use C++ compiler | Max Kellermann | 1 | -27/+40 | |
2012-10-02 | {decoder,encoder}/flac: drop support for libFLAC 1.1 | Max Kellermann | 1 | -54/+5 | |
2012-09-04 | decoder/ogg_common: rename to ogg_codec.c | Max Kellermann | 1 | -3/+3 | |
2012-09-04 | decoder/ogg_common: pass decoder to _type_detect() | Max Kellermann | 1 | -1/+1 | |
Allow the function to be cancelled. | |||||
2012-09-04 | decoder/_ogg_common: rename to ogg_common.c | Max Kellermann | 1 | -2/+2 | |
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 | |