mirror of
https://github.com/zotanmew/nginx-rtmp-module.git
synced 2024-05-20 09:51:08 +02:00
added filename, basename & dirname to exec_record_done
This commit is contained in:
parent
8608faad1e
commit
8e62c72e86
|
@ -124,7 +124,10 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
ngx_uint_t flags;
|
ngx_uint_t flags;
|
||||||
ngx_str_t path;
|
ngx_str_t path; /* /tmp/rec/myfile-123.flv */
|
||||||
|
ngx_str_t filename; /* myfile-123.flv */
|
||||||
|
ngx_str_t basename; /* myfile-123 */
|
||||||
|
ngx_str_t dirname; /* /tmp/rec */
|
||||||
ngx_str_t recorder;
|
ngx_str_t recorder;
|
||||||
u_char name[NGX_RTMP_MAX_NAME];
|
u_char name[NGX_RTMP_MAX_NAME];
|
||||||
u_char args[NGX_RTMP_MAX_ARGS];
|
u_char args[NGX_RTMP_MAX_ARGS];
|
||||||
|
@ -378,6 +381,18 @@ static ngx_rtmp_eval_t ngx_rtmp_exec_event_specific_eval[] = {
|
||||||
ngx_rtmp_exec_eval_ctx_str,
|
ngx_rtmp_exec_eval_ctx_str,
|
||||||
offsetof(ngx_rtmp_exec_ctx_t, path) },
|
offsetof(ngx_rtmp_exec_ctx_t, path) },
|
||||||
|
|
||||||
|
{ ngx_string("filename"),
|
||||||
|
ngx_rtmp_exec_eval_ctx_str,
|
||||||
|
offsetof(ngx_rtmp_exec_ctx_t, filename) },
|
||||||
|
|
||||||
|
{ ngx_string("basename"),
|
||||||
|
ngx_rtmp_exec_eval_ctx_str,
|
||||||
|
offsetof(ngx_rtmp_exec_ctx_t, basename) },
|
||||||
|
|
||||||
|
{ ngx_string("dirname"),
|
||||||
|
ngx_rtmp_exec_eval_ctx_str,
|
||||||
|
offsetof(ngx_rtmp_exec_ctx_t, dirname) },
|
||||||
|
|
||||||
{ ngx_string("recorder"),
|
{ ngx_string("recorder"),
|
||||||
ngx_rtmp_exec_eval_ctx_str,
|
ngx_rtmp_exec_eval_ctx_str,
|
||||||
offsetof(ngx_rtmp_exec_ctx_t, recorder) },
|
offsetof(ngx_rtmp_exec_ctx_t, recorder) },
|
||||||
|
@ -1290,6 +1305,8 @@ next:
|
||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_rtmp_exec_record_done(ngx_rtmp_session_t *s, ngx_rtmp_record_done_t *v)
|
ngx_rtmp_exec_record_done(ngx_rtmp_session_t *s, ngx_rtmp_record_done_t *v)
|
||||||
{
|
{
|
||||||
|
u_char c;
|
||||||
|
ngx_uint_t ext, dir;
|
||||||
ngx_rtmp_exec_ctx_t *ctx;
|
ngx_rtmp_exec_ctx_t *ctx;
|
||||||
ngx_rtmp_exec_app_conf_t *eacf;
|
ngx_rtmp_exec_app_conf_t *eacf;
|
||||||
|
|
||||||
|
@ -1310,6 +1327,29 @@ ngx_rtmp_exec_record_done(ngx_rtmp_session_t *s, ngx_rtmp_record_done_t *v)
|
||||||
ctx->recorder = v->recorder;
|
ctx->recorder = v->recorder;
|
||||||
ctx->path = v->path;
|
ctx->path = v->path;
|
||||||
|
|
||||||
|
ctx->dirname.data = ctx->path.data;
|
||||||
|
ctx->dirname.len = 0;
|
||||||
|
|
||||||
|
for (dir = ctx->path.len; dir > 0; dir--) {
|
||||||
|
c = ctx->path.data[dir - 1];
|
||||||
|
if (c == '/' || c == '\\') {
|
||||||
|
ctx->dirname.len = dir - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx->filename.data = ctx->path.data + dir;
|
||||||
|
ctx->filename.len = ctx->path.len - dir;
|
||||||
|
|
||||||
|
ctx->basename = ctx->filename;
|
||||||
|
|
||||||
|
for (ext = ctx->filename.len; ext > 0; ext--) {
|
||||||
|
if (ctx->filename.data[ext - 1] == '.') {
|
||||||
|
ctx->basename.len = ext - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ngx_rtmp_exec_unmanaged(s, &eacf->conf[NGX_RTMP_EXEC_RECORD_DONE],
|
ngx_rtmp_exec_unmanaged(s, &eacf->conf[NGX_RTMP_EXEC_RECORD_DONE],
|
||||||
"record_done");
|
"record_done");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue