Skip to content

Commit

Permalink
Merge pull request #22 from sergey-dryabzhinsky/fix-record-interval-f…
Browse files Browse the repository at this point in the history
…or-all-modes

Fix record interal
  • Loading branch information
Sergey committed Jul 5, 2015
2 parents e9f58da + 25146e4 commit 21683a4
Showing 1 changed file with 20 additions and 22 deletions.
42 changes: 20 additions & 22 deletions ngx_rtmp_record_module.c
Original file line number Diff line number Diff line change
Expand Up @@ -1064,28 +1064,6 @@ ngx_rtmp_record_node_avd(ngx_rtmp_session_t *s, ngx_rtmp_record_rec_ctx_t *rctx,
? keyframe
: (rracf->flags & NGX_RTMP_RECORD_VIDEO) == 0;

if (brkframe && (rracf->flags & NGX_RTMP_RECORD_MANUAL) == 0) {

if (rracf->interval != (ngx_msec_t) NGX_CONF_UNSET) {

next = rctx->last;
next.msec += rracf->interval;
next.sec += (next.msec / 1000);
next.msec %= 1000;

if (ngx_cached_time->sec > next.sec ||
(ngx_cached_time->sec == next.sec &&
ngx_cached_time->msec > next.msec))
{
ngx_rtmp_record_node_close(s, rctx);
ngx_rtmp_record_node_open(s, rctx);
}

} else if (!rctx->failed) {
ngx_rtmp_record_node_open(s, rctx);
}
}

if ((rracf->flags & NGX_RTMP_RECORD_MANUAL) &&
!brkframe && rctx->nframes == 0)
{
Expand Down Expand Up @@ -1115,6 +1093,26 @@ ngx_rtmp_record_node_avd(ngx_rtmp_session_t *s, ngx_rtmp_record_rec_ctx_t *rctx,
return NGX_OK;
}

// record interval should work if set, manual mode or not
if (rracf->interval != (ngx_msec_t) NGX_CONF_UNSET) {

next = rctx->last;
next.msec += rracf->interval;
next.sec += (next.msec / 1000);
next.msec %= 1000;

if (ngx_cached_time->sec > next.sec ||
(ngx_cached_time->sec == next.sec &&
ngx_cached_time->msec > next.msec))
{
ngx_rtmp_record_node_close(s, rctx);
ngx_rtmp_record_node_open(s, rctx);
}

} else if (!rctx->failed) {
ngx_rtmp_record_node_open(s, rctx);
}

if (!rctx->initialized) {

rctx->initialized = 1;
Expand Down

0 comments on commit 21683a4

Please sign in to comment.