moved option --extra-stream-headers to http params

This commit is contained in:
Devaev Maxim 2018-11-03 04:49:33 +03:00
parent 693c89ae6b
commit 4af8c6a121
4 changed files with 11 additions and 8 deletions

View File

@ -47,8 +47,14 @@ const char *HTML_INDEX_PAGE = " \
<br> \
<li> \
<a href=\"/stream\"><b>/stream</b></a><br> \
Get a live stream. Query params: \
Get a live stream. Query params:<br> \
<br> \
<ul> \
<li> \
<i>extra_headers=1</i><br> \
Add X-UStreamer-* headers to /stream handle (like on <a href=\"/snapshot\">/snapshot</a>). \
</li> \
<br> \
<li> \
<i>advance_headers=1</i><br> \
Enable workaround for Chromium/Blink \

View File

@ -284,6 +284,7 @@ static void _http_callback_stream(struct evhttp_request *request, void *v_server
client->need_first_frame = true;
evhttp_parse_query(evhttp_request_get_uri(request), &params);
client->extra_headers = _http_get_param_true(&params, "extra_headers");
client->advance_headers = _http_get_param_true(&params, "advance_headers");
evhttp_clear_headers(&params);
@ -389,9 +390,9 @@ static void _http_callback_stream_write(struct bufferevent *buf_event, void *v_c
"X-Timestamp: %.06Lf" RN
"%s",
EXPOSED(picture.size) * sizeof(*EXPOSED(picture.data)),
get_now_real(), (client->server->extra_stream_headers ? "" : RN)
get_now_real(), (client->extra_headers ? "" : RN)
));
if (client->server->extra_stream_headers) {
if (client->extra_headers) {
assert(evbuffer_add_printf(buf,
"X-UStreamer-Online: %s" RN
"X-UStreamer-Client-FPS: %u" RN

View File

@ -32,6 +32,7 @@ struct stream_client_t {
struct http_server_t *server;
struct evhttp_request *request;
char id[37]; // ex. "1b4e28ba-2fa1-11d2-883f-0016d3cca427" + "\0"
bool extra_headers;
bool advance_headers;
bool need_initial;
bool need_first_frame;
@ -71,7 +72,6 @@ struct http_server_t {
char *host;
unsigned port;
unsigned drop_same_frames;
bool extra_stream_headers;
unsigned fake_width;
unsigned fake_height;
unsigned timeout;

View File

@ -66,7 +66,6 @@ static const struct option _long_opts[] = {
{"host", required_argument, NULL, 's'},
{"port", required_argument, NULL, 'p'},
{"drop-same-frames", required_argument, NULL, 'r'},
{"extra-stream-headers", no_argument, NULL, 2000},
{"fake-width", required_argument, NULL, 2001},
{"fake-height", required_argument, NULL, 2002},
{"server-timeout", required_argument, NULL, 2003},
@ -136,8 +135,6 @@ static void _help(struct device_t *dev, struct encoder_t *encoder, struct http_s
printf(" It can significantly reduce the outgoing traffic, but will increase\n");
printf(" the CPU loading. Don't use this option with analog signal sources\n");
printf(" or webcams, it's useless. Default: disabled.\n\n");
printf(" --extra-stream-headers -- Add X-UStreamer-* headers to /stream handle (like /snapshot).\n");
printf(" Default: disabled.\n\n");
printf(" --fake-width <N> -- Override image width for /ping. Default: disabled\n\n");
printf(" --fake-height <N> -- Override image height for /ping. Default: disabled.\n\n");
printf(" --server-timeout <seconds> -- Timeout for client connections. Default: %d\n\n", server->timeout);
@ -201,7 +198,6 @@ static int _parse_options(int argc, char *argv[], struct device_t *dev, struct e
case 's': OPT_SET(server->host, optarg);
case 'p': OPT_UNSIGNED(server->port, "--port", 1, 65535);
case 'r': OPT_UNSIGNED(server->drop_same_frames, "--drop-same-frames", 0, 30);
case 2000: OPT_SET(server->extra_stream_headers, true);
case 2001: OPT_UNSIGNED(server->fake_width, "--fake-width", 0, 1920);
case 2002: OPT_UNSIGNED(server->fake_height, "--fake-height", 0, 1200);
case 2003: OPT_UNSIGNED(server->timeout, "--server-timeout", 1, 60);