Commit Graph

4388 Commits

Author SHA1 Message Date
Max Kellermann d8ef153729 music_chunk: added more audio_format_valid() assertions
Check the validity of the audio_format during write operations.
2009-05-11 17:25:34 +02:00
Max Kellermann 1a9a65b23b music_pipe: added assertion on chunk->audio_format
Always assert that the audio format of the new chunk is valid.
2009-05-11 16:33:48 +02:00
Patrik Weiskircher 7e678d2ba9 latest git, httpd_output_plugin compile fix, mac os x
Hello,

While compiling latest git I've received a compile error in the
httpd_output_plugin.
Small patch attached.

Patrik
2009-05-10 21:15:53 +02:00
Avuton Olrich 3ee3375273 Modify version string to post-release version 0.15~git 2009-05-08 03:44:46 -07:00
Avuton Olrich 0af8ea3ace mpd version 0.15~beta2 2009-05-08 03:44:46 -07:00
Max Kellermann 7c13249b59 pcm_resample: fixed typo in libsamplerate runtime check
The string comparison should be "!= 0", not "== 0".  Ouch.
2009-05-07 12:19:01 +02:00
Max Kellermann a4c59943d1 player_control: assert that pc.next_song is NULL after seeking
The player thread must reset pc.next_song after seeking, even if that
operation has failed.  This patch adds an assertion.
2009-05-06 18:46:59 +02:00
Max Kellermann 438f3547cc player_control: removed pc.error check from pc_seek()
The only pc_seek() caller clears the error, rendering the check
useless.  Even if the previous PLAY command resulted in a player
error, this check is not very useful.
2009-05-06 18:46:52 +02:00
Max Kellermann 3083df5a5f player_control: renamed playerSeek(), return bool
Renamed playerSeek() to pc_seek() to get rid of CamelCase.  Convert
the return value to bool.
2009-05-06 18:35:22 +02:00
Max Kellermann 0935d85c69 tag_id3: added support for the UFID frame
If the UFID frame's owner is "http://musicbrainz.org", assume its
value is the MusicBrainz track id.
2009-05-06 14:42:07 +02:00
Max Kellermann feae8b8f68 test/run_encoder: flush the encoder before exiting 2009-05-05 22:51:22 +02:00
Max Kellermann 4818d38677 httpd_output: save the page generated by encoder_tag()
Flush the encoder before calling encoder_tag().  The first page
generated by the encoder after sending the tag will be the new
"header" page, which is sent to all HTTP clients when they connect.
This is a little bit specific to the vorbis encoder, but there are no
other encoders which support tags (yet).
2009-05-05 22:51:17 +02:00
Max Kellermann e55e560d4e httpd_output: moved code to httpd_output_encoder_to_clients()
Moved some code from httpd_output_encode_and_play() into separate
functions httpd_output_broadcast_page() and
httpd_output_encoder_to_clients().
2009-05-05 22:43:28 +02:00
Max Kellermann 9080797025 httpd_output: disable Icy-Metadata when encoder supports tags
There's no reason to send both encoder tags and Icy-Metadata to the
client.  Let's disable Icy-Metadata when the encoder supports embedded
tags.
2009-05-05 22:41:36 +02:00
Max Kellermann ebc1d3516c vorbis_encoder: start a new stream in tag()
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-05 22:40:51 +02:00
Max Kellermann 7875072d38 vorbis_encoder: moved code to vorbis_encoder_headerout() 2009-05-05 22:37:13 +02:00
Max Kellermann 795569208a httpd_output: assert that tag!=NULL
In the tag() method, MPD guarantees that it does not pass tag==NULL.
Converted the runtime check to an assertion.
2009-05-05 22:36:44 +02:00
Max Kellermann 7dcdb2ce39 archive/zip: pass NULL instead of 0 to zzip_dir_open()
The second parameter of zzip_dir_open() is a pointer.  Pass the NULL
pointer instead of 0 (with implicit conversion at compile time).
2009-05-04 09:46:15 +02:00
Max Kellermann e6ea7ffdcb Makefile.am: run sparse once with all sources
Don't loop over source files, do all checks in one run.
2009-05-04 09:43:05 +02:00
Avuton Olrich be15a9e4ae Modify version string to post-release version 0.15~git 2009-04-30 08:07:24 -07:00
Avuton Olrich 0e8a8dadda mpd version 0.15~beta1 2009-04-30 08:07:24 -07:00
Max Kellermann 2c7508f72c Makefile.am: ship DocBook sources even when documentation is disabled 2009-04-30 11:43:19 +02:00
Avuton Olrich 86a9cd82e7 configure: Fix where mikmod was not explicitly disabled. 2009-04-29 03:13:30 -07:00
Avuton Olrich f9372600b8 configure: Fix where mp4 was not explicitly disabled. 2009-04-29 03:11:14 -07:00
Avuton Olrich 6dde36d683 scripts: Remove mpd.spec, it was always half-baked.
Remove mpd.spec and makerpm.sh. It was never used or maintained
and the distributors take care of this kinda thing now anyhow.
2009-04-29 02:43:04 -07:00
Max Kellermann e710037760 output_init: added option to disable the hardware mixer
Added the per-device option "mixer_enabled" which allows users to
disable the hardware mixer of an audio output.
2009-04-28 20:33:06 +02:00
Max Kellermann 61b0835512 command: added "sticker delete" command 2009-04-28 20:25:07 +02:00
Max Kellermann 610940a06d sticker: added sticker_delete_value()
sticker_delete_value() deletes only one value in a sticker, while
the old function sticker_delete() deletes all values.
2009-04-28 20:23:27 +02:00
Max Kellermann 7d9316a52d song_save: don't call tag_free(NULL)
When a song was in the database twice (which shouldn't happen), and
the first song had no tag items, MPD calledd tag_free(NULL).  Add a
check to that source location, and an assertion to tag_free().
2009-04-28 19:57:49 +02:00
Daniel Kahn Gillmor fd09a3cf1f clean up documentation of mixer options. 2009-04-28 17:21:26 +02:00
Max Kellermann fd81e7e3b6 libsamplerate: use g_ascii_strncasecmp() instead of strncasecmp()
strncasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:42:05 +02:00
Max Kellermann 3db834f6b3 command: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:34:03 +02:00
Max Kellermann b546cf65bc utils: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:33:44 +02:00
Max Kellermann d3c93c1c77 tag: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:32:38 +02:00
Max Kellermann b2924405ae conf: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:32:09 +02:00
Max Kellermann b1c177528f locate: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:31:44 +02:00
Max Kellermann 0edfbc8a5f input_curl: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:30:12 +02:00
Max Kellermann c434379d79 mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:29:39 +02:00
Max Kellermann d5b3dd36fd mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:29:11 +02:00
Max Kellermann 9038882d95 alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:28:16 +02:00
Daniel Kahn Gillmor 05dfdfdb39 alsa_mixer: add mixer_index option
This allows you to select controls with duplicate names.
2009-04-28 09:15:48 +02:00
Max Kellermann 70d322b296 Makefile.am: moved doxygen invocation out of HAVE_XMLTO
The doxygen invocation was misplaced: it was only defined when xmlto
is available.
2009-04-26 20:02:53 +02:00
Max Kellermann f4966ba42c decoder_api: removed dc.pipe assertion from decoder_read()
Database update was broken due to the dc.pipe!=NULL assertion.  This
assertion is only valid while MPD decodes a song, not during database
update.
2009-04-26 10:57:02 +02:00
Max Kellermann ecb7f24b01 vorbis_encoder: reinitialize vorbis_dsp_state after flush
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-04-25 18:27:39 +02:00
Max Kellermann 3888ef2f55 decoder_control: properly cancel an existing command in dc_stop()
When the decoder thread has a pending command, send the STOP command
to cancel this command.  Send STOP again if the decoder thread is
still running after that, just in case the decoder thread has executed
the previous command (which was overwritten).
2009-04-25 15:19:01 +02:00
Max Kellermann ceb00f787e decoder: added assertions on dc.pipe
dc.pipe must be non-NULL while the decoder thread is running.  Ensure
that with a load of assertions.
2009-04-25 15:07:22 +02:00
Max Kellermann d01d1ccad2 client: use GTimer to track timeouts 2009-04-25 14:16:24 +02:00
Max Kellermann 616dc9d465 playlist_control: use GTimer in previousSongInPlaylist()
To determine whether to rewind the current song or to go to the
previous song, use a GTimer instead of manually diffing time(NULL).
2009-04-25 14:08:31 +02:00
Max Kellermann d2010c0289 pulse_mixer: use PULSE's mainloop lock instead of GMutex
Using two different kinds of locks may result in a race condition with
a deadlock.  The libpulse callbacks need no locks at all, because the
mainloop object can be assumed to be already locked.
2009-04-25 13:53:15 +02:00
Max Kellermann 11bcd7f013 curl: moved proxy settings to "input" block
The old global settings "http_proxy_host", "http_proxy_port",
"http_proxy_user" and "http_proxy_password" continue to work.
2009-04-25 13:35:04 +02:00