FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
ffmpeg.h File Reference
#include "config.h"
#include <stdatomic.h>
#include <stdint.h>
#include <stdio.h>
#include <signal.h>
#include "cmdutils.h"
#include "ffmpeg_sched.h"
#include "sync_queue.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/bsf.h"
#include "libavfilter/avfilter.h"
#include "libavutil/avutil.h"
#include "libavutil/dict.h"
#include "libavutil/eval.h"
#include "libavutil/fifo.h"
#include "libavutil/hwcontext.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "libavutil/thread.h"
#include "libavutil/threadmessage.h"
#include "libswresample/swresample.h"

Go to the source code of this file.

Data Structures

struct  HWDevice
 
struct  StreamMap
 
struct  OptionsContext
 
struct  InputFilterOptions
 
struct  InputFilter
 
struct  OutputFilter
 
struct  FilterGraph
 
struct  DecoderOpts
 
struct  Decoder
 
struct  InputStream
 
struct  InputFile
 
struct  EncStatsComponent
 
struct  EncStats
 
struct  KeyframeForceCtx
 
struct  OutputStream
 
struct  OutputFile
 
struct  FrameData
 

Macros

#define FFMPEG_OPT_QPHIST   1
 
#define FFMPEG_OPT_ADRIFT_THRESHOLD   1
 
#define FFMPEG_OPT_ENC_TIME_BASE_NUM   1
 
#define FFMPEG_OPT_TOP   1
 
#define FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP   1
 
#define FFMPEG_OPT_VSYNC_DROP   1
 
#define FFMPEG_OPT_VSYNC   1
 
#define FFMPEG_OPT_FILTER_SCRIPT   1
 
#define FFMPEG_ERROR_RATE_EXCEEDED   FFERRTAG('E', 'R', 'E', 'D')
 
#define ABORT_ON_FLAG_EMPTY_OUTPUT   (1 << 0)
 
#define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM   (1 << 1)
 
#define SPECIFIER_OPT_FMT_str   "%s"
 
#define SPECIFIER_OPT_FMT_i   "%i"
 
#define SPECIFIER_OPT_FMT_i64   "%"PRId64
 
#define SPECIFIER_OPT_FMT_ui64   "%"PRIu64
 
#define SPECIFIER_OPT_FMT_f   "%f"
 
#define SPECIFIER_OPT_FMT_dbl   "%lf"
 
#define WARN_MULTIPLE_OPT_USAGE(optname, type, idx, st)
 
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)
 

Enumerations

enum  VideoSyncMethod {
  VSYNC_AUTO = -1, VSYNC_PASSTHROUGH, VSYNC_CFR, VSYNC_VFR,
  VSYNC_VSCFR, VSYNC_DROP
}
 
enum  EncTimeBase { ENC_TIME_BASE_DEMUX = -1, ENC_TIME_BASE_FILTER = -2 }
 
enum  HWAccelID { HWACCEL_NONE = 0, HWACCEL_AUTO, HWACCEL_GENERIC }
 
enum  FrameOpaque { FRAME_OPAQUE_SUB_HEARTBEAT = 1, FRAME_OPAQUE_EOF, FRAME_OPAQUE_SEND_COMMAND }
 
enum  PacketOpaque { PKT_OPAQUE_SUB_HEARTBEAT = 1, PKT_OPAQUE_FIX_SUB_DURATION }
 
enum  LatencyProbe {
  LATENCY_PROBE_DEMUX, LATENCY_PROBE_DEC_PRE, LATENCY_PROBE_DEC_POST, LATENCY_PROBE_FILTER_PRE,
  LATENCY_PROBE_FILTER_POST, LATENCY_PROBE_ENC_PRE, LATENCY_PROBE_ENC_POST, LATENCY_PROBE_NB
}
 
enum  IFilterFlags { IFILTER_FLAG_AUTOROTATE = (1 << 0), IFILTER_FLAG_REINIT = (1 << 1), IFILTER_FLAG_CFR = (1 << 2) }
 
enum  DecoderFlags {
  DECODER_FLAG_FIX_SUB_DURATION = (1 << 0), DECODER_FLAG_TS_UNRELIABLE = (1 << 1), DECODER_FLAG_FRAMERATE_FORCED = (1 << 2), DECODER_FLAG_TOP_FIELD_FIRST = (1 << 3),
  DECODER_FLAG_SEND_END_TS = (1 << 4)
}
 
enum  forced_keyframes_const {
  FKF_N, FKF_N_FORCED, FKF_PREV_FORCED_N, FKF_PREV_FORCED_T,
  FKF_T, FKF_NB
}
 
