FFmpeg
Macros | Functions | Variables
utils.c File Reference
#include <stdint.h>
#include "config.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/dict.h"
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixfmt.h"
#include "libavutil/thread.h"
#include "libavutil/time.h"
#include "libavcodec/bsf.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/internal.h"
#include "libavcodec/packet_internal.h"
#include "avformat.h"
#include "avio_internal.h"
#include "internal.h"
#include "libavutil/ffversion.h"

Go to the source code of this file.

Macros

#define LICENSE_PREFIX   "libavformat license: "
 
#define SANE_CHUNK_SIZE   (50000000)
 

Functions

unsigned avformat_version (void)
 Return the LIBAVFORMAT_VERSION_INT constant. More...
 
const char * avformat_configuration (void)
 Return the libavformat build-time configuration. More...
 
const char * avformat_license (void)
 Return the libavformat license. More...
 
int ff_lock_avformat (void)
 
int ff_unlock_avformat (void)
 
int64_t av_stream_get_end_pts (const AVStream *st)
 Returns the pts of the last muxed packet + its duration. More...
 
struct AVCodecParserContextav_stream_get_parser (const AVStream *st)
 
void avpriv_stream_set_need_parsing (AVStream *st, enum AVStreamParseType type)
 
void av_format_inject_global_side_data (AVFormatContext *s)
 This function will cause global side data to be injected in the next packet of each stream as well as after any subsequent seek. More...
 
int ff_copy_whiteblacklists (AVFormatContext *dst, const AVFormatContext *src)
 Copies the whilelists from one context to the other. More...
 
const AVCodecff_find_decoder (AVFormatContext *s, const AVStream *st, enum AVCodecID codec_id)
 
