summaryrefslogtreecommitdiff
path: root/libavformat/protocols.c
Commit message (Collapse)AuthorAge
* avformat/file: add fd protocolZhao Zhili2023-01-11
| | | | | | | Unlike the pipe protocol, fd protocol has seek support if it corresponding to a regular file. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat: Rename IPFS to IPFS gatewayDerek Buitenhuis2023-01-09
| | | | | | | It is a URL rewriter for IPFS gateways, not an actual implementation of IPFS, and naming it as such was both incorrect and misleading. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* configure: Add msmpeg4(dec|enc) subsystemsAndreas Rheinhardt2022-08-03
| | | | | | | | | | The msmpeg4 decoders/encoders share a common set of prerequisites, ergo it makes sense to use common subsystems for them. This also allows to remove the CONFIG_MSMPEG4_DECODER/ENCODER ad-hoc defines (which violated the CONFIG_ namespace). Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat: Add IPFS protocol support.Mark Gaiser2022-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for: - ffplay ipfs://<cid> - ffplay ipns://<cid> IPFS data can be played from so called "ipfs gateways". A gateway is essentially a webserver that gives access to the distributed IPFS network. This protocol support (ipfs and ipns) therefore translates ipfs:// and ipns:// to a http:// url. This resulting url is then handled by the http protocol. It could also be https depending on the gateway provided. To use this protocol, a gateway must be provided. If you do nothing it will try to find it in your $HOME/.ipfs/gateway file. The ways to set it manually are: 1. Define a -gateway <url> to the gateway. 2. Define $IPFS_GATEWAY with the full http link to the gateway. 3. Define $IPFS_PATH and point it to the IPFS data path. 4. Have IPFS running in your local user folder (under $HOME/.ipfs). Signed-off-by: Mark Gaiser <markg85@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/zlib_wrapper: Add wrapper for deflateInit()Andreas Rheinhardt2022-03-19
| | | | | | | | | | | The rationale is the same as for the wrappers for inflateInit(), although the case for it is admittedly not so strong because there are less users of deflateInit(). Also remove an unnecessary inclusion of config.h in libavformat/protocols.c in order to trigger a request for reconfigure (which is needed for CONFIG_DEFLATE_WRAPPER to take effect). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavf/protocols: avoid discarding const in avio_enum_protocols()Anton Khirnov2021-12-07
| | | | | | Instead of storing the protocol pointer in the opaque iteration state, store just the index of the next protocol, similarly to how ff_urlcontext_child_class_iterate() works.
* Replace all occurences of av_mallocz_array() by av_calloc()Andreas Rheinhardt2021-09-20
| | | | | | | They do the same. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat: add a concat protocol that takes a line break delimited list of ↵James Almer2021-07-02
| | | | | | | | resources Suggested-by: ffmpeg@fb.com Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: remove deprecated AVClass.child_class_nextJames Almer2021-04-27
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* libavformat: add librist protocolPaul B Mahol2021-03-13
| | | | | | This work is sponsored by Open Broadcast Systems. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avformat/gopher: Add support for Gopher over TLSparazyd2021-03-11
| | | | | | | | | | | | | | | | This commit adds a "gophers" handler to the gopher protocol. gophers is a community-adopted protocol that acts the same way like normal gopher with the added TLS encapsulation. The gophers protocol is supported by gopher servers like geomydae(8), and clients like curl(1), clic(1), and hurl(1). This commit also adds compilation guards to both gopher and gophers, since now there are two protocols in the file it makes sense to have this addition. Signed-off-by: parazyd <parazyd@dyne.org> Signed-off-by: Marton Balint <cus@passwd.hu>
* URLContext: switch to child_class_iterate()Anton Khirnov2020-06-10
|
* avformat: Add AMQP version 0-9-1 protocol supportAndriy Gelman2020-03-09
| | | | | | | Supports connecting to a RabbitMQ broker via AMQP version 0-9-1. Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/avio: add avio_protocol_get_classSteven Liu2020-01-30
| | | | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Suggested-by: Hendrik Leppkes <h.leppkes@gmail.com> Suggested-by: Nicolas George <george@nsup.org> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat: Add ZeroMQ as a protocolAndriy Gelman2019-09-02
| | | | | | | | | When ffmpeg was streaming, multiple clients were only supported by using a multicast destination address. An alternative was to stream to a server which re-distributes the content. This commit adds ZeroMQ as a protocol, which allows multiple clients to connect to a single ffmpeg instance. Signed-off-by: Marton Balint <cus@passwd.hu>
* Merge commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57'James Almer2018-03-29
|\ | | | | | | | | | | | | * commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57': Add Haivision SRT protocol Merged-by: James Almer <jamrial@gmail.com>
| * Add Haivision SRT protocolSven Dueking2018-03-28
| | | | | | | | | | | | | | | | The protocol requires libsrt (https://github.com/Haivision/srt) to be installed Signed-off-by: Sven Dueking <sven.dueking@nablet.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '61cec5adaacb358783c18aa07362f15824c1b274'James Almer2017-11-01
|\| | | | | | | | | | | | | | | | | | | * commit '61cec5adaacb358783c18aa07362f15824c1b274': tls: Hide backend implementation details from users Also includes ed434be106a4615e0419b3ac7664220741afda2d Changes were made to support schannel and securetransport. Merged-by: James Almer <jamrial@gmail.com>
| * tls: Hide backend implementation details from usersDiego Biurrun2017-06-02
| | | | | | | | | | | | | | | | TLS is currently implemented over either OpenSSL or GnuTLS, with more backends likely to appear in the future. Currently, those backend libraries are part of the protocol names used during e.g. the configure stage of a build. Hide those details behind a generically-named declaration for the TLS protocol to avoid leaking those details into the configuration stage.
* | avformat: Add Pro-MPEG CoP #3-R2 FEC protocolVlad Tarca2016-11-13
| | | | | | | | | | | | | | Pro-MPEG Code of Practice #3 release 2 forward error correction for rtp_mpegts streams Signed-off-by: Vlad Tarca <vtarca@mobibase.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat: Add tee protocolMichael Niedermayer2016-07-19
| | | | | | | | | | | | Option passing support will be submitted seperately to the ML Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '06edef3d5e072ef3c4face9ce946d2d9c36cc477'Derek Buitenhuis2016-05-12
|\| | | | | | | | | | | | | * commit '06edef3d5e072ef3c4face9ce946d2d9c36cc477': Generate the lists of enabled protocols/bsfs from configure. Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * Generate the lists of enabled protocols/bsfs from configure.Anton Khirnov2016-04-19
| |
* | avformat/protocols: Fix ff_urlcontext_child_class_next()Michael Niedermayer2016-02-29
| | | | | | | | | | | | This fixes -read_ahead_limit Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '832a202c47a246ed15e3edc6b05dfcfa7d82c4b2'Derek Buitenhuis2016-02-29
|\| | | | | | | | | | | | | * commit '832a202c47a246ed15e3edc6b05dfcfa7d82c4b2': protocols: make the list of protocols static Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * protocols: make the list of protocols staticAnton Khirnov2016-02-22
| | | | | | | | | | Disallow other code to touch it directly, now it's only accessible through a blacklisting/whitelisting function.
* | Merge commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56'Derek Buitenhuis2016-02-29
|\| | | | | | | | | | | | | * commit '7d61dc95d741ca134d59b1f34c4e10c4c4e36f56': lavf: move urlcontext_child_class_next() to protocols.c Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavf: move urlcontext_child_class_next() to protocols.cAnton Khirnov2016-02-22
| | | | | | | | | | It needs to access the list of protocols directly, so it more properly belongs there.
* | Merge commit '0fa00d05911aa8043ecad8dead4a73cab7faadf6'Derek Buitenhuis2016-02-29
|\| | | | | | | | | | | | | * commit '0fa00d05911aa8043ecad8dead4a73cab7faadf6': lavf: move avio_enum_protocols() to protocols.c Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavf: move avio_enum_protocols() to protocols.cAnton Khirnov2016-02-22
| | | | | | | | It's a more appropriate place for it.
* | Merge commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d'Derek Buitenhuis2016-02-29
|/ | | | | | | | | | | This commit also disables the async fate test, because it used internal APIs in a non-kosher way, which no longer exists. * commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d': lavf: reorganize URLProtocols Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* lavf: reorganize URLProtocolsAnton Khirnov2016-02-22
Instead of a linked list constructed at av_register_all(), store them in a constant array of pointers. Since no registration is necessary now, this removes some global state from lavf. This will also allow the urlprotocol layer caller to limit the available protocols in a simple and flexible way in the following commits.