enum  EncStatsType {
  ENC_STATS_LITERAL = 0, ENC_STATS_FILE_IDX, ENC_STATS_STREAM_IDX, ENC_STATS_FRAME_NUM,
  ENC_STATS_FRAME_NUM_IN, ENC_STATS_TIMEBASE, ENC_STATS_TIMEBASE_IN, ENC_STATS_PTS,
  ENC_STATS_PTS_TIME, ENC_STATS_PTS_IN, ENC_STATS_PTS_TIME_IN, ENC_STATS_DTS,
  ENC_STATS_DTS_TIME, ENC_STATS_SAMPLE_NUM, ENC_STATS_NB_SAMPLES, ENC_STATS_PKT_SIZE,
  ENC_STATS_BITRATE, ENC_STATS_AVG_BITRATE, ENC_STATS_KEYFRAME
}
 
enum  OSTFinished { ENCODER_FINISHED = 1, MUXER_FINISHED = 2 }
 
enum  { KF_FORCE_SOURCE = 1, KF_FORCE_SOURCE_NO_DROP = 2 }
 

Functions

void term_init (void)
 
void term_exit (void)
 
void show_usage (void)
 
void remove_avoptions (AVDictionary **a, AVDictionary *b)
 
int check_avoptions (AVDictionary *m)
 
int assert_file_overwrite (const char *filename)
 
AVDictionarystrip_specifiers (const AVDictionary *dict)
 
int find_codec (void *logctx, const char *name, enum AVMediaType type, int encoder, const AVCodec **codec)
 
int parse_and_set_vsync (const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global)
 
int filtergraph_is_simple (const FilterGraph *fg)
 
int init_simple_filtergraph (InputStream *ist, OutputStream *ost, char *graph_desc, Scheduler *sch, unsigned sch_idx_enc)
 
int fg_finalise_bindings (FilterGraph *fg)
 
FrameDataframe_data (AVFrame *frame)
 Get our axiliary frame data attached to the frame, allocating it if needed. More...
 
const FrameDataframe_data_c (AVFrame *frame)
 
FrameDatapacket_data (AVPacket *pkt)
 
const FrameDatapacket_data_c (AVPacket *pkt)
 
int ifilter_parameters_from_dec (InputFilter *ifilter, const AVCodecContext *dec)
 Set up fallback filtering parameters from a decoder context. More...
 
int ofilter_bind_ost (OutputFilter *ofilter, OutputStream *ost, unsigned sched_idx_enc)
 
int fg_create (FilterGraph **pfg, char *graph_desc, Scheduler *sch)
 Create a new filtergraph in the global filtergraph list. More...
 
void fg_free (FilterGraph **pfg)
 
void fg_send_command (FilterGraph *fg, double time, const char *target, const char *command, const char *arg, int all_filters)
 
int ffmpeg_parse_options (int argc, char **argv, Scheduler *sch)
 
void enc_stats_write (OutputStream *ost, EncStats *es, const AVFrame *frame, const AVPacket *pkt, uint64_t frame_num)
 
HWDevicehw_device_get_by_name (const char *name)
 
HWDevicehw_device_get_by_type (enum AVHWDeviceType type)
 
int hw_device_init_from_string (const char *arg, HWDevice **dev)
 
int hw_device_init_from_type (enum AVHWDeviceType type, const char *device, HWDevice **dev_out)
 
void hw_device_free_all (void)
 
AVBufferRefhw_device_for_filter (void)
 Get a hardware device to be used with this filtergraph. More...
 
int dec_create (const OptionsContext *o, const char *arg, Scheduler *sch)
 Create a standalone decoder. More...
 
int dec_init (Decoder **pdec, Scheduler *sch, AVDictionary **dec_opts, const DecoderOpts *o, AVFrame *param_out)
 
void dec_free (Decoder **pdec)
 
int dec_filter_add (Decoder *dec, InputFilter *ifilter, InputFilterOptions *opts)
 
int enc_alloc (Encoder **penc, const AVCodec *codec, Scheduler *sch, unsigned sch_idx)
 
void enc_free (Encoder **penc)
 
int enc_open (void *opaque, const AVFrame *frame)
 
int enc_loopback (Encoder *enc)
 
int of_stream_init (OutputFile *of, OutputStream *ost)
 
int of_write_trailer (OutputFile *of)
 
int of_open (const OptionsContext *o, const char *filename, Scheduler *sch)
 
void of_free (OutputFile **pof)
 
void of_enc_stats_close (void)
 
int64_t of_filesize (OutputFile *of)
 
int ifile_open (const OptionsContext *o, const char *filename, Scheduler *sch)
 
void ifile_close (InputFile **f)
 
