From 9aff59fc43f1e69f668572edd9b3c971e3ca5ab5 Mon Sep 17 00:00:00 2001 From: Roman Arutyunyan Date: Sat, 22 Sep 2012 13:35:03 +0400 Subject: [PATCH] fixed recording audio splitted into fragments --- ngx_rtmp_record_module.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ngx_rtmp_record_module.c b/ngx_rtmp_record_module.c index 3b69495..e37e6dd 100644 --- a/ngx_rtmp_record_module.c +++ b/ngx_rtmp_record_module.c @@ -733,7 +733,7 @@ ngx_rtmp_record_node_av(ngx_rtmp_session_t *s, ngx_rtmp_record_rec_ctx_t *rctx, ngx_time_t next; ngx_rtmp_header_t ch; ngx_rtmp_codec_ctx_t *codec_ctx; - ngx_int_t keyframe; + ngx_int_t keyframe, brkframe; ngx_rtmp_record_app_conf_t *rracf; rracf = rctx->conf; @@ -743,9 +743,15 @@ ngx_rtmp_record_node_av(ngx_rtmp_session_t *s, ngx_rtmp_record_rec_ctx_t *rctx, return NGX_OK; } - keyframe = (ngx_rtmp_get_video_frame_type(in) == NGX_RTMP_VIDEO_KEY_FRAME); + keyframe = (h->type == NGX_RTMP_MSG_VIDEO) + ? (ngx_rtmp_get_video_frame_type(in) == NGX_RTMP_VIDEO_KEY_FRAME) + : 0; - if (keyframe && (rracf->flags & NGX_RTMP_RECORD_MANUAL) == 0) { + brkframe = (h->type == NGX_RTMP_MSG_VIDEO) + ? 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) {