summaryrefslogtreecommitdiffstats
path: root/libavformat/http.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'lukaszmluki/master'Michael Niedermayer2014-03-061-4/+9
|\ | | | | | | | | | | | | | | | | | | * lukaszmluki/master: lavd/avdevice: always free detected devices on error lavf/http: return error from seek on invalid whence lavf/http: return error on seeking to negative postion lavf/avio: fix ffurl_alloc error checks Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavf/http: return error from seek on invalid whenceLukasz Marek2014-03-061-0/+2
| | | | | | | | Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
| * lavf/http: return error on seeking to negative postionLukasz Marek2014-03-061-4/+7
| | | | | | | | Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
* | http: handle ICY in presence of chunked transfer encodingwm42014-03-051-15/+39
|/ | | | | | | | | | | | | | | Some http servers send an ICY stream in combination with chunked transfer encoding. This case was handled incorrectly by the ICY code: instead of handling chunked encoding before anything ICY related, both were mixed. Fix this by separating the ICY code from normal http reading. Move the normal http reading to a new function http_read_stream(), while http_read() handles ICY on top of http_read_stream(). The server identified itself as: cloudflare-nginx Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avformat/http: Properly handle cookies that specify sub-domain where the URL.Eli Kara2014-01-231-1/+4
| | | | | | Fixes ticket #3336 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avformat/http: always allow no-op seekAnssi Hannula2014-01-031-0/+2
| | | | | | This also allows checking stream position as per ffurl_seek() doxy. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
* avformat/http: allow the caller to select a request rangeAnssi Hannula2013-12-311-3/+11
| | | | | | | Add AVOptions for setting the initial offset and the ending offset, so they can be used for setting an appropriate Range header. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
* Merge commit 'be4edda6731a341d3fdeaa0e57753dc396790362'Michael Niedermayer2013-11-221-5/+15
|\ | | | | | | | | | | | | | | | | | | | | * commit 'be4edda6731a341d3fdeaa0e57753dc396790362': http: Expose the content location via an AVOption Conflicts: libavformat/http.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Expose the content location via an AVOptionMartin Storsjö2013-11-221-5/+15
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '393d80cc278e2b2f5c9e7805db176e6f28335a33'Michael Niedermayer2013-11-221-2/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '393d80cc278e2b2f5c9e7805db176e6f28335a33': http: Support relative URL redirection Conflicts: libavformat/http.c See: 4a4c93cb3f2f564263f4b20446a7d500772e0d40 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Support relative URL redirectionZhang Rui2013-11-221-1/+4
| | | | | | | | | | | | | | | | | | In RFC 2616, this was explicitly said to be an absolute URL, while in an upcoming draft [1] it is allowed to be relative as well. [1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-25#section-7.1.2 Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '76267ecc82e3018e1913a2483d5fc47d0949cbd8'Michael Niedermayer2013-11-221-1/+1
|\ \ | |/ | | | | | | | | | | * commit '76267ecc82e3018e1913a2483d5fc47d0949cbd8': http: Remove an unrelated and mistakenly set AVOption unit name Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Remove an unrelated and mistakenly set AVOption unit nameMartin Storsjö2013-11-221-1/+1
| | | | | | | | | | | | This was due to a copypaste oversight. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/http: print http headers at AV_LOG_DEBUG levelMichael Niedermayer2013-11-051-2/+5
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | http: add hack to make streams served by MediaGateway not seekablewm42013-11-031-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These streams are reported as seekable, but all tests show they are not, and the server merely pretends the streams are seekable. The server responds with: content-range: bytes 0-1999999999/2000000000 Range requests seem to be correctly answered, but the actual data returned at the same offset is different. Assume this is a bug in the server software. The server identifies itself as: Server: MediaGateway 3.5.2-001 Add a hack that checks the server name, and disables seeking in this case. Test URL: http://8283.live.streamtheworld.com:80/CBC_R1_VCR_H_SC Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/http: fix cookiesMichael Niedermayer2013-10-311-1/+1
| | | | | | | | | | | | Fixes Ticket3096 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/http: dont fail with unknown Content-EncodingsMichael Niedermayer2013-10-261-1/+0
| | | | | | | | | | | | | | Fixes: http://m1.file.xiami.com/282/23282/343749/1769075752_709488_l.mp3 Based-on-patch-by: Crossle Song <sxm@yixia.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-10-151-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | * qatar/master: http: Check the auth string contents and not only the pointer Conflicts: libavformat/http.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Check the auth string contents and not only the pointerMichael Niedermayer2013-10-141-1/+2
| | | | | | | | | | | | | | This makes sure we don't send the Except: 100-continue header if no authentication credentials have been provided. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/http: check the auth string contents not the pointer which cannot ↵Michael Niedermayer2013-10-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be NULL It appears this bug originates from a "work in progress" patch from ffmpeg-devel that was heavily redesigned by and integrated in libav And that patch even had a reply and review on the mailing list pointing out that it had a bug. This fixes a deadlock with ffserver See: [FFmpeg-devel] [PATCH] Fix HTTP authentication problem for POST actions. [FFmpeg-devel] [PATCH 1/3] Introduce auth_phase flag, which will be true if authorization needs to be sent, but the type of authorization is not known yet Partial fix #3036 [FFmpeg-devel] [PATCH 2/3] Only add Transfer-Encoding header when not in authorization phase, because server will wait (indefinitely) for data when receiving this header Partial fix #3036 [FFmpeg-devel] [PATCH 3/3] Only allow posting data and/or forcing a 200 code, enabling posting isml chunks, -after- we did a possible first request to get a 403 from the server telling us which type of authentication to apply Final part fix #3036 See: 71549a857b13edf4c4f95037de6ed5bb4c4bd4af Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '71549a857b13edf4c4f95037de6ed5bb4c4bd4af'Michael Niedermayer2013-10-141-1/+17
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '71549a857b13edf4c4f95037de6ed5bb4c4bd4af': http: Support auth method detection for POST Conflicts: libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Support auth method detection for POSTMartin Storsjö2013-10-131-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inspired by a patch by Jakob van Bethlehem. But instead of doing an empty POST first to trigger the WWW-Authenticate header (which would succeed if no auth actually was required), add an Expect: 100-continue header, which is meant to be used exactly for cases like this. The header is added if doing a post, and the user has specified authentication but we don't know the auth method yet. Not all common HTTP servers support the Expect: 100-continue header, though, so we only try to use it when it really is needed. The user can request it to be added for other POST requests as well via an option - which would allow the caller to know immediately that the POST has failed (e.g. if no auth was provided but the server required it, or if the target URL simply doesn't exist). This is only done for write mode posts (e.g. posts without pre-set post_data) - for posts with pre-set data, we can just redo the post if it failed due to 401. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'eb8b05a3824a9fa85e20d603595ac8a3b83505d4'Michael Niedermayer2013-10-141-0/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'eb8b05a3824a9fa85e20d603595ac8a3b83505d4': http: Add an option for forcing basic authentication Conflicts: libavformat/http.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Add an option for forcing basic authenticationMartin Storsjö2013-10-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The default is to autodetect the auth method. This does require one extra request (and also closing and reopening the http connection). For some cases such as HTTP POST, the autodetection is not handled properly (yet). No option is added for digest, since this method requires getting nonce parameters from the server first and can't be used straight away like Basic. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '5c53bf7aaf03748464cbf978bffe7ffdb71112b1'Michael Niedermayer2013-09-271-25/+27
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '5c53bf7aaf03748464cbf978bffe7ffdb71112b1': http: Pass options through to the nested protocol Conflicts: libavformat/http.c See: b6f435fbc87c024f8403fca69e6e6b98bccf93fa Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Pass options through to the nested protocolMartin Storsjö2013-09-261-8/+26
| | | | | | | | | | | | | | | | When passing a dict to the nested protocol, it will consume the used options from it, so a separate copy needs to be used when reopening the connection multiple times. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '0f51c398beac87682b2249662b97e30512f7868c'Michael Niedermayer2013-07-291-8/+17
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '0f51c398beac87682b2249662b97e30512f7868c': http: Support reading gzip/deflate compressed data utvideoenc: use av_image_copy_plane() Conflicts: libavformat/http.c See: b09d86c6366f2933d7bec430486d9d56bf98f7b6 See: 6bab3430a775183f2f9acbd91d1376c71e87c026 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: Support reading gzip/deflate compressed dataZhang Rui2013-07-281-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Derived from VLC's http module. Original authors: Antoine Cellerier <dionoea@videolan.org> Sébastien Escudier <sebastien-devel@celeos.eu> Rémi Duraffort <ivoire@videolan.org> Rémi Denis-Courmont <remi@remlab.net> Francois Cartegnie <fcvlcdev@free.fr> Normally, http servers shouldn't send this to us since we don't advertise it with an Accept-Encoding header, but some servers still do it anyway. Signed-off-by: Martin Storsjö <martin@martin.st>
| * Use the avstring.h locale-independent character type functionsReimar Döffinger2013-03-071-3/+3
| | | | | | | | | | | | Make sure the behavior does not change with the locale. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/http: support reading compressed dataZhang Rui2013-07-241-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | Derived from VLC's http module. Original authors: Antoine Cellerier <dionoea@videolan.org> Sébastien Escudier <sebastien-devel@celeos.eu> Rémi Duraffort <ivoire@videolan.org> Rémi Denis-Courmont <remi@remlab.net> Francois Cartegnie <fcvlcdev@free.fr> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/http: support relative url redirectionZhang Rui2013-07-041-1/+3
| | | | | | | | | | | | see also http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-17#section-9.5 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/http: add support for reading streamcast metadatawm42013-07-021-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow applications to request reading streamcast metadata. This uses AVOptions as API, and requires the application to explicitly request and read metadata. Metadata can be updated mid-stream; if an application is interested in that, it has to poll for the data by reading the "icy_metadata_packet" option in regular intervals. There doesn't seem to be a nice way to transfer the metadata in a nicer way. Converting the metadata to ID3v2 tags might be a nice idea, but the libavformat mp3 demuxer doesn't seem to read these tags mid-stream, and even then we couldn't guarantee that tags are not inserted in the middle of mp3 packet data. This commit provides the minimum to enable applications to retrieve this information at all. Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
* | lavf/http: remove Mozilla/5.0 from user agent.Clément Bœsch2013-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | It is notably known to break playback on http streaming servers who use the user agent to guess if it's a browser (to display a summary) or a player (to stream the audio data). This reverts 1fabd95. Fixes Ticket #2663.
* | Accept incomplete http cookies without domain.Carl Eugen Hoyos2013-06-101-0/+2
| | | | | | | | | | | | | | Works around a bug in some servers that apparently send incomplete cookies. Fixes a part of ticket #2619. Reviewed-by: Micah Galizia
* | lavf/http: remove duplicated dec flag.Clément Bœsch2013-04-191-2/+1
| |
* | lavf/http: use a more compatible default user agent.Clément Bœsch2013-04-061-3/+3
| | | | | | | | Fixes Ticket 2265.
* | Remove incorrect use of ctype.h functions.Reimar Döffinger2013-03-031-3/+3
| | | | | | | | | | | | | | As far as I can tell the code should not change behaviour depending on locale in any of these places. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-02-281-4/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: lavf: Add a fate test for the noproxy pattern matching lavf: Handle the environment variable no_proxy more properly Conflicts: libavformat/Makefile libavformat/internal.h libavformat/tls.c libavformat/utils.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavf: Handle the environment variable no_proxy more properlyMartin Storsjö2013-02-271-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handling of the environment variable no_proxy, present since one of the initial commits (de6d9b6404), is inconsistent with how many other applications and libraries interpret this variable. Its bare presence does not indicate that the use of proxies should be skipped, but it is some sort of pattern for hosts that does not need using a proxy (e.g. for a local network). As investigated by Rudolf Polzer, different libraries handle this in different ways, some supporting IP address masks, some supporting arbitrary globbing using *, some just checking that the pattern matches the end of the hostname without regard for whether it actually is the right domain or a domain that ends in the same string. This simple logic should be pretty similar to the logic used by lynx and curl. Signed-off-by: Martin Storsjö <martin@martin.st>
* | fix memory leak on string reassignMicah Galizia2013-01-211-0/+3
| | | | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Fixes CID968584 and CID968585
* | lavf/http: add HTTP protocol cookie supportMicah Galizia2013-01-151-0/+116
| | | | | | | | Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
* | lavf/http: fix/extend option descriptionsStefano Sabatini2013-01-121-5/+5
| | | | | | | | | | In particular, favor predicative form over nominal description of the set parameter. This is more globally consistent.
* | http: dont null check p, its unneededMichael Niedermayer2012-12-111-1/+1
| | | | | | | | | | Fixes CID747740 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | http/utils: rename "demuxer" to mime_typeMichael Niedermayer2012-12-101-3/+3
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | http/utils: move mime -> demuxer maping from http to utilsMichael Niedermayer2012-12-091-4/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | http: export ICY content typeMichael Niedermayer2012-12-091-0/+6
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | http: add -content_type user option.Clément Bœsch2012-10-241-0/+5
| |
* | Merge commit '6d0beefbf6ee6dbf8efb522a9307e54c6ed5f702'Michael Niedermayer2012-10-101-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '6d0beefbf6ee6dbf8efb522a9307e54c6ed5f702': swscale: Do not make ff_ symbols globally visible. rtspdec: use av_strlcpy for writing into fixed size buffer g722enc: fix size argument in memset http: use av_strlcpy instead of strcpy() without size checks avfilter: correct memcpy size avfilter_copy_buf_props() lavc: split asv12 encoder/decoder Conflicts: libavcodec/asvdec.c libavfilter/buffer.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * http: use av_strlcpy instead of strcpy() without size checksJanne Grunau2012-10-091-1/+1
| | | | | | | | Fixes CID700730.
* | http: add 'timeout' AVOptionAndrey Utkin2012-10-091-2/+18
| | | | | | | | | | | | This option is passed though to underlying tcp protocol context Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
OpenPOWER on IntegriCloud