| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
More exact total time.
|
|
|
|
|
| |
Negative return values are not documented here, but since the function
prototype is signed, let's be sure.
|
|
|
|
|
| |
Don't maintain the current time stamp in a floating point variable,
because this is subject to rounding errors.
|
|
|
|
| |
The new option "sample_rate" sets the sample rate for libmikmod.
|
| |
|
| |
|
| |
|
|
|
|
| |
These functions are trivial, we don't need them separate.
|
|
|
|
| |
Don't allocate this object, put it on the stack.
|
| |
|
|
|
|
|
| |
Unified function for converting an audio_format object to a string,
for log messages and for the "status" command.
|
| |
|
|
|
|
|
|
| |
Let the audio_check library verify the audio format in all (relevant,
i.e. non-hardcoded) plugins.
|
|
|
|
|
| |
These functions are a wrapper for audio_valid_X(). On error, they
return a GError object.
|
|
|
|
|
| |
Internally, use only the integer time. When needed, convert it to a
floating point seconds value.
|
|
|
|
| |
At this point, the function may be called from the SEEK handler.
|
|
|
|
|
|
|
|
|
|
| |
When waiting for the decoder to provide more data, the player thread
generates silence chunks if needed. However, it forgot to initialize
the chunk.times attribute, which had now an undefined value. This
patch sets it to -1.0, meaning "value is undefined". Add a ">= 0.0"
check to audio_output_all_check(). This fixes spurious relative
seeking errors, because sometimes, the "elapsed" value falls back to
0.0.
|
| |
|
|
|
|
| |
Temporary editor files.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
*sigh* another Large File breakage. ino_t/dev_t this time. We need
to include config.h in directory.h to get this straight.
|
|
|
|
|
| |
Remove the OPEN_2CH_MAX option. MPD's support for surround sound is
still clunky, but we're working on it.
|
|
|
|
|
|
|
|
|
|
| |
MPD has been supporting 32 bit samples since version 0.15. This patch
changes one check, and removes the 32->24 conversion code.
Note that WavPack floating point samples have 32 bits, and MPD doesn't
have a special check for floating point - therefore, this WavPack
plugin still returns 24 bit integer samples as before (until we have
float support in the MPD core).
|
|
|
|
|
|
|
| |
Call decoder_initialize() before entering the loop. We don't need to
call ov_read() before ov_info(). When the stream number changes,
check if the audio format is still the same.
|
| |
|
|
|
|
| |
Use the struct name instead.
|
| |
|
|
|
|
| |
This is done by audio_format_init().
|
|
|
|
|
| |
Return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED if this input
stream does not support seeking.
|
|
|
|
|
|
| |
Remove the audio_format attribute, add "frame_size" instead. The
audio_format initialization and check is moved both to
flac_data_get_audio_format().
|
|
|
|
|
| |
Use the sample rate stored in the stream_info struct instead of the
audio_format struct.
|
|
|
|
|
|
| |
When calculating the properties of the frame, use sample_rate and
other information from the frame header instead of the stored
audio_format object.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Wrapper for FLAC__stream_decoder_process_until_end_of_metadata(),
decoder_initialized().
|
|
|
|
|
| |
Convenience wrapper for FLAC__stream_decoder_new() and
FLAC__stream_decoder_set_metadata_respond().
|
|
|
|
|
| |
Free the pointer right after its last use, i.e. after the
FLAC__stream_decoder_init_file() call.
|
|
|
|
| |
Remove the wrapper flac_init().
|
|
|
|
|
| |
Use the type and function names of the libFLAC 1.1.3 API. Map the new
API to the old one with macros.
|
|
|
|
| |
Don't even try to call it with an old libFLAC API.
|
| |
|
|
|
|
| |
Allow those plugins to open large files on 32 bit platforms.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
We need this for more exact end-of-subsong detection for CUE files.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
The oggflac plugin has been completely broken for quite a while and
nobody has noticed - maybe we should remove it?
|