summaryrefslogtreecommitdiff
path: root/libavformat/avio.c
Commit message (Collapse)AuthorAge
* avio: Copy URLContext generic options into child URLContextsMartin Storsjö2016-03-24
| | | | | | | | | | | | | | | Since all URLContexts have the same AVOptions, such AVOptions will be applied on the outermost context only and removed from the dict, while they probably make sense on all contexts. This makes sure that rw_timeout gets propagated to the innermost URLContext (to make sure it gets passed to the tcp protocol, when opening a http connection for instance). Alternatively, such matching options would be kept in the dict and only removed after the ffurl_connect call. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: Add an option 'rw_timeout'Andrey Utkin2016-03-24
| | | | | | | | | | | If set non-zero, this limits duration of the retry_transfer_wrapper() loop, thus affecting ffurl_read*(), ffurl_write(). As soon as one single byte is successfully received/transmitted, the timer restarts. This has further changes by Michael Niedermayer and Martin Storsjö. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: Apply avoptions on the URLContext itself as wellMartin Storsjö2016-03-24
| | | | | | | Currently the list of avoptions for URLContext is empty though, but such options will be added. Signed-off-by: Martin Storsjö <martin@martin.st>
* urlprotocol: receive a list of protocols from the callerAnton Khirnov2016-02-22
| | | | | This way, the decisions about which protocols are available for use in any given situations can be delegated to the caller.
* 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.
* 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.
* lavf: move avio_enum_protocols() to protocols.cAnton Khirnov2016-02-22
| | | | It's a more appropriate place for it.
* 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.
* lavf: Explicitly convert types at function pointer assignmentDiego Biurrun2015-03-11
| | | | This fixes a number of "assignment from incompatible pointer type" warnings.
* avio: fix sizeof argumentMichael Niedermayer2014-10-20
| | | | | CC: libav-stable@libav.org Bug-Id: CID 732284
* cosmetics: Write NULL pointer inequality checks more compactlyGabriel Dume2014-08-15
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* avformat: Mark argument in av_{i|o}format_next/ffurl_protocol_next as constDiego Biurrun2014-07-26
|
* lavf: Remove a now useless parameter to ffurl_register_protocolMartin Storsjö2013-10-30
| | | | | | | | | | | | | | This was added in 9b07a2dc02e9 as an ABI hack to allow older code built with lavf 52 to register protocols even if the size of the URLProtocol struct was increased. Later, registering protocols from outside of lavf was removed and this workaround isn't needed any longer since lavf 53. This removes an unchecked malloc and a memory leak for the cases when this workaround actually was used - which it hasn't since lavf 53. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: Check for memory allocation failure of private dataDerek Buitenhuis2013-10-29
| | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avio: K&R formatting cosmeticsLuca Barbato2013-10-28
|
* avio: Use AVERROR_PROTOCOL_NOT_FOUNDLuca Barbato2013-10-21
| | | | | | | | When the protocol is missing ffurl_alloc() should return AVERROR_PROTOCOL_NOT_FOUND instead of AVERROR(ENOENT). Bug-Id: 577 CC: libav-stable@libav.org
* avio: Handle AVERROR_EOF in the same way as the return value 0Michael Niedermayer2013-07-07
| | | | | | | | | This makes sure the ffurl_read_complete function actually returns the number of bytes read, as the documentation of the function says, even if the underlying protocol uses AVERROR_EOF instead of 0. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: fix pointer type mismatches in avio_enum_protocols()Mans Rullgard2012-10-27
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* avio: add (ff)url_get_multi_file_handle() for getting more than one fdJordi Ortiz2012-08-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Replace usleep() calls with av_usleep()Mans Rullgard2012-06-22
| | | | | | | This reduces the dependency on unistd.h which is not available on all systems. Signed-off-by: Mans Rullgard <mans@mansr.com>
* avio: Add a function for signalling end of reading/writingSamuel Pitoiset2012-05-22
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* cosmetics: Remove extra newlines at EOFAlex Converse2012-01-27
|
* lavf: remove disabled FF_API_OLD_INTERRUPT_CB cruftAnton Khirnov2012-01-27
|
* lavf: remove disabled FF_API_OLD_AVIO cruftAnton Khirnov2012-01-27
|
* avio: Only do implicit network initialization for network protocolsMartin Storsjö2012-01-05
| | | | | | | | | | The implicit network initialization is set to be removed in the future, but is kept for compatibility. By not doing the implicit initialization for non-network protocols, we avoid the warning about avformat_network_init() not being called for these, where it really doesn't make much sense. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: Mark the old interrupt callback mechanism as deprecatedMartin Storsjö2011-11-18
| | | | Prepare for removing it at an upcoming major bump.
* avio: add avio_open2, taking an interrupt callback and optionsMartin Storsjö2011-11-13
| | | | | | | | | | | The interrupt callback has to be passed in during opening (setting it after opening isn't enough), since a blocking open couldn't be interrupted otherwise. Options are passed down to procotols and also need to be available during open() in most cases. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avio: add support for passing options to protocols.Anton Khirnov2011-11-13
| | | | | Not used anywhere yet, support for passing options from avio_open() will follow.
* avio: add and use ffurl_protocol_next().Anton Khirnov2011-11-13
|
* avio: Add an AVIOInterruptCB parameter to ffurl_open/ffurl_allocMartin Storsjö2011-11-13
| | | | | Change all uses of these function to pass the relevant callback on.
* avformat: Use ff_check_interruptMartin Storsjö2011-11-13
|
* avio: Add an internal utility function for checking the new interrupt callbackMartin Storsjö2011-11-13
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avio: Free URLContext private data allocated via AVOptionsMartin Storsjö2011-11-10
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Remove some stray unnecessary ffmpeg references.Diego Biurrun2011-11-02
|
* lavf: use designated initializers for AVClasses.Anton Khirnov2011-05-17
|
* configure: Do not unconditionally add -D_POSIX_C_SOURCE to CPPFLAGS.Diego Biurrun2011-05-12
| | | | | | | | | | | | | | | | Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems since it causes certain system functions to be hidden on some (BSD) systems. The solution is to only add the flag on systems that really require it, i.e. glibc-based ones. This change makes BSD systems compile out-of-the-box without the need for adding specific flags manually. It also allows dropping a number of flags set manually on a file-per-file basis, but were only present to work around breakage introduced by the presence of _POSIX_C_SOURCE. Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems. We use XSI extensions in several places already, so it is preferable to define it globally instead of littering source files with individual #defines only needed for glibc.
* avio: Fix sanity checks in ffurl_read*Martin Storsjö2011-04-20
| | | | | | | This fixes e.g. reading data over HTTP, where the underlying socket is set to read/write. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbolsStefano Sabatini2011-04-19
| | | | | | | | Make AVIO_FLAG_ access constants work as flags, and in particular fix the behavior of functions (such as avio_check()) which expect them to be flags rather than modes. This breaks API.
* lavf: remove FF_API_URL_CLASS cruft.Anton Khirnov2011-04-19
|
* lavf: remove FF_API_REGISTER_PROTOCOL cruftAnton Khirnov2011-04-19
|
* avio: deprecate url_exist in favor of avio_check.Anton Khirnov2011-04-13
|
* avio: add avio_check()Stefano Sabatini2011-04-13
| | | | | | | | The new function is more flexible than url_exist(), as it allows to specify which access flags to check, and does not require an explicit open of the checked resource. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avio: deprecate av_protocol_next().Anton Khirnov2011-04-08
|
* avio: add a function for iterating though protocol names.Anton Khirnov2011-04-08
|
* avio: deprecate the typedef for URLInterruptCBAnton Khirnov2011-04-08
| | | | | There's no particular reason to pollute the namespace with a typedef for it.
* avio: make av_register_protocol2 internal.Anton Khirnov2011-04-07
|
* avio: avio_ prefix for url_set_interrupt_cb.Anton Khirnov2011-04-07
|
* avio: AVIO_ prefixes for URL_ open flags.Anton Khirnov2011-04-07
|
* avio: deprecate av_url_read_seekAnton Khirnov2011-04-05
| | | | | | It's not used anywhere internally. Salvage its documentation for ffio_read_seek.
* avio: deprecate av_url_read_pauseAnton Khirnov2011-04-05
| | | | | | It's not used anywhere internally. Salvage its documentation for ffio_read_pause.