FFmpeg
|
#include "libavutil/avstring.h"
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavutil/avassert.h"
#include "os_support.h"
#include "avformat.h"
#include "url.h"
Go to the source code of this file.
Macros | |
#define | URL_SCHEME_CHARS |
Functions | |
URLProtocol * | ffurl_protocol_next (const URLProtocol *prev) |
Iterate over all available protocols. More... | |
const char * | avio_enum_protocols (void **opaque, int output) |
Iterate through names of available protocols. More... | |
int | ffurl_register_protocol (URLProtocol *protocol) |
Register the URLProtocol protocol. More... | |
static int | url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up, const char *filename, int flags, const AVIOInterruptCB *int_cb) |
int | ffurl_connect (URLContext *uc, AVDictionary **options) |
Connect an URLContext that has been allocated by ffurl_alloc. More... | |
int | ffurl_accept (URLContext *s, URLContext **c) |
Accept an URLContext c on an URLContext s. More... | |
int | ffurl_handshake (URLContext *c) |
Perform one step of the protocol handshake to accept a new client. More... | |
static struct URLProtocol * | url_find_protocol (const char *filename) |
int | ffurl_alloc (URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb) |
Create a URLContext for accessing to the resource indicated by url, but do not initiate the connection yet. More... | |
int | ffurl_open_whitelist (URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options, const char *whitelist) |
Create an URLContext for accessing to the resource indicated by url, and open it. More... | |
int | ffurl_open (URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options) |
static int | retry_transfer_wrapper (URLContext *h, uint8_t *buf, int size, int size_min, int(*transfer_func)(URLContext *h, uint8_t *buf, int size)) |
int | ffurl_read (URLContext *h, unsigned char *buf, int size) |
Read up to size bytes from the resource accessed by h, and store the read bytes in buf. More... | |
int | ffurl_read_complete (URLContext *h, unsigned char *buf, int size) |
Read as many bytes as possible (up to size), calling the read function multiple times if necessary. More... | |
int | ffurl_write (URLContext *h, const unsigned char *buf, int size) |
Write size bytes from buf to the resource accessed by h. More... | |
int64_t | ffurl_seek (URLContext *h, int64_t pos, int whence) |
Change the position that will be used by the next read/write operation on the resource accessed by h. More... | |
int | ffurl_closep (URLContext **hh) |
Close the resource accessed by the URLContext h, and free the memory used by it. More... | |
int | ffurl_close (URLContext *h) |
const char * | avio_find_protocol_name (const char *url) |
Return the name of the protocol that will handle the passed URL. More... | |
int | avio_check (const char *url, int flags) |
Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url, or a negative value corresponding to an AVERROR code in case of failure. More... | |
int | avpriv_io_move (const char *url_src, const char *url_dst) |
Move or rename a resource. More... | |
int | avpriv_io_delete (const char *url) |
Delete a resource. More... | |
int | avio_open_dir (AVIODirContext **s, const char *url, AVDictionary **options) |
Open directory for reading. More... | |
int | avio_read_dir (AVIODirContext *s, AVIODirEntry **next) |
Get next directory entry. More... | |
int | avio_close_dir (AVIODirContext **s) |
Close directory. More... | |
void | avio_free_directory_entry (AVIODirEntry **entry) |
Free entry allocated by avio_read_dir(). More... | |
int64_t | ffurl_size (URLContext *h) |
Return the filesize of the resource accessed by h, AVERROR(ENOSYS) if the operation is not supported by h, or another negative value corresponding to an AVERROR error code in case of failure. More... | |
int | ffurl_get_file_handle (URLContext *h) |
Return the file descriptor associated with this URL. More... | |
int | ffurl_get_multi_file_handle (URLContext *h, int **handles, int *numhandles) |
Return the file descriptors associated with this URL. More... | |
int | ffurl_shutdown (URLContext *h, int flags) |
Signal the URLContext that we are done reading or writing the stream. More... | |
int | ff_check_interrupt (AVIOInterruptCB *cb) |
Check if the user has requested to interrup a blocking function associated with cb. More... | |
Variables | |
static URLProtocol * | first_protocol = NULL |
Logging context. | |
#define | OFFSET(x) offsetof(URLContext,x) |
#define | E AV_OPT_FLAG_ENCODING_PARAM |
#define | D AV_OPT_FLAG_DECODING_PARAM |
static const AVOption | options [] |
const AVClass | ffurl_context_class |
static const char * | urlcontext_to_name (void *ptr) |
static void * | urlcontext_child_next (void *obj, void *prev) |
static const AVClass * | urlcontext_child_class_next (const AVClass *prev) |
#define OFFSET | ( | x | ) | offsetof(URLContext,x) |
#define E AV_OPT_FLAG_ENCODING_PARAM |
#define D AV_OPT_FLAG_DECODING_PARAM |
#define URL_SCHEME_CHARS |
Definition at line 278 of file avio.c.
Referenced by url_find_protocol().
URLProtocol* ffurl_protocol_next | ( | const URLProtocol * | prev | ) |
Iterate over all available protocols.
prev | result of the previous call to this functions or NULL. |
Definition at line 36 of file avio.c.
Referenced by avio_enum_protocols(), url_find_protocol(), and urlcontext_child_class_next().
const char* avio_enum_protocols | ( | void ** | opaque, |
int | output | ||
) |
Iterate through names of available protocols.
opaque | A private pointer representing current protocol. It must be a pointer to NULL on first iteration and will be updated by successive calls to avio_enum_protocols. |
output | If set to 1, iterate over output protocols, otherwise over input protocols. |
Definition at line 93 of file avio.c.
Referenced by avio_enum_protocols(), and show_protocols().
int ffurl_register_protocol | ( | URLProtocol * | protocol | ) |
Register the URLProtocol protocol.
|
static |
Definition at line 115 of file avio.c.
Referenced by ffurl_alloc().
int ffurl_connect | ( | URLContext * | uc, |
AVDictionary ** | options | ||
) |
Connect an URLContext that has been allocated by ffurl_alloc.
options | A dictionary filled with options for nested protocols, i.e. it will be passed to url_open2() for protocols implementing it. This parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL. |
Definition at line 208 of file avio.c.
Referenced by avio_check(), ffurl_open_whitelist(), mmsh_open_internal(), rtmp_http_open(), and url_connect().
int ffurl_accept | ( | URLContext * | s, |
URLContext ** | c | ||
) |
Accept an URLContext c on an URLContext s.
s | server context |
c | client context, must be unallocated. |
Definition at line 258 of file avio.c.
Referenced by avio_accept(), and http_accept().
int ffurl_handshake | ( | URLContext * | c | ) |
Perform one step of the protocol handshake to accept a new client.
See avio_handshake() for details. Implementations should try to return decreasing values. If the protocol uses an underlying protocol, the underlying handshake is usually the first step, and the return value can be: (largest value for this protocol) + (return value from other protocol)
c | the client context |
Definition at line 266 of file avio.c.
Referenced by avio_handshake(), and http_handshake().
|
static |
Definition at line 283 of file avio.c.
Referenced by avio_find_protocol_name(), and ffurl_alloc().
int ffurl_alloc | ( | URLContext ** | puc, |
const char * | filename, | ||
int | flags, | ||
const AVIOInterruptCB * | int_cb | ||
) |
Create a URLContext for accessing to the resource indicated by url, but do not initiate the connection yet.
puc | pointer to the location where, in case of success, the function puts the pointer to the created URLContext |
flags | flags which control how the resource indicated by url is to be opened |
int_cb | interrupt callback to use for the URLContext, may be NULL |
Definition at line 314 of file avio.c.
Referenced by avio_check(), avio_open_dir(), avpriv_io_delete(), avpriv_io_move(), ffurl_open_whitelist(), http_accept(), mmsh_open_internal(), open_input(), rtmp_http_open(), and tcp_accept().
int ffurl_open_whitelist | ( | URLContext ** | puc, |
const char * | filename, | ||
int | flags, | ||
const AVIOInterruptCB * | int_cb, | ||
AVDictionary ** | options, | ||
const char * | whitelist | ||
) |
Create an URLContext for accessing to the resource indicated by url, and open it.
puc | pointer to the location where, in case of success, the function puts the pointer to the created URLContext |
flags | flags which control how the resource indicated by url is to be opened |
int_cb | interrupt callback to use for the URLContext, may be NULL |
options | A dictionary filled with protocol-private options. On return this parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL. |
Definition at line 336 of file avio.c.
Referenced by async_open(), cache_open(), concat_open(), crypto_open2(), dash_flush(), dash_write_header(), ff_tls_open_underlying(), ffio_open_whitelist(), ffurl_open(), find_index_range(), ftp_connect_control_connection(), ftp_connect_data_connection(), gopher_open(), hls_read(), http_listen(), http_open_cnx_internal(), icecast_open(), ism_flush(), ism_seek(), md5_close(), mms_open(), open_url(), rtmp_calc_swfhash(), rtmp_open(), rtmpe_open(), rtp_open(), rtsp_listen(), rtsp_read_setup(), sap_read_header(), sap_write_header(), srtp_open(), and subfile_open().
int ffurl_open | ( | URLContext ** | puc, |
const char * | filename, | ||
int | flags, | ||
const AVIOInterruptCB * | int_cb, | ||
AVDictionary ** | options | ||
) |
Definition at line 371 of file avio.c.
Referenced by rtp_new_av_stream().
|
inlinestatic |
Definition at line 378 of file avio.c.
Referenced by ffurl_read(), ffurl_read_complete(), and ffurl_write().
int ffurl_read | ( | URLContext * | h, |
unsigned char * | buf, | ||
int | size | ||
) |
Read up to size bytes from the resource accessed by h, and store the read bytes in buf.
Definition at line 419 of file avio.c.
Referenced by cache_read(), concat_read(), crypto_read(), ff_rtmp_packet_read(), ff_rtmp_packet_read_internal(), ffio_fdopen(), find_index_range(), ftp_getc(), ftp_read(), ftp_read_dir(), gnutls_url_pull(), gopher_read(), hls_read(), http_buf_read(), http_getc(), read_from_url(), rtmp_http_open(), rtmp_http_read(), rtmp_http_send_cmd(), rtmp_write(), rtmpe_read(), sap_fetch_packet(), sap_read_header(), srtp_read(), subfile_read(), tls_client_handshake_loop(), tls_read(), url_bio_bread(), and wrapped_url_read().
int ffurl_read_complete | ( | URLContext * | h, |
unsigned char * | buf, | ||
int | size | ||
) |
Read as many bytes as possible (up to size), calling the read function multiple times if necessary.
This makes special short-read handling in applications unnecessary, if the return value is < size then it is certain there was either an error or the end of file was reached.
Definition at line 426 of file avio.c.
Referenced by ff_rtsp_tcp_read_packet(), get_chunk_header(), get_http_header_data(), get_tcp_server_response(), open_input(), read_data_packet(), read_from_url(), read_line(), rtmp_calc_swfhash(), rtmp_handshake(), rtmp_packet_read_one_chunk(), rtmp_receive_hs_packet(), rtmp_server_handshake(), rtsp_read_announce(), and tls_read_cb().
int ffurl_write | ( | URLContext * | h, |
const unsigned char * | buf, | ||
int | size | ||
) |
Write size bytes from buf to the resource accessed by h.
Definition at line 433 of file avio.c.
Referenced by crypto_close(), crypto_write(), dash_write(), ff_rtmp_packet_write(), ff_rtp_check_and_send_back_rr(), ff_rtp_send_punch_packets(), ff_rtp_send_rtcp_feedback(), ff_rtsp_tcp_write_packet(), ffio_fdopen(), ftp_send_command(), ftp_write(), gnutls_url_push(), gopher_write(), http_connect(), http_send_data(), http_shutdown(), http_write(), http_write_reply(), icecast_write(), ism_write(), md5_close(), rtmp_handshake(), rtmp_send_hs_packet(), rtmp_server_handshake(), rtmpe_write(), rtp_write(), rtsp_send_reply(), sap_write_close(), sap_write_packet(), send_command_packet(), srtp_write(), tls_client_handshake(), tls_client_handshake_loop(), tls_shutdown_client(), tls_write(), tls_write_cb(), and url_bio_bwrite().
int64_t ffurl_seek | ( | URLContext * | h, |
int64_t | pos, | ||
int | whence | ||
) |
Change the position that will be used by the next read/write operation on the resource accessed by h.
pos | specifies the new position to set |
whence | specifies how pos should be interpreted, it must be one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the current position), SEEK_END (seek from the end), or AVSEEK_SIZE (return the filesize of the requested resource, pos is ignored). |
Definition at line 446 of file avio.c.
Referenced by async_buffer_task(), cache_read(), cache_seek(), concat_read(), concat_seek(), ffio_fdopen(), ffurl_connect(), ffurl_size(), find_index_range(), ism_seek(), open_input(), rtmp_calc_swfhash(), and slave_seek().
int ffurl_closep | ( | URLContext ** | h | ) |
Close the resource accessed by the URLContext h, and free the memory used by it.
Also set the URLContext pointer to NULL.
Definition at line 456 of file avio.c.
Referenced by ffurl_close(), ftp_abort(), ftp_close_both_connections(), ftp_close_data_connection(), ftp_close_dir(), ftp_open_dir(), http_close(), http_open_cnx(), and mmsh_close().
int ffurl_close | ( | URLContext * | h | ) |
Definition at line 479 of file avio.c.
Referenced by async_close(), async_open(), avio_check(), avio_close(), avio_close_dir(), avio_open_dir(), avpriv_io_delete(), avpriv_io_move(), cache_close(), close_connection(), concat_close(), concat_open(), crypto_close(), dash_flush(), dash_free(), ff_rtp_chain_mux_open(), ff_rtsp_undo_setup(), ffio_open_whitelist(), ffurl_open_whitelist(), find_index_range(), free_playlist_list(), gopher_close(), hls_close(), hls_read(), hls_read_seek(), http_seek_internal(), icecast_close(), ism_flush(), ism_free(), ism_seek(), md5_close(), mms_close(), mmsh_open_internal(), open_input(), read_data(), recheck_discard_flags(), rtmp_calc_swfhash(), rtmp_close(), rtmp_http_close(), rtmp_open(), rtmpe_close(), rtp_close(), rtp_new_av_stream(), rtp_open(), rtsp_listen(), sap_read_close(), sap_write_close(), srtp_close(), subfile_close(), subfile_open(), tls_close(), update_init_section(), and url_connect().
const char* avio_find_protocol_name | ( | const char * | url | ) |
Return the name of the protocol that will handle the passed URL.
NULL is returned if no protocol could be found for the given URL.
Definition at line 485 of file avio.c.
Referenced by add_file(), assert_file_overwrite(), ff_configure_buffers_for_index(), hls_window(), open_url(), and seg_write_header().
int avio_check | ( | const char * | url, |
int | flags | ||
) |
Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url, or a negative value corresponding to an AVERROR code in case of failure.
The returned access flags are masked by the value in flags.
Definition at line 492 of file avio.c.
Referenced by assert_file_overwrite(), build_feed_streams(), and find_image_range().
int avpriv_io_move | ( | const char * | url_src, |
const char * | url_dst | ||
) |
Move or rename a resource.
url_src | url to resource to be moved |
url_dst | new url to resource if the operation succeeded |
Definition at line 511 of file avio.c.
Referenced by move_op().
int avpriv_io_delete | ( | const char * | url | ) |
int avio_open_dir | ( | AVIODirContext ** | s, |
const char * | url, | ||
AVDictionary ** | options | ||
) |
Open directory for reading.
s | directory read context. Pointer to a NULL pointer must be passed. |
url | directory to be listed. |
options | A dictionary filled with protocol-private options. On return this parameter will be destroyed and replaced with a dictionary containing options that were not found. May be NULL. |
Definition at line 549 of file avio.c.
Referenced by list_op().
int avio_read_dir | ( | AVIODirContext * | s, |
AVIODirEntry ** | next | ||
) |
Get next directory entry.
Returned entry must be freed with avio_free_directory_entry(). In particular it may outlive AVIODirContext.
s | directory read context. | |
[out] | next | next entry or NULL when no more entries. |
Definition at line 587 of file avio.c.
Referenced by list_op().
int avio_close_dir | ( | AVIODirContext ** | s | ) |
Close directory.
s | directory read context. |
Definition at line 600 of file avio.c.
Referenced by list_op().
void avio_free_directory_entry | ( | AVIODirEntry ** | entry | ) |
Free entry allocated by avio_read_dir().
entry | entry to be freed. |
Definition at line 615 of file avio.c.
Referenced by avio_read_dir(), ftp_read_dir(), and list_op().
int64_t ffurl_size | ( | URLContext * | h | ) |
Return the filesize of the resource accessed by h, AVERROR(ENOSYS) if the operation is not supported by h, or another negative value corresponding to an AVERROR error code in case of failure.
Definition at line 623 of file avio.c.
Referenced by async_open(), concat_open(), and update_init_section().
int ffurl_get_file_handle | ( | URLContext * | h | ) |
Return the file descriptor associated with this URL.
For RTP, this will return only the RTP file descriptor, not the RTCP file descriptor.
Definition at line 638 of file avio.c.
Referenced by ftp_get_file_handle(), http_get_file_handle(), rtp_open(), rtsp_write_packet(), sap_fetch_packet(), sap_write_header(), and srtp_get_file_handle().
int ffurl_get_multi_file_handle | ( | URLContext * | h, |
int ** | handles, | ||
int * | numhandles | ||
) |
Return the file descriptors associated with this URL.
Definition at line 645 of file avio.c.
Referenced by srtp_get_multi_file_handle().
int ffurl_shutdown | ( | URLContext * | h, |
int | flags | ||
) |
Signal the URLContext that we are done reading or writing the stream.
h | pointer to the resource |
flags | flags which control how the resource indicated by url is to be shutdown |
Definition at line 660 of file avio.c.
Referenced by ftp_shutdown().
int ff_check_interrupt | ( | AVIOInterruptCB * | cb | ) |
Check if the user has requested to interrup a blocking function associated with cb.
Definition at line 667 of file avio.c.
Referenced by async_check_interrupt(), avformat_find_stream_info(), ff_listen_connect(), ff_network_wait_fd_timeout(), ff_poll_interrupt(), hls_read(), read_data(), retry_transfer_wrapper(), and rtp_read().
|
static |
Definition at line 34 of file avio.c.
Referenced by ffurl_protocol_next(), and ffurl_register_protocol().
|
static |
const AVClass ffurl_context_class |
Definition at line 83 of file avio.c.
Referenced by ff_avio_child_class_next(), and url_alloc_for_protocol().