# HG changeset patch # User Roman Arutyunyan # Date 1396371198 -14400 # Node ID 0c0dd1aacdf55f3422cfa2edd4dfe85f4d0d8b34 # Parent 5a65b9d8bc2bc6d104a17ba0460c2855398ab9c2 Mp4: allow end values bigger than track duration. If start time is within the track but end time is out of it, error "end time is out mp4 stts samples" is generated. However it's better to ignore the error and output the track until its end. diff --git a/src/http/modules/ngx_http_mp4_module.c b/src/http/modules/ngx_http_mp4_module.c --- a/src/http/modules/ngx_http_mp4_module.c +++ b/src/http/modules/ngx_http_mp4_module.c @@ -2154,11 +2154,21 @@ ngx_http_mp4_crop_stts_data(ngx_http_mp4 entry++; } - ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0, - "%s time is out mp4 stts samples in \"%s\"", - start ? "start" : "end", mp4->file.name.data); - - return NGX_ERROR; + if (start) { + ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0, + "start time is out mp4 stts samples in \"%s\"", + mp4->file.name.data); + + return NGX_ERROR; + + } else { + trak->end_sample = trak->start_sample + start_sample; + + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, mp4->file.log, 0, + "end_sample:%ui", trak->end_sample); + + return NGX_OK; + } found: