aboutsummaryrefslogtreecommitdiffstats
path: root/src/encoder/VorbisEncoderPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-15encoder/{Vorbis,Opus}: use new/deleteMax Kellermann1-4/+7
2012-10-02encoder/{vorbis,opus}: merge code to new class OggStreamMax Kellermann1-46/+13
2012-10-02encoder/vorbis: accept floating point input samplesMax Kellermann1-8/+9
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.
2012-10-02encoder/vorbis: use C++ compilerMax Kellermann1-23/+26
2012-10-02encoder/vorbis: make variables more localMax Kellermann1-20/+12
2012-04-05encoder/vorbis: generate end-of-stream packet when playback endsMax Kellermann1-0/+1
Add the encoder_plugin method end(). This is important for the recorder plugin.
2012-04-04encoder/vorbis: generate end-of-stream packet before tagMax Kellermann1-2/+0
Don't reset the ogg_stream_state object, because this discards the end-of-stream packet that was just added.
2011-07-20encoder_plugin: add method pre_tag()Max Kellermann1-0/+11
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.
2011-03-16encoder/vorbis: reset the Ogg stream after flushMax Kellermann1-0/+2
Without the ogg_stream_reset() call, the "e_o_s" flag never gets reset, and libogg writes EOS packets over and over.
2011-03-16encoder/vorbis: reset the Ogg stream after flushMax Kellermann1-0/+2
Without the ogg_stream_reset() call, the "e_o_s" flag never gets reset, and libogg writes EOS packets over and over.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-09-25eliminate g_error() usageThomas Jansen1-1/+2
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.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-03encoders: remove unnessesary pointers to const stringsViliam Mateicka1-3/+1
2009-12-03encoders: implement new get_mime_types methodViliam Mateicka1-0/+9
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-1/+1
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.
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
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.
2009-05-05vorbis_encoder: start a new stream in tag()Max Kellermann1-6/+9
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.
2009-05-05vorbis_encoder: moved code to vorbis_encoder_headerout()Max Kellermann1-5/+10
2009-04-25vorbis_encoder: reinitialize vorbis_dsp_state after flushMax Kellermann1-0/+7
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.
2009-03-15vorbis_encoder: added support for all MPD tag typesMax Kellermann1-29/+4
Copy all tags know to MPD to the vorbis_comment.
2009-03-15vorbis_encoder: removed vorbis_encoder.vcMax Kellermann1-4/+6
Allocate the vorbis_comment object when it's used. It is not used anymore in vorbis_encoder_tag().
2009-03-15vorbis_encoder: use vorbis_commentheader_out() in the tag() methodMax Kellermann1-6/+15
Don't reinitialize the encoder with every tag.
2009-03-15vorbis_encoder: pass vorbis_comment to tag helper functionsMax Kellermann1-9/+9
Prepare the removal of vorbis_encoder.vc.
2009-03-15vorbis_encoder: make ogg_page a local variableMax Kellermann1-24/+13
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.
2009-03-15vorbis_encoder: fill the ogg_page in the read() methodMax Kellermann1-4/+23
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.
2009-03-13all: Update copyright header.Avuton Olrich1-3/+4
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.
2009-02-27tag: no CamelCaseMax Kellermann1-1/+1
Renamed numOfItems to num_items.
2009-02-24vorbis_encoder: vorbis_encoder_clear() returns voidMax Kellermann1-5/+1
Don't return an uninitialized bool variable.
2009-02-22encoder: added vorbis encoderMax Kellermann1-0/+388
This new vorbis encoder plugin is based on the existing shout_ogg.c plugin.