#include "avformat.h"
#include "avio_internal.h"
#include "internal.h"
#include "libavcodec/internal.h"
#include "libavcodec/raw.h"
#include "libavcodec/bytestream.h"
#include "libavutil/avassert.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/pixdesc.h"
#include "metadata.h"
#include "id3v2.h"
#include "libavutil/avstring.h"
#include "libavutil/mathematics.h"
#include "libavutil/parseutils.h"
#include "libavutil/timestamp.h"
#include "riff.h"
#include "audiointerleave.h"
#include "url.h"
#include <sys/time.h>
#include <time.h>
#include <stdarg.h>
#include <assert.h>
Go to the source code of this file.
Defines | |
#define | LICENSE_PREFIX "libavformat license: " |
#define | RELATIVE_TS_BASE (INT64_MAX - (1LL<<48)) |
#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 | CHUNK_START 0x1000 |
#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 int | is_relative (int64_t ts) |
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). | |
AVInputFormat * | av_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. | |
AVOutputFormat * | av_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) |
AVOutputFormat * | av_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. | |
AVInputFormat * | av_find_input_format (const char *short_name) |
Find AVInputFormat based on the short name of the input format. | |
int | ffio_limit (AVIOContext *s, int size) |
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. | |
AVInputFormat * | av_probe_input_format3 (AVProbeData *pd, int is_opened, int *score_ret) |
Guess the file format. | |
AVInputFormat * | av_probe_input_format2 (AVProbeData *pd, int is_opened, int *score_max) |
Guess the file format. | |
AVInputFormat * | av_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 | av_demuxer_open (AVFormatContext *ic) |
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. | |
static int | init_input (AVFormatContext *s, const char *filename, AVDictionary **options) |
static AVPacket * | add_to_pktbuf (AVPacketList **packet_buffer, AVPacket *pkt, AVPacketList **plast_pktl) |
static void | queue_attached_pictures (AVFormatContext *s) |
int | avformat_open_input (AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options) |
Open an input stream and read the header. | |
int | ff_read_packet (AVFormatContext *s, AVPacket *pkt) |
Read a transport packet from a media file. | |
int | av_read_packet (AVFormatContext *s, AVPacket *pkt) |
static int | determinable_frame_size (AVCodecContext *avctx) |
static int | get_audio_frame_size (AVCodecContext *enc, int size, int mux) |
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 AVPacketList * | get_next_pkt (AVFormatContext *s, AVStream *st, AVPacketList *pktl) |
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, int stream_index, int duration) |
static void | compute_pkt_fields (AVFormatContext *s, AVStream *st, AVCodecParserContext *pc, AVPacket *pkt) |
static void | free_packet_buffer (AVPacketList **pkt_buf, AVPacketList **pkt_buf_end) |
static int | parse_packet (AVFormatContext *s, AVPacket *pkt, int stream_index) |
Parse a packet, add all split parts to parse_queue. | |
static int | read_from_packet_buffer (AVPacketList **pkt_buffer, AVPacketList **pkt_buffer_end, AVPacket *pkt) |
static int | read_frame_internal (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 | 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 | 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 | 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) |
static int | seek_frame_internal (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 (AVStream *st) |
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. | |
AVProgram * | av_find_program_from_stream (AVFormatContext *ic, AVProgram *last, int s) |
Find the programs which belong to a given stream. | |
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 | 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. | |
AVStream * | av_new_stream (AVFormatContext *s, int id) |
Add a new stream to a media file. | |
AVStream * | avformat_new_stream (AVFormatContext *s, AVCodec *c) |
Add a new stream to a media file. | |
AVProgram * | av_new_program (AVFormatContext *ac, int id) |
AVChapter * | avpriv_new_chapter (AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title) |
Add a new chapter. | |
int | avformat_alloc_output_context2 (AVFormatContext **avctx, AVOutputFormat *oformat, const char *format, const char *filename) |
Allocate an AVFormatContext for an output format. | |
AVFormatContext * | avformat_alloc_output_context (const char *format, AVOutputFormat *oformat, const char *filename) |
static int | validate_codec_tag (AVFormatContext *s, AVStream *st) |
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. | |
int | 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 | ff_interleave_packet_per_dts (AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) |
Interleave a packet per dts in an output media file. | |
int | av_interleave_packet_per_dts (AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) |
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. | |
int | av_get_output_timestamp (struct AVFormatContext *s, int stream, int64_t *dts, int64_t *wall) |
Get timing information for the data currently output. | |
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 | 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. | |
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_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_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 AVCodecTag * | avformat_get_riff_video_tags (void) |
struct AVCodecTag * | avformat_get_riff_audio_tags (void) |
AVRational | av_guess_sample_aspect_ratio (AVFormatContext *format, AVStream *stream, AVFrame *frame) |
Guesses the sample aspect ratio of a frame, based on both the stream and the frame aspect ratio. | |
Variables | |
static AVInputFormat * | first_iformat = NULL |
head of registered input format linked list | |
static AVOutputFormat * | first_oformat = NULL |
head of registered output format linked list |
Definition in file utils.c.
#define CHUNK_START 0x1000 |
#define DURATION_MAX_READ_SIZE 250000 |
#define DURATION_MAX_RETRY 3 |
#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) |
#define PROBE_BUF_MIN 2048 |
size of probe buffer, for guessing file type from file contents
Definition at line 454 of file utils.c.
Referenced by av_probe_input_buffer().
#define RELATIVE_TS_BASE (INT64_MAX - (1LL<<48)) |
Definition at line 76 of file utils.c.
Referenced by av_read_frame(), avformat_find_stream_info(), avformat_new_stream(), ff_add_index_entry(), ff_read_frame_flush(), is_relative(), update_initial_durations(), and update_initial_timestamps().
static AVPacket* add_to_pktbuf | ( | AVPacketList ** | packet_buffer, | |
AVPacket * | pkt, | |||
AVPacketList ** | plast_pktl | |||
) | [static] |
Definition at line 558 of file utils.c.
Referenced by av_read_frame(), avformat_find_stream_info(), ff_read_packet(), parse_packet(), and queue_attached_pictures().
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.
pkt | packet | |
size | amount of data to read |
Definition at line 322 of file utils.c.
Referenced by dfa_read_packet(), ea_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 | |||
) |
unsigned int av_codec_get_tag | ( | const AVCodecTag *const * | tags, | |
enum CodecID | id | |||
) |
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.
pkt | packet | |
size | desired payload size |
Definition at line 298 of file utils.c.
Referenced by adx_read_packet(), aea_read_packet(), aiff_read_packet(), apc_read_packet(), asf_read_header(), au_read_packet(), av_append_packet(), bfi_read_packet(), cdata_read_packet(), cdxl_read_packet(), cin_read_packet(), daud_packet(), dfa_read_packet(), dxa_read_packet(), ea_read_packet(), ff_rm_parse_packet(), ff_rm_retrieve_cache(), ff_voc_get_packet(), film_read_packet(), flv_read_packet(), fourxm_read_packet(), g729_read_packet(), gsm_read_packet(), gxf_packet(), idcin_read_packet(), iff_read_packet(), ingenient_read_packet(), iss_read_packet(), lmlm4_read_packet(), load_ipmovie_packet(), mmf_read_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(), mxf_read_packet_old(), 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(), wc3_read_packet(), wsaud_read_packet(), wsvqa_read_packet(), xa_read_packet(), xmv_fetch_audio_packet(), xmv_fetch_video_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.
s | media file handle | |
id | file-format-dependent stream ID |
void av_set_pts_info | ( | AVStream * | s, | |
int | pts_wrap_bits, | |||
unsigned int | pts_num, | |||
unsigned int | pts_den | |||
) |
AVFormatContext* avformat_alloc_output_context | ( | const char * | format, | |
AVOutputFormat * | oformat, | |||
const char * | filename | |||
) |
int avformat_alloc_output_context2 | ( | AVFormatContext ** | ctx, | |
AVOutputFormat * | oformat, | |||
const char * | format_name, | |||
const char * | filename | |||
) |
Allocate an AVFormatContext for an output format.
avformat_free_context() can be used to free the context and everything allocated by the framework within it.
*ctx | is set to the created format context, or to NULL in case of failure | |
oformat | format to use for allocating the context, if NULL format_name and filename are used instead | |
format_name | the name of output format to use for allocating the context, if NULL filename is used instead | |
filename | the name of the filename to use for allocating the context, may be NULL |
Definition at line 3042 of file utils.c.
Referenced by avformat_alloc_output_context(), main(), and opt_output_file().
AVChapter* avpriv_new_chapter | ( | AVFormatContext * | s, | |
int | id, | |||
AVRational | time_base, | |||
int64_t | start, | |||
int64_t | end, | |||
const char * | title | |||
) |
Add a new chapter.
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 |
Definition at line 3015 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.
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 4131 of file utils.c.
Referenced by add_av_stream1(), 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(), audio_write_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(), cdxl_read_packet(), celt_header(), cin_read_header(), create_audio_stream(), create_stream(), dc1394_read_common(), decode_stream_header(), dfa_read_header(), dirac_header(), dshow_add_device(), dv_extract_audio_info(), dv_extract_video_info(), dxa_read_header(), ea_read_header(), fbdev_read_header(), ff_framehash_write_header(), ff_raw_read_header(), ff_raw_video_read_header(), ff_rm_read_mdpr_codecdata(), ff_voc_get_packet(), ffm_read_header(), ffm_write_header(), film_read_header(), flac_header(), flac_read_header(), flic_read_header(), flv_write_header(), fourxm_read_header(), g723_1_init(), g729_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(), jacosub_read_header(), lavfi_read_header(), lmlm4_read_header(), loas_read_header(), lxf_read_header(), matroska_read_header(), microdvd_read_header(), mkv_write_tracks(), mmf_read_header(), modplug_read_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_dshow_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_frame(), read_gab2_sub(), read_header(), read_sl_header(), rl2_read_header(), roq_read_packet(), rpl_read_header(), rso_read_header(), sbg_read_header(), 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_packet(), vmd_read_header(), vorbis_header(), vqf_read_header(), wc3_read_header(), write_header(), write_stream_data(), wsaud_read_header(), wsvqa_read_header(), wsvqa_read_packet(), 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] |
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 819 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] |
static int compute_pkt_fields2 | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
AVPacket * | pkt | |||
) | [static] |
Definition at line 3286 of file utils.c.
Referenced by av_interleaved_write_frame(), and av_write_frame().
static int determinable_frame_size | ( | AVCodecContext * | avctx | ) | [static] |
static void dump_metadata | ( | void * | ctx, | |
AVDictionary * | m, | |||
const char * | indent | |||
) | [static] |
static void dump_stream_format | ( | AVFormatContext * | ic, | |
int | i, | |||
int | index, | |||
int | is_output | |||
) | [static] |
static void estimate_timings | ( | AVFormatContext * | ic, | |
int64_t | old_offset | |||
) | [static] |
static void estimate_timings_from_bit_rate | ( | AVFormatContext * | ic | ) | [static] |
static void estimate_timings_from_pts | ( | AVFormatContext * | ic, | |
int64_t | old_offset | |||
) | [static] |
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 1536 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 4379 of file utils.c.
Referenced by flv_read_packet(), and load_ipmovie_packet().
enum CodecID ff_codec_get_id | ( | const AVCodecTag * | tags, | |
unsigned int | tag | |||
) |
Definition at line 2350 of file utils.c.
Referenced by asf_read_stream_properties(), au_read_header(), av_codec_get_id(), avi_read_header(), avisynth_read_header(), decode_stream_header(), ff_mov_read_stsd_entries(), ff_mp4_read_dec_config_descr(), ff_rm_read_mdpr_codecdata(), ff_voc_get_packet(), get_aiff_header(), get_codec_data(), lxf_read_header(), matroska_read_header(), nsv_parse_NSVs_header(), nut_read_header(), ogm_dshow_header(), ogm_header(), oma_read_header(), parse_media_type(), read_desc_chunk(), read_header(), rm_read_audio_stream_info(), rso_read_header(), smjpeg_read_header(), and swf_read_packet().
unsigned int ff_codec_get_tag | ( | const AVCodecTag * | tags, | |
enum CodecID | id | |||
) |
Definition at line 2340 of file utils.c.
Referenced by av_codec_get_tag(), caf_write_header(), gxf_write_header(), ipod_get_codec_tag(), mkv_write_codecprivate(), mkv_write_tracks(), mov_find_codec_tag(), mov_get_codec_tag(), mov_write_esds_tag(), mov_write_isml_manifest(), mp4_get_codec_tag(), smjpeg_write_header(), and swf_write_video().
char* ff_data_to_hex | ( | char * | buff, | |
const uint8_t * | src, | |||
int | s, | |||
int | lowercase | |||
) |
Definition at line 4074 of file utils.c.
Referenced by ff_rdt_calc_response_and_checksum(), hex_log(), make_digest_auth(), open_input(), and param_write_hex().
int ff_find_stream_index | ( | AVFormatContext * | s, | |
int | id | |||
) |
Find stream index based on format-specific stream ID.
Definition at line 4265 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().
target_ts | target timestamp in the time base of the given stream | |
stream_index | stream number |
Definition at line 1696 of file utils.c.
Referenced by 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.
data | if non-null, the parsed data is written to this pointer | |
p | the string to parse |
Definition at line 4095 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 1593 of file utils.c.
Referenced by av_index_search_timestamp(), ff_add_index_entry(), mxf_read_seek(), and read_seek().
int 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 3390 of file utils.c.
Referenced by ff_audio_rechunk_interleave(), and ff_interleave_packet_per_dts().
static int ff_interleave_compare_dts | ( | AVFormatContext * | s, | |
AVPacket * | next, | |||
AVPacket * | pkt | |||
) | [static] |
int ff_interleave_packet_per_dts | ( | AVFormatContext * | s, | |
AVPacket * | out, | |||
AVPacket * | pkt, | |||
int | flush | |||
) |
Interleave a packet per dts in an output media file.
Packets with pkt->destruct == av_destruct_packet will be freed inside this function, so they cannot be used after it. Note that calling av_free_packet() on them is still safe.
s | media file handle | |
out | the interleaved packet will be output here | |
pkt | the input packet | |
flush | 1 if no further packets are available as input and all remaining packets should be output |
Definition at line 3471 of file utils.c.
Referenced by av_interleave_packet_per_dts(), gxf_interleave_packet(), and interleave_packet().
int64_t ff_iso8601_to_unix_time | ( | const char * | datestr | ) |
Convert a date string in ISO8601 format to Unix timestamp.
Definition at line 4326 of file utils.c.
Referenced by dv_init_mux(), gxf_write_umf_material_description(), mkv_write_header(), mov_write_header(), and mxf_write_header().
void ff_make_absolute_url | ( | char * | buf, | |
int | size, | |||
const char * | base, | |||
const char * | rel | |||
) |
uint64_t ff_ntp_time | ( | void | ) |
Get the current time since NTP epoch in microseconds.
Definition at line 3861 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.
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 4211 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 | |||
) |
void ff_read_frame_flush | ( | AVFormatContext * | s | ) |
Flush the frame reader.
Definition at line 1483 of file utils.c.
Referenced by avformat_seek_file(), ff_restore_parser_state(), ff_seek_frame_binary(), mpegts_get_dts(), search_hi_lo_keyframes(), seek_frame_generic(), and seek_frame_internal().
int ff_read_packet | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) |
Read a transport packet from a media file.
s | media file handle | |
pkt | is filled |
Definition at line 676 of file utils.c.
Referenced by asfrtp_parse_packet(), av_read_packet(), estimate_timings_from_pts(), get_subtitle_pkt(), read_frame_internal(), read_gab2_sub(), and seek_subtitle().
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 1523 of file utils.c.
Referenced by mpegps_read_pes_header(), mpegts_get_dts(), parse_packet(), 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().
target_ts | target timestamp in the time base of the given stream | |
stream_index | stream number |
Definition at line 1634 of file utils.c.
Referenced by asf_read_seek(), and ogg_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).
timestamp | new dts expressed in time_base of param ref_st | |
ref_st | reference stream giving time_base of param timestamp |
Definition at line 1510 of file utils.c.
Referenced by 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, | |||
... | ||||
) |
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.
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 |
Definition at line 4193 of file utils.c.
Referenced by ff_mov_add_hinted_packet(), rtsp_write_packet(), and sap_write_packet().
int ffio_limit | ( | AVIOContext * | s, | |
int | size | |||
) |
Definition at line 278 of file utils.c.
Referenced by av_get_packet(), cin_read_packet(), film_read_packet(), roq_read_packet(), siff_read_packet(), and vmd_read_packet().
static void fill_all_stream_timings | ( | AVFormatContext * | ic | ) | [static] |
Definition at line 2067 of file utils.c.
Referenced by estimate_timings(), and estimate_timings_from_pts().
static void flush_packet_queue | ( | AVFormatContext * | s | ) | [static] |
Definition at line 1448 of file utils.c.
Referenced by avformat_close_input(), estimate_timings_from_pts(), and ff_read_frame_flush().
static void frac_add | ( | AVFrac * | f, | |
int64_t | incr | |||
) | [static] |
Fractional addition to f: f = f + (incr / f->den).
f | fractional number | |
incr | increment, can be positive or negative |
Definition at line 112 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.
f | fractional number | |
val | integer value | |
num | must be >= 0 | |
den | must be >= 1 |
Definition at line 94 of file utils.c.
Referenced by avformat_write_header().
static void free_packet_buffer | ( | AVPacketList ** | pkt_buf, | |
AVPacketList ** | pkt_buf_end | |||
) | [static] |
static int get_audio_frame_size | ( | AVCodecContext * | enc, | |
int | size, | |||
int | mux | |||
) | [static] |
Get the number of samples of an audio frame.
Return -1 on error.
Definition at line 797 of file utils.c.
Referenced by compute_frame_duration(), and compute_pkt_fields2().
static AVPacketList* get_next_pkt | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
AVPacketList * | pktl | |||
) | [static] |
Definition at line 887 of file utils.c.
Referenced by update_initial_durations(), and update_initial_timestamps().
static int get_std_framerate | ( | int | i | ) | [static] |
static int has_codec_parameters | ( | AVStream * | st | ) | [static] |
Definition at line 2241 of file utils.c.
Referenced by avformat_find_stream_info(), and try_decode_frame().
static int has_decode_delay_been_guessed | ( | AVStream * | st | ) | [static] |
static int has_duration | ( | AVFormatContext * | ic | ) | [static] |
Return TRUE if the stream has accurate duration in any stream.
Definition at line 1999 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] |
static int init_input | ( | AVFormatContext * | s, | |
const char * | filename, | |||
AVDictionary ** | options | |||
) | [static] |
static int interleave_packet | ( | AVFormatContext * | s, | |
AVPacket * | out, | |||
AVPacket * | in, | |||
int | flush | |||
) | [static] |
Interleave an AVPacket correctly so it can be muxed.
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 |
Definition at line 3549 of file utils.c.
Referenced by av_interleaved_write_frame(), and av_write_trailer().
static int is_intra_only | ( | AVCodecContext * | enc | ) | [static] |
static int is_relative | ( | int64_t | ts | ) | [static] |
Definition at line 78 of file utils.c.
Referenced by av_read_frame(), avformat_find_stream_info(), ff_add_index_entry(), and update_initial_timestamps().
static int match_format | ( | const char * | name, | |
const char * | names | |||
) | [static] |
static int parse_packet | ( | AVFormatContext * | s, | |
AVPacket * | pkt, | |||
int | stream_index | |||
) | [static] |
Parse a packet, add all split parts to parse_queue.
pkt | packet to parse, NULL when flushing the parser at end of stream |
Definition at line 1148 of file utils.c.
Referenced by read_frame_internal().
static void pkt_dump_internal | ( | void * | avcl, | |
FILE * | f, | |||
int | level, | |||
AVPacket * | pkt, | |||
int | dump_payload, | |||
AVRational | time_base | |||
) | [static] |
static void print_fps | ( | double | d, | |
const char * | postfix | |||
) | [static] |
static void queue_attached_pictures | ( | AVFormatContext * | s | ) | [static] |
Definition at line 575 of file utils.c.
Referenced by av_seek_frame(), avformat_open_input(), and avformat_seek_file().
static int read_frame_internal | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) | [static] |
Definition at line 1264 of file utils.c.
Referenced by av_read_frame(), and avformat_find_stream_info().
static int read_from_packet_buffer | ( | AVPacketList ** | pkt_buffer, | |
AVPacketList ** | pkt_buffer_end, | |||
AVPacket * | pkt | |||
) | [static] |
static int seek_frame_byte | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | pos, | |||
int | flags | |||
) | [static] |
static int seek_frame_generic | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | timestamp, | |||
int | flags | |||
) | [static] |
static int seek_frame_internal | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | timestamp, | |||
int | flags | |||
) | [static] |
static int set_codec_from_probe_data | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
AVProbeData * | pd | |||
) | [static] |
static int tb_unreliable | ( | AVCodecContext * | c | ) | [static] |
static int try_decode_frame | ( | AVStream * | st, | |
AVPacket * | avpkt, | |||
AVDictionary ** | options | |||
) | [static] |
static void update_initial_durations | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
int | stream_index, | |||
int | duration | |||
) | [static] |
static void update_initial_timestamps | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | dts, | |||
int64_t | pts | |||
) | [static] |
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 2019 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 3105 of file utils.c.
Referenced by avformat_write_header().
AVInputFormat* first_iformat = NULL [static] |
AVOutputFormat* first_oformat = NULL [static] |