]> git.kaiwu.me - nginx.git/commitdiff
Mp4: fixed seeking to a track end.
authorRoman Arutyunyan <arut@nginx.com>
Mon, 31 Mar 2014 15:52:17 +0000 (19:52 +0400)
committerRoman Arutyunyan <arut@nginx.com>
Mon, 31 Mar 2014 15:52:17 +0000 (19:52 +0400)
When "start" value is equal to a track duration the request
fails with "time is out mp4 stts" like it did before track
duration check was added.  Now such tracks are considered
short and skipped.

src/http/modules/ngx_http_mp4_module.c

index c9b67adcad39460150564e74e1f491cc4784e897..7a7ae6da1e2b3bce0788c0a2caae2f875d508a1c 100644 (file)
@@ -1507,7 +1507,7 @@ ngx_http_mp4_read_tkhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
 
     start_time = (uint64_t) mp4->start * mp4->timescale / 1000;
 
-    if (duration < start_time) {
+    if (duration <= start_time) {
         ngx_log_debug0(NGX_LOG_DEBUG_HTTP, mp4->file.log, 0,
                        "tkhd duration is less than start time");
         return NGX_DECLINED;
@@ -1668,7 +1668,7 @@ ngx_http_mp4_read_mdhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
 
     start_time = (uint64_t) mp4->start * timescale / 1000;
 
-    if (duration < start_time) {
+    if (duration <= start_time) {
         ngx_log_debug0(NGX_LOG_DEBUG_HTTP, mp4->file.log, 0,
                        "mdhd duration is less than start time");
         return NGX_DECLINED;