int ist_output_add (InputStream *ist, OutputStream *ost)
 
int ist_filter_add (InputStream *ist, InputFilter *ifilter, int is_simple, InputFilterOptions *opts)
 
InputStreamist_find_unused (enum AVMediaType type)
 Find an unused input stream of given type. More...
 
InputStreamist_iter (InputStream *prev)
 
OutputStreamost_iter (OutputStream *prev)
 
void update_benchmark (const char *fmt,...)
 
const char * opt_match_per_type_str (const SpecifierOptList *sol, char mediatype)
 
int muxer_thread (void *arg)
 
int encoder_thread (void *arg)
 

Variables

const char *const forced_keyframes_const_names []
 
InputFile ** input_files
 
int nb_input_files
 
OutputFile ** output_files
 
int nb_output_files
 
FilterGraph ** filtergraphs
 
int nb_filtergraphs
 
Decoder ** decoders
 
int nb_decoders
 
char * vstats_filename
 
float dts_delta_threshold
 
float dts_error_threshold
 
enum VideoSyncMethod video_sync_method
 
float frame_drop_threshold
 
int do_benchmark
 
int do_benchmark_all
 
int do_hex_dump
 
int do_pkt_dump
 
int copy_ts
 
int start_at_zero
 
int copy_tb
 
int debug_ts
 
int exit_on_error
 
int abort_on_flags
 
int print_stats
 
int64_t stats_period
 
int stdin_interaction
 
AVIOContextprogress_avio
 
float max_error_rate
 
char * filter_nbthreads
 
int filter_complex_nbthreads
 
int vstats_version
 
int auto_conversion_filters
 
const AVIOInterruptCB int_cb
 
const OptionDef options []
 
HWDevicefilter_hw_device
 
atomic_uint nb_output_dumped
 
int ignore_unknown_streams
 
int copy_unknown_streams
 
int recast_media
 
FILE * vstats_file
 

Macro Definition Documentation

◆ FFMPEG_OPT_QPHIST

#define FFMPEG_OPT_QPHIST   1

Definition at line 54 of file ffmpeg.h.

◆ FFMPEG_OPT_ADRIFT_THRESHOLD

#define FFMPEG_OPT_ADRIFT_THRESHOLD   1

Definition at line 55 of file ffmpeg.h.

◆ FFMPEG_OPT_ENC_TIME_BASE_NUM

#define FFMPEG_OPT_ENC_TIME_BASE_NUM   1

Definition at line 56 of file ffmpeg.h.

◆ FFMPEG_OPT_TOP

#define FFMPEG_OPT_TOP   1

Definition at line 57 of file ffmpeg.h.

◆ FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP

#define FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP   1

Definition at line 58 of file ffmpeg.h.

◆ FFMPEG_OPT_VSYNC_DROP

#define FFMPEG_OPT_VSYNC_DROP   1

Definition at line 59 of file ffmpeg.h.

◆ FFMPEG_OPT_VSYNC

#define FFMPEG_OPT_VSYNC   1

Definition at line 60 of file ffmpeg.h.

◆ FFMPEG_OPT_FILTER_SCRIPT

#define FFMPEG_OPT_FILTER_SCRIPT   1

Definition at line 61 of file ffmpeg.h.

◆ FFMPEG_ERROR_RATE_EXCEEDED

#define FFMPEG_ERROR_RATE_EXCEEDED   FFERRTAG('E', 'R', 'E', 'D')

Definition at line 63 of file ffmpeg.h.

◆ ABORT_ON_FLAG_EMPTY_OUTPUT

#define ABORT_ON_FLAG_EMPTY_OUTPUT   (1 << 0)

Definition at line 421 of file ffmpeg.h.

◆ ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM

#define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM   (1 << 1)

Definition at line 422 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_str

#define SPECIFIER_OPT_FMT_str   "%s"

Definition at line 816 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_i

#define SPECIFIER_OPT_FMT_i   "%i"

Definition at line 817 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_i64

#define SPECIFIER_OPT_FMT_i64   "%"PRId64

Definition at line 818 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_ui64

#define SPECIFIER_OPT_FMT_ui64   "%"PRIu64

Definition at line 819 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_f

#define SPECIFIER_OPT_FMT_f   "%f"

Definition at line 820 of file ffmpeg.h.

◆ SPECIFIER_OPT_FMT_dbl

#define SPECIFIER_OPT_FMT_dbl   "%lf"

Definition at line 821 of file ffmpeg.h.

◆ WARN_MULTIPLE_OPT_USAGE

