#include <stdint.h>
#include "avformat.h"
Go to the source code of this file.
Data Structures | |
struct | AVCodecTag |
struct | CodecMime |
Defines | |
#define | MAX_URL_SIZE 4096 |
#define | hex_dump_debug(class, buf, size) |
#define | dynarray_add(tab, nb_ptr, elem) |
#define | NTP_OFFSET 2208988800ULL |
#define | NTP_OFFSET_US (NTP_OFFSET * 1000000ULL) |
#define | SPACE_CHARS " \t\r\n" |
Typedefs | |
typedef void(* | ff_parse_key_val_cb )(void *context, const char *key, int key_len, char **dest, int *dest_len) |
Callback function type for ff_parse_key_value. | |
Functions | |
struct tm * | ff_brktimegm (time_t secs, struct tm *tm) |
char * | ff_data_to_hex (char *buf, const uint8_t *src, int size, int lowercase) |
int | ff_hex_to_data (uint8_t *data, const char *p) |
Parse a string of hexadecimal strings. | |
void | ff_program_add_stream_index (AVFormatContext *ac, int progid, unsigned int idx) |
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. | |
void | ff_read_frame_flush (AVFormatContext *s) |
Flush the frame reader. | |
uint64_t | ff_ntp_time (void) |
Get the current time since NTP epoch in microseconds. | |
int | ff_url_join (char *str, int size, const char *proto, const char *authorization, const char *hostname, int port, const char *fmt,...) av_printf_format(7 |
Assemble a URL string from components. | |
int void | ff_sdp_write_media (char *buff, int size, AVCodecContext *c, const char *dest_addr, const char *dest_type, int port, int ttl, AVFormatContext *fmt) |
Append the media-specific SDP fragment for the media stream c to the buffer buff. | |
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. | |
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. | |
int | ff_get_line (AVIOContext *s, char *buf, int maxlen) |
Read a whole line of text from AVIOContext. | |
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. | |
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 | 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. | |
AVChapter * | avpriv_new_chapter (AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title) |
Add a new chapter. | |
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. | |
void | ff_make_absolute_url (char *buf, int size, const char *base, const char *rel) |
enum AVCodecID | ff_guess_image2_codec (const char *filename) |
int64_t | ff_iso8601_to_unix_time (const char *datestr) |
Convert a date string in ISO8601 format to Unix 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(). | |
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. | |
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(). | |
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_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. | |
int | ff_framehash_write_header (AVFormatContext *s) |
Set the timebase for each stream from the corresponding codec timebase and print it. | |
int | ff_read_packet (AVFormatContext *s, AVPacket *pkt) |
Read a transport packet from a media file. | |
int | ff_interleave_packet_per_dts (AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) |
Interleave a packet per dts in an output media file. | |
void | ff_free_stream (AVFormatContext *s, AVStream *st) |
#define dynarray_add | ( | tab, | |||
nb_ptr, | |||||
elem | ) |
Value:
do {\ av_dynarray_add((tab), nb_ptr, (elem));\ } while(0)
Definition at line 54 of file internal.h.
Referenced by av_new_program(), avpriv_new_chapter(), ff_rtsp_setup_output_streams(), matroska_parse_frame(), matroska_parse_rm_audio(), mpegts_add_service(), new_variant(), and parse_playlist().
#define hex_dump_debug | ( | class, | |||
buf, | |||||
size | ) |
#define MAX_URL_SIZE 4096 |
#define NTP_OFFSET 2208988800ULL |
Definition at line 86 of file internal.h.
#define NTP_OFFSET_US (NTP_OFFSET * 1000000ULL) |
#define SPACE_CHARS " \t\r\n" |
Definition at line 175 of file internal.h.
Referenced by ff_hex_to_data(), get_word(), get_word_until_chars(), process_line(), and rtsp_parse_range_npt().
typedef void(* ff_parse_key_val_cb)(void *context, const char *key, int key_len, char **dest, int *dest_len) |
Callback function type for ff_parse_key_value.
key | a pointer to the key | |
key_len | the number of bytes that belong to the key, including the '=' char | |
dest | return the destination pointer for the value in *dest, may be null to ignore the value | |
dest_len | the length of the *dest buffer |
Definition at line 187 of file internal.h.
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 3210 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 4360 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(), ilbc_read_header(), init_stream(), 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(), opus_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(), realtext_read_header(), rl2_read_header(), roq_read_packet(), rpl_read_header(), rso_read_header(), sami_read_header(), sbg_read_header(), seq_read_header(), siff_parse_vbv1(), skeleton_header(), smacker_read_header(), smjpeg_read_header(), smjpeg_write_header(), smush_read_header(), sol_read_header(), sox_read_header(), speex_header(), srt_read_header(), srt_write_header(), str_read_packet(), subviewer_read_header(), 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(), webvtt_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().
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 1612 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 4621 of file utils.c.
Referenced by flv_read_packet(), and load_ipmovie_packet().
struct tm* ff_brktimegm | ( | time_t | secs, | |
struct tm * | tm | |||
) | [read] |
Definition at line 4303 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 4495 of file utils.c.
Referenced by get_sindex(), parse_chunks(), and pmt_cb().
int ff_framehash_write_header | ( | AVFormatContext * | s | ) |
Set the timebase for each stream from the corresponding codec timebase and print it.
Definition at line 23 of file framehash.c.
void ff_free_stream | ( | AVFormatContext * | s, | |
AVStream * | st | |||
) |
Definition at line 3043 of file utils.c.
Referenced by avformat_free_context(), and ff_rm_read_mdpr_codecdata().
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 1775 of file utils.c.
Referenced by ff_seek_frame_binary(), and read_seek().
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.
s | the read-only AVIOContext | |
buf | buffer to store the read line | |
maxlen | size of the buffer |
Definition at line 592 of file aviobuf.c.
Referenced by jacosub_read_header(), microdvd_read_header(), read_chomp_line(), read_header(), srt_read_packet(), and subviewer_read_header().
Get the length in bytes which is needed to store val as v.
Definition at line 330 of file aviobuf.c.
Referenced by ff_put_v(), and nut_write_packet().
enum AVCodecID ff_guess_image2_codec | ( | const char * | filename | ) |
Definition at line 96 of file img2.c.
Referenced by ape_tag_read_field(), av_guess_codec(), av_guess_format(), read_header(), read_probe(), and write_packet().
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 4324 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 1672 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 3593 of file utils.c.
Referenced by ff_audio_rechunk_interleave(), and ff_interleave_packet_per_dts().
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 3674 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 4574 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 4087 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 4441 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_put_v | ( | AVIOContext * | bc, | |
uint64_t | val | |||
) |
Put val using a variable number of bytes.
Definition at line 339 of file aviobuf.c.
Referenced by nut_write_packet(), put_packet(), put_s(), put_str(), put_tt(), write_chapter(), write_globalinfo(), write_index(), write_mainheader(), write_streamheader(), and write_streaminfo().
void ff_read_frame_flush | ( | AVFormatContext * | s | ) |
Flush the frame reader.
Definition at line 1559 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 738 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 1599 of file utils.c.
Referenced by av_read_frame(), mpegps_read_pes_header(), mpegts_get_dts(), and read_frame_internal().
int void ff_sdp_write_media | ( | char * | buff, | |
int | size, | |||
AVCodecContext * | c, | |||
const char * | dest_addr, | |||
const char * | dest_type, | |||
int | port, | |||
int | ttl, | |||
AVFormatContext * | fmt | |||
) |
Append the media-specific SDP fragment for the media stream c to the buffer buff.
Note, the buffer needs to be initialized, since it is appended to existing content.
buff | the buffer to append the SDP fragment to | |
size | the size of the buff buffer | |
c | the AVCodecContext of the media to describe | |
dest_addr | the destination address of the media stream, may be NULL | |
dest_type | the destination address type, may be NULL | |
port | the destination port of the media stream, 0 if unknown | |
ttl | the time to live of the stream, 0 if not multicast | |
fmt | the AVFormatContext, which might contain options modifying the generated SDP |
Definition at line 674 of file sdp.c.
Referenced by mov_write_udta_sdp().
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 1713 of file utils.c.
Referenced by asf_read_seek(), ogg_read_seek(), and seek_frame_internal().
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 1586 of file utils.c.
Referenced by ff_seek_frame_binary(), matroska_read_seek(), mp3_seek(), mpc8_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, | |||
... | ||||
) |
Assemble a URL string from components.
This is the reverse operation of av_url_split.
Note, this requires networking to be initialized, so the caller must ensure ff_network_init has been called.
str | the buffer to fill with the url | |
size | the size of the str buffer | |
proto | the protocol identifier, if null, the separator after the identifier is left out, too | |
authorization | an optional authorization string, may be null. An empty string is treated the same as a null string. | |
hostname | the host name string | |
port | the port number, left out from the string if negative | |
fmt | a generic format string for everything to add after the host/port, may be null |
Referenced by build_udp_url(), ff_rtp_set_remote_url(), ff_rtsp_setup_output_streams(), gopher_open(), http_open_cnx(), mms_open(), mmsh_open_internal(), rtmp_http_open(), rtmp_http_send_cmd(), rtmp_open(), rtmpe_open(), rtsp_listen(), rtsp_read_setup(), sap_read_header(), sap_write_header(), and tls_open().
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 4423 of file utils.c.
Referenced by ff_mov_add_hinted_packet(), ism_write_packet(), rtsp_write_packet(), and sap_write_packet().