1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-09-22 04:15:54 -04:00

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
This commit is contained in:
Karl Heyes 2008-09-09 02:18:22 +00:00
parent a520a18e53
commit 72f8944c90
4 changed files with 13 additions and 8 deletions

View File

@ -53,5 +53,10 @@
# endif
#endif
/* some defaults if not provided above */
#ifndef SCNdMAX
# define SCNdMAX "lld"
#endif
#endif /* __COMPAT_H__ */

View File

@ -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);
/* 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 (codec->possible_start)
@ -138,6 +132,12 @@ static refbuf_t *process_theora_page (ogg_state_t *ogg_info, ogg_codec_t *codec,
codec->possible_start = refbuf;
}
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;
}

View File

@ -609,7 +609,7 @@ static int update_from_master(ice_config_t *config)
on_demand = config->on_demand;
ret = 1;
config_release_config();
mastersock = sock_connect_wto (master, port, 0);
mastersock = sock_connect_wto (master, port, 10);
if (mastersock == SOCK_ERROR)
{

View File

@ -1225,7 +1225,7 @@ void *source_client_thread (void *arg)
source_main (source);
source_free_source (source);
slave_rebuild_mounts();
slave_update_all_mounts();
return NULL;
}