FFmpeg
Macros | Functions | Variables
avio.c File Reference
#include "libavutil/avstring.h"
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "libavutil/time.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

  Iterate over all available protocols.
 
const char *  avio_enum_protocols (void **opaque, int output)
  Iterate through names of available protocols.
 
  Register the URLProtocol protocol.
 
static int  url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up, const char *filename, int flags, const AVIOInterruptCB *int_cb)
 
  Connect an URLContext that has been allocated by ffurl_alloc.
 
static struct URLProtocolurl_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.
 
int  ffurl_open (URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)
  Create an URLContext for accessing to the resource indicated by url, and open it.
 
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.
 
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_write (URLContext *h, const unsigned char *buf, int size)
  Write size bytes from buf to the resource accessed by h.
 
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 **hh)
  Close the resource accessed by the URLContext h, and free the memory used by it.
 
 
const char *  avio_find_protocol_name (const char *url)
  Return the name of the protocol that will handle the passed URL.
 
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.
 
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.
 
  Return the file descriptor associated with this URL.
 
int  ffurl_get_multi_file_handle (URLContext *h, int **handles, int *numhandles)
  Return the file descriptors associated with this URL.
 
  Signal the URLContext that we are done reading or writing the stream.
 
  Check if the user has requested to interrup a blocking function associated with cb.
 

Variables

static URLProtocolfirst_protocol = NULL
 

Logging context.

static const AVOption  options [] = { { NULL } }
 
 
static const char *  urlcontext_to_name (void *ptr)
 
static voidurlcontext_child_next (void *obj, void *prev)
 
static const AVClassurlcontext_child_class_next (const AVClass *prev)
 

Macro Definition Documentation

#define URL_SCHEME_CHARS
Value:
"abcdefghijklmnopqrstuvwxyz" \
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
"0123456789+-."

Definition at line 213 of file avio.c.

Referenced by url_find_protocol().

Function Documentation

URLProtocol* ffurl_protocol_next ( const URLProtocolprev )

Iterate over all available protocols.

Parameters
prev result of the previous call to this functions or NULL.

Definition at line 35 of file avio.c.

Referenced by avio_enum_protocols(), url_find_protocol(), and urlcontext_child_class_next().

static const char* urlcontext_to_name ( voidptr )
static

Definition at line 42 of file avio.c.

static void* urlcontext_child_next ( voidobj,
voidprev 
)
static

Definition at line 51 of file avio.c.

static const AVClass* urlcontext_child_class_next ( const AVClassprev )
static

Definition at line 59 of file avio.c.

const char* avio_enum_protocols ( void **  opaque,
int  output 
)

Iterate through names of available protocols.

Parameters
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.
Returns
A static string containing the name of current protocol or NULL

Definition at line 86 of file avio.c.

Referenced by avio_enum_protocols(), and show_protocols().

int ffurl_register_protocol ( URLProtocolprotocol )

Register the URLProtocol protocol.

Definition at line 97 of file avio.c.

static int url_alloc_for_protocol ( URLContext **  puc,
struct URLProtocolup,
const char *  filename,
int  flags,
const AVIOInterruptCBint_cb 
)
static

Definition at line 108 of file avio.c.

Referenced by ffurl_alloc().

int ffurl_connect ( URLContextuc,
AVDictionary **  options 
)

Connect an URLContext that has been allocated by ffurl_alloc.

Parameters
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 194 of file avio.c.

Referenced by avio_check(), ffurl_open(), mmsh_open_internal(), open_input(), and rtmp_http_open().

static struct URLProtocol* url_find_protocol ( const char *  filename )
staticread

Definition at line 218 of file avio.c.

Referenced by avio_find_protocol_name(), and ffurl_alloc().

int ffurl_alloc ( URLContext **  puc,
const char *  filename,
int  flags,
const AVIOInterruptCBint_cb 
)

Create a URLContext for accessing to the resource indicated by url, but do not initiate the connection yet.

Parameters
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
Returns
>= 0 in case of success, a negative value corresponding to an AVERROR code in case of failure

Definition at line 249 of file avio.c.

Referenced by avio_check(), ffurl_open(), mmsh_open_internal(), open_input(), and rtmp_http_open().

int ffurl_open ( URLContext **  puc,
const char *  filename,
int  flags,
const AVIOInterruptCBint_cb,
AVDictionary **  options 
)

Create an URLContext for accessing to the resource indicated by url, and open it.

Parameters
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.
Returns
>= 0 in case of success, a negative value corresponding to an AVERROR code in case of failure

Definition at line 269 of file avio.c.

Referenced by avio_open2(), cache_open(), concat_open(), crypto_open2(), ftp_connect_control_connection(), ftp_connect_data_connection(), gopher_open(), hls_read(), http_open_cnx_internal(), icecast_open(), ism_flush(), ism_seek(), md5_close(), mms_open(), open_input(), rtmp_calc_swfhash(), rtmp_open(), rtmpe_open(), rtp_new_av_stream(), rtp_open(), rtsp_listen(), rtsp_read_setup(), sap_read_header(), sap_write_header(), srtp_open(), subfile_open(), and tls_open().

