mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2025-06-30 22:18:19 -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:
parent
a520a18e53
commit
72f8944c90
@ -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,
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user