Go to the documentation of this file.
24 #ifndef AVFORMAT_URL_H
25 #define AVFORMAT_URL_H
32 #define URL_PROTOCOL_FLAG_NESTED_SCHEME 1
33 #define URL_PROTOCOL_FLAG_NETWORK 2
83 int64_t timestamp,
int flags);
147 const char *whitelist,
const char* blacklist,
197 #if FF_API_AVIO_WRITE_NONCONST
210 #if FF_API_AVIO_WRITE_NONCONST
320 const char *authorization,
const char *hostname,
333 const
char *rel,
int handle_dos_paths);
367 const
char *blacklist);
382 #define url_component_end_scheme authority
383 #define url_component_end_authority userinfo
384 #define url_component_end_userinfo host
385 #define url_component_end_host port
386 #define url_component_end_port path
387 #define url_component_end_path query
388 #define url_component_end_query fragment
389 #define url_component_end_fragment end
390 #define url_component_end_authority_full path
392 #define URL_COMPONENT_HAVE(uc, component) \
393 ((uc).url_component_end_##component > (uc).component)
419 int ffurl_move(
const char *url_src,
const char *url_dst);
int(* url_get_multi_file_handle)(URLContext *h, int **handles, int *numhandles)
static 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.
int ffurl_closep(URLContext **h)
Close the resource accessed by the URLContext h, and free the memory used by it.
int(* url_get_file_handle)(URLContext *h)
int64_t ffurl_seek2(void *urlcontext, int64_t pos, int whence)
char * filename
specified URL
int(* url_read)(URLContext *h, unsigned char *buf, int size)
Read data from the protocol.
static double cb(void *priv, double x, double y)
const char * url
whole URL, for reference
int(* url_close_dir)(URLContext *h)
int ffurl_read2(void *urlcontext, uint8_t *buf, int size)
int64_t ffurl_size(URLContext *h)
Return the filesize of the resource accessed by h, AVERROR(ENOSYS) if the operation is not supported ...
static int ffurl_write(URLContext *h, const uint8_t *buf, int size)
Write size bytes from buf to the resource accessed by h.
int ffurl_connect(URLContext *uc, AVDictionary **options)
Connect an URLContext that has been allocated by ffurl_alloc.
int ff_make_absolute_url(char *buf, int size, const char *base, const char *rel)
Convert a relative url into an absolute url, given a base url.
int max_packet_size
if non zero, the stream is packetized with this max packet size
int(* url_delete)(URLContext *h)
int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles)
Return the file descriptors associated with this URL.
int ffurl_accept(URLContext *s, URLContext **c)
Accept an URLContext c on an URLContext s.
int min_packet_size
if non zero, the stream is packetized with this min packet size
const char * fragment
including initial '#' if present
Callback for checking whether to abort blocking functions.
int ffurl_delete(const char *url)
Delete a resource.
int ffurl_shutdown(URLContext *h, int flags)
Signal the URLContext that we are done reading or writing the stream.
AVIODirEntry * ff_alloc_dir_entry(void)
Allocate directory entry with default values.
int(* url_read_pause)(URLContext *h, int pause)
int(* url_open)(URLContext *h, const char *url, int flags)
int(* url_accept)(URLContext *s, URLContext **c)
static const uint16_t mask[17]
int(* url_close)(URLContext *h)
const char * query
including initial '?' if present
Describe the class of an AVClass context structure.
const char * protocol_whitelist
const URLProtocol ** ffurl_get_protocols(const char *whitelist, const char *blacklist)
Construct a list of protocols matching a given whitelist and/or blacklist.
const char * protocol_blacklist
const char * authority
"//" if it is a real URL
#define av_printf_format(fmtpos, attrpos)
int int ff_make_absolute_url2(char *buf, int size, const char *base, const char *rel, int handle_dos_paths)
Convert a relative url into an absolute url, given a base url.
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
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.
int ffurl_get_file_handle(URLContext *h)
Return the file descriptor associated with this URL.
const OptionDef options[]
const AVClass * priv_data_class
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 connectio...
Describes single entry of the directory.
const char * default_whitelist
int64_t rw_timeout
maximum time to wait for (network) read/write operation completion, in mcs
int64_t(* url_seek)(URLContext *h, int64_t pos, int whence)
int ffurl_get_short_seek(void *urlcontext)
Return the current short seek threshold value for this URL.
int ffurl_handshake(URLContext *c)
Perform one step of the protocol handshake to accept a new client.
const struct URLProtocol * prot
int(* url_handshake)(URLContext *c)
int(* url_open_dir)(URLContext *h)
const AVIOInterruptCB int_cb
const char * port
including initial ':' if present
int ffurl_move(const char *url_src, const char *url_dst)
Move or rename a resource.
int ffurl_close(URLContext *h)
const char * userinfo
including final '@' if present
AVIOInterruptCB interrupt_callback
int(* url_move)(URLContext *h_src, URLContext *h_dst)
int ff_udp_get_local_port(URLContext *h)
Return the local port used by the UDP connection.
int(* url_check)(URLContext *h, int mask)
const char * scheme
possibly including lavf-specific options
int(* url_read_dir)(URLContext *h, AVIODirEntry **next)
int ffurl_open_whitelist(URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options, const char *whitelist, const char *blacklist, URLContext *parent)
Create an URLContext for accessing to the resource indicated by url, and open it.
int(* url_get_short_seek)(URLContext *h)
const AVClass * av_class
information for av_log().
const AVClass * ff_urlcontext_child_class_iterate(void **iter)
int(* url_shutdown)(URLContext *h, int flags)
int is_streamed
true if streamed (no seek possible), default = false
int ff_check_interrupt(AVIOInterruptCB *cb)
Check if the user has requested to interrupt a blocking function associated with cb.
int ffurl_write2(void *urlcontext, const uint8_t *buf, int size)
int64_t(* url_read_seek)(URLContext *h, int stream_index, int64_t timestamp, int flags)
int ff_udp_set_remote_url(URLContext *h, const char *uri)
If no filename is given to av_open_input_file because you want to get the local port first,...
int(* url_write)(URLContext *h, const unsigned char *buf, int size)
int ff_url_decompose(URLComponents *uc, const char *url, const char *end)
Parse an URL to find the components.
#define flags(name, subs,...)
const AVClass ffurl_context_class
int(* url_open2)(URLContext *h, const char *url, int flags, AVDictionary **options)
This callback is to be used by protocols which open further nested protocols.
int ff_url_join(char *str, int size, const char *proto, const char *authorization, const char *hostname, int port, const char *fmt,...) av_printf_format(7
Assemble a URL string from components.
static int ffurl_read(URLContext *h, uint8_t *buf, int size)
Read up to size bytes from the resource accessed by h, and store the read bytes in buf.