static int append_packet_chunked (AVIOContext *s, AVPacket *pkt, 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. More...
 
int av_append_packet (AVIOContext *s, AVPacket *pkt, int size)
 Read data and append it to the current content of the AVPacket. More...
 
int av_filename_number_test (const char *filename)
 Check whether filename actually is a numbered sequence generator. More...
 
int avformat_queue_attached_pictures (AVFormatContext *s)
 
int ff_add_attached_pic (AVFormatContext *s, AVStream *st0, AVIOContext *pb, AVBufferRef **buf, int size)
 Add an attached pic to an AVStream. More...
 
int ff_is_intra_only (enum AVCodecID id)
 
void ff_flush_packet_queue (AVFormatContext *s)
 
int av_find_default_stream_index (AVFormatContext *s)
 
unsigned int ff_codec_get_tag (const AVCodecTag *tags, enum AVCodecID id)
 
enum AVCodecID ff_codec_get_id (const AVCodecTag *tags, unsigned int tag)
 
enum AVCodecID ff_get_pcm_codec_id (int bps, int flt, int be, int sflags)
 Select a PCM codec based on the given parameters. More...
 
unsigned int av_codec_get_tag (const AVCodecTag *const *tags, enum AVCodecID id)
 
int av_codec_get_tag2 (const AVCodecTag *const *tags, enum AVCodecID id, unsigned int *tag)
 
enum AVCodecID av_codec_get_id (const AVCodecTag *const *tags, unsigned int tag)
 
int ff_alloc_extradata (AVCodecParameters *par, int size)
 Allocate extradata with additional AV_INPUT_BUFFER_PADDING_SIZE at end which is always set to 0. More...
 
int ff_get_extradata (AVFormatContext *s, AVCodecParameters *par, AVIOContext *pb, int size)
 Allocate extradata with additional AV_INPUT_BUFFER_PADDING_SIZE at end which is always set to 0 and fill it from pb. More...
 
AVProgramav_find_program_from_stream (AVFormatContext *ic, AVProgram *last, int s)
 Find the programs which belong to a given stream. More...
 
int av_find_best_stream (AVFormatContext *ic, enum AVMediaType type, int wanted_stream_nb, int related_stream, const AVCodec **decoder_ret, int flags)
 Find the "best" stream in the file. More...
 
int av_read_play (AVFormatContext *s)
 Start playing a network-based stream (e.g. More...
 
int av_read_pause (AVFormatContext *s)
 Pause a network-based stream (e.g. More...
 
int ff_stream_encode_params_copy (AVStream *dst, const AVStream *src)
 Copy encoding parameters from source to destination stream. More...
 
static void free_stream (AVStream **pst)
 
void ff_free_stream (AVFormatContext *s, AVStream *st)
 
void avformat_free_context (AVFormatContext *s)
 Free an AVFormatContext and all its streams. More...
 
AVStreamavformat_new_stream (AVFormatContext *s, const AVCodec *c)
 Add a new stream to a media file. More...
 
AVProgramav_new_program (AVFormatContext *ac, int id)
 
AVChapteravpriv_new_chapter (AVFormatContext *s, int64_t id, AVRational time_base, int64_t start, int64_t end, const char *title)
 Add a new chapter. More...
 
void av_program_add_stream_index (AVFormatContext *ac, int progid, unsigned idx)
 
uint64_t ff_ntp_time (void)
 Get the current time since NTP epoch in microseconds. More...
 
uint64_t ff_get_formatted_ntp_time (uint64_t ntp_time_us)
 Get the NTP time stamp formatted as per the RFC-5905. More...
 
uint64_t ff_parse_ntp_time (uint64_t ntp_ts)
 Parse the NTP time in micro seconds (since NTP epoch). More...
 
int av_get_frame_filename2 (char *buf, int buf_size, const char *path, int number, int flags)
 Return in 'buf' the path with 'd' replaced by a number. More...
 
int av_get_frame_filename (char *buf, int buf_size, const char *path, int number)
 
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. More...
 
int ff_mkdir_p (const char *path)
 Automatically create sub-directories. More...
 
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. More...
 
void avpriv_set_pts_info (AVStream *st, int pts_wrap_bits, unsigned int pts_num, unsigned int pts_den)
 Set the time base and wrapping info for a given stream. More...
 
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. More...
 
int ff_find_stream_index (AVFormatContext *s, int id)
 Find stream index based on format-specific stream ID. More...
 
int avformat_query_codec (const AVOutputFormat *ofmt, enum AVCodecID codec_id, int std_compliance)
 Test if the given container can store a codec. More...
 
int avformat_network_init (void)
 Do global initialization of network libraries. More...
 
int avformat_network_deinit (void)
 Undo the initialization done by avformat_network_init. More...
 
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. More...
 
AVRational av_guess_sample_aspect_ratio (AVFormatContext *format, AVStream *stream, AVFrame *frame)
 Guess the sample aspect ratio of a frame, based on both the stream and the frame aspect ratio. More...
 
AVRational av_guess_frame_rate (AVFormatContext *format, AVStream *st, AVFrame *frame)
 Guess the frame rate, based on both the container and codec information. More...
 
static int match_stream_specifier (AVFormatContext *s, AVStream *st, const char *spec, const char **indexptr, AVProgram **p)
 Matches a stream specifier (but ignores requested index). More...
 
int avformat_match_stream_specifier (AVFormatContext *s, AVStream *st, const char *spec)
 Check if the stream st contained in s is matched by the stream specifier spec. More...
 
int ff_generate_avci_extradata (AVStream *st)
 Generate standard extradata for AVC-Intra based on width/height and field order. More...
 
uint8_t * av_stream_get_side_data (const AVStream *st, enum AVPacketSideDataType type, size_t *size)
 Get side information from stream. More...
 
int av_stream_add_side_data (AVStream *st, enum AVPacketSideDataType type, uint8_t *data, size_t size)
 Wrap an existing array as stream side data. More...
 
uint8_t * av_stream_new_side_data (AVStream *st, enum AVPacketSideDataType type, size_t size)
 Allocate new information from stream. More...
 
int ff_stream_add_bitstream_filter (AVStream *st, const char *name, const char *args)
 Add a bitstream filter to a stream. More...
 
int ff_format_output_open (AVFormatContext *s, const char *url, AVDictionary **options)
 Utility function to open IO stream of output format. More...
 
void ff_format_io_close (AVFormatContext *s, AVIOContext **pb)
 
int ff_is_http_proto (const char *filename)
 Utility function to check if the file uses http or https protocol. More...
 
int ff_parse_creation_time_metadata (AVFormatContext *s, int64_t *timestamp, int return_seconds)
 Parse creation_time in AVFormatContext metadata if exists and warn if the parsing fails. More...
 
int ff_standardize_creation_time (AVFormatContext *s)
 Standardize creation_time metadata in AVFormatContext to an ISO-8601 timestamp string. More...
 
int ff_get_packet_palette (AVFormatContext *s, AVPacket *pkt, int ret, uint32_t *palette)
 Retrieves the palette from a packet, either from side data, or appended to the video data in the packet itself (raw video only). More...
 
int ff_bprint_to_codecpar_extradata (AVCodecParameters *par, struct AVBPrint *buf)
 Finalize buf into extradata and set its size appropriately. More...
 
int avformat_transfer_internal_stream_timing_info (const AVOutputFormat *ofmt, AVStream *ost, const AVStream *ist, enum AVTimebaseSource copy_tb)
 Transfer internal timing information from one stream to another. More...
 
AVRational av_stream_get_codec_timebase (const AVStream *st)
 Get the internal codec timebase from a stream. More...
 
void ff_format_set_url (AVFormatContext *s, char *url)
 Set AVFormatContext url field to the provided pointer. More...
 

Variables

const char av_format_ffversion [] = "FFmpeg version " FFMPEG_VERSION
 
static AVMutex avformat_mutex = AV_MUTEX_INITIALIZER
 

Detailed Description

various utility functions for use within FFmpeg

Definition in file utils.c.

Macro Definition Documentation

◆ LICENSE_PREFIX

#define LICENSE_PREFIX   "libavformat license: "

◆ SANE_CHUNK_SIZE

#define SANE_CHUNK_SIZE   (50000000)

Definition at line 153 of file utils.c.

Function Documentation

◆ ff_lock_avformat()

int ff_lock_avformat ( void  )

◆ ff_unlock_avformat()

int ff_unlock_avformat ( void  )

◆ av_stream_get_end_pts()

int64_t av_stream_get_end_pts ( const AVStream st)

Returns the pts of the last muxed packet + its duration.

the retuned value is undefined when used with a demuxer.

Definition at line 86 of file utils.c.

Referenced by do_video_stats(), and print_report().

◆ av_stream_get_parser()

struct AVCodecParserContext* av_stream_get_parser ( const AVStream st)

Definition at line 94 of file utils.c.

Referenced by process_input_packet().

◆ avpriv_stream_set_need_parsing()

void avpriv_stream_set_need_parsing ( AVStream st,
enum AVStreamParseType  type 
)

Definition at line 99 of file utils.c.

Referenced by v4l2_read_header().

◆ av_format_inject_global_side_data()

void av_format_inject_global_side_data ( AVFormatContext s)

This function will cause global side data to be injected in the next packet of each stream as well as after any subsequent seek.

Definition at line 104 of file utils.c.

Referenced by read_thread().

◆ ff_copy_whiteblacklists()

int ff_copy_whiteblacklists ( AVFormatContext dst,
const AVFormatContext src 
)

Copies the whilelists from one context to the other.

Definition at line 114 of file utils.c.

Referenced by ff_wms_parse_sdp_a_line(), hls_read_header(), ism_write_header(), open_file(), rdt_init(), read_gab2_sub(), reopen_demux_for_component(), and sap_read_header().

◆ ff_find_decoder()

const AVCodec* ff_find_decoder ( AVFormatContext s,
const AVStream st,
enum AVCodecID  codec_id 
)

Definition at line 134 of file utils.c.

Referenced by av_find_best_stream(), and find_probe_decoder().

◆ append_packet_chunked()

static int append_packet_chunked ( AVIOContext s,
AVPacket pkt,
int  size 
)
static

Definition at line 157 of file utils.c.

Referenced by av_append_packet(), and av_get_packet().

◆ av_get_packet()

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
sassociated IO context
pktpacket
sizedesired payload size
Returns
>0 (read size) if OK, AVERROR_xxx otherwise

Definition at line 196 of file utils.c.

Referenced by aal_read_packet(), aax_read_packet(), ace_read_packet(), adp_read_packet(), ads_read_packet(), adts_aac_read_packet(), adx_read_packet(), aea_read_packet(), afc_read_packet(), aiff_read_packet(), aix_read_packet(), apc_read_packet(), aptx_hd_read_packet(), aptx_read_packet(), argo_brp_read_packet(), asf_read_header(), asf_read_subpayload(), ast_read_packet(), av_append_packet(), avi_read_packet(), bfi_read_packet(), cdata_read_packet(), cdxl_read_packet(), cin_read_packet(), cine_read_packet(), codec2_read_packet(), dat_read_packet(), daud_packet(), dcstr_read_packet(), dfa_read_packet(), dhav_read_packet(), dsf_read_packet(), dxa_read_packet(), ea_read_packet(), ff_add_attached_pic(), ff_pcm_read_packet(), ff_rm_parse_packet(), ff_rm_retrieve_cache(), ff_voc_get_packet(), film_read_packet(), flv_data_packet(), flv_read_packet(), fourxm_read_packet(), frm_read_packet(), fsb_read_packet(), g726_read_packet(), g729_read_packet(), gdv_read_packet(), genh_read_packet(), gif_read_packet(), gsm_read_packet(), gxf_packet(), hca_read_packet(), hnm_read_packet(), idcin_read_packet(), iff_read_packet(), ifv_read_packet(), ilbc_read_packet(), ingenient_read_packet(), iss_read_packet(), lmlm4_read_packet(), load_ipmovie_packet(), lvf_read_packet(), mmf_read_packet(), mods_read_packet(), mov_read_packet(), mp3_read_packet(), mpc8_read_packet(), mpegps_read_packet(), mpjpeg_read_packet(), msf_read_packet(), msnwc_tcp_read_packet(), msp_read_packet(), mtaf_read_packet(), mtv_read_packet(), musx_read_packet(), mv_read_packet(), mxf_decrypt_triplet(), mxf_get_d10_aes3_packet(), mxf_get_eia608_packet(), mxf_read_packet(), nc_read_packet(), nsv_read_chunk(), nuv_packet(), pmp_packet(), pp_bnk_read_packet(), pva_read_packet(), qcp_read_packet(), r3d_read_reda(), r3d_read_redv(), raw_read_packet(), rawvideo_read_packet(), read_dst_frame(), read_packet(), redspark_read_packet(), rl2_read_packet(), roq_read_packet(), rpl_read_packet(), rsd_read_packet(), s337m_read_packet(), sdr2_read_packet(), seq_read_packet(), ser_read_packet(), siff_read_packet(), simbiosis_imx_read_packet(), smacker_read_packet(), smjpeg_read_packet(), smush_read_packet(), sol_read_packet(), sup_read_packet(), svag_read_packet(), svs_read_packet(), swf_read_packet(), thp_read_packet(), threedostr_read_packet(), tmv_read_packet(), tta_read_packet(), txd_read_packet(), v210_read_packet(), vag_read_packet(), vc1t_read_packet(), vid_read_packet(), viv_read_packet(), vivo_read_packet(), vpk_read_packet(), wc3_read_packet(), wsaud_read_packet(), wsvqa_read_packet(), xa_read_packet(), xmv_fetch_audio_packet(), xmv_fetch_video_packet(), xvag_read_packet(), xwma_read_packet(), yop_read_packet(), and yuv4_read_packet().

◆ av_append_packet()

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
sassociated IO context
pktpacket
sizeamount 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 212 of file utils.c.

Referenced by adts_aac_read_packet(), apng_read_packet(), dfa_read_packet(), ea_read_packet(), handle_id3(), moflex_read_packet(), mpjpeg_read_packet(), msp_read_packet(), read_packet(), sup_read_packet(), vivo_read_packet(), wc3_read_header(), wc3_read_packet(), and wsvqa_read_packet().

◆ ff_add_attached_pic()

int ff_add_attached_pic ( AVFormatContext s,
AVStream st,
AVIOContext pb,
AVBufferRef **  buf,
int  size 
)

Add an attached pic to an AVStream.

Parameters
stif set, the stream to add the attached pic to; if unset, a new stream will be added to s.
pbAVIOContext to read data from if buf is unset.
bufif set, it contains the data and size information to be used for the attached pic; if unset, data is read from pb.
sizethe size of the data to read if buf is unset.
Returns
0 on success, < 0 on error. On error, this function removes the stream it has added (if any).

Definition at line 250 of file utils.c.

Referenced by ape_tag_read_field(), asf_read_picture(), ff_flac_parse_picture(), ff_id3v2_parse_apic(), get_attachment(), mov_read_chapters(), and mov_read_covr().

◆ ff_is_intra_only()

int ff_is_intra_only ( enum AVCodecID  id)

Definition at line 287 of file utils.c.

Referenced by compute_pkt_fields(), and init_muxer().

◆ ff_flush_packet_queue()

void ff_flush_packet_queue ( AVFormatContext s)

Definition at line 299 of file utils.c.

Referenced by avformat_free_context(), estimate_timings_from_pts(), and ff_read_frame_flush().

◆ ff_codec_get_tag()

unsigned int ff_codec_get_tag ( const AVCodecTag tags,
enum AVCodecID  id 
)

◆ ff_codec_get_id()

enum AVCodecID ff_codec_get_id ( const AVCodecTag tags,
unsigned int  tag 
)

◆ ff_get_pcm_codec_id()

enum AVCodecID ff_get_pcm_codec_id ( int  bps,
int  flt,
int  be,
int  sflags 
)

Select a PCM codec based on the given parameters.

Parameters
bpsbits-per-sample
fltfloating-point
bebig-endian
sflagssigned flags. each bit corresponds to one byte of bit depth. e.g. the 1st bit indicates if 8-bit should be signed or unsigned, the 2nd bit indicates if 16-bit should be signed or unsigned, etc... This is useful for formats such as WAVE where only 8-bit is unsigned and all other bit depths are signed.
Returns
a PCM codec id or AV_CODEC_ID_NONE

Definition at line 368 of file utils.c.

Referenced by avr_read_header(), ff_mov_get_lpcm_codec_id(), ff_wav_codec_get_id(), get_codec_data(), nist_read_header(), and pvf_read_header().

◆ av_codec_get_tag()

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

Definition at line 417 of file utils.c.

◆ av_codec_get_tag2()

int av_codec_get_tag2 ( const AVCodecTag *const *  tags,
enum AVCodecID  id,
unsigned int tag 
)

Definition at line 425 of file utils.c.

Referenced by av_codec_get_tag(), and avformat_query_codec().

◆ av_codec_get_id()

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

Definition at line 441 of file utils.c.

◆ ff_alloc_extradata()

int ff_alloc_extradata ( AVCodecParameters par,
int  size 
)

Allocate extradata with additional AV_INPUT_BUFFER_PADDING_SIZE at end which is always set to 0.

Previously allocated extradata in par will be freed.

Parameters
sizesize of extradata
Returns
0 if OK, AVERROR_xxx on error

Definition at line 451 of file utils.c.

Referenced by ace_read_header(), adts_write_packet(), afc_read_header(), ape_read_header(), apng_read_header(), celt_header(), codec2_read_header(), codec2raw_read_header(), concat_parse_script(), copy_stream_props(), dfa_read_header(), encode_intervals(), ff_generate_avci_extradata(), ff_get_extradata(), ff_parse_mpeg2_descriptor(), flac_header(), flv_set_video_codec(), flv_write_packet(), fsb_read_header(), genh_read_header(), hca_read_header(), hcom_read_header(), hevc_parse_sdp_line(), hnm_read_header(), iff_read_header(), latm_write_packet(), microdvd_read_header(), mkv_check_new_extra_data(), mov_create_chapter_track(), mov_read_dops(), mov_rewrite_dvd_sub_extradata(), msf_read_header(), mxf_parse_structural_metadata(), nist_read_header(), ogm_header(), oma_read_header(), opus_header(), opus_write_extradata(), parse_fmtp_config(), parse_packed_headers(), qdm2_parse_config(), read_header(), read_kuki_chunk(), redspark_read_header(), rsd_read_header(), seg_write_packet(), smacker_read_header(), smush_read_header(), speex_header(), svq3_parse_packet(), track_header(), tta_read_header(), update_stream_extradata(), vmd_read_header(), vqf_read_header(), wsvqa_read_packet(), wv_read_header(), xmv_process_packet_header(), and xwma_read_header().

◆ ff_get_extradata()

int ff_get_extradata ( AVFormatContext s,
AVCodecParameters par,
AVIOContext pb,
int  size 
)

◆ ff_stream_encode_params_copy()

int ff_stream_encode_params_copy ( AVStream dst,
const AVStream src 
)

Copy encoding parameters from source to destination stream.

Parameters
dstpointer to destination AVStream
srcpointer to source AVStream
Returns
>=0 on success, AVERROR code on error

Definition at line 586 of file utils.c.

Referenced by fifo_mux_init(), open_slave(), segment_mux_init(), and webm_chunk_init().

◆ free_stream()

static void free_stream ( AVStream **  pst)
static

Definition at line 635 of file utils.c.

Referenced by avformat_free_context(), avformat_new_stream(), and ff_free_stream().

◆ ff_free_stream()

void ff_free_stream ( AVFormatContext s,
AVStream st 
)

Definition at line 671 of file utils.c.

Referenced by avi_read_header(), ff_add_attached_pic(), and ff_rm_read_mdpr_codecdata().

◆ avpriv_new_chapter()

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

Add a new chapter.

Parameters
smedia file handle
idunique ID for this chapter
startchapter start time in time_base units
endchapter end time in time_base units
titlechapter title
Returns
AVChapter or NULL on error

Definition at line 835 of file utils.c.

Referenced by aa_read_header(), asf_read_marker(), concat_parse_script(), decode_info_header(), ff_id3v2_parse_chapters(), flac_read_header(), mov_metadata_hmmt(), mov_read_chapters(), mov_read_chpl(), ogm_chapter(), read_chapter(), and read_header().

◆ av_program_add_stream_index()

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

Definition at line 875 of file utils.c.

◆ ff_ntp_time()

uint64_t ff_ntp_time ( void  )

Get the current time since NTP epoch in microseconds.

Definition at line 902 of file utils.c.

Referenced by mov_write_prft_tag(), rtp_write_header(), rtp_write_packet(), and rtp_write_trailer().

◆ ff_get_formatted_ntp_time()

uint64_t ff_get_formatted_ntp_time ( uint64_t  ntp_time_us)

Get the NTP time stamp formatted as per the RFC-5905.

Parameters
ntp_timeNTP time in micro seconds (since NTP epoch)
Returns
the formatted NTP time stamp

Definition at line 907 of file utils.c.

Referenced by mov_write_prft_tag().

◆ ff_parse_ntp_time()

uint64_t ff_parse_ntp_time ( uint64_t  ntp_ts)

Parse the NTP time in micro seconds (since NTP epoch).

Parameters
ntp_tsNTP time stamp formatted as per the RFC-5905.
Returns
the time in micro seconds (since NTP epoch)

Definition at line 929 of file utils.c.

Referenced by rtp_set_prft().

◆ ff_mkdir_p()

int ff_mkdir_p ( const char *  path)

Automatically create sub-directories.

Parameters
pathwill create sub-directories by path
Returns
0, or < 0 on error

Definition at line 1064 of file utils.c.

Referenced by format_name(), and hls_start().

◆ ff_data_to_hex()

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

◆ ff_hex_to_data()

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
dataif non-null, the parsed data is written to this pointer
pthe string to parse
Returns
the number of bytes written (or to be written, if data is null)

Definition at line 1118 of file utils.c.

Referenced by concat_parse_script(), parse_fmtp_config(), and parse_playlist().

◆ avpriv_set_pts_info()

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

Set the time base and wrapping info for a given stream.

This will be used to interpret the stream's timestamps. If the new time base is invalid (numerator or denominator are non-positive), it leaves the stream unchanged.

Parameters
ststream
pts_wrap_bitsnumber of bits effectively used by the pts (used for wrap control)
pts_numtime base numerator
pts_dentime base denominator

Definition at line 1146 of file utils.c.

Referenced by aa_read_header(), aax_read_header(), ace_read_header(), acm_read_header(), add_video_stream(), adp_read_header(), ads_read_header(), adts_aac_read_header(), adx_read_header(), afc_read_header(), aiff_read_header(), aiff_write_header(), aix_read_header(), amr_read_header(), ape_read_header(), apng_read_header(), aqt_read_header(), argo_brp_read_header(), asf_read_stream_properties(), asf_write_header1(), asfrtp_parse_sdp_line(), ass_read_header(), ast_read_header(), audio_read_header(), audio_write_header(), av1_read_header(), avformat_new_stream(), avi_read_header(), avi_write_header(), avisynth_create_stream_audio(), avisynth_create_stream_video(), avr_read_header(), bfi_read_header(), binka_read_header(), bmv_read_header(), cdata_read_header(), cdxl_read_packet(), celt_header(), cin_read_header(), cine_read_header(), codec2_read_header_common(), copy_stream_props(), create_audio_stream(), create_new_audio_stream(), create_stream(), dat_read_packet(), dc1394_read_common(), dcstr_read_header(), decklink_setup_audio(), decklink_setup_video(), decode_stream_header(), derf_read_header(), dfa_read_header(), dhav_read_packet(), dirac_header(), dsf_read_header(), dshow_add_device(), dss_read_header(), dtshd_read_header(), dv_extract_audio_info(), dv_extract_video_info(), dxa_read_header(), ea_read_header(), epaf_read_header(), fbdev_read_header(), ff_argo_asf_fill_stream(), ff_decklink_read_header(), ff_img_read_header(), ff_raw_video_read_header(), ff_rm_read_mdpr_codecdata(), ff_voc_get_packet(), film_read_header(), fits_read_header(), flac_header(), flac_read_header(), flv_init(), fsb_read_header(), fwse_read_header(), g722_read_header(), g723_1_init(), g729_read_header(), gdigrab_read_header(), gdv_read_header(), genh_read_header(), get_audio_config(), get_packet_header(), get_video_config(), gif_read_header(), gif_write_header(), grab_read_header(), gsm_read_header(), gxf_header(), gxf_write_header(), hca_read_header(), hcom_read_header(), hls_write_header(), hnm_read_header(), idcin_read_header(), iff_read_header(), ifv_read_header(), ilbc_read_header(), init_audio(), init_muxer(), init_stream(), init_video_stream(), ipmovie_read_header(), ipu_read_header(), ircam_read_header(), iss_read_header(), jacosub_read_header(), kmsgrab_read_header(), lavfi_read_header(), lmlm4_read_header(), loas_read_header(), lrc_read_header(), lrc_write_header(), lvf_read_header(), lxf_read_header(), mcc_read_header(), microdvd_read_header(), microdvd_write_header(), mkv_init(), mlp_read_header(), mmf_read_header(), modplug_read_header(), mods_read_header(), moflex_read_sync(), mov_init(), mov_read_trak(), mp3_read_header(), mpc8_read_header(), mpc_read_header(), mpeg_mux_init(), mpegts_init(), mpegts_read_header(), mpegts_set_stream_info(), mpjpeg_read_header(), mpl2_read_header(), mpsub_read_header(), msf_read_header(), msnwc_tcp_read_header(), mtaf_read_header(), mtv_read_header(), musx_read_header(), mv_read_header(), mxf_parse_structural_metadata(), mxf_write_header(), mxg_read_header(), nc_read_header(), new_stream(), nist_read_header(), nsv_parse_NSVs_header(), nut_write_header(), nuv_header(), ogg_build_vp8_headers(), ogg_init(), ogg_new_stream(), ogm_dshow_header(), ogm_header(), old_dirac_header(), old_flac_header(), oma_read_header(), open_demux_for_component(), opus_header(), parse_audio_var(), parse_strk(), parse_video_var(), parse_vtrk(), pcm_read_header(), pjs_read_header(), pmp_header(), pp_bnk_read_header(), pulse_read_header(), pulse_write_header(), pva_read_header(), pvf_read_header(), qt_rtp_parse_packet(), r3d_read_red1(), r3d_read_reda(), rawvideo_read_header(), read_frame(), read_gab2_sub(), read_header(), read_header_gme(), read_header_openmpt(), read_header_vs(), read_sl_header(), realtext_read_header(), redspark_read_header(), rl2_read_header(), roq_read_packet(), rpl_read_header(), rsd_read_header(), rso_read_header(), rtp_write_header(), sami_read_header(), sbg_read_header(), scc_read_header(), scc_write_header(), sdr2_read_header(), sds_read_header(), seg_init(), seq_read_header(), ser_read_header(), set_stream_info_from_input_stream(), sga_audio_packet(), sga_video_packet(), siff_parse_vbv1(), simbiosis_imx_read_header(), 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(), stl_read_header(), str_read_packet(), subviewer1_read_header(), subviewer_read_header(), sup_read_header(), sup_write_header(), svag_read_header(), svs_read_header(), swf_read_packet(), tak_read_header(), tedcaptions_read_header(), theora_header(), thp_read_header(), threedostr_read_header(), tmv_read_header(), track_header(), tta_init(), tta_read_header(), ttml_write_header(), txd_read_header(), ty_read_header(), v210_read_header(), v4l2_read_header(), vag_read_header(), vc1t_read_header(), vc1test_write_header(), vfw_read_header(), vid_read_packet(), vivo_read_header(), vmd_read_header(), vorbis_header(), vp8_header(), vpk_read_header(), vplayer_read_header(), vqf_read_header(), wc3_read_header(), webm_chunk_init(), webp_init(), webvtt_read_header(), webvtt_write_header(), write_header(), write_stream_data(), wsaud_read_header(), wsvqa_read_header(), wsvqa_read_packet(), wv_read_header(), wve_read_header(), xa_read_header(), xmv_process_packet_header(), xvag_read_header(), xwma_read_header(), yop_read_header(), and yuv4_read_header().

◆ ff_parse_key_value()

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
strthe string to parse
callback_get_buffunction that returns where to store the unescaped value string.
contextthe opaque context pointer to pass to callback_get_buf

Definition at line 1172 of file utils.c.

Referenced by ff_http_auth_handle_header(), and parse_playlist().

◆ ff_find_stream_index()

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 1226 of file utils.c.

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

◆ ff_add_param_change()

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 1273 of file utils.c.

Referenced by flv_read_packet(), load_ipmovie_packet(), and swf_read_packet().

◆ match_stream_specifier()

static int match_stream_specifier ( AVFormatContext s,
AVStream st,
const char *  spec,
const char **  indexptr,
AVProgram **  p 
)
static

Matches a stream specifier (but ignores requested index).

Parameters
indexptrset to point to the requested stream index if there is one
Returns
<0 on error 0 if st is NOT a matching stream >0 if st is a matching stream

Definition at line 1369 of file utils.c.

Referenced by avformat_match_stream_specifier().

◆ ff_generate_avci_extradata()

int ff_generate_avci_extradata ( AVStream st)

Generate standard extradata for AVC-Intra based on width/height and field order.

Definition at line 1536 of file utils.c.

Referenced by mov_read_trak(), and mxf_parse_structural_metadata().

◆ ff_stream_add_bitstream_filter()

int ff_stream_add_bitstream_filter ( AVStream st,
const char *  name,
const char *  args 
)

Add a bitstream filter to a stream.

Parameters
stoutput stream to add a filter to
namethe name of the filter to add
argsfilter-specific argument string
Returns
>0 on success; AVERROR code on failure

Definition at line 1739 of file utils.c.

Referenced by flv_check_bitstream(), gxf_write_header(), ivf_init(), latm_check_bitstream(), mkv_check_bitstream(), mov_check_bitstream(), mpegts_check_bitstream(), and mxf_write_header().

◆ ff_format_output_open()

int ff_format_output_open ( AVFormatContext s,
const char *  url,
AVDictionary **  options 
)

Utility function to open IO stream of output format.

Parameters
sAVFormatContext
urlURL or file name to open for writing @options optional options which will be passed to io_open callback
Returns
>=0 on success, negative AVERROR in case of failure

Definition at line 1788 of file utils.c.

Referenced by fifo_thread_write_header(), and open_slave().

◆ ff_format_io_close()

void ff_format_io_close ( AVFormatContext s,
AVIOContext **  pb 
)

◆ ff_is_http_proto()

int ff_is_http_proto ( const char *  filename)

Utility function to check if the file uses http or https protocol.

Parameters
sAVFormatContext
filenameURL or file name to open for writing

Definition at line 1805 of file utils.c.

Referenced by dashenc_delete_file(), dashenc_io_close(), dashenc_io_open(), hls_init(), hlsenc_io_close(), hlsenc_io_open(), and set_http_options().

◆ ff_parse_creation_time_metadata()

int ff_parse_creation_time_metadata ( AVFormatContext s,
int64_t *  timestamp,
int  return_seconds 
)

Parse creation_time in AVFormatContext metadata if exists and warn if the parsing fails.

Parameters
sAVFormatContext
timestampparsed timestamp in microseconds, only set on successful parsing
return_secondsset this to get the number of seconds in timestamp instead of microseconds
Returns
1 if OK, 0 if the metadata was not present, AVERROR(EINVAL) on parse error

Definition at line 1810 of file utils.c.

Referenced by asf_write_header1(), dv_init_mux(), ff_standardize_creation_time(), gxf_write_umf_material_description(), mkv_write_header(), mov_write_header(), and mxf_write_header().

◆ ff_standardize_creation_time()

int ff_standardize_creation_time ( AVFormatContext s)

Standardize creation_time metadata in AVFormatContext to an ISO-8601 timestamp string.

Parameters
sAVFormatContext
Returns
<0 on error

Definition at line 1827 of file utils.c.

Referenced by caf_write_header(), ff_ape_write_tag(), ff_id3v2_write_metadata(), lrc_write_header(), smjpeg_write_header(), write_globalinfo(), write_metadata(), and write_table_entries_attrib().

◆ ff_get_packet_palette()

int ff_get_packet_palette ( AVFormatContext s,
AVPacket pkt,
int  ret,
uint32_t *  palette 
)

Retrieves the palette from a packet, either from side data, or appended to the video data in the packet itself (raw video only).

It is commonly used after a call to ff_reshuffle_raw_rgb().

Use 0 for the ret parameter to check for side data only.

Parameters
pktpointer to packet before calling ff_reshuffle_raw_rgb()
retreturn value from ff_reshuffle_raw_rgb(), or 0
palettepointer to palette buffer
Returns
negative error code or 1 if the packet has a palette, else 0

Definition at line 1836 of file utils.c.

Referenced by avi_write_packet(), and mov_write_packet().

◆ ff_bprint_to_codecpar_extradata()

int ff_bprint_to_codecpar_extradata ( AVCodecParameters par,
struct AVBPrint *  buf 
)

Finalize buf into extradata and set its size appropriately.

Definition at line 1860 of file utils.c.

Referenced by ass_read_header(), jacosub_read_header(), sami_read_header(), and subviewer_read_header().

◆ ff_format_set_url()

void ff_format_set_url ( AVFormatContext s,
char *  url 
)

Set AVFormatContext url field to the provided pointer.

The pointer must point to a valid string. The existing url field is freed if necessary. Also set the legacy filename field to the same string which was provided in url.

Definition at line 1947 of file utils.c.

Referenced by hls_start(), parse_playlist(), sap_write_header(), set_segment_filename(), sls_flag_use_localtime_filename(), sls_flags_filename_process(), and webm_chunk_init().

Variable Documentation

◆ av_format_ffversion

const char av_format_ffversion[] = "FFmpeg version " FFMPEG_VERSION

Definition at line 50 of file utils.c.

◆ avformat_mutex

AVMutex avformat_mutex = AV_MUTEX_INITIALIZER
static

Definition at line 52 of file utils.c.

Referenced by ff_lock_avformat(), and ff_unlock_avformat().