- 09 Feb, 2009 6 commits
-
-
Max Kellermann authored
Always assume the buffer is empty before calling the encoder. Always flush the buffer immediately after there has been added something. This reduces the risk of buffer overruns, because there will never be a "rest" in the current buffer.
-
Max Kellermann authored
Don't duplicate the tag received by the send_metadata() method - send it to the shout server directly.
-
Max Kellermann authored
Removed the manual timer synchronization from the shout plugin. libshout's shout_sync() function does it for us.
-
Max Kellermann authored
The non-blocking mode of libshout is sparsely documented, and MPD's implementation had several bugs. Also removed connect throttling code, that is done by the MPD core since 0.14.
-
Max Kellermann authored
When shout_data.tag!=NULL, there is a "tag to send". The tag_to_send flag is redundant.
-
Max Kellermann authored
That variable is set in handle_shout_error(), but is never read.
-
- 30 Jan, 2009 1 commit
-
-
Max Kellermann authored
Move the "while" loop which checks for commands to the caller ao_pause(). This simplifies the pause() method, and lets us remove audio_output_is_pending().
-
- 25 Jan, 2009 2 commits
-
-
Max Kellermann authored
On some platforms, g_free() must be used for memory allocated by GLib. This patch intends to correct a lot of occurrences, but is probably not complete.
-
Max Kellermann authored
All config_get_block_*() functions should accept constant config_param pointers.
-
- 18 Jan, 2009 2 commits
-
-
Max Kellermann authored
Eliminate some more getBlockParam() invocations.
-
Max Kellermann authored
This replaces lots of getBlockParam() invocations.
-
- 17 Jan, 2009 2 commits
-
-
Max Kellermann authored
No "force" parameter, pass a default value instead.
-
Max Kellermann authored
Renamed functions, types, variables.
-
- 08 Jan, 2009 1 commit
-
-
Max Kellermann authored
-
- 23 Dec, 2008 2 commits
-
-
Viliam Mateicka authored
-
Viliam Mateicka authored
-
- 25 Nov, 2008 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
If the shout plugin is disabled, shout_plugin.c isn't compiled at all, no need to check the macro definition.
-
- 31 Oct, 2008 1 commit
-
-
Alam Arias authored
removed unneed check for protocol in shout plugin, will assume icecast2 protocol if not exist in config
-
- 29 Oct, 2008 2 commits
-
-
Max Kellermann authored
When an output plugin fails to play a chunk, close it. This replaces various manual close() calls in nearly all plugins.
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
- 26 Oct, 2008 1 commit
-
-
Max Kellermann authored
Again, no CamelCase in the directory name.
-
- 12 Oct, 2008 2 commits
-
-
Aaron McEwan authored
Added configuration parameter "protocol" which lets the user choose from 3 shout protocols. This adds support for real shoutcast servers.
-
Max Kellermann authored
Case insensitivity isn't helpful, and comparing only the first 3 bytes of a configured value may encourage users to supply wrong or misleading values.
-
- 10 Oct, 2008 2 commits
-
-
Max Kellermann authored
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
-
Max Kellermann authored
"bits" and "channels" cannot be negative.
-
- 09 Oct, 2008 1 commit
-
-
Max Kellermann authored
Having an array with disabled entries sucks. Removed that DISABLED_SHOUT_ENCODER_PLUGIN macro, and fill the plugin list only with plugins which are actually enabled. This should be done for all plugin types.
-
- 08 Oct, 2008 1 commit
-
-
Max Kellermann authored
When there are standardized headers, use these instead of the bloated os_compat.h.
-
- 29 Sep, 2008 2 commits
-
-
Max Kellermann authored
pause() puts the audio output into pause mode: if supported, it may perform a special action, which keeps the device open, but does not play anything. Output plugins like "shout" might want to play silence during pause, so their clients won't be disconnected. Plugins which do not support pausing will simply be closed, and have to be reopened when unpaused. This pach includes an implementation for the shout plugin, which sends silence chunks.
-
Max Kellermann authored
The old struct initializers are error prone and don't allow moving elements around. Since we are going to overhaul some of the APIs soon, it's easier to have all implementations use C99 initializers.
-
- 24 Sep, 2008 3 commits
-
-
Max Kellermann authored
We have eliminated direct accesses to the audio_output struct from the all output plugins. Make it opaque for them, and move its real declaration to output_internal.h, similar to decoder_internal.h. Pass the opaque structure to plugin.init() only, which will return the plugin's data pointer on success, and NULL on failure. This data pointer will be passed to all other methods instead of the audio_output struct.
-
Max Kellermann authored
Since the output plugin returns a value indicating success or error, we can have the output core code assign the "open" flag.
-
Max Kellermann authored
Pass the globally configured audio_format as a const pointer to plugin.init(). plugin.open() gets a writable pointer which contains the audio_format requested by the plugin. Its initial value is either the configured audio_format or the input file's audio_format.
-
- 12 Sep, 2008 7 commits
-
-
Max Kellermann authored
Add a check to write_page() which checks if there is actually data. Don't bother to call shout_send() if there is not.
-
Max Kellermann authored
The function is trivial, without a benefit. Also don't initialize buf.data[0], this is not a null terminated string.
-
Max Kellermann authored
Since the buffer size is known at compile time, we can save an indirection by declaring it as a char array instead of a pointer. That saves an extra allocation, and we can calculate with the compile-time constant sizeof(data) instead of the attribute "max_len".
-
Max Kellermann authored
Declare both shout plugins "const", since they will never change, once initialized at compile time.
-
Max Kellermann authored
Shout encoder plugins are known at compile time. There is no reason to use a complex data structure as "List" to manage them at runtime - just put the pointers into a static array.
-
Max Kellermann authored
Don't typedef the structs at all. It is easier to forward-declare this way. Don't typedef methods. They are used exactly once, a few lines below.
-
Eric Wollesen authored
[mk: moved this patch after "Refactor and cleanup of shout Ogg and MP3 audio outputs". The original commit message follows, although it is outdated:] Creation of shout_mp3 audio output plugin. Basically I just copied the existing shout plugin and replaced ogg with lame. Uses lame for mp3 encoding. Next step is to pull common functionality out of each shout plugin and share it between them. Configuration options for "shout_mp3" are the same as for "shout".
-