From fe7a242d0dd578493d011edd0d0e9007a43f0726 Mon Sep 17 00:00:00 2001 From: Roman Arutyunyan Date: Sat, 5 Jan 2013 10:52:44 +0400 Subject: [PATCH] implemented restart on packet drop --- ngx_rtmp_live_module.c | 23 +---------------------- ngx_rtmp_live_module.h | 2 -- ngx_rtmp_stat_module.c | 6 +++--- 3 files changed, 4 insertions(+), 27 deletions(-) diff --git a/ngx_rtmp_live_module.c b/ngx_rtmp_live_module.c index 3ca6495..9a490f8 100644 --- a/ngx_rtmp_live_module.c +++ b/ngx_rtmp_live_module.c @@ -56,13 +56,6 @@ static ngx_command_t ngx_rtmp_live_commands[] = { offsetof(ngx_rtmp_live_app_conf_t, buflen), NULL }, - { ngx_string("sync"), - NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|NGX_CONF_TAKE1, - ngx_rtmp_live_set_msec_slot, - NGX_RTMP_APP_CONF_OFFSET, - offsetof(ngx_rtmp_live_app_conf_t, sync), - NULL }, - { ngx_string("interleave"), NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|NGX_CONF_TAKE1, ngx_conf_set_flag_slot, @@ -151,7 +144,6 @@ ngx_rtmp_live_create_app_conf(ngx_conf_t *cf) lacf->meta = NGX_CONF_UNSET; lacf->nbuckets = NGX_CONF_UNSET; lacf->buflen = NGX_CONF_UNSET; - lacf->sync = NGX_CONF_UNSET; lacf->idle_timeout = NGX_CONF_UNSET; lacf->interleave = NGX_CONF_UNSET; lacf->wait_key = NGX_CONF_UNSET; @@ -173,7 +165,6 @@ ngx_rtmp_live_merge_app_conf(ngx_conf_t *cf, void *parent, void *child) ngx_conf_merge_value(conf->meta, prev->meta, 1); ngx_conf_merge_value(conf->nbuckets, prev->nbuckets, 1024); ngx_conf_merge_msec_value(conf->buflen, prev->buflen, 0); - ngx_conf_merge_msec_value(conf->sync, prev->sync, 300); ngx_conf_merge_msec_value(conf->idle_timeout, prev->idle_timeout, 0); ngx_conf_merge_value(conf->interleave, prev->interleave, 0); ngx_conf_merge_value(conf->wait_key, prev->wait_key, 0); @@ -350,10 +341,8 @@ ngx_rtmp_live_set_status(ngx_rtmp_session_t *s, ngx_chain_t *control, } ctx->cs[0].active = 0; - ctx->cs[0].dropped = 0; ctx->cs[1].active = 0; - ctx->cs[1].dropped = 0; } @@ -834,16 +823,6 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, } } - /* sync stream */ - - if (cs->active && (lacf->sync && cs->dropped > lacf->sync)) { - ngx_log_debug2(NGX_LOG_DEBUG_RTMP, ss->connection->log, 0, - "live: sync %s dropped=%uD", type_s, cs->dropped); - - cs->active = 0; - cs->dropped = 0; - } - /* absolute packet */ if (!cs->active) { @@ -941,7 +920,7 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, if (ngx_rtmp_send_message(ss, rpkt, prio) != NGX_OK) { ++pctx->ndropped; - cs->dropped += delta; + cs->active = 0; if (mandatory) { ngx_log_debug0(NGX_LOG_DEBUG_RTMP, ss->connection->log, 0, diff --git a/ngx_rtmp_live_module.h b/ngx_rtmp_live_module.h index ec60716..45ec484 100644 --- a/ngx_rtmp_live_module.h +++ b/ngx_rtmp_live_module.h @@ -21,7 +21,6 @@ typedef struct { unsigned active:1; uint32_t timestamp; uint32_t csid; - uint32_t dropped; } ngx_rtmp_live_chunk_stream_t; @@ -57,7 +56,6 @@ typedef struct { ngx_rtmp_live_stream_t **streams; ngx_flag_t live; ngx_flag_t meta; - ngx_msec_t sync; ngx_msec_t idle_timeout; ngx_flag_t atc; ngx_flag_t interleave; diff --git a/ngx_rtmp_stat_module.c b/ngx_rtmp_stat_module.c index 0bec4a3..80e20b0 100644 --- a/ngx_rtmp_stat_module.c +++ b/ngx_rtmp_stat_module.c @@ -354,9 +354,9 @@ ngx_rtmp_stat_live(ngx_http_request_t *r, ngx_chain_t ***lll, NGX_RTMP_STAT_L(""); NGX_RTMP_STAT_L(""); - NGX_RTMP_STAT(buf, ngx_snprintf(buf, sizeof(buf), - "%uD/%uD", ctx->cs[1].dropped, - ctx->cs[0].dropped) - buf); + NGX_RTMP_STAT(buf, ngx_snprintf(buf, sizeof(buf), "%%uD", + ctx->ndropped) + - buf); NGX_RTMP_STAT_L(""); NGX_RTMP_STAT_L("");