Commit a57f9e71 authored by Max Kellermann's avatar Max Kellermann

Merge release 0.15.13 from branch 'v0.15.x'

Conflicts: NEWS configure.ac src/input/rewind_input_plugin.c src/output/httpd_output_plugin.c
parents e6fc88a7 b552e9a1
...@@ -106,6 +106,16 @@ ver 0.16 (20??/??/??) ...@@ -106,6 +106,16 @@ ver 0.16 (20??/??/??)
* make single mode 'sticky' * make single mode 'sticky'
ver 0.15.13 (2010/10/10)
* output_thread: fix race condition after CANCEL command
* output:
- httpd: fix random data in stream title
- httpd: MIME type audio/ogg for Ogg Vorbis
* input:
- rewind: update MIME not only once
- rewind: enable for MMS
ver 0.15.12 (2010/07/20) ver 0.15.12 (2010/07/20)
* input: * input:
- curl: remove assertion after curl_multi_fdset() - curl: remove assertion after curl_multi_fdset()
......
...@@ -386,7 +386,7 @@ vorbis_encoder_read(struct encoder *_encoder, void *_dest, size_t length) ...@@ -386,7 +386,7 @@ vorbis_encoder_read(struct encoder *_encoder, void *_dest, size_t length)
static const char * static const char *
vorbis_encoder_get_mime_type(G_GNUC_UNUSED struct encoder *_encoder) vorbis_encoder_get_mime_type(G_GNUC_UNUSED struct encoder *_encoder)
{ {
return "application/x-ogg"; return "audio/ogg";
} }
const struct encoder_plugin vorbis_encoder_plugin = { const struct encoder_plugin vorbis_encoder_plugin = {
......
...@@ -96,6 +96,7 @@ icy_server_metadata_page(const struct tag *tag, ...) ...@@ -96,6 +96,7 @@ icy_server_metadata_page(const struct tag *tag, ...)
gchar stream_title[(1 + 255 - 28) * 16]; // Length + Metadata - gchar stream_title[(1 + 255 - 28) * 16]; // Length + Metadata -
// "StreamTitle='';StreamUrl='';" // "StreamTitle='';StreamUrl='';"
// = 4081 - 28 // = 4081 - 28
stream_title[0] = '\0';
last_item = -1; last_item = -1;
......
...@@ -264,7 +264,7 @@ input_curl_select(struct input_curl *c, GError **error_r) ...@@ -264,7 +264,7 @@ input_curl_select(struct input_curl *c, GError **error_r)
return -1; return -1;
} }
#if LIBCURL_VERSION_NUM >= 0x070f00 #if LIBCURL_VERSION_NUM >= 0x070f04
long timeout2; long timeout2;
mcode = curl_multi_timeout(c->multi, &timeout2); mcode = curl_multi_timeout(c->multi, &timeout2);
if (mcode != CURLM_OK) { if (mcode != CURLM_OK) {
......
...@@ -85,10 +85,11 @@ copy_attributes(struct input_rewind *r) ...@@ -85,10 +85,11 @@ copy_attributes(struct input_rewind *r)
dest->size = src->size; dest->size = src->size;
dest->offset = src->offset; dest->offset = src->offset;
if (dest->mime == NULL && src->mime != NULL) if (src->mime != NULL) {
/* this is set only once, and the duplicated pointer if (dest->mime != NULL)
is freed by input_stream_close() */ g_free(dest->mime);
dest->mime = g_strdup(src->mime); dest->mime = g_strdup(src->mime);
}
} }
static void static void
......
...@@ -49,3 +49,10 @@ void notify_signal(struct notify *notify) ...@@ -49,3 +49,10 @@ void notify_signal(struct notify *notify)
g_cond_signal(notify->cond); g_cond_signal(notify->cond);
g_mutex_unlock(notify->mutex); g_mutex_unlock(notify->mutex);
} }
void notify_clear(struct notify *notify)
{
g_mutex_lock(notify->mutex);
notify->pending = false;
g_mutex_unlock(notify->mutex);
}
...@@ -45,4 +45,9 @@ void notify_wait(struct notify *notify); ...@@ -45,4 +45,9 @@ void notify_wait(struct notify *notify);
*/ */
void notify_signal(struct notify *notify); void notify_signal(struct notify *notify);
/**
* Clears a pending notification.
*/
void notify_clear(struct notify *notify);
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment