aviobuf.c File Reference
#include "libavutil/crc.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "avformat.h"
#include "avio.h"
#include "avio_internal.h"
#include "internal.h"
#include "url.h"
#include <stdarg.h>

Go to the source code of this file.

Data Structures

struct  DynBuffer

Macros

#define IO_BUFFER_SIZE   32768
#define SHORT_SEEK_THRESHOLD   4096
 Do seeks within this distance ahead of the current buffer by skipping data instead of calling the protocol seek function, for seekable protocols.
#define GET_STR16(type, read)

Typedefs

typedef struct DynBuffer DynBuffer

Functions

static voidffio_url_child_next (void *obj, void *prev)
static const AVClassffio_url_child_class_next (const AVClass *prev)
static void fill_buffer (AVIOContext *s)
static int url_resetbuf (AVIOContext *s, int flags)
int ffio_init_context (AVIOContext *s, unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int(*read_packet)(void *opaque, uint8_t *buf, int buf_size), int(*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))
AVIOContextavio_alloc_context (unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int(*read_packet)(void *opaque, uint8_t *buf, int buf_size), int(*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))
 Allocate and initialize an AVIOContext for buffered I/O.
static void flush_buffer (AVIOContext *s)
void avio_w8 (AVIOContext *s, int b)
void ffio_fill (AVIOContext *s, int b, int count)
void avio_write (AVIOContext *s, const unsigned char *buf, int size)
void avio_flush (AVIOContext *s)
int64_t avio_seek (AVIOContext *s, int64_t offset, int whence)
 fseek() equivalent for AVIOContext.
int64_t avio_size (AVIOContext *s)
 Get the filesize.
void avio_wl32 (AVIOContext *s, unsigned int val)
void avio_wb32 (AVIOContext *s, unsigned int val)
int avio_put_str (AVIOContext *s, const char *str)
 Write a NULL-terminated string.
int avio_put_str16le (AVIOContext *s, const char *str)
 Convert an UTF-8 string to UTF-16LE and write it.
int ff_get_v_length (uint64_t val)
 Get the length in bytes which is needed to store val as v.
void ff_put_v (AVIOContext *bc, uint64_t val)
 Put val using a variable number of bytes.