#define WARN_MULTIPLE_OPT_USAGE (   optname,
  type,
  idx,
  st 
)
Value:
{\
char namestr[128] = "";\
const SpecifierOpt *so = &o->optname.opt[idx];\
const char *spec = so->specifier && so->specifier[0] ? so->specifier : "";\
snprintf(namestr, sizeof(namestr), "-%s", o->optname.opt_canon->name);\
if (o->optname.opt_canon->flags & OPT_HAS_ALT) {\
const char * const *names_alt = o->optname.opt_canon->u1.names_alt;\
for (int _i = 0; names_alt[_i]; _i++)\
av_strlcatf(namestr, sizeof(namestr), "/-%s", names_alt[_i]);\
}\
av_log(NULL, AV_LOG_WARNING, "Multiple %s options specified for stream %d, only the last option '-%s%s%s "SPECIFIER_OPT_FMT_##type"' will be used.\n",\
namestr, st->index, o->optname.opt_canon->name, spec[0] ? ":" : "", spec, so->u.type);\
}

Definition at line 823 of file ffmpeg.h.

◆ MATCH_PER_STREAM_OPT

#define MATCH_PER_STREAM_OPT (   name,
  type,
  outvar,
  fmtctx,
  st 
)
Value:
{\
int _ret, _matches = 0, _match_idx;\
for (int _i = 0; _i < o->name.nb_opt; _i++) {\
char *spec = o->name.opt[_i].specifier;\
if ((_ret = check_stream_specifier(fmtctx, st, spec)) > 0) {\
outvar = o->name.opt[_i].u.type;\
_match_idx = _i;\
_matches++;\
} else if (_ret < 0)\
return _ret;\
}\
if (_matches > 1 && o->name.opt_canon)\
WARN_MULTIPLE_OPT_USAGE(name, type, _match_idx, st);\
}

Definition at line 838 of file ffmpeg.h.

Enumeration Type Documentation

◆ VideoSyncMethod

Enumerator
VSYNC_AUTO 
VSYNC_PASSTHROUGH 
VSYNC_CFR 
VSYNC_VFR 
VSYNC_VSCFR 
VSYNC_DROP 

Definition at line 65 of file ffmpeg.h.

◆ EncTimeBase

Enumerator
ENC_TIME_BASE_DEMUX 
ENC_TIME_BASE_FILTER 

Definition at line 76 of file ffmpeg.h.

◆ HWAccelID

enum HWAccelID
Enumerator
HWACCEL_NONE 
HWACCEL_AUTO 
HWACCEL_GENERIC 

Definition at line 81 of file ffmpeg.h.

◆ FrameOpaque

Enumerator
FRAME_OPAQUE_SUB_HEARTBEAT 
FRAME_OPAQUE_EOF 
FRAME_OPAQUE_SEND_COMMAND 

Definition at line 87 of file ffmpeg.h.

◆ PacketOpaque

Enumerator
PKT_OPAQUE_SUB_HEARTBEAT 
PKT_OPAQUE_FIX_SUB_DURATION 

Definition at line 93 of file ffmpeg.h.

◆ LatencyProbe

Enumerator
LATENCY_PROBE_DEMUX 
LATENCY_PROBE_DEC_PRE 
LATENCY_PROBE_DEC_POST 
LATENCY_PROBE_FILTER_PRE 
LATENCY_PROBE_FILTER_POST 
LATENCY_PROBE_ENC_PRE 
LATENCY_PROBE_ENC_POST 
LATENCY_PROBE_NB 

Definition at line 98 of file ffmpeg.h.

◆ IFilterFlags

Enumerator
IFILTER_FLAG_AUTOROTATE 
IFILTER_FLAG_REINIT 
IFILTER_FLAG_CFR 

Definition at line 238 of file ffmpeg.h.

◆ DecoderFlags

Enumerator
DECODER_FLAG_FIX_SUB_DURATION 
DECODER_FLAG_TS_UNRELIABLE 
DECODER_FLAG_FRAMERATE_FORCED 
DECODER_FLAG_TOP_FIELD_FIRST 
DECODER_FLAG_SEND_END_TS 

Definition at line 296 of file ffmpeg.h.

◆ forced_keyframes_const

Enumerator
FKF_N 
FKF_N_FORCED 
FKF_PREV_FORCED_N 
FKF_PREV_FORCED_T 
FKF_T 
FKF_NB 

Definition at line 412 of file ffmpeg.h.

◆ EncStatsType

Enumerator
ENC_STATS_LITERAL 
ENC_STATS_FILE_IDX 
ENC_STATS_STREAM_IDX 
ENC_STATS_FRAME_NUM 
ENC_STATS_FRAME_NUM_IN 
ENC_STATS_TIMEBASE 
ENC_STATS_TIMEBASE_IN 
ENC_STATS_PTS 
ENC_STATS_PTS_TIME 
ENC_STATS_PTS_IN 
ENC_STATS_PTS_TIME_IN 
ENC_STATS_DTS 
ENC_STATS_DTS_TIME 
ENC_STATS_SAMPLE_NUM 
ENC_STATS_NB_SAMPLES 
ENC_STATS_PKT_SIZE 
ENC_STATS_BITRATE 
ENC_STATS_AVG_BITRATE 
ENC_STATS_KEYFRAME 

Definition at line 424 of file ffmpeg.h.

◆ OSTFinished

Enumerator
ENCODER_FINISHED 
MUXER_FINISHED 

Definition at line 465 of file ffmpeg.h.

◆ anonymous enum

anonymous enum
Enumerator
KF_FORCE_SOURCE 
KF_FORCE_SOURCE_NO_DROP 

Definition at line 470 of file ffmpeg.h.

Function Documentation

◆ term_init()

void term_init ( void  )

Definition at line 222 of file ffmpeg.c.

Referenced by assert_file_overwrite().

◆ term_exit()

void term_exit ( void  )

Definition at line 152 of file ffmpeg.c.

Referenced by assert_file_overwrite(), ffmpeg_cleanup(), and transcode().

◆ show_usage()

void show_usage ( void  )

Definition at line 1172 of file ffmpeg_opt.c.

Referenced by main(), and show_help_default().

◆ remove_avoptions()

void remove_avoptions ( AVDictionary **  a,
AVDictionary b 
)

Definition at line 497 of file ffmpeg.c.

Referenced by ifile_open().

◆ check_avoptions()

int check_avoptions ( AVDictionary m)

Definition at line 506 of file ffmpeg.c.

Referenced by dec_open(), enc_open(), and ifile_open().

◆ assert_file_overwrite()

int assert_file_overwrite ( const char *  filename)

Definition at line 614 of file ffmpeg_opt.c.

Referenced by dump_attachment(), and of_open().

◆ strip_specifiers()

AVDictionary* strip_specifiers ( const AVDictionary dict)

Definition at line 162 of file ffmpeg_opt.c.

Referenced by ifile_open(), and validate_enc_avopt().

◆ find_codec()

int find_codec ( void *  logctx,
const char *  name,
enum AVMediaType  type,
int  encoder,
const AVCodec **  codec 
)

Definition at line 581 of file ffmpeg_opt.c.

Referenced by choose_decoder(), choose_encoder(), and ifile_open().

◆ parse_and_set_vsync()

int parse_and_set_vsync ( const char *  arg,
int vsync_var,
int  file_idx,
int  st_idx,
int  is_global 
)

Definition at line 192 of file ffmpeg_opt.c.

Referenced by new_stream_video(), and opt_vsync().

◆ filtergraph_is_simple()

int filtergraph_is_simple ( const FilterGraph fg)

◆ init_simple_filtergraph()

int init_simple_filtergraph ( InputStream ist,
OutputStream ost,
char *  graph_desc,
Scheduler sch,
unsigned  sch_idx_enc 
)

Definition at line 1096 of file ffmpeg_filter.c.

Referenced by ost_add().

◆ fg_finalise_bindings()

int fg_finalise_bindings ( FilterGraph fg)

Definition at line 1221 of file ffmpeg_filter.c.

◆ frame_data()

FrameData* frame_data ( AVFrame frame)

Get our axiliary frame data attached to the frame, allocating it if needed.

Definition at line 473 of file ffmpeg.c.

Referenced by close_output(), dwt_plane(), encode_frame(), fg_output_step(), generate_raw_frame(), nvenc_retrieve_frame_data(), nvenc_store_frame_data(), packet_decode(), and send_frame().

◆ frame_data_c()

const FrameData* frame_data_c ( AVFrame frame)

Definition at line 479 of file ffmpeg.c.

Referenced by choose_out_timebase().

◆ packet_data()

FrameData* packet_data ( AVPacket pkt)

Definition at line 485 of file ffmpeg.c.

Referenced by encode_frame(), input_packet_process(), and packet_decode().

◆ packet_data_c()

const FrameData* packet_data_c ( AVPacket pkt)

Definition at line 491 of file ffmpeg.c.

◆ ifilter_parameters_from_dec()

int ifilter_parameters_from_dec ( InputFilter ifilter,
const AVCodecContext dec 
)

Set up fallback filtering parameters from a decoder context.

They will only be used if no frames are ever sent on this input, otherwise the actual parameters are taken from the frame.

◆ ofilter_bind_ost()

int ofilter_bind_ost ( OutputFilter ofilter,
OutputStream ost,
unsigned  sched_idx_enc 
)

Definition at line 781 of file ffmpeg_filter.c.

Referenced by init_simple_filtergraph(), and ost_add().

◆ fg_create()

int fg_create ( FilterGraph **  pfg,
char *  graph_desc,
Scheduler sch 
)

Create a new filtergraph in the global filtergraph list.

Parameters
graph_descGraph description; an av_malloc()ed string, filtergraph takes ownership of it.

Definition at line 973 of file ffmpeg_filter.c.

Referenced by init_simple_filtergraph(), opt_filter_complex(), and opt_filter_complex_script().

◆ fg_free()

void fg_free ( FilterGraph **  pfg)

Definition at line 908 of file ffmpeg_filter.c.

Referenced by ffmpeg_cleanup().

◆ fg_send_command()

void fg_send_command ( FilterGraph fg,
double  time,
const char *  target,
const char *  command,
const char *  arg,
int  all_filters 
)

Definition at line 2894 of file ffmpeg_filter.c.

Referenced by check_keyboard_interaction().

◆ ffmpeg_parse_options()

int ffmpeg_parse_options ( int  argc,
char **  argv,
Scheduler sch 
)

Referenced by main().

◆ enc_stats_write()

void enc_stats_write ( OutputStream ost,
EncStats es,
const AVFrame frame,
const AVPacket pkt,
uint64_t  frame_num 
)

Definition at line 480 of file ffmpeg_enc.c.

Referenced by encode_frame(), and write_packet().

◆ hw_device_get_by_name()

HWDevice* hw_device_get_by_name ( const char *  name)

◆ hw_device_get_by_type()

HWDevice* hw_device_get_by_type ( enum AVHWDeviceType  type)

◆ hw_device_init_from_string()

int hw_device_init_from_string ( const char *  arg,
HWDevice **  dev 
)

Definition at line 94 of file ffmpeg_hw.c.

Referenced by opt_init_hw_device().

◆ hw_device_init_from_type()

int hw_device_init_from_type ( enum AVHWDeviceType  type,
const char *  device,
HWDevice **  dev_out 
)

Definition at line 245 of file ffmpeg_hw.c.

Referenced by hw_device_setup_for_decode().

◆ hw_device_free_all()

void hw_device_free_all ( void  )

Definition at line 288 of file ffmpeg_hw.c.

Referenced by ffmpeg_cleanup().

◆ hw_device_for_filter()

AVBufferRef* hw_device_for_filter ( void  )

Get a hardware device to be used with this filtergraph.

The returned reference is owned by the callee, the caller must ref it explicitly for long-term use.

Definition at line 300 of file ffmpeg_hw.c.

Referenced by configure_filtergraph().

◆ dec_create()

int dec_create ( const OptionsContext o,
const char *  arg,
Scheduler sch 
)

Create a standalone decoder.

Definition at line 1265 of file ffmpeg_dec.c.

◆ dec_init()

int dec_init ( Decoder **  pdec,
Scheduler sch,
AVDictionary **  dec_opts,
const DecoderOpts o,
AVFrame param_out 
)
Parameters
dec_optsDictionary filled with decoder options. Its ownership is transferred to the decoder.
param_outIf non-NULL, media properties after opening the decoder are written here.
Return values
>=0non-negative scheduler index on success
<0an error code on failure

Definition at line 1240 of file ffmpeg_dec.c.

Referenced by ist_use().

◆ dec_free()

void dec_free ( Decoder **  pdec)

Definition at line 98 of file ffmpeg_dec.c.

Referenced by dec_alloc(), dec_create(), dec_init(), ffmpeg_cleanup(), and ist_free().

◆ dec_filter_add()

int dec_filter_add ( Decoder dec,
InputFilter ifilter,
InputFilterOptions opts 
)

Definition at line 1337 of file ffmpeg_dec.c.

Referenced by ifilter_bind_dec().

◆ enc_alloc()

int enc_alloc ( Encoder **  penc,
const AVCodec codec,
Scheduler sch,
unsigned  sch_idx 
)

Definition at line 74 of file ffmpeg_enc.c.

Referenced by ost_add().

◆ enc_free()

void enc_free ( Encoder **  penc)

Definition at line 64 of file ffmpeg_enc.c.

Referenced by ost_free().

◆ enc_open()

int enc_open ( void *  opaque,
const AVFrame frame 
)

Definition at line 168 of file ffmpeg_enc.c.

Referenced by encoder_thread(), and ost_add().

◆ enc_loopback()

int enc_loopback ( Encoder enc)

Definition at line 948 of file ffmpeg_enc.c.

Referenced by dec_create().

◆ of_stream_init()

int of_stream_init ( OutputFile of,
OutputStream ost 
)

Definition at line 609 of file ffmpeg_mux.c.

Referenced by enc_open(), and of_open().

◆ of_write_trailer()

int of_write_trailer ( OutputFile of)

Definition at line 738 of file ffmpeg_mux.c.

Referenced by transcode().

◆ of_open()

int of_open ( const OptionsContext o,
const char *  filename,
Scheduler sch 
)

Definition at line 2933 of file ffmpeg_mux_init.c.

◆ of_free()

void of_free ( OutputFile **  pof)

Definition at line 850 of file ffmpeg_mux.c.

Referenced by ffmpeg_cleanup().

◆ of_enc_stats_close()

void of_enc_stats_close ( void  )

Definition at line 196 of file ffmpeg_mux_init.c.

Referenced by ffmpeg_cleanup().

◆ of_filesize()

int64_t of_filesize ( OutputFile of)

Definition at line 876 of file ffmpeg_mux.c.

Referenced by mux_final_stats(), and print_report().

◆ ifile_open()

int ifile_open ( const OptionsContext o,
const char *  filename,
Scheduler sch 
)

Definition at line 1523 of file ffmpeg_demux.c.

◆ ifile_close()

void ifile_close ( InputFile **  f)

Definition at line 851 of file ffmpeg_demux.c.

Referenced by ffmpeg_cleanup().

◆ ist_output_add()

int ist_output_add ( InputStream ist,
OutputStream ost 
)

Definition at line 963 of file ffmpeg_demux.c.

Referenced by ost_add().

◆ ist_filter_add()

int ist_filter_add ( InputStream ist,
InputFilter ifilter,
int  is_simple,
InputFilterOptions opts 
)

Definition at line 981 of file ffmpeg_demux.c.

Referenced by ifilter_bind_ist().

◆ ist_find_unused()

InputStream* ist_find_unused ( enum AVMediaType  type)

Find an unused input stream of given type.

Definition at line 153 of file ffmpeg_demux.c.

Referenced by fg_complex_bind_input().

◆ ist_iter()

InputStream* ist_iter ( InputStream prev)

Definition at line 396 of file ffmpeg.c.

Referenced by ist_find_unused(), map_auto_data(), map_auto_subtitle(), and print_stream_maps().

◆ ost_iter()

OutputStream* ost_iter ( OutputStream prev)

Definition at line 380 of file ffmpeg.c.

Referenced by print_report(), and print_stream_maps().

◆ update_benchmark()

void update_benchmark ( const char *  fmt,
  ... 
)

Definition at line 517 of file ffmpeg.c.

Referenced by encode_frame(), and packet_decode().

◆ opt_match_per_type_str()

const char* opt_match_per_type_str ( const SpecifierOptList sol,
char  mediatype 
)

Definition at line 179 of file ffmpeg_opt.c.

Referenced by ifile_open(), map_auto_subtitle(), and opt_preset().

◆ muxer_thread()

int muxer_thread ( void *  arg)

Definition at line 407 of file ffmpeg_mux.c.

Referenced by of_open().

◆ encoder_thread()

int encoder_thread ( void *  arg)

Definition at line 867 of file ffmpeg_enc.c.

Referenced by ost_add().

Variable Documentation

◆ forced_keyframes_const_names

const char* const forced_keyframes_const_names[]

Definition at line 2725 of file ffmpeg_mux_init.c.

Referenced by process_forced_keyframes().

◆ input_files

InputFile** input_files

◆ nb_input_files

int nb_input_files

◆ output_files

OutputFile** output_files

◆ nb_output_files

int nb_output_files

◆ filtergraphs

FilterGraph** filtergraphs

◆ nb_filtergraphs

int nb_filtergraphs

◆ decoders

Decoder** decoders

Definition at line 134 of file ffmpeg.c.

Referenced by dec_create(), ffmpeg_cleanup(), and fg_complex_bind_input().

◆ nb_decoders

int nb_decoders

Definition at line 135 of file ffmpeg.c.

Referenced by dec_create(), ffmpeg_cleanup(), and fg_complex_bind_input().

◆ vstats_filename

char* vstats_filename

Definition at line 59 of file ffmpeg_opt.c.

Referenced by encode_frame(), ffmpeg_cleanup(), opt_vstats_file(), and update_video_stats().

◆ dts_delta_threshold

float dts_delta_threshold

Definition at line 62 of file ffmpeg_opt.c.

Referenced by ts_discontinuity_detect().

◆ dts_error_threshold

float dts_error_threshold

Definition at line 63 of file ffmpeg_opt.c.

Referenced by ts_discontinuity_detect(), and video_sync_process().

◆ video_sync_method

enum VideoSyncMethod video_sync_method

Definition at line 66 of file ffmpeg_opt.c.

Referenced by new_stream_video(), opt_vsync(), and parse_and_set_vsync().

◆ frame_drop_threshold

float frame_drop_threshold

Definition at line 68 of file ffmpeg_opt.c.

Referenced by video_sync_process().

◆ do_benchmark

int do_benchmark

Definition at line 69 of file ffmpeg_opt.c.

Referenced by ffmpeg_cleanup(), and main().

◆ do_benchmark_all

int do_benchmark_all

Definition at line 70 of file ffmpeg_opt.c.

Referenced by update_benchmark().

◆ do_hex_dump

int do_hex_dump

Definition at line 71 of file ffmpeg_opt.c.

Referenced by input_thread().

◆ do_pkt_dump

int do_pkt_dump

Definition at line 72 of file ffmpeg_opt.c.

Referenced by input_thread().

◆ copy_ts

int copy_ts

◆ start_at_zero

int start_at_zero

◆ copy_tb

int copy_tb

Definition at line 75 of file ffmpeg_opt.c.

Referenced by avformat_transfer_internal_stream_timing_info(), and streamcopy_init().

◆ debug_ts

int debug_ts

◆ exit_on_error

int exit_on_error

◆ abort_on_flags

int abort_on_flags

Definition at line 78 of file ffmpeg_opt.c.

Referenced by check_written(), and opt_abort_on().

◆ print_stats

int print_stats

Definition at line 79 of file ffmpeg_opt.c.

Referenced by print_report().

◆ stats_period

int64_t stats_period

Definition at line 86 of file ffmpeg_opt.c.

Referenced by opt_stats_period(), print_report(), and transcode().

◆ stdin_interaction

int stdin_interaction

Definition at line 80 of file ffmpeg_opt.c.

Referenced by assert_file_overwrite(), ifile_open(), term_init(), and transcode().

◆ progress_avio

AVIOContext* progress_avio

Definition at line 123 of file ffmpeg.c.

Referenced by print_report().

◆ max_error_rate

float max_error_rate

Definition at line 81 of file ffmpeg_opt.c.

Referenced by decoder_thread().

◆ filter_nbthreads

char* filter_nbthreads

Definition at line 82 of file ffmpeg_opt.c.

Referenced by configure_filtergraph(), ffmpeg_cleanup(), and opt_filter_threads().

◆ filter_complex_nbthreads

int filter_complex_nbthreads

Definition at line 83 of file ffmpeg_opt.c.

Referenced by configure_filtergraph().

◆ vstats_version

int vstats_version

Definition at line 84 of file ffmpeg_opt.c.

Referenced by update_video_stats().

◆ auto_conversion_filters

int auto_conversion_filters

Definition at line 85 of file ffmpeg_opt.c.

Referenced by fg_create().

◆ int_cb

const AVIOInterruptCB int_cb

◆ options

const OptionDef options[]

◆ filter_hw_device

HWDevice* filter_hw_device

Definition at line 57 of file ffmpeg_opt.c.

Referenced by hw_device_for_filter(), and opt_filter_hw_device().

◆ nb_output_dumped

atomic_uint nb_output_dumped

Definition at line 120 of file ffmpeg.c.

Referenced by mux_check_init(), and print_report().

◆ ignore_unknown_streams

int ignore_unknown_streams

Definition at line 91 of file ffmpeg_opt.c.

Referenced by map_manual().

◆ copy_unknown_streams

int copy_unknown_streams

Definition at line 92 of file ffmpeg_opt.c.

Referenced by map_manual().

◆ recast_media

int recast_media

Definition at line 93 of file ffmpeg_opt.c.

Referenced by choose_decoder(), and find_codec().

◆ vstats_file

FILE* vstats_file

Definition at line 109 of file ffmpeg.c.

Referenced by ffmpeg_cleanup(), and update_video_stats().

AV_LOG_WARNING
#define AV_LOG_WARNING
Something somehow does not look correct.
Definition: log.h:186
name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
av_strlcatf
size_t av_strlcatf(char *dst, size_t size, const char *fmt,...)
Definition: avstring.c:103
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
check_stream_specifier
int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
Check if the given stream matches a stream specifier.
Definition: cmdutils.c:982
SpecifierOpt::specifier
char * specifier
stream/chapter/program/...
Definition: cmdutils.h:106
NULL
#define NULL
Definition: coverity.c:32
OPT_HAS_ALT
#define OPT_HAS_ALT
Definition: cmdutils.h:173
SpecifierOpt
Definition: cmdutils.h:105