mirror of
https://github.com/zotanmew/nginx-rtmp-module.git
synced 2024-05-20 18:01:08 +02:00
Merge pull request #14 from LanetNetwork/master
Added Directive "record_interval_size"
This commit is contained in:
commit
593368e9e6
7
AUTHORS
7
AUTHORS
|
@ -6,3 +6,10 @@ Project author:
|
||||||
Contacts:
|
Contacts:
|
||||||
arut@qip.ru
|
arut@qip.ru
|
||||||
arutyunyan.roman@gmail.com
|
arutyunyan.roman@gmail.com
|
||||||
|
|
||||||
|
Fork author:
|
||||||
|
Anton Baranov
|
||||||
|
Kiev, Ukraine
|
||||||
|
|
||||||
|
Contacts:
|
||||||
|
a.baranov@lanet.ua
|
||||||
|
|
|
@ -110,6 +110,14 @@ static ngx_command_t ngx_rtmp_record_commands[] = {
|
||||||
offsetof(ngx_rtmp_record_app_conf_t, lock_file),
|
offsetof(ngx_rtmp_record_app_conf_t, lock_file),
|
||||||
NULL },
|
NULL },
|
||||||
|
|
||||||
|
{ ngx_string("record_interval_size"),
|
||||||
|
NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|
|
||||||
|
NGX_RTMP_REC_CONF|NGX_CONF_TAKE1,
|
||||||
|
ngx_conf_set_size_slot,
|
||||||
|
NGX_RTMP_APP_CONF_OFFSET,
|
||||||
|
offsetof(ngx_rtmp_record_app_conf_t, interval_size),
|
||||||
|
NULL },
|
||||||
|
|
||||||
{ ngx_string("record_max_size"),
|
{ ngx_string("record_max_size"),
|
||||||
NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|
|
NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|
|
||||||
NGX_RTMP_REC_CONF|NGX_CONF_TAKE1,
|
NGX_RTMP_REC_CONF|NGX_CONF_TAKE1,
|
||||||
|
@ -194,6 +202,7 @@ ngx_rtmp_record_create_app_conf(ngx_conf_t *cf)
|
||||||
}
|
}
|
||||||
|
|
||||||
racf->max_size = NGX_CONF_UNSET_SIZE;
|
racf->max_size = NGX_CONF_UNSET_SIZE;
|
||||||
|
racf->interval_size = NGX_CONF_UNSET_SIZE;
|
||||||
racf->max_frames = NGX_CONF_UNSET_SIZE;
|
racf->max_frames = NGX_CONF_UNSET_SIZE;
|
||||||
racf->interval = NGX_CONF_UNSET_MSEC;
|
racf->interval = NGX_CONF_UNSET_MSEC;
|
||||||
racf->unique = NGX_CONF_UNSET;
|
racf->unique = NGX_CONF_UNSET;
|
||||||
|
@ -220,6 +229,7 @@ ngx_rtmp_record_merge_app_conf(ngx_conf_t *cf, void *parent, void *child)
|
||||||
ngx_conf_merge_str_value(conf->path, prev->path, "");
|
ngx_conf_merge_str_value(conf->path, prev->path, "");
|
||||||
ngx_conf_merge_str_value(conf->suffix, prev->suffix, ".flv");
|
ngx_conf_merge_str_value(conf->suffix, prev->suffix, ".flv");
|
||||||
ngx_conf_merge_size_value(conf->max_size, prev->max_size, 0);
|
ngx_conf_merge_size_value(conf->max_size, prev->max_size, 0);
|
||||||
|
ngx_conf_merge_size_value(conf->interval_size, prev->interval_size, 0);
|
||||||
ngx_conf_merge_size_value(conf->max_frames, prev->max_frames, 0);
|
ngx_conf_merge_size_value(conf->max_frames, prev->max_frames, 0);
|
||||||
ngx_conf_merge_value(conf->unique, prev->unique, 0);
|
ngx_conf_merge_value(conf->unique, prev->unique, 0);
|
||||||
ngx_conf_merge_value(conf->append, prev->append, 0);
|
ngx_conf_merge_value(conf->append, prev->append, 0);
|
||||||
|
@ -980,6 +990,14 @@ ngx_rtmp_record_write_frame(ngx_rtmp_session_t *s,
|
||||||
ngx_rtmp_record_node_close(s, rctx);
|
ngx_rtmp_record_node_close(s, rctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* watch size interval */
|
||||||
|
if ((rracf->interval_size && rctx->file.offset >= (ngx_int_t) rracf->interval_size) ||
|
||||||
|
(rracf->max_frames && rctx->nframes >= rracf->max_frames))
|
||||||
|
{
|
||||||
|
ngx_rtmp_record_node_close(s, rctx);
|
||||||
|
ngx_rtmp_record_node_open(s, rctx);
|
||||||
|
}
|
||||||
|
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ typedef struct {
|
||||||
ngx_uint_t flags;
|
ngx_uint_t flags;
|
||||||
ngx_str_t path;
|
ngx_str_t path;
|
||||||
size_t max_size;
|
size_t max_size;
|
||||||
|
size_t interval_size;
|
||||||
size_t max_frames;
|
size_t max_frames;
|
||||||
ngx_msec_t interval;
|
ngx_msec_t interval;
|
||||||
ngx_str_t suffix;
|
ngx_str_t suffix;
|
||||||
|
|
Loading…
Reference in a new issue