libavformat/utils.c File Reference

various utility functions for use within Libav More...

#include "avformat.h"
#include "avio_internal.h"
#include "internal.h"
#include "libavcodec/internal.h"
#include "libavcodec/bytestream.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/pixdesc.h"
#include "metadata.h"
#include "id3v2.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/mathematics.h"
#include "libavutil/parseutils.h"
#include "riff.h"
#include "audiointerleave.h"
#include "url.h"
#include <sys/time.h>
#include <time.h>
#include <stdarg.h>
#include "network.h"
#include <assert.h>

Go to the source code of this file.

Defines

#define LICENSE_PREFIX   "libavformat license: "
#define PROBE_BUF_MIN   2048
 size of probe buffer, for guessing file type from file contents
#define PROBE_BUF_MAX   (1<<20)
#define DURATION_MAX_READ_SIZE   250000
#define DURATION_MAX_RETRY   3
#define PRINT(...)   do { if (!f) av_log(avcl, level, __VA_ARGS__); else fprintf(f, __VA_ARGS__); } while(0)
#define PRINT(...)   do { if (!f) av_log(avcl, level, __VA_ARGS__); else fprintf(f, __VA_ARGS__); } while(0)

Functions

unsigned avformat_version (void)
 Return the LIBAVFORMAT_VERSION_INT constant.
const char * avformat_configuration (void)
 Return the libavformat build-time configuration.
const char * avformat_license (void)
 Return the libavformat license.
static void frac_init (AVFrac *f, int64_t val, int64_t num, int64_t den)
 f = val + (num / den) + 0.5.
static void frac_add (AVFrac *f, int64_t incr)
 Fractional addition to f: f = f + (incr / f->den).
AVInputFormatav_iformat_next (AVInputFormat *f)
 If f is NULL, returns the first registered input format, if f is non-NULL, returns the next registered input format after f or NULL if f is the last one.
AVOutputFormatav_oformat_next (AVOutputFormat *f)
 If f is NULL, returns the first registered output format, if f is non-NULL, returns the next registered output format after f or NULL if f is the last one.
void av_register_input_format (AVInputFormat *format)
void av_register_output_format (AVOutputFormat *format)
int av_match_ext (const char *filename, const char *extensions)
 Return a positive value if the given filename has one of the given extensions, 0 otherwise.
static int match_format (const char *name, const char *names)
AVOutputFormatav_guess_format (const char *short_name, const char *filename, const char *mime_type)
 Return the output format in the list of registered output formats which best matches the provided parameters, or return NULL if there is no match.
enum CodecID av_guess_codec (AVOutputFormat *fmt, const char *short_name, const char *filename, const char *mime_type, enum AVMediaType type)
 Guess the codec ID based upon muxer and filename.
AVInputFormatav_find_input_format (const char *short_name)
 Find AVInputFormat based on the short name of the input format.
int av_get_packet (AVIOContext *s, AVPacket *pkt, int size)
 Allocate and read the payload of a packet and initialize its fields with default values.
int av_append_packet (AVIOContext *s, AVPacket *pkt, int size)
 Read data and append it to the current content of the AVPacket.
int av_filename_number_test (const char *filename)
 Check whether filename actually is a numbered sequence generator.
AVInputFormatav_probe_input_format2 (AVProbeData *pd, int is_opened, int *score_max)
 Guess the file format.
AVInputFormatav_probe_input_format (AVProbeData *pd, int is_opened)
 Guess the file format.
static int set_codec_from_probe_data (AVFormatContext *s, AVStream *st, AVProbeData *pd, int score)
static AVDictionaryconvert_format_parameters (AVFormatParameters *ap)
int av_open_input_stream (AVFormatContext **ic_ptr, AVIOContext *pb, const char *filename, AVInputFormat *fmt, AVFormatParameters *ap)
 Open a media file from an IO stream.
int av_probe_input_buffer (AVIOContext *pb, AVInputFormat **fmt, const char *filename, void *logctx, unsigned int offset, unsigned int max_probe_size)
 Probe a bytestream to determine the input format.
int av_open_input_file (AVFormatContext **ic_ptr, const char *filename, AVInputFormat *fmt, int buf_size, AVFormatParameters *ap)
 Open a media file as input.
static int init_input (AVFormatContext *s, const char *filename, AVDictionary **options)
int avformat_open_input (AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options)
 Open an input stream and read the header.
static AVPacketadd_to_pktbuf (AVPacketList **packet_buffer, AVPacket *pkt, AVPacketList **plast_pktl)
int av_read_packet (AVFormatContext *s, AVPacket *pkt)
 Read a transport packet from a media file.
static int get_audio_frame_size (AVCodecContext *enc, int size)
 Get the number of samples of an audio frame.
static void compute_frame_duration (int *pnum, int *pden, AVStream *st, AVCodecParserContext *pc, AVPacket *pkt)
 Return the frame duration in seconds.
static int is_intra_only (AVCodecContext *enc)
static void update_initial_timestamps (AVFormatContext *s, int stream_index, int64_t dts, int64_t pts)
static void update_initial_durations (AVFormatContext *s, AVStream *st, AVPacket *pkt)
static void compute_pkt_fields (AVFormatContext *s, AVStream *st, AVCodecParserContext *pc, AVPacket *pkt)
static int read_frame_internal (AVFormatContext *s, AVPacket *pkt)
static int read_from_packet_buffer (AVFormatContext *s, AVPacket *pkt)
int av_read_frame (AVFormatContext *s, AVPacket *pkt)
 Return the next frame of a stream.
static void flush_packet_queue (AVFormatContext *s)
int av_find_default_stream_index (AVFormatContext *s)
void ff_read_frame_flush (AVFormatContext *s)
 Flush the frame reader.
void av_update_cur_dts (AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
void ff_update_cur_dts (AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
 Update cur_dts of all streams based on the given timestamp and AVStream.
void ff_reduce_index (AVFormatContext *s, int stream_index)
 Ensure the index uses less memory than the maximum specified in AVFormatContext.max_index_size by discarding entries if it grows too large.
int ff_add_index_entry (AVIndexEntry **index_entries, int *nb_index_entries, unsigned int *index_entries_allocated_size, int64_t pos, int64_t timestamp, int size, int distance, int flags)
 Internal version of av_add_index_entry.
int av_add_index_entry (AVStream *st, int64_t pos, int64_t timestamp, int size, int distance, int flags)
 Add an index entry into a sorted list.
int ff_index_search_timestamp (const AVIndexEntry *entries, int nb_entries, int64_t wanted_timestamp, int flags)
 Internal version of av_index_search_timestamp.
int av_index_search_timestamp (AVStream *st, int64_t wanted_timestamp, int flags)
 Get the index for a specific timestamp.
int av_seek_frame_binary (AVFormatContext *s, int stream_index, int64_t target_ts, int flags)
int ff_seek_frame_binary (AVFormatContext *s, int stream_index, int64_t target_ts, int flags)
 Perform a binary search using av_index_search_timestamp() and AVInputFormat.read_timestamp().
int64_t av_gen_search (AVFormatContext *s, int stream_index, int64_t target_ts, int64_t pos_min, int64_t pos_max, int64_t pos_limit, int64_t ts_min, int64_t ts_max, int flags, int64_t *ts_ret, int64_t(*read_timestamp)(struct AVFormatContext *, int, int64_t *, int64_t))
int64_t ff_gen_search (AVFormatContext *s, int stream_index, int64_t target_ts, int64_t pos_min, int64_t pos_max, int64_t pos_limit, int64_t ts_min, int64_t ts_max, int flags, int64_t *ts_ret, int64_t(*read_timestamp)(struct AVFormatContext *, int, int64_t *, int64_t))
 Perform a binary search using read_timestamp().
static int seek_frame_byte (AVFormatContext *s, int stream_index, int64_t pos, int flags)
static int seek_frame_generic (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
int av_seek_frame (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 Seek to the keyframe at timestamp.
int avformat_seek_file (AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
 Seek to timestamp ts.
static int has_duration (AVFormatContext *ic)
 Return TRUE if the stream has accurate duration in any stream.
static void update_stream_timings (AVFormatContext *ic)
 Estimate the stream timings from the one of each components.
static void fill_all_stream_timings (AVFormatContext *ic)
static void estimate_timings_from_bit_rate (AVFormatContext *ic)
static void estimate_timings_from_pts (AVFormatContext *ic, int64_t old_offset)
static void estimate_timings (AVFormatContext *ic, int64_t old_offset)
static int has_codec_parameters (AVCodecContext *avctx)
static int has_decode_delay_been_guessed (AVStream *st)
static int try_decode_frame (AVStream *st, AVPacket *avpkt, AVDictionary **options)
unsigned int ff_codec_get_tag (const AVCodecTag *tags, enum CodecID id)
enum CodecID ff_codec_get_id (const AVCodecTag *tags, unsigned int tag)
unsigned int av_codec_get_tag (const AVCodecTag *const *tags, enum CodecID id)
enum CodecID av_codec_get_id (const AVCodecTag *const *tags, unsigned int tag)
static void compute_chapters_end (AVFormatContext *s)
static int get_std_framerate (int i)
static int tb_unreliable (AVCodecContext *c)
int av_find_stream_info (AVFormatContext *ic)
 Read packets of a media file to get stream information.
int avformat_find_stream_info (AVFormatContext *ic, AVDictionary **options)
 Read packets of a media file to get stream information.
static AVProgramfind_program_from_stream (AVFormatContext *ic, int s)
int av_find_best_stream (AVFormatContext *ic, enum AVMediaType type, int wanted_stream_nb, int related_stream, AVCodec **decoder_ret, int flags)
 Find the "best" stream in the file.
int av_read_play (AVFormatContext *s)
 Start playing a network-based stream (e.g.
int av_read_pause (AVFormatContext *s)
 Pause a network-based stream (e.g.
void av_close_input_stream (AVFormatContext *s)
 Free a AVFormatContext allocated by av_open_input_stream.
void avformat_free_context (AVFormatContext *s)
 Free an AVFormatContext and all its streams.
void av_close_input_file (AVFormatContext *s)
void avformat_close_input (AVFormatContext **ps)
 Close an opened input AVFormatContext.
AVStreamav_new_stream (AVFormatContext *s, int id)
 Add a new stream to a media file.
AVStreamavformat_new_stream (AVFormatContext *s, AVCodec *c)
 Add a new stream to a media file.
AVProgramav_new_program (AVFormatContext *ac, int id)
AVChapteravpriv_new_chapter (AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title)
 Add a new chapter.
int av_set_parameters (AVFormatContext *s, AVFormatParameters *ap)
static int validate_codec_tag (AVFormatContext *s, AVStream *st)
int av_write_header (AVFormatContext *s)
 Allocate the stream private data and write the stream header to an output media file.
int avformat_write_header (AVFormatContext *s, AVDictionary **options)
 Allocate the stream private data and write the stream header to an output media file.
static int compute_pkt_fields2 (AVFormatContext *s, AVStream *st, AVPacket *pkt)
int av_write_frame (AVFormatContext *s, AVPacket *pkt)
 Write a packet to an output media file.
void ff_interleave_add_packet (AVFormatContext *s, AVPacket *pkt, int(*compare)(AVFormatContext *, AVPacket *, AVPacket *))
 Add packet to AVFormatContext->packet_buffer list, determining its interleaved position using compare() function argument.
static int ff_interleave_compare_dts (AVFormatContext *s, AVPacket *next, AVPacket *pkt)
int av_interleave_packet_per_dts (AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush)
 Interleave a packet per dts in an output media file.
static int interleave_packet (AVFormatContext *s, AVPacket *out, AVPacket *in, int flush)
 Interleave an AVPacket correctly so it can be muxed.
int av_interleaved_write_frame (AVFormatContext *s, AVPacket *pkt)
 Write a packet to an output media file ensuring correct interleaving.
int av_write_trailer (AVFormatContext *s)
 Write the stream trailer to an output media file and free the file private data.
void ff_program_add_stream_index (AVFormatContext *ac, int progid, unsigned int idx)
static void print_fps (double d, const char *postfix)
static void dump_metadata (void *ctx, AVDictionary *m, const char *indent)
static void dump_stream_format (AVFormatContext *ic, int i, int index, int is_output)
void dump_format (AVFormatContext *ic, int index, const char *url, int is_output)
void av_dump_format (AVFormatContext *ic, int index, const char *url, int is_output)
int64_t av_gettime (void)
 Get the current time in microseconds.
uint64_t ff_ntp_time (void)
 Get the current time since NTP epoch in microseconds.
int64_t parse_date (const char *timestr, int duration)
 Parse datestr and return a corresponding number of microseconds.
int find_info_tag (char *arg, int arg_size, const char *tag1, const char *info)
int av_get_frame_filename (char *buf, int buf_size, const char *path, int number)
 Return in 'buf' the path with 'd' replaced by a number.
static void hex_dump_internal (void *avcl, FILE *f, int level, uint8_t *buf, int size)
void av_hex_dump (FILE *f, uint8_t *buf, int size)
 Send a nice hexadecimal dump of a buffer to the specified file stream.
void av_hex_dump_log (void *avcl, int level, uint8_t *buf, int size)
 Send a nice hexadecimal dump of a buffer to the log.
static void pkt_dump_internal (void *avcl, FILE *f, int level, AVPacket *pkt, int dump_payload, AVRational time_base)
void av_pkt_dump (FILE *f, AVPacket *pkt, int dump_payload)
void av_pkt_dump2 (FILE *f, AVPacket *pkt, int dump_payload, AVStream *st)
 Send a nice dump of a packet to the specified file stream.
void av_pkt_dump_log (void *avcl, int level, AVPacket *pkt, int dump_payload)
void av_pkt_dump_log2 (void *avcl, int level, AVPacket *pkt, int dump_payload, AVStream *st)
 Send a nice dump of a packet to the log.
void av_url_split (char *proto, int proto_size, char *authorization, int authorization_size, char *hostname, int hostname_size, int *port_ptr, char *path, int path_size, const char *url)
 Split a URL string into components.
char * ff_data_to_hex (char *buff, const uint8_t *src, int s, int lowercase)
int ff_hex_to_data (uint8_t *data, const char *p)
 Parse a string of hexadecimal strings.
void av_set_pts_info (AVStream *s, int pts_wrap_bits, unsigned int pts_num, unsigned int pts_den)
void avpriv_set_pts_info (AVStream *s, int pts_wrap_bits, unsigned int pts_num, unsigned int pts_den)
 Set the pts for a given stream.
int ff_url_join (char *str, int size, const char *proto, const char *authorization, const char *hostname, int port, const char *fmt,...)
int ff_write_chained (AVFormatContext *dst, int dst_stream, AVPacket *pkt, AVFormatContext *src)
 Write a packet to another muxer than the one the user originally intended.
void ff_parse_key_value (const char *str, ff_parse_key_val_cb callback_get_buf, void *context)
 Parse a string with comma-separated key=value pairs.
int ff_find_stream_index (AVFormatContext *s, int id)
 Find stream index based on format-specific stream ID.
void ff_make_absolute_url (char *buf, int size, const char *base, const char *rel)
int64_t ff_iso8601_to_unix_time (const char *datestr)
 Convert a date string in ISO8601 format to Unix timestamp.
int avformat_query_codec (AVOutputFormat *ofmt, enum CodecID codec_id, int std_compliance)
 Test if the given container can store a codec.
int avformat_network_init (void)
 Do global initialization of network components.
int avformat_network_deinit (void)
 Undo the initialization done by avformat_network_init.
int ff_add_param_change (AVPacket *pkt, int32_t channels, uint64_t channel_layout, int32_t sample_rate, int32_t width, int32_t height)
 Add side data to a packet for changing parameters to the given values.
struct AVCodecTagavformat_get_riff_video_tags (void)
struct AVCodecTagavformat_get_riff_audio_tags (void)

Variables

static AVInputFormatfirst_iformat = NULL
 head of registered input format linked list
static AVOutputFormatfirst_oformat = NULL
 head of registered output format linked list

Detailed Description

various utility functions for use within Libav

Definition in file utils.c.


Define Documentation

#define DURATION_MAX_READ_SIZE   250000

Definition at line 1977 of file utils.c.

Referenced by estimate_timings_from_pts().

#define DURATION_MAX_RETRY   3

Definition at line 1978 of file utils.c.

Referenced by estimate_timings_from_pts().

#define LICENSE_PREFIX   "libavformat license: "
#define PRINT (   ...  )     do { if (!f) av_log(avcl, level, __VA_ARGS__); else fprintf(f, __VA_ARGS__); } while(0)
#define PRINT (   ...  )     do { if (!f) av_log(avcl, level, __VA_ARGS__); else fprintf(f, __VA_ARGS__); } while(0)
#define PROBE_BUF_MAX   (1<<20)

Definition at line 492 of file utils.c.

Referenced by av_probe_input_buffer().

#define PROBE_BUF_MIN   2048

size of probe buffer, for guessing file type from file contents

Definition at line 491 of file utils.c.

Referenced by av_probe_input_buffer().


Function Documentation

static AVPacket* add_to_pktbuf ( AVPacketList **  packet_buffer,
AVPacket pkt,
AVPacketList **  plast_pktl 
) [static]

Definition at line 684 of file utils.c.

Referenced by av_read_frame(), av_read_packet(), and avformat_find_stream_info().

int av_append_packet ( AVIOContext s,
AVPacket pkt,
int  size 
)

Read data and append it to the current content of the AVPacket.

If pkt->size is 0 this is identical to av_get_packet. Note that this uses av_grow_packet and thus involves a realloc which is inefficient. Thus this function should only be used when there is no reasonable way to know (an upper bound of) the final size.

Parameters:
pkt packet
size amount of data to read
Returns:
>0 (read size) if OK, AVERROR_xxx otherwise, previous data will not be lost even if an error occurs.

Definition at line 287 of file utils.c.

Referenced by dfa_read_packet(), read_packet(), wc3_read_header(), wc3_read_packet(), and wv_read_packet().

enum CodecID av_codec_get_id ( const AVCodecTag *const *  tags,
unsigned int  tag 
)

Definition at line 2226 of file utils.c.

unsigned int av_codec_get_tag ( const AVCodecTag *const *  tags,
enum CodecID  id 
)

Definition at line 2216 of file utils.c.

int64_t av_gen_search ( AVFormatContext s,
int  stream_index,
int64_t  target_ts,
int64_t  pos_min,
int64_t  pos_max,
int64_t  pos_limit,
int64_t  ts_min,
int64_t  ts_max,
int  flags,
int64_t *  ts_ret,
int64_t(*)(struct AVFormatContext *, int, int64_t *, int64_t)  read_timestamp 
)

Definition at line 1592 of file utils.c.

int av_get_packet ( AVIOContext s,
AVPacket pkt,
int  size 
)

Allocate and read the payload of a packet and initialize its fields with default values.

Parameters:
pkt packet
size desired payload size
Returns:
>0 (read size) if OK, AVERROR_xxx otherwise

Definition at line 269 of file utils.c.

Referenced by adx_read_packet(), aea_read_packet(), aiff_read_packet(), apc_read_packet(), au_read_packet(), av_append_packet(), bfi_read_packet(), cdata_read_packet(), cin_read_packet(), daud_packet(), dfa_read_packet(), dxa_read_packet(), ea_read_packet(), ff_rm_parse_packet(), ff_rm_retrieve_cache(), film_read_packet(), flv_read_packet(), fourxm_read_packet(), gsm_read_packet(), gxf_packet(), idcin_read_packet(), iff_read_packet(), iss_read_packet(), lmlm4_read_packet(), load_ipmovie_packet(), mov_read_packet(), mp3_read_packet(), mpc8_read_packet(), mpegps_read_packet(), msnwc_tcp_read_packet(), mtv_read_packet(), mxf_decrypt_triplet(), mxf_get_d10_aes3_packet(), mxf_read_packet(), nc_read_packet(), nsv_read_chunk(), nuv_packet(), oma_read_packet(), pmp_packet(), pva_read_packet(), qcp_read_packet(), r3d_read_reda(), r3d_read_redv(), raw_read_packet(), rawvideo_read_packet(), read_packet(), rl2_read_packet(), roq_read_packet(), rpl_read_packet(), rso_read_packet(), seq_read_packet(), siff_read_packet(), smjpeg_read_packet(), sol_read_packet(), sox_read_packet(), swf_read_packet(), thp_read_packet(), tmv_read_packet(), tta_read_packet(), txd_read_packet(), vc1t_read_packet(), vid_read_packet(), voc_get_packet(), wav_read_packet(), wc3_read_packet(), wsaud_read_packet(), xa_read_packet(), xmv_fetch_audio_packet(), xwma_read_packet(), yop_read_packet(), and yuv4_read_packet().

AVStream* av_new_stream ( AVFormatContext s,
int  id 
)

Add a new stream to a media file.

Can only be called in the read_header() function. If the flag AVFMTCTX_NOHEADER is in the format context, then new streams can be added in read_packet too.

Parameters:
s media file handle
id file-format-dependent stream ID

Definition at line 2762 of file utils.c.

Referenced by add_audio_stream(), and new_output_stream().

void av_pkt_dump ( FILE *  f,
AVPacket pkt,
int  dump_payload 
)

Definition at line 3679 of file utils.c.

void av_pkt_dump_log ( void *  avcl,
int  level,
AVPacket pkt,
int  dump_payload 
)

Definition at line 3692 of file utils.c.

int av_seek_frame_binary ( AVFormatContext s,
int  stream_index,
int64_t  target_ts,
int  flags 
)

Definition at line 1525 of file utils.c.

int av_set_parameters ( AVFormatContext s,
AVFormatParameters ap 
)
Deprecated:
pass the options to avformat_write_header directly.

Definition at line 2872 of file utils.c.

Referenced by main().

void av_set_pts_info ( AVStream s,
int  pts_wrap_bits,
unsigned int  pts_num,
unsigned int  pts_den 
)
Deprecated:
this function is not supposed to be called outside of lavf

Definition at line 3816 of file utils.c.

Referenced by add_av_stream1().

void av_update_cur_dts ( AVFormatContext s,
AVStream ref_st,
int64_t  timestamp 
)

Definition at line 1397 of file utils.c.

Referenced by seek_frame_byte().

AVChapter* avpriv_new_chapter ( AVFormatContext s,
int  id,
AVRational  time_base,
int64_t  start,
int64_t  end,
const char *  title 
)

Add a new chapter.

Parameters:
s media file handle
id unique ID for this chapter
start chapter start time in time_base units
end chapter end time in time_base units
title chapter title
Returns:
AVChapter or NULL on error

Definition at line 2844 of file utils.c.

Referenced by asf_read_marker(), decode_info_header(), flac_read_header(), matroska_read_header(), mov_read_chapters(), mov_read_chpl(), ogm_chapter(), read_chapter(), and read_header().

void avpriv_set_pts_info ( AVStream s,
int  pts_wrap_bits,
unsigned int  pts_num,
unsigned int  pts_den 
)

Set the pts for a given stream.

If the new values would be invalid (<= 0), it leaves the AVStream unchanged.

Parameters:
s stream
pts_wrap_bits number of bits effectively used by the pts (used for wrap control, 33 is the value for MPEG)
pts_num numerator to convert to seconds (MPEG: 1)
pts_den denominator to convert to seconds (MPEG: 90000)

Definition at line 3823 of file utils.c.

Referenced by adts_aac_read_header(), adx_read_header(), aiff_read_header(), aiff_write_header(), amr_read_header(), ape_read_header(), asf_read_stream_properties(), asf_write_header1(), asfrtp_parse_sdp_line(), au_read_header(), audio_read_header(), av_set_pts_info(), avformat_new_stream(), avi_read_header(), avi_write_header(), avisynth_read_header(), bfi_read_header(), bmv_read_header(), cdata_read_header(), celt_header(), cin_read_header(), create_audio_stream(), create_stream(), dc1394_read_common(), decode_stream_header(), dfa_read_header(), dirac_header(), dv_extract_audio_info(), dv_extract_video_info(), dxa_read_header(), ea_read_header(), fbdev_read_header(), ff_raw_read_header(), ff_raw_video_read_header(), ff_rm_read_mdpr_codecdata(), ffm_read_header(), ffm_write_header(), film_read_header(), flac_header(), flac_read_header(), flic_read_header(), flv_write_header(), fourxm_read_header(), get_packet_header(), grab_read_header(), gsm_read_header(), gxf_header(), gxf_write_header(), idcin_read_header(), iff_read_header(), ipmovie_read_header(), iss_read_header(), lmlm4_read_header(), lxf_read_header(), matroska_read_header(), mkv_write_tracks(), mmf_read_header(), mmf_write_header(), mov_read_trak(), mov_write_header(), mp3_read_header(), mpc8_read_header(), mpc_read_header(), mpeg_mux_init(), mpegts_read_header(), mpegts_set_stream_info(), mpegts_write_header(), msnwc_tcp_read_header(), mtv_read_header(), mxf_parse_structural_metadata(), mxf_write_header(), mxg_read_header(), nc_read_header(), new_stream(), nsv_parse_NSVs_header(), nut_read_header(), nut_write_header(), nuv_header(), ogg_new_stream(), ogg_write_header(), ogm_header(), old_dirac_header(), oma_read_header(), pmp_header(), pulse_read_header(), pva_read_header(), qt_rtp_parse_packet(), r3d_read_red1(), read_gab2_sub(), read_header(), read_sl_header(), rl2_read_header(), roq_read_packet(), rpl_read_header(), rso_read_header(), sdp_parse_line(), sdp_parse_rtpmap(), seq_read_header(), siff_parse_vbv1(), skeleton_header(), smacker_read_header(), smjpeg_read_header(), smjpeg_write_header(), sol_read_header(), sox_read_header(), speex_header(), srt_read_header(), str_read_packet(), swf_read_packet(), theora_header(), thp_read_header(), tmv_read_header(), tta_read_header(), v4l2_read_header(), vc1t_read_header(), vc1test_write_header(), vfw_read_header(), vid_read_header(), vmd_read_header(), vorbis_header(), vqf_read_header(), w64_read_header(), wav_parse_fmt_tag(), wav_write_header(), wc3_read_header(), wsaud_read_header(), wsvqa_read_header(), wv_read_header(), x11grab_read_header(), xa_read_header(), xmv_read_header(), xwma_read_header(), yop_read_header(), and yuv4_read_header().

static void compute_chapters_end ( AVFormatContext s  )  [static]

Definition at line 2236 of file utils.c.

Referenced by avformat_find_stream_info().

static void compute_frame_duration ( int *  pnum,
int *  pden,
AVStream st,
AVCodecParserContext pc,
AVPacket pkt 
) [static]

Return the frame duration in seconds.

Return 0 if not available.

Definition at line 822 of file utils.c.

Referenced by compute_pkt_fields(), and compute_pkt_fields2().

static void compute_pkt_fields ( AVFormatContext s,
AVStream st,
AVCodecParserContext pc,
AVPacket pkt 
) [static]

Definition at line 955 of file utils.c.

Referenced by read_frame_internal().

static int compute_pkt_fields2 ( AVFormatContext s,
AVStream st,
AVPacket pkt 
) [static]

Definition at line 3071 of file utils.c.

Referenced by av_interleaved_write_frame(), and av_write_frame().

static AVDictionary* convert_format_parameters ( AVFormatParameters ap  )  [static]

Definition at line 404 of file utils.c.

Referenced by av_open_input_file(), and av_open_input_stream().

static void dump_metadata ( void *  ctx,
AVDictionary m,
const char *  indent 
) [static]

Definition at line 3361 of file utils.c.

Referenced by av_dump_format(), and dump_stream_format().

static void dump_stream_format ( AVFormatContext ic,
int  i,
int  index,
int  is_output 
) [static]

Definition at line 3375 of file utils.c.

Referenced by av_dump_format().

static void estimate_timings ( AVFormatContext ic,
int64_t  old_offset 
) [static]

Definition at line 2061 of file utils.c.

Referenced by avformat_find_stream_info().

static void estimate_timings_from_bit_rate ( AVFormatContext ic  )  [static]

Definition at line 1945 of file utils.c.

Referenced by estimate_timings().

static void estimate_timings_from_pts ( AVFormatContext ic,
int64_t  old_offset 
) [static]

Definition at line 1981 of file utils.c.

Referenced by estimate_timings().

int ff_add_index_entry ( AVIndexEntry **  index_entries,
int *  nb_index_entries,
unsigned int *  index_entries_allocated_size,
int64_t  pos,
int64_t  timestamp,
int  size,
int  distance,
int  flags 
)

Internal version of av_add_index_entry.

Definition at line 1429 of file utils.c.

Referenced by av_add_index_entry(), and read_header().

int ff_add_param_change ( AVPacket pkt,
int32_t  channels,
uint64_t  channel_layout,
int32_t  sample_rate,
int32_t  width,
int32_t  height 
)

Add side data to a packet for changing parameters to the given values.

Parameters set to 0 aren't included in the change.

Definition at line 4072 of file utils.c.

Referenced by flv_read_packet(), and load_ipmovie_packet().

char* ff_data_to_hex ( char *  buff,
const uint8_t *  src,
int  s,
int  lowercase 
)
int ff_find_stream_index ( AVFormatContext s,
int  id 
)

Find stream index based on format-specific stream ID.

Returns:
stream index, or < 0 on error

Definition at line 3958 of file utils.c.

Referenced by get_sindex(), parse_chunks(), and pmt_cb().

int64_t ff_gen_search ( AVFormatContext s,
int  stream_index,
int64_t  target_ts,
int64_t  pos_min,
int64_t  pos_max,
int64_t  pos_limit,
int64_t  ts_min,
int64_t  ts_max,
int  flags,
int64_t *  ts_ret,
int64_t(*)(struct AVFormatContext *, int, int64_t *, int64_t)  read_timestamp 
)

Perform a binary search using read_timestamp().

Parameters:
target_ts target timestamp in the time base of the given stream
stream_index stream number

Definition at line 1603 of file utils.c.

Referenced by av_gen_search(), ff_seek_frame_binary(), and read_seek().

int ff_hex_to_data ( uint8_t *  data,
const char *  p 
)

Parse a string of hexadecimal strings.

Any space between the hexadecimal digits is ignored.

Parameters:
data if non-null, the parsed data is written to this pointer
p the string to parse
Returns:
the number of bytes written (or to be written, if data is null)

Definition at line 3787 of file utils.c.

Referenced by parse_fmtp_config(), and parse_playlist().

int ff_index_search_timestamp ( const AVIndexEntry entries,
int  nb_entries,
int64_t  wanted_timestamp,
int  flags 
)

Internal version of av_index_search_timestamp.

Definition at line 1483 of file utils.c.

Referenced by av_index_search_timestamp(), ff_add_index_entry(), and read_seek().

void ff_interleave_add_packet ( AVFormatContext s,
AVPacket pkt,
int(*)(AVFormatContext *, AVPacket *, AVPacket *)  compare 
)

Add packet to AVFormatContext->packet_buffer list, determining its interleaved position using compare() function argument.

Definition at line 3160 of file utils.c.

Referenced by av_interleave_packet_per_dts(), and ff_audio_rechunk_interleave().

static int ff_interleave_compare_dts ( AVFormatContext s,
AVPacket next,
AVPacket pkt 
) [static]

Definition at line 3196 of file utils.c.

Referenced by av_interleave_packet_per_dts().

int64_t ff_iso8601_to_unix_time ( const char *  datestr  ) 

Convert a date string in ISO8601 format to Unix timestamp.

Definition at line 4019 of file utils.c.

Referenced by dv_init_mux(), gxf_write_umf_material_description(), mov_write_header(), and mxf_write_header().

void ff_make_absolute_url ( char *  buf,
int  size,
const char *  base,
const char *  rel 
)

Definition at line 3968 of file utils.c.

Referenced by new_variant(), and parse_playlist().

uint64_t ff_ntp_time ( void   ) 

Get the current time since NTP epoch in microseconds.

Definition at line 3533 of file utils.c.

Referenced by rtp_write_header(), and rtp_write_packet().

void ff_parse_key_value ( const char *  str,
ff_parse_key_val_cb  callback_get_buf,
void *  context 
)

Parse a string with comma-separated key=value pairs.

The value strings may be quoted and may contain escaped characters within quoted strings.

Parameters:
str the string to parse
callback_get_buf function that returns where to store the unescaped value string.
context the opaque context pointer to pass to callback_get_buf

Definition at line 3904 of file utils.c.

Referenced by ff_http_auth_handle_header(), and parse_playlist().

void ff_program_add_stream_index ( AVFormatContext ac,
int  progid,
unsigned int  idx 
)

Definition at line 3326 of file utils.c.

Referenced by pmt_cb().

void ff_read_frame_flush ( AVFormatContext s  ) 

Flush the frame reader.

Definition at line 1364 of file utils.c.

Referenced by av_seek_frame(), avformat_seek_file(), ff_restore_parser_state(), search_hi_lo_keyframes(), and seek_frame_generic().

void ff_reduce_index ( AVFormatContext s,
int  stream_index 
)

Ensure the index uses less memory than the maximum specified in AVFormatContext.max_index_size by discarding entries if it grows too large.

Definition at line 1416 of file utils.c.

Referenced by mpegps_read_pes_header(), and read_frame_internal().

int ff_seek_frame_binary ( AVFormatContext s,
int  stream_index,
int64_t  target_ts,
int  flags 
)

Perform a binary search using av_index_search_timestamp() and AVInputFormat.read_timestamp().

Parameters:
target_ts target timestamp in the time base of the given stream
stream_index stream number

Definition at line 1530 of file utils.c.

Referenced by asf_read_seek(), av_seek_frame(), av_seek_frame_binary(), ogg_read_seek(), and read_seek().

void ff_update_cur_dts ( AVFormatContext s,
AVStream ref_st,
int64_t  timestamp 
)

Update cur_dts of all streams based on the given timestamp and AVStream.

Stream ref_st unchanged, others set cur_dts in their native time base. Only needed for timestamp wrapping or if (dts not set and pts!=dts).

Parameters:
timestamp new dts expressed in time_base of param ref_st
ref_st reference stream giving time_base of param timestamp

Definition at line 1403 of file utils.c.

Referenced by av_update_cur_dts(), ff_seek_frame_binary(), matroska_read_seek(), mxf_read_seek(), and seek_frame_generic().

int ff_url_join ( char *  str,
int  size,
const char *  proto,
const char *  authorization,
const char *  hostname,
int  port,
const char *  fmt,
  ... 
)

Definition at line 3841 of file utils.c.

int ff_write_chained ( AVFormatContext dst,
int  dst_stream,
AVPacket pkt,
AVFormatContext src 
)

Write a packet to another muxer than the one the user originally intended.

Useful when chaining muxers, where one muxer internally writes a received packet to another muxer.

Parameters:
dst the muxer to write the packet to
dst_stream the stream index within dst to write the packet to
pkt the packet to be written
src the muxer the packet originally was intended for
Returns:
the value av_write_frame returned

Definition at line 3886 of file utils.c.

Referenced by ff_mov_add_hinted_packet(), rtsp_write_packet(), and sap_write_packet().

static void fill_all_stream_timings ( AVFormatContext ic  )  [static]

Definition at line 1928 of file utils.c.

Referenced by estimate_timings(), and estimate_timings_from_pts().

static AVProgram* find_program_from_stream ( AVFormatContext ic,
int  s 
) [static]

Definition at line 2604 of file utils.c.

Referenced by av_find_best_stream().

static void flush_packet_queue ( AVFormatContext s  )  [static]
static void frac_add ( AVFrac f,
int64_t  incr 
) [static]

Fractional addition to f: f = f + (incr / f->den).

Parameters:
f fractional number
incr increment, can be positive or negative

Definition at line 102 of file utils.c.

Referenced by compute_pkt_fields2().

static void frac_init ( AVFrac f,
int64_t  val,
int64_t  num,
int64_t  den 
) [static]

f = val + (num / den) + 0.5.

'num' is normalized so that it is such as 0 <= num < den.

Parameters:
f fractional number
val integer value
num must be >= 0
den must be >= 1

Definition at line 84 of file utils.c.

Referenced by avformat_write_header().

static int get_audio_frame_size ( AVCodecContext enc,
int  size 
) [static]

Get the number of samples of an audio frame.

Return -1 on error.

Definition at line 792 of file utils.c.

Referenced by compute_frame_duration(), and compute_pkt_fields2().

static int get_std_framerate ( int  i  )  [static]

Definition at line 2257 of file utils.c.

Referenced by avformat_find_stream_info().

static int has_codec_parameters ( AVCodecContext avctx  )  [static]

Definition at line 2105 of file utils.c.

Referenced by avformat_find_stream_info(), and try_decode_frame().

static int has_decode_delay_been_guessed ( AVStream st  )  [static]

Definition at line 2130 of file utils.c.

Referenced by try_decode_frame().

static int has_duration ( AVFormatContext ic  )  [static]

Return TRUE if the stream has accurate duration in any stream.

Returns:
TRUE if the stream has accurate duration for at least one component.

Definition at line 1869 of file utils.c.

Referenced by estimate_timings().

static void hex_dump_internal ( void *  avcl,
FILE *  f,
int  level,
uint8_t *  buf,
int  size 
) [static]

Definition at line 3613 of file utils.c.

Referenced by av_hex_dump(), and av_hex_dump_log().

static int init_input ( AVFormatContext s,
const char *  filename,
AVDictionary **  options 
) [static]

Definition at line 581 of file utils.c.

Referenced by avformat_open_input().

static int interleave_packet ( AVFormatContext s,
AVPacket out,
AVPacket in,
int  flush 
) [static]

Interleave an AVPacket correctly so it can be muxed.

Parameters:
out the interleaved packet will be output here
in the input packet
flush 1 if no further packets are available as input and all remaining packets should be output
Returns:
1 if a packet was output, 0 if no packet could be output, < 0 if an error occurred

Definition at line 3247 of file utils.c.

Referenced by av_interleaved_write_frame(), and av_write_trailer().

static int is_intra_only ( AVCodecContext enc  )  [static]

Definition at line 865 of file utils.c.

Referenced by compute_pkt_fields().

static int match_format ( const char *  name,
const char *  names 
) [static]

Definition at line 184 of file utils.c.

Referenced by av_find_input_format().

static void pkt_dump_internal ( void *  avcl,
FILE *  f,
int  level,
AVPacket pkt,
int  dump_payload,
AVRational  time_base 
) [static]

Definition at line 3652 of file utils.c.

Referenced by av_pkt_dump(), av_pkt_dump2(), av_pkt_dump_log(), and av_pkt_dump_log2().

static void print_fps ( double  d,
const char *  postfix 
) [static]

Definition at line 3354 of file utils.c.

Referenced by dump_stream_format().

static int read_frame_internal ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 1114 of file utils.c.

Referenced by av_read_frame(), and avformat_find_stream_info().

static int read_from_packet_buffer ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 1255 of file utils.c.

Referenced by av_read_frame().

static int seek_frame_byte ( AVFormatContext s,
int  stream_index,
int64_t  pos,
int  flags 
) [static]

Definition at line 1713 of file utils.c.

Referenced by av_seek_frame().

static int seek_frame_generic ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
) [static]

Definition at line 1738 of file utils.c.

Referenced by av_seek_frame().

static int set_codec_from_probe_data ( AVFormatContext s,
AVStream st,
AVProbeData pd,
int  score 
) [static]

Definition at line 368 of file utils.c.

Referenced by av_read_packet().

static int tb_unreliable ( AVCodecContext c  )  [static]

Definition at line 2270 of file utils.c.

Referenced by avformat_find_stream_info().

static int try_decode_frame ( AVStream st,
AVPacket avpkt,
AVDictionary **  options 
) [static]

Definition at line 2137 of file utils.c.

Referenced by avformat_find_stream_info().

static void update_initial_durations ( AVFormatContext s,
AVStream st,
AVPacket pkt 
) [static]

Definition at line 919 of file utils.c.

Referenced by compute_pkt_fields().

static void update_initial_timestamps ( AVFormatContext s,
int  stream_index,
int64_t  dts,
int64_t  pts 
) [static]

Definition at line 890 of file utils.c.

Referenced by compute_pkt_fields().

static void update_stream_timings ( AVFormatContext ic  )  [static]

Estimate the stream timings from the one of each components.

Also computes the global bitrate if possible.

Definition at line 1887 of file utils.c.

Referenced by estimate_timings(), and fill_all_stream_timings().

static int validate_codec_tag ( AVFormatContext s,
AVStream st 
) [static]

Check that tag + id is in the table If neither is in the table -> OK If tag is in the table with another id -> FAIL If id is in the table with another tag -> FAIL unless strict < normal

Definition at line 2896 of file utils.c.

Referenced by avformat_write_header().


Variable Documentation

head of registered input format linked list

Definition at line 123 of file utils.c.

head of registered output format linked list

Definition at line 125 of file utils.c.