From 2aa266dfaab6aaad9f9f4f216ad7d1e62adc7fa0 Mon Sep 17 00:00:00 2001 From: jeanlf Date: Fri, 31 Jul 2020 18:23:11 +0200 Subject: [PATCH] doc update --- share/doc/man/gpac-filters.1 | 22 +++++++++++++++------- share/doc/man/gpac.1 | 2 +- share/doc/man/mp4box.1 | 2 +- share/doc/man/mp4client.1 | 2 +- src/filters/out_http.c | 16 ++++++++++------ 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/share/doc/man/gpac-filters.1 b/share/doc/man/gpac-filters.1 index 9e99383d1c..e6ccaf0248 100644 --- a/share/doc/man/gpac-filters.1 +++ b/share/doc/man/gpac-filters.1 @@ -5020,7 +5020,7 @@ The HTTP output filter can act as: .br The server currently handles GET, HEAD, PUT, POST, DELETE methods. .br -Single or multiple byte ranges are supported for both GET and PUT/POST methods. +Single or multiple byte ranges are supported for both GET and PUT/POST methods, in all server modes. .br - for GET, the resulting body is a single-part body formed by the concatenated byte ranges as requested (no overlap checking). .br @@ -5120,7 +5120,7 @@ The server will also look for any property called ice-* on the input pid and inj .br Example .br -gpac -i source.mp3:#ice-Genre=CoolRock -o http://IP/live.mp3:ice +gpac -i source.mp3:#ice-Genre=CoolRock -o http://IP/live.mp3 --ice .br .br @@ -5133,17 +5133,25 @@ In this mode, the filter will write input PIDs to files in the first read direct .br The filter uses a read directory in this mode, which must be writable. .br -Upon client GET request, the server will check if the requested file matches the name of a file currently being written by the server. +Upon client GET request, the server will check if the requested URL matches the name of a file currently being written by the server. .br -If so, the server will keep refreshing the source size until the associated input file is closed. +- If so, the server will: +.br + - send the content using HTTP chunk transfer mode, starting with what is already written on disk +.br + - push remaining data to the client as soon as recieved while writing it to disk, until source file is done +.br +- If not so, the server will simply send the file from the disk as a regular HHTP session, without chunk transfer. .br This mode is typically used for origin server in HAS sessions where clients may request files while they are being produced (low latency DASH). .br Example .br -gpac -i SOURCE -o http://localhost/live.mpd --rdirs=temp +gpac -i SOURCE reframer:rt=on @ -o http://localhost:8080/live.mpd --rdirs=temp --dmode=dynamic --cdur=0.1 .br +.br +In this example, a real-time dynamic DASH session with chunks of 100ms is created, outputing files in temp. A client connecting to the live edge will receive segments as they are produced using HTTP chunk transfer. .br .br @@ -5192,7 +5200,7 @@ The server can run over TLS (https) for all the server modes. TLS is enabled by .br Both certificate and key must be in PEM format. .br -Note: the server currently only operates in either HTTPS or HTTP mode and cannot run both modes at the same time. You will need to use two httpout filters for this, one operating in HTTPS and one operating in HTTP. +The server currently only operates in either HTTPS or HTTP mode and cannot run both modes at the same time. You will need to use two httpout filters for this, one operating in HTTPS and one operating in HTTP. .br .br @@ -5979,7 +5987,7 @@ Authors: GPAC developers, see git repo history (-log) .br For bug reports, feature requests, more information and source code, visit http://github.com/gpac/gpac .br -build: 1.0.0-rev179-gc9560174a-master +build: 1.0.0-rev187-gb4b94447f-master .br Copyright: (c) 2000-2020 Telecom Paris distributed under LGPL v2.1+ - http://gpac.io .br diff --git a/share/doc/man/gpac.1 b/share/doc/man/gpac.1 index 08f8216e4a..07017783dc 100644 --- a/share/doc/man/gpac.1 +++ b/share/doc/man/gpac.1 @@ -3704,7 +3704,7 @@ Authors: GPAC developers, see git repo history (-log) .br For bug reports, feature requests, more information and source code, visit http://github.com/gpac/gpac .br -build: 1.0.0-rev179-gc9560174a-master +build: 1.0.0-rev187-gb4b94447f-master .br Copyright: (c) 2000-2020 Telecom Paris distributed under LGPL v2.1+ - http://gpac.io .br diff --git a/share/doc/man/mp4box.1 b/share/doc/man/mp4box.1 index fc768ddba6..eae58832c9 100644 --- a/share/doc/man/mp4box.1 +++ b/share/doc/man/mp4box.1 @@ -2303,7 +2303,7 @@ Authors: GPAC developers, see git repo history (-log) .br For bug reports, feature requests, more information and source code, visit http://github.com/gpac/gpac .br -build: 1.0.0-rev179-gc9560174a-master +build: 1.0.0-rev187-gb4b94447f-master .br Copyright: (c) 2000-2020 Telecom Paris distributed under LGPL v2.1+ - http://gpac.io .br diff --git a/share/doc/man/mp4client.1 b/share/doc/man/mp4client.1 index b7375df640..a42c7861e1 100644 --- a/share/doc/man/mp4client.1 +++ b/share/doc/man/mp4client.1 @@ -261,7 +261,7 @@ Authors: GPAC developers, see git repo history (-log) .br For bug reports, feature requests, more information and source code, visit http://github.com/gpac/gpac .br -build: 1.0.0-rev179-gc9560174a-master +build: 1.0.0-rev187-gb4b94447f-master .br Copyright: (c) 2000-2020 Telecom Paris distributed under LGPL v2.1+ - http://gpac.io .br diff --git a/src/filters/out_http.c b/src/filters/out_http.c index e68db89e22..614c2c9b09 100644 --- a/src/filters/out_http.c +++ b/src/filters/out_http.c @@ -2693,7 +2693,7 @@ GF_FilterRegister HTTPOutRegister = { "- an HTTP server __source__\n" " \n" "The server currently handles GET, HEAD, PUT, POST, DELETE methods.\n" - "Single or multiple byte ranges are supported for both GET and PUT/POST methods.\n" + "Single or multiple byte ranges are supported for both GET and PUT/POST methods, in all server modes.\n" "- for GET, the resulting body is a single-part body formed by the concatenated byte ranges as requested (no overlap checking).\n" "- for PUT/POST, the received data is pushed to the target file according to the byte ranges specified in the client request.\n" " \n" @@ -2731,16 +2731,20 @@ GF_FilterRegister HTTPOutRegister = { " \n" "In this mode, ICECast meta-data can be inserted using [-ice](). The default inserted values are `ice-audio-info`, `icy-br`, `icy-pub` (set to 1) and `icy-name` if input `ServiceName` property is set.\n" "The server will also look for any property called `ice-*` on the input pid and inject them.\n" - "EX gpac -i source.mp3:#ice-Genre=CoolRock -o http://IP/live.mp3:ice\n" + "EX gpac -i source.mp3:#ice-Genre=CoolRock -o http://IP/live.mp3 --ice\n" "This will inject the header `ice-Genre: CoolRock` in the response." " \n" "# HTTP server file sink\n" "In this mode, the filter will write input PIDs to files in the first read directory specified, acting as a file output sink.\n" "The filter uses a read directory in this mode, which must be writable.\n" - "Upon client GET request, the server will check if the requested file matches the name of a file currently being written by the server.\n" - "If so, the server will keep refreshing the source size until the associated input file is closed.\n" + "Upon client GET request, the server will check if the requested URL matches the name of a file currently being written by the server.\n" + "- If so, the server will:\n" + " - send the content using HTTP chunk transfer mode, starting with what is already written on disk\n" + " - push remaining data to the client as soon as recieved while writing it to disk, until source file is done\n" + "- If not so, the server will simply send the file from the disk as a regular HHTP session, without chunk transfer.\n" "This mode is typically used for origin server in HAS sessions where clients may request files while they are being produced (low latency DASH).\n" - "EX gpac -i SOURCE -o http://localhost/live.mpd --rdirs=temp\n" + "EX gpac -i SOURCE reframer:rt=on @ -o http://localhost:8080/live.mpd --rdirs=temp --dmode=dynamic --cdur=0.1\n" + "In this example, a real-time dynamic DASH session with chunks of 100ms is created, outputing files in `temp`. A client connecting to the live edge will receive segments as they are produced using HTTP chunk transfer.\n" " \n" "# HTTP client sink\n" "In this mode, the filter will upload input PIDs data to remote server using PUT (or POST if [-post]() is set).\n" @@ -2759,7 +2763,7 @@ GF_FilterRegister HTTPOutRegister = { "# HTTPS server\n" "The server can run over TLS (https) for all the server modes. TLS is enabled by specifying [-cert]() and [-pkey]() options.\n" "Both certificate and key must be in PEM format.\n" - "Note: the server currently only operates in either HTTPS or HTTP mode and cannot run both modes at the same time. You will need to use two httpout filters for this, one operating in HTTPS and one operating in HTTP.\n" + "The server currently only operates in either HTTPS or HTTP mode and cannot run both modes at the same time. You will need to use two httpout filters for this, one operating in HTTPS and one operating in HTTP.\n" ) .private_size = sizeof(GF_HTTPOutCtx), .max_extra_pids = -1,