Mercurial > hg > nginx-vendor-1-0
comparison src/http/modules/ngx_http_mp4_module.c @ 644:ad25218fd14b NGINX_1_0_12
nginx 1.0.12
*) Feature: the "TLSv1.1" and "TLSv1.2" parameters of the
"ssl_protocols" directive.
*) Feature: the "if" SSI command supports captures in regular
expressions.
*) Bugfix: the "if" SSI command did not work inside the "block" command.
*) Bugfix: in AIO error handling on FreeBSD.
*) Bugfix: in the OpenSSL library initialization.
*) Bugfix: the "worker_cpu_affinity" directive might not work.
*) Bugfix: the "limit_conn_log_level" and "limit_req_log_level"
directives might not work.
*) Bugfix: the "read_ahead" directive might not work combined with
"try_files" and "open_file_cache".
*) Bugfix: the "proxy_cache_use_stale" directive with "error" parameter
did not return answer from cache if there were no live upstreams.
*) Bugfix: a segmentation fault might occur in a worker process if small
time was used in the "inactive" parameter of the "proxy_cache_path"
directive.
*) Bugfix: responses from cache might hang.
*) Bugfix: in error handling while connecting to a backend.
Thanks to Piotr Sikora.
*) Bugfix: in the "epoll" event method.
Thanks to Yichun Zhang.
*) Bugfix: the $sent_http_cache_control variable might contain a wrong
value if the "expires" directive was used.
Thanks to Yichun Zhang.
*) Bugfix: the "limit_rate" directive did not allow to use full
throughput, even if limit value was very high.
*) Bugfix: the "sendfile_max_chunk" directive did not work, if the
"limit_rate" directive was used.
*) Bugfix: nginx could not be built on Solaris; the bug had appeared in
1.0.11.
*) Bugfix: in the ngx_http_scgi_module.
*) Bugfix: in the ngx_http_mp4_module.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 06 Feb 2012 00:00:00 +0400 |
parents | 1b80544421e8 |
children | f0a8697979af |
comparison
equal
deleted
inserted
replaced
643:d81e1c257a02 | 644:ad25218fd14b |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright (C) Igor Sysoev | 3 * Copyright (C) Igor Sysoev |
4 * Copyright (C) Nginx, Inc. | |
4 */ | 5 */ |
5 | 6 |
6 #include <ngx_config.h> | 7 #include <ngx_config.h> |
7 #include <ngx_core.h> | 8 #include <ngx_core.h> |
8 #include <ngx_http.h> | 9 #include <ngx_http.h> |
163 ((u_char *) (p))[5] = n2; \ | 164 ((u_char *) (p))[5] = n2; \ |
164 ((u_char *) (p))[6] = n3; \ | 165 ((u_char *) (p))[6] = n3; \ |
165 ((u_char *) (p))[7] = n4 | 166 ((u_char *) (p))[7] = n4 |
166 | 167 |
167 #define ngx_mp4_get_32value(p) \ | 168 #define ngx_mp4_get_32value(p) \ |
168 ( (((u_char *) (p))[0] << 24) \ | 169 ( ((uint32_t) ((u_char *) (p))[0] << 24) \ |
169 + (((u_char *) (p))[1] << 16) \ | 170 + ( ((u_char *) (p))[1] << 16) \ |
170 + (((u_char *) (p))[2] << 8) \ | 171 + ( ((u_char *) (p))[2] << 8) \ |
171 + (((u_char *) (p))[3]) ) | 172 + ( ((u_char *) (p))[3]) ) |
172 | 173 |
173 #define ngx_mp4_set_32value(p, n) \ | 174 #define ngx_mp4_set_32value(p, n) \ |
174 ((u_char *) (p))[0] = (u_char) ((n) >> 24); \ | 175 ((u_char *) (p))[0] = (u_char) ((n) >> 24); \ |
175 ((u_char *) (p))[1] = (u_char) ((n) >> 16); \ | 176 ((u_char *) (p))[1] = (u_char) ((n) >> 16); \ |
176 ((u_char *) (p))[2] = (u_char) ((n) >> 8); \ | 177 ((u_char *) (p))[2] = (u_char) ((n) >> 8); \ |
2380 trak->start_chunk, trak->chunk_samples); | 2381 trak->start_chunk, trak->chunk_samples); |
2381 | 2382 |
2382 data->pos = (u_char *) entry; | 2383 data->pos = (u_char *) entry; |
2383 atom_size = sizeof(ngx_mp4_stsc_atom_t) + (data->last - data->pos); | 2384 atom_size = sizeof(ngx_mp4_stsc_atom_t) + (data->last - data->pos); |
2384 | 2385 |
2386 ngx_mp4_set_32value(entry->chunk, 1); | |
2387 | |
2385 if (trak->chunk_samples) { | 2388 if (trak->chunk_samples) { |
2386 | 2389 |
2387 first = &trak->stsc_chunk_entry; | 2390 first = &trak->stsc_chunk_entry; |
2388 ngx_mp4_set_32value(first->chunk, 1); | 2391 ngx_mp4_set_32value(first->chunk, 1); |
2389 ngx_mp4_set_32value(first->samples, samples - trak->chunk_samples); | 2392 ngx_mp4_set_32value(first->samples, samples - trak->chunk_samples); |