comparison src/http/modules/ngx_http_mp4_module.c @ 5621:345e4fd4bb64

Range filter: single_range flag in request. If set, it means that response body is going to be in more than one buffer, hence only range requests with a single range should be honored. The flag is now used by mp4 and cacheable upstream responses, thus allowing range requests of mp4 files with start/end, as well as range processing on a first request to a not-yet-cached files with proxy_cache. Notably this makes it possible to play mp4 files (with proxy_cache, or with mp4 module) on iOS devices, as byte-range support is required by Apple.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 21 Mar 2014 19:33:21 +0400
parents 0a567878254b
children a23c35496c2f
comparison
equal deleted inserted replaced
5620:0a567878254b 5621:345e4fd4bb64
569 } 569 }
570 } 570 }
571 } 571 }
572 572
573 if (start >= 0) { 573 if (start >= 0) {
574 r->allow_ranges = 0; 574 r->single_range = 1;
575 575
576 mp4 = ngx_pcalloc(r->pool, sizeof(ngx_http_mp4_file_t)); 576 mp4 = ngx_pcalloc(r->pool, sizeof(ngx_http_mp4_file_t));
577 if (mp4 == NULL) { 577 if (mp4 == NULL) {
578 return NGX_HTTP_INTERNAL_SERVER_ERROR; 578 return NGX_HTTP_INTERNAL_SERVER_ERROR;
579 } 579 }