void avio_wl64 (AVIOContext *s, uint64_t val)
void avio_wb64 (AVIOContext *s, uint64_t val)
void avio_wl16 (AVIOContext *s, unsigned int val)
void avio_wb16 (AVIOContext *s, unsigned int val)
void avio_wl24 (AVIOContext *s, unsigned int val)
void avio_wb24 (AVIOContext *s, unsigned int val)
unsigned long ff_crc04C11DB7_update (unsigned long checksum, const uint8_t *buf, unsigned int len)
unsigned long ffio_get_checksum (AVIOContext *s)
void ffio_init_checksum (AVIOContext *s, unsigned long(*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum)
int avio_r8 (AVIOContext *s)
int avio_read (AVIOContext *s, unsigned char *buf, int size)
 Read size bytes from AVIOContext into buf.
int ffio_read_partial (AVIOContext *s, unsigned char *buf, int size)
 Read size bytes from AVIOContext into buf.
unsigned int avio_rl16 (AVIOContext *s)
unsigned int avio_rl24 (AVIOContext *s)
unsigned int avio_rl32 (AVIOContext *s)
uint64_t avio_rl64 (AVIOContext *s)
unsigned int avio_rb16 (AVIOContext *s)
unsigned int avio_rb24 (AVIOContext *s)
unsigned int avio_rb32 (AVIOContext *s)
int ff_get_line (AVIOContext *s, char *buf, int maxlen)
 Read a whole line of text from AVIOContext.
int avio_get_str (AVIOContext *s, int maxlen, char *buf, int buflen)
 Read a string from pb into buf.
uint64_t avio_rb64 (AVIOContext *s)
uint64_t ffio_read_varlen (AVIOContext *bc)
int ffio_fdopen (AVIOContext **s, URLContext *h)
 Create and initialize a AVIOContext for accessing the resource referenced by the URLContext h.
int ffio_set_buf_size (AVIOContext *s, int buf_size)
int ffio_rewind_with_probe_data (AVIOContext *s, unsigned char *buf, int buf_size)
 Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file.
int avio_open (AVIOContext **s, const char *filename, int flags)
 Create and initialize a AVIOContext for accessing the resource indicated by url.
int avio_open2 (AVIOContext **s, const char *filename, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)
 Create and initialize a AVIOContext for accessing the resource indicated by url.
int avio_close (AVIOContext *s)
 Close the resource accessed by the AVIOContext s and free it.
int avio_printf (AVIOContext *s, const char *fmt,...)
int avio_pause (AVIOContext *s, int pause)
 Pause and resume playing - only meaningful if using a network streaming protocol (e.g.
int64_t avio_seek_time (AVIOContext *s, int stream_index, int64_t timestamp, int flags)
 Seek to a given timestamp relative to some component stream.
static int dyn_buf_write (void *opaque, uint8_t *buf, int buf_size)
static int dyn_packet_buf_write (void *opaque, uint8_t *buf, int buf_size)
static int64_t dyn_buf_seek (void *opaque, int64_t offset, int whence)
static int url_open_dyn_buf_internal (AVIOContext **s, int max_packet_size)
int avio_open_dyn_buf (AVIOContext **s)
 Open a write only memory stream.
int ffio_open_dyn_packet_buf (AVIOContext **s, int max_packet_size)
 Open a write only packetized memory stream with a maximum packet size of 'max_packet_size'.
int avio_close_dyn_buf (AVIOContext *s, uint8_t **pbuffer)
 Return the written size and a pointer to the buffer.

Variables

static const AVOption ffio_url_options []
const AVClass ffio_url_class

Macro Definition Documentation

#define GET_STR16 (   type,
  read 
)
Value:
int avio_get_str16 ##type(AVIOContext *pb, int maxlen, char *buf, int buflen)\
{\
char* q = buf;\
int ret = 0;\
if (buflen <= 0) \
return AVERROR(EINVAL); \
while (ret + 1 < maxlen) {\
uint8_t tmp;\
uint32_t ch;\
GET_UTF16(ch, (ret += 2) <= maxlen ? read(pb) : 0, break;)\
if (!ch)\
break;\
PUT_UTF8(ch, tmp, if (q - buf < buflen - 1) *q++ = tmp;)\
}\
*q = 0;\
return ret;\
}\

Definition at line 818 of file aviobuf.c.

#define IO_BUFFER_SIZE   32768

Definition at line 34 of file aviobuf.c.

Referenced by ffio_fdopen(), and fill_buffer().

#define SHORT_SEEK_THRESHOLD   4096

Do seeks within this distance ahead of the current buffer by skipping data instead of calling the protocol seek function, for seekable protocols.

Definition at line 41 of file aviobuf.c.

Referenced by avio_seek().

Typedef Documentation

typedef struct DynBuffer DynBuffer

Function Documentation

AVIOContext* avio_alloc_context ( unsigned char *  buffer,
int  buffer_size,
int  write_flag,
void opaque,
int(*)(void *opaque, uint8_t *buf, int buf_size)  read_packet,
int(*)(void *opaque, uint8_t *buf, int buf_size)  write_packet,
int64_t(*)(void *opaque, int64_t offset, int whence)  seek 
)

Allocate and initialize an AVIOContext for buffered I/O.

It must be later freed with av_free().

Parameters
bufferMemory block for input/output operations via AVIOContext. The buffer must be allocated with av_malloc() and friends.
buffer_sizeThe buffer size is very important for performance. For protocols with fixed blocksize it should be set to this blocksize. For others a typical size is a cache page, e.g. 4kb.
write_flagSet to 1 if the buffer should be writable, 0 otherwise.
opaqueAn opaque pointer to user-specific data.
read_packetA function for refilling the buffer, may be NULL.
write_packetA function for writing the buffer contents, may be NULL.
seekA function for seeking to specified byte position, may be NULL.
Returns
Allocated AVIOContext or NULL on failure.

Definition at line 134 of file aviobuf.c.

Referenced by ffio_fdopen(), http_receive_data(), rdt_parse_packet(), read_gab2_sub(), url_open_dyn_buf_internal(), and wtvfile_open_sector().

int avio_close ( AVIOContext s)
void avio_flush ( AVIOContext s)

Definition at line 205 of file aviobuf.c.

Referenced by a64_write_packet(), adts_write_packet(), aiff_write_header(), aiff_write_trailer(), asf_write_header(), asf_write_trailer(), avi_write_ix(), avi_write_packet(), avi_write_trailer(), avio_close_dyn_buf(), crc_write_trailer(), daud_write_packet(), dump_attachment(), dv_write_packet(), ff_mov_write_packet(), ff_raw_write_packet(), ff_rtp_check_and_send_back_rr(), ff_rtp_send_data(), ff_rtp_send_punch_packets(), ffm_write_header(), ffm_write_trailer(), flac_write_packet(), flac_write_trailer(), flush_packet(), flv_write_packet(), framecrc_write_packet(), gif_write_header(), gif_write_trailer(), gif_write_video(), gxf_write_header(), gxf_write_packet(), gxf_write_trailer(), ivf_write_packet(), main(), md5_finish(), mkv_write_header(), mkv_write_trailer(), mov_write_header(), mov_write_trailer(), mp3_write_trailer(), mpegts_write_end(), mpegts_write_header(), mpegts_write_pes(), mpjpeg_write_header(), mpjpeg_write_packet(), mxf_write_footer(), mxf_write_packet(), mxf_write_partition(), nut_write_header(), nut_write_trailer(), ogg_write_page(), put_vcd_padding_sector(), rm_write_audio(), rm_write_header(), rm_write_trailer(), rm_write_video(), roq_write_header(), rso_write_header(), rso_write_trailer(), seg_write_header(), seg_write_packet(), smjpeg_write_header(), smjpeg_write_packet(), smjpeg_write_trailer(), sox_write_header(), sox_write_trailer(), spdif_write_packet(), swf_write_header(), swf_write_trailer(), swf_write_video(), vc1test_write_packet(), vc1test_write_trailer(), write_header(), write_packet(), and write_trailer().

int avio_get_str ( AVIOContext pb,
int  maxlen,
char *  buf,
int  buflen 
)

Read a string from pb into buf.

The reading will terminate when either a NULL character was encountered, maxlen bytes have been read, or nothing more can be read from pb. The result is guaranteed to be NULL-terminated, it will be truncated if buf is too small. Note that the string is not interpreted or validated in any way, it might get truncated in the middle of a sequence for multi-byte encodings.

Returns
number of bytes read (is always <= maxlen). If reading ends on EOF or error, the return value will be one more than bytes actually read.

Definition at line 800 of file aviobuf.c.

Referenced by ffm_read_header(), mov_read_chapters(), and read_info_chunk().

int avio_open ( AVIOContext **  s,
const char *  url,
int  flags 
)

Create and initialize a AVIOContext for accessing the resource indicated by url.

Note
When the resource indicated by url has been opened in read+write mode, the AVIOContext can be used only for writing.
Parameters
sUsed to return the pointer to the created AVIOContext. In case of failure the pointed to value is set to NULL.
flagsflags which control how the resource indicated by url is to be opened
Returns
0 in case of success, a negative value corresponding to an AVERROR code in case of failure

Definition at line 965 of file aviobuf.c.

Referenced by build_feed_streams(), main(), and opt_output_file().

int avio_open2 ( AVIOContext **  s,
const char *  url,
int  flags,
const AVIOInterruptCB int_cb,
AVDictionary **  options 
)

Create and initialize a AVIOContext for accessing the resource indicated by url.

Note
When the resource indicated by url has been opened in read+write mode, the AVIOContext can be used only for writing.
Parameters
sUsed to return the pointer to the created AVIOContext. In case of failure the pointed to value is set to NULL.
flagsflags which control how the resource indicated by url is to be opened
int_cban interrupt callback to be used at the protocols level
optionsA 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 970 of file aviobuf.c.

Referenced by avio_open(), dump_attachment(), get_preset_file_2(), init_input(), main(), mov_open_dref(), opt_output_file(), parse_playlist(), read_packet(), seg_write_header(), seg_write_packet(), and segment_start().

int avio_pause ( AVIOContext h,
int  pause 
)

Pause and resume playing - only meaningful if using a network streaming protocol (e.g.

MMS).

Parameters
pause1 for pause, 0 for resume

Definition at line 1044 of file aviobuf.c.

Referenced by av_read_pause(), and av_read_play().

int avio_printf ( AVIOContext s,
const char *  fmt,
  ... 
)

Definition at line 1003 of file aviobuf.c.

int avio_put_str ( AVIOContext s,
const char *  str 
)

Write a NULL-terminated string.

Returns
number of bytes written.

Definition at line 469 of file aviobuf.c.

Referenced by avi_write_info_tag(), ffm_write_header(), and id3v2_put_ttag().

int avio_put_str16le ( AVIOContext s,
const char *  str 
)

Convert an UTF-8 string to UTF-16LE and write it.

Returns
number of bytes written.

Definition at line 480 of file aviobuf.c.

Referenced by asf_write_header1(), id3v2_put_ttag(), mms_put_utf16(), and put_str16().

int avio_r8 ( AVIOContext s)

Definition at line 632 of file aviobuf.c.

Referenced by aea_read_header(), amf_parse_object(), amr_read_packet(), ape_tag_read_field(), asf_read_frame_header(), asf_read_header(), asf_read_language_list(), asf_read_marker(), asf_read_stream_properties(), asfrtp_parse_packet(), avi_read_header(), avi_sync(), avio_get_str(), avio_rb16(), avio_rb24(), avio_rl16(), avio_rl24(), avs_read_packet(), bfi_read_packet(), bmv_read_packet(), cin_read_file_header(), cin_read_frame_header(), decode_str(), dv_read_header(), dxa_read_header(), ebml_read_num(), ebml_read_uint(), efi_read(), ff_asf_get_packet(), ff_asf_parse_packet(), ff_get_line(), ff_id3v2_parse(), ff_mov_read_stsd_entries(), ff_mp4_parse_es_descr(), ff_mp4_read_dec_config_descr(), ff_mp4_read_descr(), ff_mp4_read_descr_len(), ff_sauce_read(), ffio_read_varlen(), ffm_read_header(), ffm_resync(), find_any_startcode(), find_next_start_code(), flv_read_header(), flv_read_metabody(), flv_read_packet(), flv_set_video_codec(), get_attachment(), get_codec_data(), get_line(), get_pts(), get_size(), get_str(), get_str8(), get_strl(), get_token(), gxf_header(), gxf_material_tags(), gxf_packet(), gxf_resync_media(), gxf_track_tags(), iff_read_header(), ipmovie_read_header(), klv_decode_ber_length(), mmf_read_header(), mov_metadata_gnre(), mov_metadata_int8_bypass_padding(), mov_metadata_int8_no_padding(), mov_read_chan(), mov_read_chpl(), mov_read_ctts(), mov_read_dref(), mov_read_elst(), mov_read_hdlr(), mov_read_mac_string(), mov_read_mdhd(), mov_read_mvhd(), mov_read_stco(), mov_read_stsc(), mov_read_stsd(), mov_read_stss(), mov_read_stsz(), mov_read_stts(), mov_read_tfhd(), mov_read_tkhd(), mov_read_trex(), mov_read_trun(), mpc8_read_header(), mpc_read_header(), mpegps_psm_parse(), mpegps_read_header(), mpegps_read_packet(), mpegps_read_pes_header(), mpegts_resync(), msnwc_tcp_read_header(), mtv_read_header(), mxf_read_pixel_layout(), mxf_read_sync(), nc_read_packet(), nsv_parse_NSVs_header(), nsv_read_chunk(), nsv_resync(), nut_read_packet(), nuv_header(), ogg_read_page(), parse_chunks(), parse_keyframes_index(), parse_MP4IODescrTag(), parse_MP4SLDescrTag(), parse_packet_header(), pmp_packet(), process_audio_header_eacs(), process_audio_header_elements(), qcp_read_header(), qcp_read_packet(), r3d_read_red1(), r3d_read_reda(), r3d_read_redv(), read_arbitary(), read_braindead_odml_indx(), read_frame(), read_geobtag(), read_header(), read_line(), read_part_of_packet(), read_ttag(), rm_assemble_video_frame(), rm_read_audio_stream_info(), rm_read_dts(), rm_read_metadata(), seq_parse_frame_data(), skip_reserved(), smacker_read_header(), smacker_read_packet(), smjpeg_read_header(), sol_read_header(), spdif_read_packet(), swf_read_header(), swf_read_packet(), sync(), tmv_read_header(), vc1t_read_header(), vc1t_read_packet(), vid_read_packet(), voc_get_packet(), wv_read_block_header(), wv_read_packet(), yop_read_header(), yuv4_read_header(), and yuv4_read_packet().

unsigned int avio_rb32 ( AVIOContext s)

Definition at line 769 of file aviobuf.c.

Referenced by aiff_read_header(), amf_parse_object(), au_read_header(), avi_sync(), avio_rb64(), decode_frame_header(), dv_read_header(), dxa_read_header(), ea_read_packet(), ebml_read_float(), ff_id3v2_parse(), ff_mov_read_esds(), ff_mov_read_stsd_entries(), ff_mp4_read_dec_config_descr(), ff_rm_read_mdpr_codecdata(), ffm_read_header(), flv_read_header(), flv_read_packet(), get_aiff_header(), get_packetheader(), get_tag(), gxf_material_tags(), gxf_packet(), gxf_resync_media(), gxf_track_tags(), iff_read_header(), lmlm4_read_packet(), matroska_read_header(), mmf_read_header(), mov_read_chan(), mov_read_chap(), mov_read_chpl(), mov_read_cmov(), mov_read_ctts(), mov_read_default(), mov_read_dref(), mov_read_elst(), mov_read_ftyp(), mov_read_glbl(), mov_read_hdlr(), mov_read_mdhd(), mov_read_mvhd(), mov_read_pasp(), mov_read_stco(), mov_read_stps(), mov_read_stsc(), mov_read_stsd(), mov_read_stss(), mov_read_stsz(), mov_read_stts(), mov_read_tfhd(), mov_read_tkhd(), mov_read_trex(), mov_read_trun(), mov_read_udta_string(), mov_read_wide(), mp3_parse_vbr_tags(), mpegps_psm_parse(), mxf_read_content_storage(), mxf_read_generic_descriptor(), mxf_read_index_table_segment(), mxf_read_material_package(), mxf_read_primer_pack(), mxf_read_sequence(), mxf_read_source_clip(), mxf_read_source_package(), mxf_read_track(), parse_keyframes_index(), parse_MP4SLDescrTag(), parse_packet_header(), process_audio_header_eacs(), qcp_read_header(), qt_rtp_parse_packet(), r3d_read_rdvo(), r3d_read_red1(), r3d_read_reda(), r3d_read_redv(), r3d_read_reos(), rdt_load_mdpr(), read_atom(), read_desc_chunk(), read_header(), read_info_chunk(), read_packet(), read_pakt_chunk(), read_part_of_packet(), rl2_read_header(), rm_read_audio_stream_info(), rm_read_header(), rm_read_index(), siff_parse_soun(), siff_parse_vbv1(), smjpeg_read_header(), smjpeg_read_packet(), sox_read_header(), swf_read_header(), sync(), thp_read_header(), thp_read_packet(), vqf_read_header(), wc3_read_header(), and wc3_read_packet().

int avio_read ( AVIOContext s,
unsigned char *  buf,
int  size 
)

Read size bytes from AVIOContext into buf.

Returns
number of bytes read or AVERROR

Definition at line 652 of file aviobuf.c.

Referenced by add_metadata(), adx_read_header(), aiff_read_header(), amf_get_string(), amr_read_header(), amr_read_packet(), apc_read_header(), ape_read_header(), ape_read_packet(), ape_tag_read_field(), asf_read_stream_properties(), av_append_packet(), av_get_packet(), av_probe_input_buffer(), av_read(), avi_read_header(), avi_read_nikon(), avi_read_tag(), avs_read_packet(), avs_read_video_packet(), bfi_read_header(), bmv_read_packet(), cin_read_packet(), decode_frame(), decode_main_header(), decode_stream_header(), dv_read_header(), dv_read_packet(), dxa_read_packet(), ebml_read_ascii(), ebml_read_binary(), ff_ape_parse_tag(), ff_asf_parse_packet(), ff_get_guid(), ff_id3v1_read(), ff_id3v2_parse(), ff_id3v2_read_all(), ff_mp4_read_dec_config_descr(), ff_read_riff_info(), ff_rm_parse_packet(), ff_sauce_read(), ffm_read_data(), ffm_read_header(), film_read_header(), film_read_packet(), flac_read_header(), flv_get_extradata(), flv_queue_extradata(), fourxm_read_header(), fourxm_read_packet(), get_attachment(), get_codec_data(), get_meta(), get_metadata(), get_packet_header(), get_pts(), get_riff(), get_str(), get_tag(), idcin_read_header(), idcin_read_packet(), iff_read_header(), ingenient_read_packet(), ipmovie_read_header(), klv_read_packet(), load_ipmovie_packet(), lxf_read_header(), lxf_read_packet(), main(), mmf_read_packet(), mov_read_chpl(), mov_read_cmov(), mov_read_dref(), mov_read_extradata(), mov_read_ftyp(), mov_read_glbl(), mov_read_smi(), mov_read_strf(), mov_read_stsz(), mov_read_udta_string(), mov_read_wave(), mpc8_parse_seektable(), mpc8_read_header(), mpc_read_header(), mpc_read_packet(), mpegps_read_packet(), mpegps_read_pes_header(), mpegts_get_pcr(), mpegts_raw_read_packet(), mpegts_read_header(), mxf_decrypt_triplet(), mxf_read_content_storage(), mxf_read_cryptographic_context(), mxf_read_generic_descriptor(), mxf_read_local_tags(), mxf_read_material_package(), mxf_read_primer_pack(), mxf_read_sequence(), mxf_read_source_clip(), mxf_read_source_package(), mxf_read_track(), mxg_update_cache(), nsv_parse_NSVf_header(), nuv_header(), nuv_packet(), ogg_read_page(), oma_read_header(), oma_read_seek(), opt_output_file(), parse_chunks(), parse_MP4DecConfigDescrTag(), process_ipmovie_chunk(), qcp_read_header(), r3d_read_red1(), read_frame(), read_geobtag(), read_header(), read_kuki_chunk(), read_packet(), read_part_of_packet(), read_seek(), rl2_read_header(), rm_assemble_video_frame(), rm_read_audio_stream_info(), rm_read_extradata(), roq_read_header(), roq_read_packet(), seq_fill_buffer(), seq_read_packet(), siff_read_packet(), smacker_read_header(), smacker_read_packet(), smjpeg_read_header(), sox_read_header(), spdif_read_packet(), str_read_header(), str_read_packet(), swf_read_packet(), sync(), thp_read_header(), tta_read_header(), vc1t_read_header(), vmd_read_header(), vmd_read_packet(), vqf_read_header(), vqf_read_packet(), wc3_read_header(), wc3_read_packet(), wsaud_read_header(), wsaud_read_packet(), wsvqa_read_header(), wsvqa_read_packet(), wtvfile_read_packet(), wv_read_block_header(), wv_read_packet(), xmv_process_packet_header(), yop_read_header(), and yop_read_packet().

unsigned int avio_rl32 ( AVIOContext s)

Definition at line 738 of file aviobuf.c.

Referenced by aiff_read_header(), apc_read_header(), ape_read_header(), ape_tag_read_field(), asf_build_simple_index(), asf_read_ext_stream_properties(), asf_read_file_properties(), asf_read_frame_header(), asf_read_header(), asf_read_marker(), asf_read_metadata(), asf_read_stream_properties(), au_read_header(), avi_load_index(), avi_read_header(), avi_read_idx1(), avi_read_nikon(), avio_rl64(), avs_read_header(), bfi_read_header(), bfi_read_packet(), cin_read_file_header(), cin_read_frame_header(), dfa_read_header(), dxa_read_header(), ea_read_packet(), ff_ape_parse_tag(), ff_asf_get_packet(), ff_mov_read_stsd_entries(), ff_read_riff_info(), ff_rm_read_mdpr_codecdata(), ffm_read_header(), flac_read_header(), fourxm_read_packet(), get_aiff_header(), get_attachment(), get_codec_data(), get_fourcc(), get_riff(), get_swf_tag(), get_tag(), get_value(), guess_ni_flag(), gxf_header(), gxf_read_index(), idcin_read_header(), idcin_read_packet(), iff_read_header(), ingenient_read_packet(), mmf_read_header(), mov_read_chan(), mov_read_cmov(), mov_read_default(), mov_read_dref(), mov_read_glbl(), mov_read_hdlr(), mov_read_meta(), mov_read_udta_string(), mov_read_wide(), mpc8_read_header(), mpc_read_header(), mpc_read_packet(), msnwc_tcp_read_packet(), mtv_read_header(), nsv_parse_NSVf_header(), nsv_parse_NSVs_header(), nsv_read_chunk(), nuv_header(), ogg_read_page(), parse_chunks(), parse_legacy_attrib(), pmp_header(), pmp_packet(), process_audio_header_eacs(), process_audio_header_sead(), process_ea_header(), process_video_header_vp6(), qcp_read_header(), qcp_read_packet(), qt_rtp_parse_packet(), rdt_load_mdpr(), read_atom(), read_braindead_odml_indx(), read_gab2_sub(), read_header(), read_ints(), read_packet(), rl2_read_header(), rm_read_audio_stream_info(), rm_read_header(), rm_read_index(), rpl_read_packet(), siff_parse_soun(), siff_parse_vbv1(), siff_read_header(), siff_read_packet(), smacker_read_header(), smacker_read_packet(), smjpeg_read_header(), smjpeg_read_packet(), sol_read_header(), sox_read_header(), swf_read_header(), tmv_read_header(), tta_read_header(), txd_read_packet(), vc1t_read_header(), vc1t_read_packet(), voc_get_packet(), vqf_read_header(), wc3_read_header(), wc3_read_packet(), wv_read_block_header(), wv_read_packet(), xa_read_header(), xmv_fetch_video_packet(), xmv_process_packet_header(), xmv_read_extradata(), xmv_read_header(), and xwma_read_header().

int64_t avio_seek ( AVIOContext s,
int64_t  offset,
int  whence 
)

fseek() equivalent for AVIOContext.

Returns
new position or AVERROR.

Definition at line 211 of file aviobuf.c.

Referenced by adjust_write_index(), adx_read_header(), aiff_read_header(), aiff_write_trailer(), ape_read_header(), ape_read_packet(), asf_build_simple_index(), asf_read_header(), asf_read_pts(), asf_read_seek(), asf_write_header1(), asf_write_trailer(), av_seek(), avi_load_index(), avi_read_header(), avi_read_idx1(), avi_read_packet(), avi_read_seek(), avi_write_counters(), avi_write_ix(), avi_write_trailer(), avio_skip(), avio_tell(), bfi_read_header(), dv_read_header(), dv_read_seek(), dxa_read_header(), dxa_read_packet(), ea_read_packet(), efi_read(), end_ebml_master(), end_header(), estimate_timings_from_pts(), ff_ape_parse_tag(), ff_asf_get_packet(), ff_gen_syncpoint_search(), ff_id3v1_read(), ff_id3v2_parse(), ff_id3v2_read_all(), ff_id3v2_write(), ff_restore_parser_state(), ff_sauce_read(), ff_seek_frame_binary(), ffm_read_data(), ffm_seek1(), film_read_packet(), find_and_decode_index(), find_any_startcode(), flac_read_header(), flac_write_trailer(), flv_read_header(), flv_read_packet(), flv_write_header(), flv_write_trailer(), get_attachment(), get_tag(), guess_ni_flag(), gxf_read_timestamp(), gxf_resync_media(), gxf_seek(), gxf_write_trailer(), gxf_write_umf_media_description(), iff_read_header(), ipmovie_read_header(), load_ipmovie_packet(), matroska_parse_seekhead_entry(), matroska_read_seek(), mkv_write_seekhead(), mkv_write_trailer(), mov_read_chapters(), mov_read_default(), mov_read_dref(), mov_read_glbl(), mov_read_meta(), mov_read_packet(), mov_write_stsc_tag(), mov_write_stss_tag(), mov_write_trailer(), mp3_parse_vbr_tags(), mp3_read_header(), mp3_write_trailer(), mpc8_handle_chunk(), mpc8_parse_seektable(), mpc8_read_seek(), mpc_read_header(), mpc_read_packet(), mpegps_read_dts(), mpegps_read_packet(), mpegps_read_pes_header(), mpegts_get_pcr(), mpegts_raw_read_packet(), mpegts_read_header(), mpegts_resync(), mtv_read_header(), mxf_read_header(), mxf_read_local_tags(), mxf_read_seek(), mxf_write_footer(), mxf_write_partition(), nsv_parse_NSVf_header(), nsv_read_seek(), nut_read_header(), ogg_get_length(), ogg_read_timestamp(), ogg_restore(), ogg_update_checksum(), oma_read_seek(), parse_keyframes_index(), parse_media_type(), parse_mp4_descr(), pcm_read_seek(), process_ea_header(), put_swf_end_tag(), pva_read_timestamp(), qt_rtp_parse_packet(), r3d_read_header(), r3d_seek(), rdt_load_mdpr(), read_braindead_odml_indx(), read_frame(), read_header(), read_packet(), read_seek(), rl2_read_packet(), rm_read_dts(), rm_read_header(), rm_read_index(), rm_write_trailer(), roq_read_packet(), rpl_read_header(), rpl_read_packet(), rso_write_trailer(), seek_frame_byte(), seek_frame_generic(), seq_fill_buffer(), seq_init_frame_buffers(), seq_parse_frame_data(), seq_read_packet(), skip_reserved(), smacker_read_packet(), smjpeg_write_trailer(), sox_write_trailer(), str_read_header(), swf_write_trailer(), thp_read_header(), thp_read_packet(), tmv_read_seek(), tta_read_header(), tta_read_seek(), updatePacketSize(), updateSize(), vc1test_write_trailer(), vid_read_packet(), vmd_read_header(), vmd_read_packet(), vqf_read_seek(), wc3_read_header(), wc3_read_packet(), write_hint_packets(), wsvqa_read_header(), wtvfile_open_sector(), wtvfile_read_packet(), wtvfile_seek(), wv_read_block_header(), wv_read_header(), wv_read_seek(), xmv_fetch_audio_packet(), xmv_fetch_new_packet(), xmv_fetch_video_packet(), yop_read_header(), and yop_read_seek().

int64_t avio_seek_time ( AVIOContext h,
int  stream_index,
int64_t  timestamp,
int  flags 
)

Seek to a given timestamp relative to some component stream.

Only meaningful if using a network streaming protocol (e.g. MMS.).

Parameters
stream_indexThe stream index that the timestamp is relative to. If stream_index is (-1) the timestamp should be in AV_TIME_BASE units from the beginning of the presentation. If a stream_index >= 0 is used and the protocol does not support seeking based on component streams, the call will fail with ENOTSUP.
timestamptimestamp in AVStream.time_base units or if there is no stream specified then in AV_TIME_BASE units.
flagsOptional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE and AVSEEK_FLAG_ANY. The protocol may silently ignore AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will fail with ENOTSUP if used and not supported.
Returns
>= 0 on success
See Also
AVInputFormat::read_seek

Definition at line 1051 of file aviobuf.c.

Referenced by asf_read_seek(), and flv_read_seek().

void avio_w8 ( AVIOContext s,
int  b 
)

Definition at line 169 of file aviobuf.c.

Referenced by a64_write_packet(), aiff_write_trailer(), asf_write_header1(), avi_write_header(), avi_write_info_tag(), avi_write_ix(), avi_write_packet(), avio_put_str(), avio_wb16(), avio_wb24(), avio_wb32(), avio_wl16(), avio_wl24(), avio_wl32(), decode_str(), ff_id3v2_write(), ff_isom_write_avcc(), ff_put_v(), ff_rtp_check_and_send_back_rr(), ff_rtp_send_data(), ff_rtp_send_punch_packets(), ffm_write_header(), flac_write_block_padding(), flush_packet(), flv_write_header(), flv_write_packet(), get_line(), gif_image_write_header(), gif_image_write_image(), gif_write_trailer(), gif_write_video(), gxf_write_map_packet(), gxf_write_material_data_section(), gxf_write_media_preamble(), gxf_write_mpeg_auxiliary(), gxf_write_packet_header(), gxf_write_padding(), gxf_write_timecode_auxiliary(), gxf_write_track_description(), gxf_write_umf_media_description(), gxf_write_umf_packet(), id3v2_put_size(), id3v2_put_ttag(), klv_encode_ber4_length(), klv_encode_ber_length(), mkv_write_ass_blocks(), mkv_write_block(), mov_write_3gp_udta_tag(), mov_write_amr_tag(), mov_write_chan_tag(), mov_write_chpl_tag(), mov_write_d263_tag(), mov_write_edts_tag(), mov_write_esds_tag(), mov_write_hdlr_tag(), mov_write_iods_tag(), mov_write_itunes_hdlr_tag(), mov_write_mdhd_tag(), mov_write_mvhd_tag(), mov_write_svq3_tag(), mov_write_tkhd_tag(), mov_write_video_tag(), mxf_write_cdci_common(), mxf_write_d10_audio_packet(), mxf_write_d10_video_packet(), mxf_write_generic_sound_common(), mxf_write_index_table_segment(), mxf_write_klv_fill(), mxf_write_mpegvideo_desc(), mxf_write_system_item(), mxf_write_timecode_component(), mxf_write_umid(), nut_write_header(), nut_write_packet(), ogg_write_page(), oma_write_header(), output_immediate(), output_match(), put_amf_bool(), put_amf_double(), put_avc_eos_tag(), put_ebml_id(), put_ebml_num(), put_ebml_size_unknown(), put_ebml_uint(), put_ebml_void(), put_padding_packet(), put_payload_header(), put_payload_parsing_info(), put_str(), put_str8(), put_timestamp(), put_vcd_padding_sector(), put_xiph_codecpriv(), put_xiph_size(), putDescr(), rm_write_video(), rv10_write_header(), smjpeg_write_header(), sox_write_header(), swf_write_header(), swf_write_video(), vc1test_write_header(), voc_write_packet(), voc_write_trailer(), write_escape_str(), write_header(), write_packet_header(), write_streamheader(), write_tags(), and write_trailer().

void avio_wb16 ( AVIOContext s,
unsigned int  val 
)
void avio_wb32 ( AVIOContext s,
unsigned int  val 
)

Definition at line 324 of file aviobuf.c.

Referenced by aiff_write_header(), aiff_write_trailer(), avio_wb64(), ff_avc_parse_nal_units(), ff_id3v2_write(), ff_rtp_check_and_send_back_rr(), ff_rtp_send_data(), ff_rtp_send_punch_packets(), ffm_write_header(), flush_packet(), flv_write_header(), flv_write_packet(), gxf_write_material_data_section(), gxf_write_media_preamble(), gxf_write_packet_header(), gxf_write_timecode_auxiliary(), gxf_write_track_description(), gxf_write_umf_media_dv(), gxf_write_umf_packet(), id3v2_put_ttag(), mov_write_3gp_udta_tag(), mov_write_ac3_tag(), mov_write_amr_tag(), mov_write_audio_tag(), mov_write_avcc_tag(), mov_write_avid_tag(), mov_write_chan_tag(), mov_write_chpl_tag(), mov_write_ctts_tag(), mov_write_d263_tag(), mov_write_dinf_tag(), mov_write_dref_tag(), mov_write_edts_tag(), mov_write_enda_tag(), mov_write_esds_tag(), mov_write_fiel_tag(), mov_write_ftyp_tag(), mov_write_glbl_tag(), mov_write_gmhd_tag(), mov_write_hdlr_tag(), mov_write_hmhd_tag(), mov_write_ilst_tag(), mov_write_iods_tag(), mov_write_itunes_hdlr_tag(), mov_write_mdat_tag(), mov_write_mdhd_tag(), mov_write_mdia_tag(), mov_write_meta_tag(), mov_write_minf_tag(), mov_write_moov_tag(), mov_write_ms_tag(), mov_write_mvhd_tag(), mov_write_nmhd_tag(), mov_write_pasp_tag(), mov_write_psp_udta_tag(), mov_write_rtp_tag(), mov_write_smhd_tag(), mov_write_stbl_tag(), mov_write_stco_tag(), mov_write_string_data_tag(), mov_write_string_tag(), mov_write_stsc_tag(), mov_write_stsd_tag(), mov_write_stss_tag(), mov_write_stsz_tag(), mov_write_stts_tag(), mov_write_subtitle_tag(), mov_write_svq3_tag(), mov_write_tapt_tag(), mov_write_tkhd_tag(), mov_write_trailer(), mov_write_trak_tag(), mov_write_tref_tag(), mov_write_trkn_tag(), mov_write_udta_sdp(), mov_write_udta_tag(), mov_write_uuid_tag_ipod(), mov_write_uuid_tag_psp(), mov_write_uuidprof_tag(), mov_write_uuidusmt_tag(), mov_write_video_tag(), mov_write_vmhd_tag(), mov_write_wave_tag(), mp3_write_trailer(), mxf_write_cdci_common(), mxf_write_essence_container_data(), mxf_write_generic_desc(), mxf_write_generic_sound_common(), mxf_write_index_table_segment(), mxf_write_mpegvideo_desc(), mxf_write_multi_descriptor(), mxf_write_partition(), mxf_write_primer_pack(), mxf_write_random_index_pack(), mxf_write_refs_count(), mxf_write_structural_component(), mxf_write_system_item(), mxf_write_track(), mxf_write_wav_common(), ogg_update_checksum(), oma_write_header(), output_match(), put_avc_eos_tag(), put_padding_packet(), rm_write_trailer(), rm_write_video(), rv10_write_header(), smjpeg_write_header(), smjpeg_write_packet(), smjpeg_write_trailer(), sox_write_header(), swf_write_video(), updatePacketSize(), updateSize(), write_hint_packets(), write_packet_header(), and write_trailer().

void avio_wl24 ( AVIOContext s,
unsigned int  val 
)

Definition at line 539 of file aviobuf.c.

Referenced by vc1test_write_header(), vc1test_write_trailer(), and voc_write_packet().

void avio_write ( AVIOContext s,
const unsigned char *  buf,
int  size 
)

Definition at line 190 of file aviobuf.c.

Referenced by a64_write_header(), a64_write_packet(), adts_write_packet(), aiff_write_packet(), asf_write_header1(), asfrtp_parse_packet(), avi_write_packet(), avio_close_dyn_buf(), avio_printf(), avio_put_str(), crc_write_trailer(), daud_write_packet(), dump_attachment(), dv_write_packet(), ff_avc_parse_nal_units(), ff_flac_write_header(), ff_isom_write_avcc(), ff_mov_write_packet(), ff_raw_write_packet(), ff_rtp_check_and_send_back_rr(), ff_rtp_send_data(), ffm_write_header(), flac_write_block_comment(), flac_write_packet(), flac_write_trailer(), flush_packet(), flv_write_header(), flv_write_packet(), framecrc_write_packet(), gif_image_write_header(), gif_image_write_image(), gxf_write_material_data_section(), gxf_write_mpeg_auxiliary(), gxf_write_packet(), gxf_write_track_description(), gxf_write_umf_media_description(), http_send_data(), id3v2_put_ttag(), ivf_write_header(), ivf_write_packet(), latm_parse_packet(), latm_write_packet(), main(), matroska_read_header(), md5_finish(), mkv_flush_dynbuf(), mkv_write_ass_blocks(), mkv_write_block(), mkv_write_codecprivate(), mov_write_3gp_udta_tag(), mov_write_ac3_tag(), mov_write_chpl_tag(), mov_write_esds_tag(), mov_write_extradata_tag(), mov_write_glbl_tag(), mov_write_hdlr_tag(), mov_write_string_data_tag(), mov_write_subtitle_tag(), mov_write_udta_sdp(), mov_write_udta_tag(), mov_write_video_tag(), mp3_write_trailer(), mpegts_insert_null_packet(), mpegts_insert_pcr_only(), mpegts_write_pes(), mpjpeg_write_header(), mpjpeg_write_packet(), mxf_write_cdci_common(), mxf_write_common_fields(), mxf_write_d10_video_packet(), mxf_write_essence_container_refs(), mxf_write_generic_desc(), mxf_write_index_table_segment(), mxf_write_klv_fill(), mxf_write_metadata_key(), mxf_write_multi_descriptor(), mxf_write_packet(), mxf_write_partition(), mxf_write_preface(), mxf_write_primer_pack(), mxf_write_random_index_pack(), mxf_write_system_item(), mxf_write_track(), mxf_write_umid(), mxf_write_uuid(), nut_write_header(), nut_write_packet(), ogg_write_page(), output_immediate(), put_amf_string(), put_ebml_binary(), put_frame(), put_guid(), put_packet(), put_str(), put_str16(), put_swf_matrix(), put_swf_rect(), put_xiph_codecpriv(), rm_write_audio(), rm_write_video(), roq_write_header(), rso_write_packet(), rtsp_cmd_describe(), rv10_write_header(), section_write_packet(), smjpeg_write_header(), smjpeg_write_packet(), sox_write_header(), sox_write_packet(), spdif_write_packet(), svq3_parse_packet(), swf_write_header(), swf_write_video(), vc1test_write_header(), vc1test_write_packet(), voc_write_header(), voc_write_packet(), vp8_handle_packet(), write_chapter(), write_globalinfo(), write_header(), write_hint_packets(), write_mainheader(), write_packet(), write_streamheader(), write_streaminfo(), write_trailer(), and xiph_handle_packet().

static int64_t dyn_buf_seek ( void opaque,
int64_t  offset,
int  whence 
)
static

Definition at line 1148 of file aviobuf.c.

Referenced by url_open_dyn_buf_internal().

static int dyn_buf_write ( void opaque,
uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1103 of file aviobuf.c.

Referenced by dyn_packet_buf_write(), and url_open_dyn_buf_internal().

static int dyn_packet_buf_write ( void opaque,
uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1133 of file aviobuf.c.

Referenced by url_open_dyn_buf_internal().

unsigned long ff_crc04C11DB7_update ( unsigned long  checksum,
const uint8_t *  buf,
unsigned int  len 
)

Definition at line 607 of file aviobuf.c.

Referenced by get_packetheader(), nut_write_packet(), ogg_write_page(), and put_packet().

int ff_get_line ( AVIOContext s,
char *  buf,
int  maxlen 
)

Read a whole line of text from AVIOContext.

Stop reading after reaching either a \n, a \0 or EOF. The returned string is always \0-terminated, and may be truncated if the buffer is too small.

Parameters
sthe read-only AVIOContext
bufbuffer to store the read line
maxlensize of the buffer
Returns
the length of the string written in the buffer, not including the final \0

Definition at line 785 of file aviobuf.c.

Referenced by read_chomp_line(), read_header(), and srt_read_packet().

int ff_get_v_length ( uint64_t  val)

Get the length in bytes which is needed to store val as v.

Definition at line 497 of file aviobuf.c.

Referenced by ff_put_v(), and nut_write_packet().

void ff_put_v ( AVIOContext bc,
uint64_t  val 
)

Put val using a variable number of bytes.

Definition at line 506 of file aviobuf.c.

Referenced by nut_write_packet(), put_packet(), put_s(), put_str(), put_tt(), write_chapter(), write_globalinfo(), write_mainheader(), write_streamheader(), and write_streaminfo().

int ffio_fdopen ( AVIOContext **  s,
URLContext h 
)

Create and initialize a AVIOContext for accessing the resource referenced by the URLContext h.

Note
When the URLContext h has been opened in read+write mode, the AVIOContext can be used only for writing.
Parameters
sUsed to return the pointer to the created AVIOContext. In case of failure the pointed to value is set to NULL.
Returns
0 in case of success, a negative value corresponding to an AVERROR code in case of failure

Definition at line 861 of file aviobuf.c.

Referenced by avio_open2(), and ff_rtp_chain_mux_open().

void ffio_fill ( AVIOContext s,
int  b,
int  count 
)

Definition at line 176 of file aviobuf.c.

Referenced by spdif_write_packet().

void ffio_init_checksum ( AVIOContext s,
unsigned long(*)(unsigned long c, const uint8_t *p, unsigned int len update_checksum,
unsigned long  checksum 
)

Definition at line 620 of file aviobuf.c.

Referenced by get_packetheader(), nut_write_packet(), ogg_write_page(), and put_packet().

int ffio_init_context ( AVIOContext s,
unsigned char *  buffer,
int  buffer_size,
int  write_flag,
void opaque,
int(*)(void *opaque, uint8_t *buf, int buf_size)  read_packet,
int(*)(void *opaque, uint8_t *buf, int buf_size)  write_packet,
int64_t(*)(void *opaque, int64_t offset, int whence)  seek 
)
int ffio_open_dyn_packet_buf ( AVIOContext **  s,
int  max_packet_size 
)

Open a write only packetized memory stream with a maximum packet size of 'max_packet_size'.

The stream is stored in a memory buffer with a big endian 4 byte header giving the packet size in bytes.

Parameters
snew IO context
max_packet_sizemaximum packet size (must be > 0)
Returns
zero if no error.

Definition at line 1189 of file aviobuf.c.

Referenced by ff_mov_add_hinted_packet(), ff_rtp_chain_mux_open(), http_prepare_data(), rtp_new_av_stream(), and tcp_write_packet().

int ffio_read_partial ( AVIOContext s,
unsigned char *  buf,
int  size 
)

Read size bytes from AVIOContext into buf.

This reads at most 1 packet. If that is not enough fewer bytes will be returned.

Returns
number of bytes read or AVERROR

Definition at line 699 of file aviobuf.c.

Referenced by ff_raw_read_partial_packet().

int ffio_rewind_with_probe_data ( AVIOContext s,
unsigned char *  buf,
int  buf_size 
)

Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file.

Used after probing to avoid seeking. Joins buf and s->buffer, taking any overlap into consideration.

Note
s->buffer must overlap with buf or they can't be joined and the function fails
Parameters
sThe read-only AVIOContext to rewind
bufThe probe buffer containing the first buf_size bytes of the file
buf_sizeThe size of buf
Returns
0 in case of success, a negative value corresponding to an AVERROR code in case of failure

Definition at line 926 of file aviobuf.c.

Referenced by av_probe_input_buffer().

int ffio_set_buf_size ( AVIOContext s,
int  buf_size 
)
Warning
must be called before any I/O

Definition at line 897 of file aviobuf.c.

Referenced by fill_buffer().

static const AVClass* ffio_url_child_class_next ( const AVClass prev)
static

Definition at line 50 of file aviobuf.c.

static void* ffio_url_child_next ( void obj,
void prev 
)
static

Definition at line 44 of file aviobuf.c.

static void fill_buffer ( AVIOContext s)
static

Definition at line 562 of file aviobuf.c.

Referenced by avio_r8(), avio_read(), avio_seek(), and ffio_read_partial().

static void flush_buffer ( AVIOContext s)
static

Definition at line 151 of file aviobuf.c.

Referenced by avio_flush(), avio_seek(), avio_w8(), avio_write(), and ffio_fill().

static int url_open_dyn_buf_internal ( AVIOContext **  s,
int  max_packet_size 
)
static

Definition at line 1162 of file aviobuf.c.

Referenced by avio_open_dyn_buf(), and ffio_open_dyn_packet_buf().

static int url_resetbuf ( AVIOContext s,
int  flags 
)
static

Definition at line 912 of file aviobuf.c.

Referenced by ffio_init_context(), and ffio_set_buf_size().

Variable Documentation

const AVClass ffio_url_class
Initial value:
{
.class_name = "AVIOContext",
.item_name = av_default_item_name,
.option = ffio_url_options,
.child_next = ffio_url_child_next,
.child_class_next = ffio_url_child_class_next,
}

Definition at line 59 of file aviobuf.c.

Referenced by ffio_fdopen(), and format_child_class_next().

const AVOption ffio_url_options[]
static
Initial value:
{
{ NULL },
}

Definition at line 55 of file aviobuf.c.