| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Prepare to migrate away from GLib. Currently, we're still using GLib
as a backend.
|
|
The MPD core will add this as a prefeix.
|
|
|
|
Replaces GLib's GError.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Improves quality by not squeezing 32 bit samples down to 16 bit, and
then back to 32 bit floating point. Reduces CPU usage by skipping a
conversion step.
|
|
|
|
|
|
Add the encoder_plugin method end(). This is important for the
recorder plugin.
|
|
Don't reset the ogg_stream_state object, because this discards the
end-of-stream packet that was just added.
|
|
In the "vorbis" plugin, this is a copy of the old flush() method,
while flush() gets a lot of code remove, it just sets the "flush" flag
and nothing else. It doesn't start a new stream now, which should fix
a few problems in some players.
|
|
Without the ogg_stream_reset() call, the "e_o_s" flag never gets
reset, and libogg writes EOS packets over and over.
|
|
Without the ogg_stream_reset() call, the "e_o_s" flag never gets
reset, and libogg writes EOS packets over and over.
|
|
|
|
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
file 'mpd_error.h'. This macro uses g_critical() to print the error message
and then exits gracefully in contrast to g_error() which would internally call
abort() to produce a core dump.
The macro name is distinctive and allows to find all places with dubious error
handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
facilitate the eventual removal of this macro it was added in a new header
file rather than to an existing header file.
This fixes #2995 and #3007.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
When a new tag is set, end the current stream and begin a new one.
Use vorbis_analysis_headerout() to write a full ogg header. This
fixes a problem with icecast: after a song change in MPD, icecast
stops forwarding ogg packets to its clients.
|
|
|
|
libvorbis goes into a very long loop if we try to add data after a
flush was invoked by vorbis_analysis_wrote(0). This seems to be a
problem with the internal end-of-stream marker. Thus, we cannot reuse
the vorbis_dsp_state object.
|
|
Copy all tags know to MPD to the vorbis_comment.
|
|
Allocate the vorbis_comment object when it's used. It is not used
anymore in vorbis_encoder_tag().
|
|
Don't reinitialize the encoder with every tag.
|
|
Prepare the removal of vorbis_encoder.vc.
|
|
Converted the ogg_page attribute from the vorbis_encoder struct to a
local function of vorbis_encoder_read(). This simplifies some code,
because we don't need to check the page anymore before using it.
|
|
Add the "flush" flag, and defer the ogg_stream_flush() call. Call
ogg_stream_pageout() or ogg_stream_flush() (depending on the "flush"
flag) in vorbis_encoder_read(). This prevents the ogg_page from
getting overwritten by consecutive ogg_stream_pageout() calls.
|
|
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.
|
|
Renamed numOfItems to num_items.
|
|
Don't return an uninitialized bool variable.
|
|
This new vorbis encoder plugin is based on the existing shout_ogg.c
plugin.
|