Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- grig27 added Severity::normal Type::bug Version::master git + 1 deleted label
added Severity::normal Type::bug Version::master git + 1 deleted label
- grig27 changed milestone to %Bugs paradize
changed milestone to %Bugs paradize
- Filip Roséen changed title from m3u8 not play to 3.0 regression: the adaptive demuxer hangs on m3u8 over http
changed title from m3u8 not play to 3.0 regression: the adaptive demuxer hangs on m3u8 over http
- Filip Roséen changed the description
changed the description
- Filip Roséen added Component::Demuxers label and removed 1 deleted label
added Component::Demuxers label and removed 1 deleted label
modules/adaptive/demux
will get stuck reading for an infinite period of time because it tells the remote resource thatHTTP/1.1
shall be used, and thatTransfer-Encoding: chunked
is an acceptable reply.The module does, as far as I can tell, not handle the mentioned transfer-encoding, causing it to wait for the socket to close (the way
HTTP/1.0
) signaled that a resource was finished with its transfer (if Content-Length is not available).patch (mostly to show the underlying problem)
diff --git a/modules/demux/adaptive/http/HTTPConnection.cpp b/modules/demux/adaptive/http/HTTPConnection.cpp index 7c6d07b..3514ad3 100644 --- a/modules/demux/adaptive/http/HTTPConnection.cpp +++ b/modules/demux/adaptive/http/HTTPConnection.cpp @@ -277,7 +277,7 @@ void HTTPConnection::onHeader(const std::string &key, std::string HTTPConnection::buildRequestHeader(const std::string &path) const { std::stringstream req; - req << "GET " << path << " HTTP/1.1\r\n" << + req << "GET " << path << " HTTP/1.0\r\n" << "Host: " << params.getHostname() << "\r\n" << "Cache-Control: no-cache" << "\r\n" << "Accept-Encoding: identity" << "\r\n" <<
By using
HTTP/1.0
instead ofHTTP/1.1
we force the remote resource to either close the socket when the transfer is complete, or to includeContent-Length
in the reply (so we know when it is done).- Developer
- François Cartegnie added Status::duplicate label
added Status::duplicate label
- François Cartegnie closed
closed
- Maintainer
In #17272 (closed), the demuxer fails. Here, it jams. Not duplicate.
- Rémi Denis-Courmont removed Status::duplicate label
removed Status::duplicate label
- Rémi Denis-Courmont reopened
reopened
- Rémi Denis-Courmont changed milestone to %3.0 FF
changed milestone to %3.0 FF
- Developer
please update
- Owner
Please reopen if not fixed in nightly build.
- Jean-Baptiste Kempf added Status::fixed label
added Status::fixed label
- Jean-Baptiste Kempf closed
closed
- Rémi Denis-Courmont removed Status::fixed label
removed Status::fixed label
- Rémi Denis-Courmont reopened
reopened
- Maintainer
Still trivially reproducible
- Owner
Fixed in last 3.0
- Jean-Baptiste Kempf added Status::fixed label
added Status::fixed label
- Jean-Baptiste Kempf closed
closed
- Owner
Milestone renamed
- Jean-Baptiste Kempf added Component::Demux: Adaptive label and removed Component::Demuxers label
added Component::Demux: Adaptive label and removed Component::Demuxers label