static int retry_transfer_wrapper ( URLContexth,
uint8_tbuf,
int  size,
int  size_min,
int(*)(URLContext *h, uint8_t *buf, int sizetransfer_func 
)
inlinestatic

Definition at line 289 of file avio.c.

Referenced by ffurl_read(), ffurl_read_complete(), and ffurl_write().

int ffurl_read ( URLContexth,
unsigned char *  buf,
int  size 
)

Read up to size bytes from the resource accessed by h, and store the read bytes in buf.

Returns
The number of bytes actually read, or a negative value corresponding to an AVERROR code in case of error. A value of zero indicates that it is not possible to read more from the accessed resource (except if the value of the size argument is also zero).

Definition at line 330 of file avio.c.

Referenced by cache_read(), concat_read(), crypto_read(), ff_rtmp_packet_read(), ff_rtmp_packet_read_internal(), ffio_fdopen(), ftp_getc(), ftp_read(), 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(), and subfile_read().

int ffurl_read_complete ( URLContexth,
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 337 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(), and rtsp_read_announce().

int ffurl_write ( URLContexth,
const unsigned char *  buf,
int  size 
)

Write size bytes from buf to the resource accessed by h.

Returns
the number of bytes actually written, or a negative value corresponding to an AVERROR code in case of failure

Definition at line 344 of file avio.c.

Referenced by 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(), gopher_write(), http_connect(), http_send_data(), http_shutdown(), http_write(), 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(), and srtp_write().

int64_t ffurl_seek ( URLContexth,
int64_t  pos,
int  whence 
)

Change the position that will be used by the next read/write operation on the resource accessed by h.

Parameters
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).
Returns
a negative value corresponding to an AVERROR code in case of failure, or the resulting file position, measured in bytes from the beginning of the file. You can use this feature together with SEEK_CUR to read the current file position.

Definition at line 355 of file avio.c.

Referenced by cache_seek(), concat_read(), concat_seek(), ffio_fdopen(), ffurl_connect(), ffurl_size(), 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.

Returns
a negative value if an error condition occurred, 0 otherwise

Definition at line 365 of file avio.c.

Referenced by ffurl_close(), ftp_abort(), ftp_close_both_connections(), ftp_close_data_connection(), ftp_open(), http_close(), http_open_cnx(), and mmsh_close().

int ffurl_close ( URLContexth )

Definition at line 387 of file avio.c.

Referenced by avio_check(), avio_close(), avio_open2(), cache_close(), close_connection(), concat_close(), concat_open(), crypto_close(), ff_rtp_chain_mux_open(), ff_rtsp_undo_setup(), ffurl_open(), free_playlist_list(), gopher_close(), hls_close(), hls_read(), hls_read_seek(), http_seek(), 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(), and tls_open().

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.

Returns
Name of the protocol or NULL.

Definition at line 393 of file avio.c.

Referenced by add_file(), and assert_file_overwrite().

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.

Note
This function is intrinsically unsafe, in the sense that the checked resource may change its existence or permission status from one call to another. Thus you should not trust the returned value, unless you are sure that no other processes are accessing the checked resource.

Definition at line 400 of file avio.c.

Referenced by assert_file_overwrite(), build_feed_streams(), and find_image_range().

int64_t ffurl_size ( URLContexth )

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 419 of file avio.c.

Referenced by concat_open().

int ffurl_get_file_handle ( URLContexth )

Return the file descriptor associated with this URL.

For RTP, this will return only the RTP file descriptor, not the RTCP file descriptor.

Returns
the file descriptor associated with this URL, or <0 on error.

Definition at line 434 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(), srtp_get_file_handle(), and tls_open().

int ffurl_get_multi_file_handle ( URLContexth,
int **  handles,
int *  numhandles 
)

Return the file descriptors associated with this URL.

Returns
0 on success or <0 on error.

Definition at line 441 of file avio.c.

Referenced by srtp_get_multi_file_handle().

int ffurl_shutdown ( URLContexth,
int  flags 
)

Signal the URLContext that we are done reading or writing the stream.

Parameters
h pointer to the resource
flags flags which control how the resource indicated by url is to be shutdown
Returns
a negative value if an error condition occurred, 0 otherwise

Definition at line 456 of file avio.c.

Referenced by ftp_shutdown().

int ff_check_interrupt ( AVIOInterruptCBcb )

Check if the user has requested to interrup a blocking function associated with cb.

Definition at line 463 of file avio.c.

Referenced by avformat_find_stream_info(), do_tls_poll(), ff_listen_connect(), ff_network_wait_fd_timeout(), ff_poll_interrupt(), hls_read(), read_data(), retry_transfer_wrapper(), and rtp_read().

Variable Documentation

URLProtocol* first_protocol = NULL
static

Definition at line 33 of file avio.c.

Referenced by ffurl_protocol_next(), and ffurl_register_protocol().

const AVOption options[] = { { NULL } }
static

Definition at line 75 of file avio.c.

const AVClass ffurl_context_class
Initial value:
= {
.class_name = "URLContext",
.item_name = urlcontext_to_name,
.option = options,
.child_next = urlcontext_child_next,
.child_class_next = urlcontext_child_class_next,
}

Definition at line 76 of file avio.c.

Referenced by ffio_url_child_class_next(), and url_alloc_for_protocol().


Generated on Sun Sep 14 2014 18:56:31 for FFmpeg by   doxygen 1.8.2

AltStyle によって変換されたページ (->オリジナル) /