aboutsummaryrefslogtreecommitdiffstats
path: root/src/encoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* encoder/{vorbis,opus}: merge code to new class OggStreamMax Kellermann2012-10-023-89/+154
|
* encoder/vorbis: accept floating point input samplesMax Kellermann2012-10-021-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.
* encoder/opus: call ogg_stream_flush() only in the last iterationMax Kellermann2012-10-021-4/+4
| | | | If there are multiple pages, the last partial page must be flushed.
* encoder/opus: new encoder plugin for the Opus codecMax Kellermann2012-10-022-0/+442
|
* encoder/vorbis: use C++ compilerMax Kellermann2012-10-022-23/+51
|
* encoder/vorbis: make variables more localMax Kellermann2012-10-021-20/+12
|
* Merge branch 'v0.16.x'Max Kellermann2012-04-053-2/+3
|\ | | | | | | | | | | Conflicts: src/output/osx_plugin.c src/text_input_stream.c
| * encoder/vorbis: generate end-of-stream packet when playback endsMax Kellermann2012-04-053-0/+3
| | | | | | | | | | Add the encoder_plugin method end(). This is important for the recorder plugin.
| * encoder/vorbis: generate end-of-stream packet before tagMax Kellermann2012-04-041-2/+0
| | | | | | | | | | Don't reset the ogg_stream_state object, because this discards the end-of-stream packet that was just added.
* | audio_format: remove the packed S24 formatMax Kellermann2012-03-221-5/+0
| | | | | | | | | | | | For simplicity, the MPD core should not have to deal with packing. It is rarely used, and those plugins that need it should use the pcm_export library instead.
* | Merge branch 'v0.16.x'Max Kellermann2011-11-283-54/+67
|\| | | | | | | | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac src/encoder/flac_encoder.c src/log.c src/pcm_buffer.c
| * encoder/wave: support packed 24 bit samplesMax Kellermann2011-11-281-0/+5
| | | | | | | | Convert to padded 24 bit samples, instead of falling back to 16 bit.
| * encoder/null: use fifo_buffer instead of pcm_bufferMax Kellermann2011-11-281-19/+15
| | | | | | | | | | | | This fixes a buffer corruption bug; pcm_buffer is not designed to be a persistent buffers, and will discard anything between two consecutive calls.
| * encoder/wave: use fifo_buffer instead of pcm_bufferMax Kellermann2011-11-281-19/+27
| | | | | | | | | | | | This fixes a buffer corruption bug; pcm_buffer is not designed to be a persistent buffers, and will discard anything between two consecutive calls.
| * encoder/flac: use fifo_buffer instead of pcm_bufferMax Kellermann2011-11-281-16/+20
| | | | | | | | | | | | This fixes a buffer corruption bug; pcm_buffer is not designed to be a persistent buffers, and will discard anything between two consecutive calls.
* | Merge branch 'v0.16.x'Max Kellermann2011-07-201-0/+11
|\| | | | | | | | | | | Conflicts: src/player_thread.c src/playlist_control.c
| * encoder_plugin: add method pre_tag()Max Kellermann2011-07-201-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.
* | fix common misspellingsJonathan Neuschäfer2011-03-311-1/+1
| | | | | | | | | | | | | | These fixes were mostly generated with `codespell' [0] and manually reviewed. [0] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
* | Merge commit 'release-0.16.2'Max Kellermann2011-03-193-5/+7
|\| | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac
| * encoder/vorbis: reset the Ogg stream after flushMax Kellermann2011-03-161-0/+2
| | | | | | | | | | Without the ogg_stream_reset() call, the "e_o_s" flag never gets reset, and libogg writes EOS packets over and over.
| * general: whitespace cleanupThomas Jansen2011-02-092-5/+5
| | | | | | | | | | Remove trailing whitespace found by this command: find -name '*.[ch]' | xargs grep "[[:space:]]$"
* | copyright year 2011Max Kellermann2011-01-296-6/+6
|/
* Merge branch 'v0.15.x' into v0.16.xMax Kellermann2011-01-071-0/+7
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac src/directory.h
| * encoder/lame: explicitly configure the output sample rateMax Kellermann2011-01-071-0/+7
| | | | | | | | | | | | | | | | | | When you don't explicitly set an output sample rate, liblame tries to guess an output sample rate from the input sample rate. You would think that this "guessing" consists of just setting both equal, but that is not the case. For 44.1kHz at 96kbit/s, liblame chooses 32kHz. This patch explicitly configures the output sample rate, to stop the bad guessing.
* | Merge release 0.15.13 from branch 'v0.15.x'Max Kellermann2010-10-111-1/+1
|\| | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/rewind_input_plugin.c src/output/httpd_output_plugin.c
* | eliminate g_error() usageThomas Jansen2010-09-251-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.
* | Update copyright notices.Avuton Olrich2009-12-316-6/+6
| |
* | encoder/flac: fix write callback prototype for libFLAC 1.1.2Max Kellermann2009-12-151-1/+7
| |
* | encoders: remove unnessesary pointers to const stringsViliam Mateicka2009-12-035-15/+5
| |
* | encoders: implement new get_mime_types methodViliam Mateicka2009-12-035-0/+45
| |
* | null_encoder: use pcm_bufferViliam Mateicka2009-12-031-10/+18
| |
* | flac_encoder: add support for libFLAC < 1.1.3Viliam Mateicka2009-12-031-18/+47
| |
* | audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-025-18/+61
| | | | | | | | | | | | 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.
* | encoder: let wave encoder to use pcm_buffer, pcm conversion code cleanupViliam Mateicka2009-11-171-29/+27
| |
* | encoder: introducing flac encoder pluginViliam Mateicka2009-11-171-0/+296
| |
* | include config.h in all sourcesMax Kellermann2009-11-125-0/+5
| | | | | | | | | | | | 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.
* | wave_encoder: new encoder for streaming PCM wave files.Viliam Mateicka2009-11-101-0/+241
| | | | | | | | | | | | When using wave encoder with httpd audio output mpd can input this stream via http and audiofile decoder. This for example opens simple way to configure lossless audio streaming port(like jack or pulseaudio does but without overhead). Another possibility can be using it for gathering raw data for visualization plugins (If sync issue will be resolved)
* | encoder/null: removed empty close() methodMax Kellermann2009-11-081-6/+0
| | | | | | | | That's an optional method.
* | encoder/null: removed unused audio_format attributeMax Kellermann2009-11-081-5/+2
| |
* | encoder: renaming none_encoder to null_encoderViliam Mateicka2009-10-261-25/+25
| |
* | encoder: new encoder plugin which just pass data throughViliam Mateicka2009-10-241-0/+124
| |
* | encoder/twolame: new encoder plugin based on libtwolameMax Kellermann2009-07-141-0/+299
|/ | | | | | | This encoder plugin is a replacement for the LAME encoder plugin for those who prefer a "free" (non-patent encumbered) encoder library. Most of the plugin source code is copied from the LAME encoder plugin, since the LAME and TwoLAME APIs are nearly the same.
* vorbis_encoder: start a new stream in tag()Max Kellermann2009-05-051-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.
* vorbis_encoder: moved code to vorbis_encoder_headerout()Max Kellermann2009-05-051-5/+10
|
* vorbis_encoder: reinitialize vorbis_dsp_state after flushMax Kellermann2009-04-251-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.
* vorbis_encoder: added support for all MPD tag typesMax Kellermann2009-03-151-29/+4
| | | | Copy all tags know to MPD to the vorbis_comment.
* vorbis_encoder: removed vorbis_encoder.vcMax Kellermann2009-03-151-4/+6
| | | | | Allocate the vorbis_comment object when it's used. It is not used anymore in vorbis_encoder_tag().
* vorbis_encoder: use vorbis_commentheader_out() in the tag() methodMax Kellermann2009-03-151-6/+15
| | | | Don't reinitialize the encoder with every tag.
* vorbis_encoder: pass vorbis_comment to tag helper functionsMax Kellermann2009-03-151-9/+9
| | | | Prepare the removal of vorbis_encoder.vc.
* vorbis_encoder: make ogg_page a local variableMax Kellermann2009-03-151-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.