Commit 72f8944c authored by Karl Heyes's avatar Karl Heyes

fix starting point problem with low bandwidth theroa streams. listener could

connect and be waiting a while before receiving stream content.

When retrieving streamlist, don't wait too long for connection to master

schedule a full stats rebuild on source disconnect.

Minor build fix for certain platforms with missing defines

svn path=/icecast/trunk/icecast/; revision=15276
parent a520a18e
...@@ -53,5 +53,10 @@ ...@@ -53,5 +53,10 @@
# endif # endif
#endif #endif
/* some defaults if not provided above */
#ifndef SCNdMAX
# define SCNdMAX "lld"
#endif
#endif /* __COMPAT_H__ */ #endif /* __COMPAT_H__ */
...@@ -124,12 +124,6 @@ static refbuf_t *process_theora_page (ogg_state_t *ogg_info, ogg_codec_t *codec, ...@@ -124,12 +124,6 @@ static refbuf_t *process_theora_page (ogg_state_t *ogg_info, ogg_codec_t *codec,
refbuf = make_refbuf_with_page (page); refbuf = make_refbuf_with_page (page);
/* DEBUG3 ("refbuf %p has pageno %ld, %llu", refbuf, ogg_page_pageno (page), (uint64_t)granulepos); */ /* DEBUG3 ("refbuf %p has pageno %ld, %llu", refbuf, ogg_page_pageno (page), (uint64_t)granulepos); */
if (has_keyframe && codec->possible_start)
{
codec->possible_start->sync_point = 1;
refbuf_release (codec->possible_start);
codec->possible_start = NULL;
}
if (granulepos != theora->prev_granulepos || granulepos == 0) if (granulepos != theora->prev_granulepos || granulepos == 0)
{ {
if (codec->possible_start) if (codec->possible_start)
...@@ -138,6 +132,12 @@ static refbuf_t *process_theora_page (ogg_state_t *ogg_info, ogg_codec_t *codec, ...@@ -138,6 +132,12 @@ static refbuf_t *process_theora_page (ogg_state_t *ogg_info, ogg_codec_t *codec,
codec->possible_start = refbuf; codec->possible_start = refbuf;
} }
theora->prev_granulepos = granulepos; theora->prev_granulepos = granulepos;
if (has_keyframe && codec->possible_start)
{
codec->possible_start->sync_point = 1;
refbuf_release (codec->possible_start);
codec->possible_start = NULL;
}
return refbuf; return refbuf;
} }
......
...@@ -609,7 +609,7 @@ static int update_from_master(ice_config_t *config) ...@@ -609,7 +609,7 @@ static int update_from_master(ice_config_t *config)
on_demand = config->on_demand; on_demand = config->on_demand;
ret = 1; ret = 1;
config_release_config(); config_release_config();
mastersock = sock_connect_wto (master, port, 0); mastersock = sock_connect_wto (master, port, 10);
if (mastersock == SOCK_ERROR) if (mastersock == SOCK_ERROR)
{ {
......
...@@ -1225,7 +1225,7 @@ void *source_client_thread (void *arg) ...@@ -1225,7 +1225,7 @@ void *source_client_thread (void *arg)
source_main (source); source_main (source);
source_free_source (source); source_free_source (source);
slave_rebuild_mounts(); slave_update_all_mounts();
return NULL; return NULL;
} }
......
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